var _lt = Object.defineProperty;
var plt = (m, v, C) => v in m ? _lt(m, v, { enumerable: !0, configurable: !0, writable: !0, value: C }) : m[v] = C;
var JD = (m, v, C) => (plt(m, typeof v != "symbol" ? v + "" : v, C), C);
class mlt {
  constructor() {
    this.listeners = [], this.unexpectedErrorHandler = function(v) {
      setTimeout(() => {
        throw v.stack ? rR.isErrorNoTelemetry(v) ? new rR(v.message + `

` + v.stack) : new Error(v.message + `

` + v.stack) : v;
      }, 0);
    };
  }
  emit(v) {
    this.listeners.forEach((C) => {
      C(v);
    });
  }
  onUnexpectedError(v) {
    this.unexpectedErrorHandler(v), this.emit(v);
  }
  // For external errors, we don't want the listeners to be called
  onUnexpectedExternalError(v) {
    this.unexpectedErrorHandler(v);
  }
}
const hlt = new mlt();
function XRe(m) {
  glt(m) || hlt.onUnexpectedError(m);
}
function LDe(m) {
  if (m instanceof Error) {
    const { name: v, message: C } = m, B = m.stacktrace || m.stack;
    return {
      $isError: !0,
      name: v,
      message: C,
      stack: B,
      noTelemetry: rR.isErrorNoTelemetry(m)
    };
  }
  return m;
}
const Xoe = "Canceled";
function glt(m) {
  return m instanceof ylt ? !0 : m instanceof Error && m.name === Xoe && m.message === Xoe;
}
class ylt extends Error {
  constructor() {
    super(Xoe), this.name = this.message;
  }
}
class rR extends Error {
  constructor(v) {
    super(v), this.name = "CodeExpectedError";
  }
  static fromError(v) {
    if (v instanceof rR)
      return v;
    const C = new rR();
    return C.message = v.message, C.stack = v.stack, C;
  }
  static isErrorNoTelemetry(v) {
    return v.name === "CodeExpectedError";
  }
}
class sA extends Error {
  constructor(v) {
    super(v || "An unexpected bug occurred."), Object.setPrototypeOf(this, sA.prototype);
  }
}
function vlt(m, v) {
  const C = this;
  let B = !1, ne;
  return function() {
    if (B)
      return ne;
    if (B = !0, v)
      try {
        ne = m.apply(C, arguments);
      } finally {
        v();
      }
    else
      ne = m.apply(C, arguments);
    return ne;
  };
}
var dj;
(function(m) {
  function v(nn) {
    return nn && typeof nn == "object" && typeof nn[Symbol.iterator] == "function";
  }
  m.is = v;
  const C = Object.freeze([]);
  function B() {
    return C;
  }
  m.empty = B;
  function* ne(nn) {
    yield nn;
  }
  m.single = ne;
  function pe(nn) {
    return v(nn) ? nn : ne(nn);
  }
  m.wrap = pe;
  function Se(nn) {
    return nn || C;
  }
  m.from = Se;
  function* Ge(nn) {
    for (let Li = nn.length - 1; Li >= 0; Li--)
      yield nn[Li];
  }
  m.reverse = Ge;
  function ct(nn) {
    return !nn || nn[Symbol.iterator]().next().done === !0;
  }
  m.isEmpty = ct;
  function Le(nn) {
    return nn[Symbol.iterator]().next().value;
  }
  m.first = Le;
  function ze(nn, Li) {
    for (const vi of nn)
      if (Li(vi))
        return !0;
    return !1;
  }
  m.some = ze;
  function Xt(nn, Li) {
    for (const vi of nn)
      if (Li(vi))
        return vi;
  }
  m.find = Xt;
  function* Jt(nn, Li) {
    for (const vi of nn)
      Li(vi) && (yield vi);
  }
  m.filter = Jt;
  function* dn(nn, Li) {
    let vi = 0;
    for (const ya of nn)
      yield Li(ya, vi++);
  }
  m.map = dn;
  function* kr(...nn) {
    for (const Li of nn)
      yield* Li;
  }
  m.concat = kr;
  function ui(nn, Li, vi) {
    let ya = vi;
    for (const Go of nn)
      ya = Li(ya, Go);
    return ya;
  }
  m.reduce = ui;
  function* la(nn, Li, vi = nn.length) {
    for (Li < 0 && (Li += nn.length), vi < 0 ? vi += nn.length : vi > nn.length && (vi = nn.length); Li < vi; Li++)
      yield nn[Li];
  }
  m.slice = la;
  function Yn(nn, Li = Number.POSITIVE_INFINITY) {
    const vi = [];
    if (Li === 0)
      return [vi, nn];
    const ya = nn[Symbol.iterator]();
    for (let Go = 0; Go < Li; Go++) {
      const jr = ya.next();
      if (jr.done)
        return [vi, m.empty()];
      vi.push(jr.value);
    }
    return [vi, { [Symbol.iterator]() {
      return ya;
    } }];
  }
  m.consume = Yn;
})(dj || (dj = {}));
function YRe(m) {
  if (dj.is(m)) {
    const v = [];
    for (const C of m)
      if (C)
        try {
          C.dispose();
        } catch (B) {
          v.push(B);
        }
    if (v.length === 1)
      throw v[0];
    if (v.length > 1)
      throw new AggregateError(v, "Encountered errors while disposing of store");
    return Array.isArray(m) ? [] : m;
  } else if (m)
    return m.dispose(), m;
}
function blt(...m) {
  return w4(() => YRe(m));
}
function w4(m) {
  return {
    dispose: vlt(() => {
      m();
    })
  };
}
class nI {
  constructor() {
    this._toDispose = /* @__PURE__ */ new Set(), this._isDisposed = !1;
  }
  /**
   * Dispose of all registered disposables and mark this object as disposed.
   *
   * Any future disposables added to this object will be disposed of on `add`.
   */
  dispose() {
    this._isDisposed || (this._isDisposed = !0, this.clear());
  }
  /**
   * @return `true` if this object has been disposed of.
   */
  get isDisposed() {
    return this._isDisposed;
  }
  /**
   * Dispose of all registered disposables but do not mark this object as disposed.
   */
  clear() {
    if (this._toDispose.size !== 0)
      try {
        YRe(this._toDispose);
      } finally {
        this._toDispose.clear();
      }
  }
  /**
   * Add a new {@link IDisposable disposable} to the collection.
   */
  add(v) {
    if (!v)
      return v;
    if (v === this)
      throw new Error("Cannot register a disposable on itself!");
    return this._isDisposed ? nI.DISABLE_DISPOSED_WARNING || console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack) : this._toDispose.add(v), v;
  }
  /**
   * Deletes the value from the store, but does not dispose it.
   */
  deleteAndLeak(v) {
    v && this._toDispose.has(v) && this._toDispose.delete(v);
  }
}
nI.DISABLE_DISPOSED_WARNING = !1;
class D4 {
  constructor() {
    this._store = new nI(), this._store;
  }
  dispose() {
    this._store.dispose();
  }
  /**
   * Adds `o` to the collection of disposables managed by this object.
   */
  _register(v) {
    if (v === this)
      throw new Error("Cannot register a disposable on itself!");
    return this._store.add(v);
  }
}
D4.None = Object.freeze({ dispose() {
} });
class Xu {
  constructor(v) {
    this.element = v, this.next = Xu.Undefined, this.prev = Xu.Undefined;
  }
}
Xu.Undefined = new Xu(void 0);
class Elt {
  constructor() {
    this._first = Xu.Undefined, this._last = Xu.Undefined, this._size = 0;
  }
  get size() {
    return this._size;
  }
  isEmpty() {
    return this._first === Xu.Undefined;
  }
  clear() {
    let v = this._first;
    for (; v !== Xu.Undefined; ) {
      const C = v.next;
      v.prev = Xu.Undefined, v.next = Xu.Undefined, v = C;
    }
    this._first = Xu.Undefined, this._last = Xu.Undefined, this._size = 0;
  }
  unshift(v) {
    return this._insert(v, !1);
  }
  push(v) {
    return this._insert(v, !0);
  }
  _insert(v, C) {
    const B = new Xu(v);
    if (this._first === Xu.Undefined)
      this._first = B, this._last = B;
    else if (C) {
      const pe = this._last;
      this._last = B, B.prev = pe, pe.next = B;
    } else {
      const pe = this._first;
      this._first = B, B.next = pe, pe.prev = B;
    }
    this._size += 1;
    let ne = !1;
    return () => {
      ne || (ne = !0, this._remove(B));
    };
  }
  shift() {
    if (this._first !== Xu.Undefined) {
      const v = this._first.element;
      return this._remove(this._first), v;
    }
  }
  pop() {
    if (this._last !== Xu.Undefined) {
      const v = this._last.element;
      return this._remove(this._last), v;
    }
  }
  _remove(v) {
    if (v.prev !== Xu.Undefined && v.next !== Xu.Undefined) {
      const C = v.prev;
      C.next = v.next, v.next.prev = C;
    } else
      v.prev === Xu.Undefined && v.next === Xu.Undefined ? (this._first = Xu.Undefined, this._last = Xu.Undefined) : v.next === Xu.Undefined ? (this._last = this._last.prev, this._last.next = Xu.Undefined) : v.prev === Xu.Undefined && (this._first = this._first.next, this._first.prev = Xu.Undefined);
    this._size -= 1;
  }
  *[Symbol.iterator]() {
    let v = this._first;
    for (; v !== Xu.Undefined; )
      yield v.element, v = v.next;
  }
}
const Tlt = globalThis.performance && typeof globalThis.performance.now == "function";
class yj {
  static create(v) {
    return new yj(v);
  }
  constructor(v) {
    this._now = Tlt && v === !1 ? Date.now : globalThis.performance.now.bind(globalThis.performance), this._startTime = this._now(), this._stopTime = -1;
  }
  stop() {
    this._stopTime = this._now();
  }
  elapsed() {
    return this._stopTime !== -1 ? this._stopTime - this._startTime : this._now() - this._startTime;
  }
}
var Yoe;
(function(m) {
  m.None = () => D4.None;
  function v(Ri, Fi) {
    return Xt(Ri, () => {
    }, 0, void 0, !0, void 0, Fi);
  }
  m.defer = v;
  function C(Ri) {
    return (Fi, jt = null, ao) => {
      let _a = !1, No;
      return No = Ri((ca) => {
        if (!_a)
          return No ? No.dispose() : _a = !0, Fi.call(jt, ca);
      }, null, ao), _a && No.dispose(), No;
    };
  }
  m.once = C;
  function B(Ri, Fi, jt) {
    return Le((ao, _a = null, No) => Ri((ca) => ao.call(_a, Fi(ca)), null, No), jt);
  }
  m.map = B;
  function ne(Ri, Fi, jt) {
    return Le((ao, _a = null, No) => Ri((ca) => {
      Fi(ca), ao.call(_a, ca);
    }, null, No), jt);
  }
  m.forEach = ne;
  function pe(Ri, Fi, jt) {
    return Le((ao, _a = null, No) => Ri((ca) => Fi(ca) && ao.call(_a, ca), null, No), jt);
  }
  m.filter = pe;
  function Se(Ri) {
    return Ri;
  }
  m.signal = Se;
  function Ge(...Ri) {
    return (Fi, jt = null, ao) => {
      const _a = blt(...Ri.map((No) => No((ca) => Fi.call(jt, ca))));
      return ze(_a, ao);
    };
  }
  m.any = Ge;
  function ct(Ri, Fi, jt, ao) {
    let _a = jt;
    return B(Ri, (No) => (_a = Fi(_a, No), _a), ao);
  }
  m.reduce = ct;
  function Le(Ri, Fi) {
    let jt;
    const ao = {
      onWillAddFirstListener() {
        jt = Ri(_a.fire, _a);
      },
      onDidRemoveLastListener() {
        jt == null || jt.dispose();
      }
    }, _a = new $b(ao);
    return Fi == null || Fi.add(_a), _a.event;
  }
  function ze(Ri, Fi) {
    return Fi instanceof Array ? Fi.push(Ri) : Fi && Fi.add(Ri), Ri;
  }
  function Xt(Ri, Fi, jt = 100, ao = !1, _a = !1, No, ca) {
    let Bd, u_, KE, OS = 0, ia;
    const _A = {
      leakWarningThreshold: No,
      onWillAddFirstListener() {
        Bd = Ri((pA) => {
          OS++, u_ = Fi(u_, pA), ao && !KE && (iI.fire(u_), u_ = void 0), ia = () => {
            const hv = u_;
            u_ = void 0, KE = void 0, (!ao || OS > 1) && iI.fire(hv), OS = 0;
          }, typeof jt == "number" ? (clearTimeout(KE), KE = setTimeout(ia, jt)) : KE === void 0 && (KE = 0, queueMicrotask(ia));
        });
      },
      onWillRemoveListener() {
        _a && OS > 0 && (ia == null || ia());
      },
      onDidRemoveLastListener() {
        ia = void 0, Bd.dispose();
      }
    }, iI = new $b(_A);
    return ca == null || ca.add(iI), iI.event;
  }
  m.debounce = Xt;
  function Jt(Ri, Fi = 0, jt) {
    return m.debounce(Ri, (ao, _a) => ao ? (ao.push(_a), ao) : [_a], Fi, void 0, !0, void 0, jt);
  }
  m.accumulate = Jt;
  function dn(Ri, Fi = (ao, _a) => ao === _a, jt) {
    let ao = !0, _a;
    return pe(Ri, (No) => {
      const ca = ao || !Fi(No, _a);
      return ao = !1, _a = No, ca;
    }, jt);
  }
  m.latch = dn;
  function kr(Ri, Fi, jt) {
    return [
      m.filter(Ri, Fi, jt),
      m.filter(Ri, (ao) => !Fi(ao), jt)
    ];
  }
  m.split = kr;
  function ui(Ri, Fi = !1, jt = [], ao) {
    let _a = jt.slice(), No = Ri((u_) => {
      _a ? _a.push(u_) : Bd.fire(u_);
    });
    ao && ao.add(No);
    const ca = () => {
      _a == null || _a.forEach((u_) => Bd.fire(u_)), _a = null;
    }, Bd = new $b({
      onWillAddFirstListener() {
        No || (No = Ri((u_) => Bd.fire(u_)), ao && ao.add(No));
      },
      onDidAddFirstListener() {
        _a && (Fi ? setTimeout(ca) : ca());
      },
      onDidRemoveLastListener() {
        No && No.dispose(), No = null;
      }
    });
    return ao && ao.add(Bd), Bd.event;
  }
  m.buffer = ui;
  function la(Ri, Fi) {
    return (ao, _a, No) => {
      const ca = Fi(new nn());
      return Ri(function(Bd) {
        const u_ = ca.evaluate(Bd);
        u_ !== Yn && ao.call(_a, u_);
      }, void 0, No);
    };
  }
  m.chain = la;
  const Yn = Symbol("HaltChainable");
  class nn {
    constructor() {
      this.steps = [];
    }
    map(Fi) {
      return this.steps.push(Fi), this;
    }
    forEach(Fi) {
      return this.steps.push((jt) => (Fi(jt), jt)), this;
    }
    filter(Fi) {
      return this.steps.push((jt) => Fi(jt) ? jt : Yn), this;
    }
    reduce(Fi, jt) {
      let ao = jt;
      return this.steps.push((_a) => (ao = Fi(ao, _a), ao)), this;
    }
    latch(Fi = (jt, ao) => jt === ao) {
      let jt = !0, ao;
      return this.steps.push((_a) => {
        const No = jt || !Fi(_a, ao);
        return jt = !1, ao = _a, No ? _a : Yn;
      }), this;
    }
    evaluate(Fi) {
      for (const jt of this.steps)
        if (Fi = jt(Fi), Fi === Yn)
          break;
      return Fi;
    }
  }
  function Li(Ri, Fi, jt = (ao) => ao) {
    const ao = (...Bd) => ca.fire(jt(...Bd)), _a = () => Ri.on(Fi, ao), No = () => Ri.removeListener(Fi, ao), ca = new $b({ onWillAddFirstListener: _a, onDidRemoveLastListener: No });
    return ca.event;
  }
  m.fromNodeEventEmitter = Li;
  function vi(Ri, Fi, jt = (ao) => ao) {
    const ao = (...Bd) => ca.fire(jt(...Bd)), _a = () => Ri.addEventListener(Fi, ao), No = () => Ri.removeEventListener(Fi, ao), ca = new $b({ onWillAddFirstListener: _a, onDidRemoveLastListener: No });
    return ca.event;
  }
  m.fromDOMEventEmitter = vi;
  function ya(Ri) {
    return new Promise((Fi) => C(Ri)(Fi));
  }
  m.toPromise = ya;
  function Go(Ri) {
    const Fi = new $b();
    return Ri.then((jt) => {
      Fi.fire(jt);
    }, () => {
      Fi.fire(void 0);
    }).finally(() => {
      Fi.dispose();
    }), Fi.event;
  }
  m.fromPromise = Go;
  function jr(Ri, Fi, jt) {
    return Fi(jt), Ri((ao) => Fi(ao));
  }
  m.runAndSubscribe = jr;
  function es(Ri, Fi) {
    let jt = null;
    function ao(No) {
      jt == null || jt.dispose(), jt = new nI(), Fi(No, jt);
    }
    ao(void 0);
    const _a = Ri((No) => ao(No));
    return w4(() => {
      _a.dispose(), jt == null || jt.dispose();
    });
  }
  m.runAndSubscribeWithStore = es;
  class kc {
    constructor(Fi, jt) {
      this._observable = Fi, this._counter = 0, this._hasChanged = !1;
      const ao = {
        onWillAddFirstListener: () => {
          Fi.addObserver(this);
        },
        onDidRemoveLastListener: () => {
          Fi.removeObserver(this);
        }
      };
      this.emitter = new $b(ao), jt && jt.add(this.emitter);
    }
    beginUpdate(Fi) {
      this._counter++;
    }
    handlePossibleChange(Fi) {
    }
    handleChange(Fi, jt) {
      this._hasChanged = !0;
    }
    endUpdate(Fi) {
      this._counter--, this._counter === 0 && (this._observable.reportChanges(), this._hasChanged && (this._hasChanged = !1, this.emitter.fire(this._observable.get())));
    }
  }
  function Bc(Ri, Fi) {
    return new kc(Ri, Fi).emitter.event;
  }
  m.fromObservable = Bc;
  function lr(Ri) {
    return (Fi, jt, ao) => {
      let _a = 0, No = !1;
      const ca = {
        beginUpdate() {
          _a++;
        },
        endUpdate() {
          _a--, _a === 0 && (Ri.reportChanges(), No && (No = !1, Fi.call(jt)));
        },
        handlePossibleChange() {
        },
        handleChange() {
          No = !0;
        }
      };
      Ri.addObserver(ca), Ri.reportChanges();
      const Bd = {
        dispose() {
          Ri.removeObserver(ca);
        }
      };
      return ao instanceof nI ? ao.add(Bd) : Array.isArray(ao) && ao.push(Bd), Bd;
    };
  }
  m.fromObservableLight = lr;
})(Yoe || (Yoe = {}));
class iR {
  constructor(v) {
    this.listenerCount = 0, this.invocationCount = 0, this.elapsedOverall = 0, this.durations = [], this.name = `${v}_${iR._idPool++}`, iR.all.add(this);
  }
  start(v) {
    this._stopWatch = new yj(), this.listenerCount = v;
  }
  stop() {
    if (this._stopWatch) {
      const v = this._stopWatch.elapsed();
      this.durations.push(v), this.elapsedOverall += v, this.invocationCount += 1, this._stopWatch = void 0;
    }
  }
}
iR.all = /* @__PURE__ */ new Set();
iR._idPool = 0;
let Slt = -1;
class xlt {
  constructor(v, C = Math.random().toString(18).slice(2, 5)) {
    this.threshold = v, this.name = C, this._warnCountdown = 0;
  }
  dispose() {
    var v;
    (v = this._stacks) === null || v === void 0 || v.clear();
  }
  check(v, C) {
    const B = this.threshold;
    if (B <= 0 || C < B)
      return;
    this._stacks || (this._stacks = /* @__PURE__ */ new Map());
    const ne = this._stacks.get(v.value) || 0;
    if (this._stacks.set(v.value, ne + 1), this._warnCountdown -= 1, this._warnCountdown <= 0) {
      this._warnCountdown = B * 0.5;
      let pe, Se = 0;
      for (const [Ge, ct] of this._stacks)
        (!pe || Se < ct) && (pe = Ge, Se = ct);
      console.warn(`[${this.name}] potential listener LEAK detected, having ${C} listeners already. MOST frequent listener (${Se}):`), console.warn(pe);
    }
    return () => {
      const pe = this._stacks.get(v.value) || 0;
      this._stacks.set(v.value, pe - 1);
    };
  }
}
class hse {
  static create() {
    var v;
    return new hse((v = new Error().stack) !== null && v !== void 0 ? v : "");
  }
  constructor(v) {
    this.value = v;
  }
  print() {
    console.warn(this.value.split(`
`).slice(2).join(`
`));
  }
}
class Voe {
  constructor(v) {
    this.value = v;
  }
}
const Alt = 2;
class $b {
  constructor(v) {
    var C, B, ne, pe, Se;
    this._size = 0, this._options = v, this._leakageMon = !((C = this._options) === null || C === void 0) && C.leakWarningThreshold ? new xlt((ne = (B = this._options) === null || B === void 0 ? void 0 : B.leakWarningThreshold) !== null && ne !== void 0 ? ne : Slt) : void 0, this._perfMon = !((pe = this._options) === null || pe === void 0) && pe._profName ? new iR(this._options._profName) : void 0, this._deliveryQueue = (Se = this._options) === null || Se === void 0 ? void 0 : Se.deliveryQueue;
  }
  dispose() {
    var v, C, B, ne;
    this._disposed || (this._disposed = !0, ((v = this._deliveryQueue) === null || v === void 0 ? void 0 : v.current) === this && this._deliveryQueue.reset(), this._listeners && (this._listeners = void 0, this._size = 0), (B = (C = this._options) === null || C === void 0 ? void 0 : C.onDidRemoveLastListener) === null || B === void 0 || B.call(C), (ne = this._leakageMon) === null || ne === void 0 || ne.dispose());
  }
  /**
   * For the public to allow to subscribe
   * to events from this Emitter
   */
  get event() {
    var v;
    return (v = this._event) !== null && v !== void 0 || (this._event = (C, B, ne) => {
      var pe, Se, Ge, ct, Le;
      if (this._leakageMon && this._size > this._leakageMon.threshold * 3)
        return console.warn(`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far`), D4.None;
      if (this._disposed)
        return D4.None;
      B && (C = C.bind(B));
      const ze = new Voe(C);
      let Xt;
      this._leakageMon && this._size >= Math.ceil(this._leakageMon.threshold * 0.2) && (ze.stack = hse.create(), Xt = this._leakageMon.check(ze.stack, this._size + 1)), this._listeners ? this._listeners instanceof Voe ? ((Le = this._deliveryQueue) !== null && Le !== void 0 || (this._deliveryQueue = new Clt()), this._listeners = [this._listeners, ze]) : this._listeners.push(ze) : ((Se = (pe = this._options) === null || pe === void 0 ? void 0 : pe.onWillAddFirstListener) === null || Se === void 0 || Se.call(pe, this), this._listeners = ze, (ct = (Ge = this._options) === null || Ge === void 0 ? void 0 : Ge.onDidAddFirstListener) === null || ct === void 0 || ct.call(Ge, this)), this._size++;
      const Jt = w4(() => {
        Xt == null || Xt(), this._removeListener(ze);
      });
      return ne instanceof nI ? ne.add(Jt) : Array.isArray(ne) && ne.push(Jt), Jt;
    }), this._event;
  }
  _removeListener(v) {
    var C, B, ne, pe;
    if ((B = (C = this._options) === null || C === void 0 ? void 0 : C.onWillRemoveListener) === null || B === void 0 || B.call(C, this), !this._listeners)
      return;
    if (this._size === 1) {
      this._listeners = void 0, (pe = (ne = this._options) === null || ne === void 0 ? void 0 : ne.onDidRemoveLastListener) === null || pe === void 0 || pe.call(ne, this), this._size = 0;
      return;
    }
    const Se = this._listeners, Ge = Se.indexOf(v);
    if (Ge === -1)
      throw console.log("disposed?", this._disposed), console.log("size?", this._size), console.log("arr?", JSON.stringify(this._listeners)), new Error("Attempted to dispose unknown listener");
    this._size--, Se[Ge] = void 0;
    const ct = this._deliveryQueue.current === this;
    if (this._size * Alt <= Se.length) {
      let Le = 0;
      for (let ze = 0; ze < Se.length; ze++)
        Se[ze] ? Se[Le++] = Se[ze] : ct && (this._deliveryQueue.end--, Le < this._deliveryQueue.i && this._deliveryQueue.i--);
      Se.length = Le;
    }
  }
  _deliver(v, C) {
    var B;
    if (!v)
      return;
    const ne = ((B = this._options) === null || B === void 0 ? void 0 : B.onListenerError) || XRe;
    if (!ne) {
      v.value(C);
      return;
    }
    try {
      v.value(C);
    } catch (pe) {
      ne(pe);
    }
  }
  /** Delivers items in the queue. Assumes the queue is ready to go. */
  _deliverQueue(v) {
    const C = v.current._listeners;
    for (; v.i < v.end; )
      this._deliver(C[v.i++], v.value);
    v.reset();
  }
  /**
   * To be kept private to fire an event to
   * subscribers
   */
  fire(v) {
    var C, B, ne, pe;
    if (!((C = this._deliveryQueue) === null || C === void 0) && C.current && (this._deliverQueue(this._deliveryQueue), (B = this._perfMon) === null || B === void 0 || B.stop()), (ne = this._perfMon) === null || ne === void 0 || ne.start(this._size), this._listeners)
      if (this._listeners instanceof Voe)
        this._deliver(this._listeners, v);
      else {
        const Se = this._deliveryQueue;
        Se.enqueue(this, v, this._listeners.length), this._deliverQueue(Se);
      }
    (pe = this._perfMon) === null || pe === void 0 || pe.stop();
  }
  hasListeners() {
    return this._size > 0;
  }
}
class Clt {
  constructor() {
    this.i = -1, this.end = 0;
  }
  enqueue(v, C, B) {
    this.i = 0, this.end = B, this.current = v, this.value = C;
  }
  reset() {
    this.i = this.end, this.current = void 0, this.value = void 0;
  }
}
function Llt(m) {
  return typeof m == "string";
}
function Ilt(m) {
  let v = [];
  for (; Object.prototype !== m; )
    v = v.concat(Object.getOwnPropertyNames(m)), m = Object.getPrototypeOf(m);
  return v;
}
function $oe(m) {
  const v = [];
  for (const C of Ilt(m))
    typeof m[C] == "function" && v.push(C);
  return v;
}
function klt(m, v) {
  const C = (ne) => function() {
    const pe = Array.prototype.slice.call(arguments, 0);
    return v(ne, pe);
  }, B = {};
  for (const ne of m)
    B[ne] = C(ne);
  return B;
}
let wlt = typeof document < "u" && document.location && document.location.hash.indexOf("pseudo=true") >= 0;
function Dlt(m, v) {
  let C;
  return v.length === 0 ? C = m : C = m.replace(/\{(\d+)\}/g, (B, ne) => {
    const pe = ne[0], Se = v[pe];
    let Ge = B;
    return typeof Se == "string" ? Ge = Se : (typeof Se == "number" || typeof Se == "boolean" || Se === void 0 || Se === null) && (Ge = String(Se)), Ge;
  }), wlt && (C = "［" + C.replace(/[aouei]/g, "$&$&") + "］"), C;
}
function sd(m, v, ...C) {
  return Dlt(v, C);
}
var joe;
const QD = "en";
let Qoe = !1, Zoe = !1, Hoe = !1, rj, Woe = QD, IDe = QD, Rlt, Yb;
const ZL = globalThis;
let Sm;
typeof ZL.vscode < "u" && typeof ZL.vscode.process < "u" ? Sm = ZL.vscode.process : typeof process < "u" && (Sm = process);
const Nlt = typeof ((joe = Sm == null ? void 0 : Sm.versions) === null || joe === void 0 ? void 0 : joe.electron) == "string", Olt = Nlt && (Sm == null ? void 0 : Sm.type) === "renderer";
if (typeof navigator == "object" && !Olt)
  Yb = navigator.userAgent, Qoe = Yb.indexOf("Windows") >= 0, Zoe = Yb.indexOf("Macintosh") >= 0, (Yb.indexOf("Macintosh") >= 0 || Yb.indexOf("iPad") >= 0 || Yb.indexOf("iPhone") >= 0) && navigator.maxTouchPoints && navigator.maxTouchPoints > 0, Hoe = Yb.indexOf("Linux") >= 0, (Yb == null ? void 0 : Yb.indexOf("Mobi")) >= 0, // This call _must_ be done in the file that calls `nls.getConfiguredDefaultLocale`
  // to ensure that the NLS AMD Loader plugin has been loaded and configured.
  // This is because the loader plugin decides what the default locale is based on
  // how it's able to resolve the strings.
  sd({ key: "ensureLoaderPluginIsLoaded", comment: ["{Locked}"] }, "_"), rj = QD, Woe = rj, IDe = navigator.language;
else if (typeof Sm == "object") {
  Qoe = Sm.platform === "win32", Zoe = Sm.platform === "darwin", Hoe = Sm.platform === "linux", Hoe && Sm.env.SNAP && Sm.env.SNAP_REVISION, Sm.env.CI || Sm.env.BUILD_ARTIFACTSTAGINGDIRECTORY, rj = QD, Woe = QD;
  const m = Sm.env.VSCODE_NLS_CONFIG;
  if (m)
    try {
      const v = JSON.parse(m), C = v.availableLanguages["*"];
      rj = v.locale, IDe = v.osLocale, Woe = C || QD, Rlt = v._translationsConfigFile;
    } catch {
    }
} else
  console.error("Unable to resolve platform.");
const R4 = Qoe, Plt = Zoe, JE = Yb, Mlt = typeof ZL.postMessage == "function" && !ZL.importScripts;
(() => {
  if (Mlt) {
    const m = [];
    ZL.addEventListener("message", (C) => {
      if (C.data && C.data.vscodeScheduleAsyncWork)
        for (let B = 0, ne = m.length; B < ne; B++) {
          const pe = m[B];
          if (pe.id === C.data.vscodeScheduleAsyncWork) {
            m.splice(B, 1), pe.callback();
            return;
          }
        }
    });
    let v = 0;
    return (C) => {
      const B = ++v;
      m.push({
        id: B,
        callback: C
      }), ZL.postMessage({ vscodeScheduleAsyncWork: B }, "*");
    };
  }
  return (m) => setTimeout(m);
})();
const Flt = !!(JE && JE.indexOf("Chrome") >= 0);
JE && JE.indexOf("Firefox") >= 0;
!Flt && JE && JE.indexOf("Safari") >= 0;
JE && JE.indexOf("Edg/") >= 0;
JE && JE.indexOf("Android") >= 0;
class Blt {
  constructor(v) {
    this.fn = v, this.lastCache = void 0, this.lastArgKey = void 0;
  }
  get(v) {
    const C = JSON.stringify(v);
    return this.lastArgKey !== C && (this.lastArgKey = C, this.lastCache = this.fn(v)), this.lastCache;
  }
}
class $Re {
  constructor(v) {
    this.executor = v, this._didRun = !1;
  }
  /**
   * Get the wrapped value.
   *
   * This will force evaluation of the lazy value if it has not been resolved yet. Lazy values are only
   * resolved once. `getValue` will re-throw exceptions that are hit while resolving the value
   */
  get value() {
    if (!this._didRun)
      try {
        this._value = this.executor();
      } catch (v) {
        this._error = v;
      } finally {
        this._didRun = !0;
      }
    if (this._error)
      throw this._error;
    return this._value;
  }
  /**
   * Get the wrapped value without forcing evaluation.
   */
  get rawValue() {
    return this._value;
  }
}
var aR;
function Glt(m) {
  return m.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g, "\\$&");
}
function Ult(m) {
  return m.split(/\r\n|\r|\n/);
}
function Vlt(m) {
  for (let v = 0, C = m.length; v < C; v++) {
    const B = m.charCodeAt(v);
    if (B !== 32 && B !== 9)
      return v;
  }
  return -1;
}
function jlt(m, v = m.length - 1) {
  for (let C = v; C >= 0; C--) {
    const B = m.charCodeAt(C);
    if (B !== 32 && B !== 9)
      return C;
  }
  return -1;
}
function QRe(m) {
  return m >= 65 && m <= 90;
}
function ese(m) {
  return 55296 <= m && m <= 56319;
}
function Hlt(m) {
  return 56320 <= m && m <= 57343;
}
function Wlt(m, v) {
  return (m - 55296 << 10) + (v - 56320) + 65536;
}
function zlt(m, v, C) {
  const B = m.charCodeAt(C);
  if (ese(B) && C + 1 < v) {
    const ne = m.charCodeAt(C + 1);
    if (Hlt(ne))
      return Wlt(B, ne);
  }
  return B;
}
const qlt = /^[\t\n\r\x20-\x7E]*$/;
function Jlt(m) {
  return qlt.test(m);
}
class rI {
  static getInstance(v) {
    return aR.cache.get(Array.from(v));
  }
  static getLocales() {
    return aR._locales.value;
  }
  constructor(v) {
    this.confusableDictionary = v;
  }
  isAmbiguous(v) {
    return this.confusableDictionary.has(v);
  }
  /**
   * Returns the non basic ASCII code point that the given code point can be confused,
   * or undefined if such code point does note exist.
   */
  getPrimaryConfusable(v) {
    return this.confusableDictionary.get(v);
  }
  getConfusableCodePoints() {
    return new Set(this.confusableDictionary.keys());
  }
}
aR = rI;
rI.ambiguousCharacterData = new $Re(() => JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}'));
rI.cache = new Blt((m) => {
  function v(Le) {
    const ze = /* @__PURE__ */ new Map();
    for (let Xt = 0; Xt < Le.length; Xt += 2)
      ze.set(Le[Xt], Le[Xt + 1]);
    return ze;
  }
  function C(Le, ze) {
    const Xt = new Map(Le);
    for (const [Jt, dn] of ze)
      Xt.set(Jt, dn);
    return Xt;
  }
  function B(Le, ze) {
    if (!Le)
      return ze;
    const Xt = /* @__PURE__ */ new Map();
    for (const [Jt, dn] of Le)
      ze.has(Jt) && Xt.set(Jt, dn);
    return Xt;
  }
  const ne = aR.ambiguousCharacterData.value;
  let pe = m.filter((Le) => !Le.startsWith("_") && Le in ne);
  pe.length === 0 && (pe = ["_default"]);
  let Se;
  for (const Le of pe) {
    const ze = v(ne[Le]);
    Se = B(Se, ze);
  }
  const Ge = v(ne._common), ct = C(Ge, Se);
  return new aR(ct);
});
rI._locales = new $Re(() => Object.keys(aR.ambiguousCharacterData.value).filter((m) => !m.startsWith("_")));
class lA {
  static getRawData() {
    return JSON.parse("[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]");
  }
  static getData() {
    return this._data || (this._data = new Set(lA.getRawData())), this._data;
  }
  static isInvisibleCharacter(v) {
    return lA.getData().has(v);
  }
  static get codePoints() {
    return lA.getData();
  }
}
lA._data = void 0;
const Klt = "$initialize";
class Xlt {
  constructor(v, C, B, ne) {
    this.vsWorker = v, this.req = C, this.method = B, this.args = ne, this.type = 0;
  }
}
class kDe {
  constructor(v, C, B, ne) {
    this.vsWorker = v, this.seq = C, this.res = B, this.err = ne, this.type = 1;
  }
}
class Ylt {
  constructor(v, C, B, ne) {
    this.vsWorker = v, this.req = C, this.eventName = B, this.arg = ne, this.type = 2;
  }
}
class $lt {
  constructor(v, C, B) {
    this.vsWorker = v, this.req = C, this.event = B, this.type = 3;
  }
}
class Qlt {
  constructor(v, C) {
    this.vsWorker = v, this.req = C, this.type = 4;
  }
}
class Zlt {
  constructor(v) {
    this._workerId = -1, this._handler = v, this._lastSentReq = 0, this._pendingReplies = /* @__PURE__ */ Object.create(null), this._pendingEmitters = /* @__PURE__ */ new Map(), this._pendingEvents = /* @__PURE__ */ new Map();
  }
  setWorkerId(v) {
    this._workerId = v;
  }
  sendMessage(v, C) {
    const B = String(++this._lastSentReq);
    return new Promise((ne, pe) => {
      this._pendingReplies[B] = {
        resolve: ne,
        reject: pe
      }, this._send(new Xlt(this._workerId, B, v, C));
    });
  }
  listen(v, C) {
    let B = null;
    const ne = new $b({
      onWillAddFirstListener: () => {
        B = String(++this._lastSentReq), this._pendingEmitters.set(B, ne), this._send(new Ylt(this._workerId, B, v, C));
      },
      onDidRemoveLastListener: () => {
        this._pendingEmitters.delete(B), this._send(new Qlt(this._workerId, B)), B = null;
      }
    });
    return ne.event;
  }
  handleMessage(v) {
    !v || !v.vsWorker || this._workerId !== -1 && v.vsWorker !== this._workerId || this._handleMessage(v);
  }
  _handleMessage(v) {
    switch (v.type) {
      case 1:
        return this._handleReplyMessage(v);
      case 0:
        return this._handleRequestMessage(v);
      case 2:
        return this._handleSubscribeEventMessage(v);
      case 3:
        return this._handleEventMessage(v);
      case 4:
        return this._handleUnsubscribeEventMessage(v);
    }
  }
  _handleReplyMessage(v) {
    if (!this._pendingReplies[v.seq]) {
      console.warn("Got reply to unknown seq");
      return;
    }
    const C = this._pendingReplies[v.seq];
    if (delete this._pendingReplies[v.seq], v.err) {
      let B = v.err;
      v.err.$isError && (B = new Error(), B.name = v.err.name, B.message = v.err.message, B.stack = v.err.stack), C.reject(B);
      return;
    }
    C.resolve(v.res);
  }
  _handleRequestMessage(v) {
    const C = v.req;
    this._handler.handleMessage(v.method, v.args).then((ne) => {
      this._send(new kDe(this._workerId, C, ne, void 0));
    }, (ne) => {
      ne.detail instanceof Error && (ne.detail = LDe(ne.detail)), this._send(new kDe(this._workerId, C, void 0, LDe(ne)));
    });
  }
  _handleSubscribeEventMessage(v) {
    const C = v.req, B = this._handler.handleEvent(v.eventName, v.arg)((ne) => {
      this._send(new $lt(this._workerId, C, ne));
    });
    this._pendingEvents.set(C, B);
  }
  _handleEventMessage(v) {
    if (!this._pendingEmitters.has(v.req)) {
      console.warn("Got event for unknown req");
      return;
    }
    this._pendingEmitters.get(v.req).fire(v.event);
  }
  _handleUnsubscribeEventMessage(v) {
    if (!this._pendingEvents.has(v.req)) {
      console.warn("Got unsubscribe for unknown req");
      return;
    }
    this._pendingEvents.get(v.req).dispose(), this._pendingEvents.delete(v.req);
  }
  _send(v) {
    const C = [];
    if (v.type === 0)
      for (let B = 0; B < v.args.length; B++)
        v.args[B] instanceof ArrayBuffer && C.push(v.args[B]);
    else
      v.type === 1 && v.res instanceof ArrayBuffer && C.push(v.res);
    this._handler.sendMessage(v, C);
  }
}
function ZRe(m) {
  return m[0] === "o" && m[1] === "n" && QRe(m.charCodeAt(2));
}
function eNe(m) {
  return /^onDynamic/.test(m) && QRe(m.charCodeAt(9));
}
function ect(m, v, C) {
  const B = (Se) => function() {
    const Ge = Array.prototype.slice.call(arguments, 0);
    return v(Se, Ge);
  }, ne = (Se) => function(Ge) {
    return C(Se, Ge);
  }, pe = {};
  for (const Se of m) {
    if (eNe(Se)) {
      pe[Se] = ne(Se);
      continue;
    }
    if (ZRe(Se)) {
      pe[Se] = C(Se, void 0);
      continue;
    }
    pe[Se] = B(Se);
  }
  return pe;
}
class tct {
  constructor(v, C) {
    this._requestHandlerFactory = C, this._requestHandler = null, this._protocol = new Zlt({
      sendMessage: (B, ne) => {
        v(B, ne);
      },
      handleMessage: (B, ne) => this._handleMessage(B, ne),
      handleEvent: (B, ne) => this._handleEvent(B, ne)
    });
  }
  onmessage(v) {
    this._protocol.handleMessage(v);
  }
  _handleMessage(v, C) {
    if (v === Klt)
      return this.initialize(C[0], C[1], C[2], C[3]);
    if (!this._requestHandler || typeof this._requestHandler[v] != "function")
      return Promise.reject(new Error("Missing requestHandler or method: " + v));
    try {
      return Promise.resolve(this._requestHandler[v].apply(this._requestHandler, C));
    } catch (B) {
      return Promise.reject(B);
    }
  }
  _handleEvent(v, C) {
    if (!this._requestHandler)
      throw new Error("Missing requestHandler");
    if (eNe(v)) {
      const B = this._requestHandler[v].call(this._requestHandler, C);
      if (typeof B != "function")
        throw new Error(`Missing dynamic event ${v} on request handler.`);
      return B;
    }
    if (ZRe(v)) {
      const B = this._requestHandler[v];
      if (typeof B != "function")
        throw new Error(`Missing event ${v} on request handler.`);
      return B;
    }
    throw new Error(`Malformed event name ${v}`);
  }
  initialize(v, C, B, ne) {
    this._protocol.setWorkerId(v);
    const Ge = ect(ne, (ct, Le) => this._protocol.sendMessage(ct, Le), (ct, Le) => this._protocol.listen(ct, Le));
    return this._requestHandlerFactory ? (this._requestHandler = this._requestHandlerFactory(Ge), Promise.resolve($oe(this._requestHandler))) : (C && (typeof C.baseUrl < "u" && delete C.baseUrl, typeof C.paths < "u" && typeof C.paths.vs < "u" && delete C.paths.vs, typeof C.trustedTypesPolicy !== void 0 && delete C.trustedTypesPolicy, C.catchError = !0, globalThis.require.config(C)), new Promise((ct, Le) => {
      const ze = globalThis.require;
      ze([B], (Xt) => {
        if (this._requestHandler = Xt.create(Ge), !this._requestHandler) {
          Le(new Error("No RequestHandler!"));
          return;
        }
        ct($oe(this._requestHandler));
      }, Le);
    }));
  }
}
class aA {
  /**
   * Constructs a new DiffChange with the given sequence information
   * and content.
   */
  constructor(v, C, B, ne) {
    this.originalStart = v, this.originalLength = C, this.modifiedStart = B, this.modifiedLength = ne;
  }
  /**
   * The end point (exclusive) of the change in the original sequence.
   */
  getOriginalEnd() {
    return this.originalStart + this.originalLength;
  }
  /**
   * The end point (exclusive) of the change in the modified sequence.
   */
  getModifiedEnd() {
    return this.modifiedStart + this.modifiedLength;
  }
}
function wDe(m, v) {
  return (v << 5) - v + m | 0;
}
function nct(m, v) {
  v = wDe(149417, v);
  for (let C = 0, B = m.length; C < B; C++)
    v = wDe(m.charCodeAt(C), v);
  return v;
}
class DDe {
  constructor(v) {
    this.source = v;
  }
  getElements() {
    const v = this.source, C = new Int32Array(v.length);
    for (let B = 0, ne = v.length; B < ne; B++)
      C[B] = v.charCodeAt(B);
    return C;
  }
}
function rct(m, v, C) {
  return new oA(new DDe(m), new DDe(v)).ComputeDiff(C).changes;
}
class KD {
  static Assert(v, C) {
    if (!v)
      throw new Error(C);
  }
}
class XD {
  /**
   * Copies a range of elements from an Array starting at the specified source index and pastes
   * them to another Array starting at the specified destination index. The length and the indexes
   * are specified as 64-bit integers.
   * sourceArray:
   *		The Array that contains the data to copy.
   * sourceIndex:
   *		A 64-bit integer that represents the index in the sourceArray at which copying begins.
   * destinationArray:
   *		The Array that receives the data.
   * destinationIndex:
   *		A 64-bit integer that represents the index in the destinationArray at which storing begins.
   * length:
   *		A 64-bit integer that represents the number of elements to copy.
   */
  static Copy(v, C, B, ne, pe) {
    for (let Se = 0; Se < pe; Se++)
      B[ne + Se] = v[C + Se];
  }
  static Copy2(v, C, B, ne, pe) {
    for (let Se = 0; Se < pe; Se++)
      B[ne + Se] = v[C + Se];
  }
}
class RDe {
  /**
   * Constructs a new DiffChangeHelper for the given DiffSequences.
   */
  constructor() {
    this.m_changes = [], this.m_originalStart = 1073741824, this.m_modifiedStart = 1073741824, this.m_originalCount = 0, this.m_modifiedCount = 0;
  }
  /**
   * Marks the beginning of the next change in the set of differences.
   */
  MarkNextChange() {
    (this.m_originalCount > 0 || this.m_modifiedCount > 0) && this.m_changes.push(new aA(this.m_originalStart, this.m_originalCount, this.m_modifiedStart, this.m_modifiedCount)), this.m_originalCount = 0, this.m_modifiedCount = 0, this.m_originalStart = 1073741824, this.m_modifiedStart = 1073741824;
  }
  /**
   * Adds the original element at the given position to the elements
   * affected by the current change. The modified index gives context
   * to the change position with respect to the original sequence.
   * @param originalIndex The index of the original element to add.
   * @param modifiedIndex The index of the modified element that provides corresponding position in the modified sequence.
   */
  AddOriginalElement(v, C) {
    this.m_originalStart = Math.min(this.m_originalStart, v), this.m_modifiedStart = Math.min(this.m_modifiedStart, C), this.m_originalCount++;
  }
  /**
   * Adds the modified element at the given position to the elements
   * affected by the current change. The original index gives context
   * to the change position with respect to the modified sequence.
   * @param originalIndex The index of the original element that provides corresponding position in the original sequence.
   * @param modifiedIndex The index of the modified element to add.
   */
  AddModifiedElement(v, C) {
    this.m_originalStart = Math.min(this.m_originalStart, v), this.m_modifiedStart = Math.min(this.m_modifiedStart, C), this.m_modifiedCount++;
  }
  /**
   * Retrieves all of the changes marked by the class.
   */
  getChanges() {
    return (this.m_originalCount > 0 || this.m_modifiedCount > 0) && this.MarkNextChange(), this.m_changes;
  }
  /**
   * Retrieves all of the changes marked by the class in the reverse order
   */
  getReverseChanges() {
    return (this.m_originalCount > 0 || this.m_modifiedCount > 0) && this.MarkNextChange(), this.m_changes.reverse(), this.m_changes;
  }
}
class oA {
  /**
   * Constructs the DiffFinder
   */
  constructor(v, C, B = null) {
    this.ContinueProcessingPredicate = B, this._originalSequence = v, this._modifiedSequence = C;
    const [ne, pe, Se] = oA._getElements(v), [Ge, ct, Le] = oA._getElements(C);
    this._hasStrings = Se && Le, this._originalStringElements = ne, this._originalElementsOrHash = pe, this._modifiedStringElements = Ge, this._modifiedElementsOrHash = ct, this.m_forwardHistory = [], this.m_reverseHistory = [];
  }
  static _isStringArray(v) {
    return v.length > 0 && typeof v[0] == "string";
  }
  static _getElements(v) {
    const C = v.getElements();
    if (oA._isStringArray(C)) {
      const B = new Int32Array(C.length);
      for (let ne = 0, pe = C.length; ne < pe; ne++)
        B[ne] = nct(C[ne], 0);
      return [C, B, !0];
    }
    return C instanceof Int32Array ? [[], C, !1] : [[], new Int32Array(C), !1];
  }
  ElementsAreEqual(v, C) {
    return this._originalElementsOrHash[v] !== this._modifiedElementsOrHash[C] ? !1 : this._hasStrings ? this._originalStringElements[v] === this._modifiedStringElements[C] : !0;
  }
  ElementsAreStrictEqual(v, C) {
    if (!this.ElementsAreEqual(v, C))
      return !1;
    const B = oA._getStrictElement(this._originalSequence, v), ne = oA._getStrictElement(this._modifiedSequence, C);
    return B === ne;
  }
  static _getStrictElement(v, C) {
    return typeof v.getStrictElement == "function" ? v.getStrictElement(C) : null;
  }
  OriginalElementsAreEqual(v, C) {
    return this._originalElementsOrHash[v] !== this._originalElementsOrHash[C] ? !1 : this._hasStrings ? this._originalStringElements[v] === this._originalStringElements[C] : !0;
  }
  ModifiedElementsAreEqual(v, C) {
    return this._modifiedElementsOrHash[v] !== this._modifiedElementsOrHash[C] ? !1 : this._hasStrings ? this._modifiedStringElements[v] === this._modifiedStringElements[C] : !0;
  }
  ComputeDiff(v) {
    return this._ComputeDiff(0, this._originalElementsOrHash.length - 1, 0, this._modifiedElementsOrHash.length - 1, v);
  }
  /**
   * Computes the differences between the original and modified input
   * sequences on the bounded range.
   * @returns An array of the differences between the two input sequences.
   */
  _ComputeDiff(v, C, B, ne, pe) {
    const Se = [!1];
    let Ge = this.ComputeDiffRecursive(v, C, B, ne, Se);
    return pe && (Ge = this.PrettifyChanges(Ge)), {
      quitEarly: Se[0],
      changes: Ge
    };
  }
  /**
   * Private helper method which computes the differences on the bounded range
   * recursively.
   * @returns An array of the differences between the two input sequences.
   */
  ComputeDiffRecursive(v, C, B, ne, pe) {
    for (pe[0] = !1; v <= C && B <= ne && this.ElementsAreEqual(v, B); )
      v++, B++;
    for (; C >= v && ne >= B && this.ElementsAreEqual(C, ne); )
      C--, ne--;
    if (v > C || B > ne) {
      let Xt;
      return B <= ne ? (KD.Assert(v === C + 1, "originalStart should only be one more than originalEnd"), Xt = [
        new aA(v, 0, B, ne - B + 1)
      ]) : v <= C ? (KD.Assert(B === ne + 1, "modifiedStart should only be one more than modifiedEnd"), Xt = [
        new aA(v, C - v + 1, B, 0)
      ]) : (KD.Assert(v === C + 1, "originalStart should only be one more than originalEnd"), KD.Assert(B === ne + 1, "modifiedStart should only be one more than modifiedEnd"), Xt = []), Xt;
    }
    const Se = [0], Ge = [0], ct = this.ComputeRecursionPoint(v, C, B, ne, Se, Ge, pe), Le = Se[0], ze = Ge[0];
    if (ct !== null)
      return ct;
    if (!pe[0]) {
      const Xt = this.ComputeDiffRecursive(v, Le, B, ze, pe);
      let Jt = [];
      return pe[0] ? Jt = [
        new aA(Le + 1, C - (Le + 1) + 1, ze + 1, ne - (ze + 1) + 1)
      ] : Jt = this.ComputeDiffRecursive(Le + 1, C, ze + 1, ne, pe), this.ConcatenateChanges(Xt, Jt);
    }
    return [
      new aA(v, C - v + 1, B, ne - B + 1)
    ];
  }
  WALKTRACE(v, C, B, ne, pe, Se, Ge, ct, Le, ze, Xt, Jt, dn, kr, ui, la, Yn, nn) {
    let Li = null, vi = null, ya = new RDe(), Go = C, jr = B, es = dn[0] - la[0] - ne, kc = -1073741824, Bc = this.m_forwardHistory.length - 1;
    do {
      const lr = es + v;
      lr === Go || lr < jr && Le[lr - 1] < Le[lr + 1] ? (Xt = Le[lr + 1], kr = Xt - es - ne, Xt < kc && ya.MarkNextChange(), kc = Xt, ya.AddModifiedElement(Xt + 1, kr), es = lr + 1 - v) : (Xt = Le[lr - 1] + 1, kr = Xt - es - ne, Xt < kc && ya.MarkNextChange(), kc = Xt - 1, ya.AddOriginalElement(Xt, kr + 1), es = lr - 1 - v), Bc >= 0 && (Le = this.m_forwardHistory[Bc], v = Le[0], Go = 1, jr = Le.length - 1);
    } while (--Bc >= -1);
    if (Li = ya.getReverseChanges(), nn[0]) {
      let lr = dn[0] + 1, Ri = la[0] + 1;
      if (Li !== null && Li.length > 0) {
        const Fi = Li[Li.length - 1];
        lr = Math.max(lr, Fi.getOriginalEnd()), Ri = Math.max(Ri, Fi.getModifiedEnd());
      }
      vi = [
        new aA(lr, Jt - lr + 1, Ri, ui - Ri + 1)
      ];
    } else {
      ya = new RDe(), Go = Se, jr = Ge, es = dn[0] - la[0] - ct, kc = 1073741824, Bc = Yn ? this.m_reverseHistory.length - 1 : this.m_reverseHistory.length - 2;
      do {
        const lr = es + pe;
        lr === Go || lr < jr && ze[lr - 1] >= ze[lr + 1] ? (Xt = ze[lr + 1] - 1, kr = Xt - es - ct, Xt > kc && ya.MarkNextChange(), kc = Xt + 1, ya.AddOriginalElement(Xt + 1, kr + 1), es = lr + 1 - pe) : (Xt = ze[lr - 1], kr = Xt - es - ct, Xt > kc && ya.MarkNextChange(), kc = Xt, ya.AddModifiedElement(Xt + 1, kr + 1), es = lr - 1 - pe), Bc >= 0 && (ze = this.m_reverseHistory[Bc], pe = ze[0], Go = 1, jr = ze.length - 1);
      } while (--Bc >= -1);
      vi = ya.getChanges();
    }
    return this.ConcatenateChanges(Li, vi);
  }
  /**
   * Given the range to compute the diff on, this method finds the point:
   * (midOriginal, midModified)
   * that exists in the middle of the LCS of the two sequences and
   * is the point at which the LCS problem may be broken down recursively.
   * This method will try to keep the LCS trace in memory. If the LCS recursion
   * point is calculated and the full trace is available in memory, then this method
   * will return the change list.
   * @param originalStart The start bound of the original sequence range
   * @param originalEnd The end bound of the original sequence range
   * @param modifiedStart The start bound of the modified sequence range
   * @param modifiedEnd The end bound of the modified sequence range
   * @param midOriginal The middle point of the original sequence range
   * @param midModified The middle point of the modified sequence range
   * @returns The diff changes, if available, otherwise null
   */
  ComputeRecursionPoint(v, C, B, ne, pe, Se, Ge) {
    let ct = 0, Le = 0, ze = 0, Xt = 0, Jt = 0, dn = 0;
    v--, B--, pe[0] = 0, Se[0] = 0, this.m_forwardHistory = [], this.m_reverseHistory = [];
    const kr = C - v + (ne - B), ui = kr + 1, la = new Int32Array(ui), Yn = new Int32Array(ui), nn = ne - B, Li = C - v, vi = v - B, ya = C - ne, jr = (Li - nn) % 2 === 0;
    la[nn] = v, Yn[Li] = C, Ge[0] = !1;
    for (let es = 1; es <= kr / 2 + 1; es++) {
      let kc = 0, Bc = 0;
      ze = this.ClipDiagonalBound(nn - es, es, nn, ui), Xt = this.ClipDiagonalBound(nn + es, es, nn, ui);
      for (let Ri = ze; Ri <= Xt; Ri += 2) {
        Ri === ze || Ri < Xt && la[Ri - 1] < la[Ri + 1] ? ct = la[Ri + 1] : ct = la[Ri - 1] + 1, Le = ct - (Ri - nn) - vi;
        const Fi = ct;
        for (; ct < C && Le < ne && this.ElementsAreEqual(ct + 1, Le + 1); )
          ct++, Le++;
        if (la[Ri] = ct, ct + Le > kc + Bc && (kc = ct, Bc = Le), !jr && Math.abs(Ri - Li) <= es - 1 && ct >= Yn[Ri])
          return pe[0] = ct, Se[0] = Le, Fi <= Yn[Ri] && 1447 > 0 && es <= 1448 ? this.WALKTRACE(nn, ze, Xt, vi, Li, Jt, dn, ya, la, Yn, ct, C, pe, Le, ne, Se, jr, Ge) : null;
      }
      const lr = (kc - v + (Bc - B) - es) / 2;
      if (this.ContinueProcessingPredicate !== null && !this.ContinueProcessingPredicate(kc, lr))
        return Ge[0] = !0, pe[0] = kc, Se[0] = Bc, lr > 0 && 1447 > 0 && es <= 1448 ? this.WALKTRACE(nn, ze, Xt, vi, Li, Jt, dn, ya, la, Yn, ct, C, pe, Le, ne, Se, jr, Ge) : (v++, B++, [
          new aA(v, C - v + 1, B, ne - B + 1)
        ]);
      Jt = this.ClipDiagonalBound(Li - es, es, Li, ui), dn = this.ClipDiagonalBound(Li + es, es, Li, ui);
      for (let Ri = Jt; Ri <= dn; Ri += 2) {
        Ri === Jt || Ri < dn && Yn[Ri - 1] >= Yn[Ri + 1] ? ct = Yn[Ri + 1] - 1 : ct = Yn[Ri - 1], Le = ct - (Ri - Li) - ya;
        const Fi = ct;
        for (; ct > v && Le > B && this.ElementsAreEqual(ct, Le); )
          ct--, Le--;
        if (Yn[Ri] = ct, jr && Math.abs(Ri - nn) <= es && ct <= la[Ri])
          return pe[0] = ct, Se[0] = Le, Fi >= la[Ri] && 1447 > 0 && es <= 1448 ? this.WALKTRACE(nn, ze, Xt, vi, Li, Jt, dn, ya, la, Yn, ct, C, pe, Le, ne, Se, jr, Ge) : null;
      }
      if (es <= 1447) {
        let Ri = new Int32Array(Xt - ze + 2);
        Ri[0] = nn - ze + 1, XD.Copy2(la, ze, Ri, 1, Xt - ze + 1), this.m_forwardHistory.push(Ri), Ri = new Int32Array(dn - Jt + 2), Ri[0] = Li - Jt + 1, XD.Copy2(Yn, Jt, Ri, 1, dn - Jt + 1), this.m_reverseHistory.push(Ri);
      }
    }
    return this.WALKTRACE(nn, ze, Xt, vi, Li, Jt, dn, ya, la, Yn, ct, C, pe, Le, ne, Se, jr, Ge);
  }
  /**
   * Shifts the given changes to provide a more intuitive diff.
   * While the first element in a diff matches the first element after the diff,
   * we shift the diff down.
   *
   * @param changes The list of changes to shift
   * @returns The shifted changes
   */
  PrettifyChanges(v) {
    for (let C = 0; C < v.length; C++) {
      const B = v[C], ne = C < v.length - 1 ? v[C + 1].originalStart : this._originalElementsOrHash.length, pe = C < v.length - 1 ? v[C + 1].modifiedStart : this._modifiedElementsOrHash.length, Se = B.originalLength > 0, Ge = B.modifiedLength > 0;
      for (; B.originalStart + B.originalLength < ne && B.modifiedStart + B.modifiedLength < pe && (!Se || this.OriginalElementsAreEqual(B.originalStart, B.originalStart + B.originalLength)) && (!Ge || this.ModifiedElementsAreEqual(B.modifiedStart, B.modifiedStart + B.modifiedLength)); ) {
        const Le = this.ElementsAreStrictEqual(B.originalStart, B.modifiedStart);
        if (this.ElementsAreStrictEqual(B.originalStart + B.originalLength, B.modifiedStart + B.modifiedLength) && !Le)
          break;
        B.originalStart++, B.modifiedStart++;
      }
      const ct = [null];
      if (C < v.length - 1 && this.ChangesOverlap(v[C], v[C + 1], ct)) {
        v[C] = ct[0], v.splice(C + 1, 1), C--;
        continue;
      }
    }
    for (let C = v.length - 1; C >= 0; C--) {
      const B = v[C];
      let ne = 0, pe = 0;
      if (C > 0) {
        const Xt = v[C - 1];
        ne = Xt.originalStart + Xt.originalLength, pe = Xt.modifiedStart + Xt.modifiedLength;
      }
      const Se = B.originalLength > 0, Ge = B.modifiedLength > 0;
      let ct = 0, Le = this._boundaryScore(B.originalStart, B.originalLength, B.modifiedStart, B.modifiedLength);
      for (let Xt = 1; ; Xt++) {
        const Jt = B.originalStart - Xt, dn = B.modifiedStart - Xt;
        if (Jt < ne || dn < pe || Se && !this.OriginalElementsAreEqual(Jt, Jt + B.originalLength) || Ge && !this.ModifiedElementsAreEqual(dn, dn + B.modifiedLength))
          break;
        const ui = (Jt === ne && dn === pe ? 5 : 0) + this._boundaryScore(Jt, B.originalLength, dn, B.modifiedLength);
        ui > Le && (Le = ui, ct = Xt);
      }
      B.originalStart -= ct, B.modifiedStart -= ct;
      const ze = [null];
      if (C > 0 && this.ChangesOverlap(v[C - 1], v[C], ze)) {
        v[C - 1] = ze[0], v.splice(C, 1), C++;
        continue;
      }
    }
    if (this._hasStrings)
      for (let C = 1, B = v.length; C < B; C++) {
        const ne = v[C - 1], pe = v[C], Se = pe.originalStart - ne.originalStart - ne.originalLength, Ge = ne.originalStart, ct = pe.originalStart + pe.originalLength, Le = ct - Ge, ze = ne.modifiedStart, Xt = pe.modifiedStart + pe.modifiedLength, Jt = Xt - ze;
        if (Se < 5 && Le < 20 && Jt < 20) {
          const dn = this._findBetterContiguousSequence(Ge, Le, ze, Jt, Se);
          if (dn) {
            const [kr, ui] = dn;
            (kr !== ne.originalStart + ne.originalLength || ui !== ne.modifiedStart + ne.modifiedLength) && (ne.originalLength = kr - ne.originalStart, ne.modifiedLength = ui - ne.modifiedStart, pe.originalStart = kr + Se, pe.modifiedStart = ui + Se, pe.originalLength = ct - pe.originalStart, pe.modifiedLength = Xt - pe.modifiedStart);
          }
        }
      }
    return v;
  }
  _findBetterContiguousSequence(v, C, B, ne, pe) {
    if (C < pe || ne < pe)
      return null;
    const Se = v + C - pe + 1, Ge = B + ne - pe + 1;
    let ct = 0, Le = 0, ze = 0;
    for (let Xt = v; Xt < Se; Xt++)
      for (let Jt = B; Jt < Ge; Jt++) {
        const dn = this._contiguousSequenceScore(Xt, Jt, pe);
        dn > 0 && dn > ct && (ct = dn, Le = Xt, ze = Jt);
      }
    return ct > 0 ? [Le, ze] : null;
  }
  _contiguousSequenceScore(v, C, B) {
    let ne = 0;
    for (let pe = 0; pe < B; pe++) {
      if (!this.ElementsAreEqual(v + pe, C + pe))
        return 0;
      ne += this._originalStringElements[v + pe].length;
    }
    return ne;
  }
  _OriginalIsBoundary(v) {
    return v <= 0 || v >= this._originalElementsOrHash.length - 1 ? !0 : this._hasStrings && /^\s*$/.test(this._originalStringElements[v]);
  }
  _OriginalRegionIsBoundary(v, C) {
    if (this._OriginalIsBoundary(v) || this._OriginalIsBoundary(v - 1))
      return !0;
    if (C > 0) {
      const B = v + C;
      if (this._OriginalIsBoundary(B - 1) || this._OriginalIsBoundary(B))
        return !0;
    }
    return !1;
  }
  _ModifiedIsBoundary(v) {
    return v <= 0 || v >= this._modifiedElementsOrHash.length - 1 ? !0 : this._hasStrings && /^\s*$/.test(this._modifiedStringElements[v]);
  }
  _ModifiedRegionIsBoundary(v, C) {
    if (this._ModifiedIsBoundary(v) || this._ModifiedIsBoundary(v - 1))
      return !0;
    if (C > 0) {
      const B = v + C;
      if (this._ModifiedIsBoundary(B - 1) || this._ModifiedIsBoundary(B))
        return !0;
    }
    return !1;
  }
  _boundaryScore(v, C, B, ne) {
    const pe = this._OriginalRegionIsBoundary(v, C) ? 1 : 0, Se = this._ModifiedRegionIsBoundary(B, ne) ? 1 : 0;
    return pe + Se;
  }
  /**
   * Concatenates the two input DiffChange lists and returns the resulting
   * list.
   * @param The left changes
   * @param The right changes
   * @returns The concatenated list
   */
  ConcatenateChanges(v, C) {
    const B = [];
    if (v.length === 0 || C.length === 0)
      return C.length > 0 ? C : v;
    if (this.ChangesOverlap(v[v.length - 1], C[0], B)) {
      const ne = new Array(v.length + C.length - 1);
      return XD.Copy(v, 0, ne, 0, v.length - 1), ne[v.length - 1] = B[0], XD.Copy(C, 1, ne, v.length, C.length - 1), ne;
    } else {
      const ne = new Array(v.length + C.length);
      return XD.Copy(v, 0, ne, 0, v.length), XD.Copy(C, 0, ne, v.length, C.length), ne;
    }
  }
  /**
   * Returns true if the two changes overlap and can be merged into a single
   * change
   * @param left The left change
   * @param right The right change
   * @param mergedChange The merged change if the two overlap, null otherwise
   * @returns True if the two changes overlap
   */
  ChangesOverlap(v, C, B) {
    if (KD.Assert(v.originalStart <= C.originalStart, "Left change is not less than or equal to right change"), KD.Assert(v.modifiedStart <= C.modifiedStart, "Left change is not less than or equal to right change"), v.originalStart + v.originalLength >= C.originalStart || v.modifiedStart + v.modifiedLength >= C.modifiedStart) {
      const ne = v.originalStart;
      let pe = v.originalLength;
      const Se = v.modifiedStart;
      let Ge = v.modifiedLength;
      return v.originalStart + v.originalLength >= C.originalStart && (pe = C.originalStart + C.originalLength - v.originalStart), v.modifiedStart + v.modifiedLength >= C.modifiedStart && (Ge = C.modifiedStart + C.modifiedLength - v.modifiedStart), B[0] = new aA(ne, pe, Se, Ge), !0;
    } else
      return B[0] = null, !1;
  }
  /**
   * Helper method used to clip a diagonal index to the range of valid
   * diagonals. This also decides whether or not the diagonal index,
   * if it exceeds the boundary, should be clipped to the boundary or clipped
   * one inside the boundary depending on the Even/Odd status of the boundary
   * and numDifferences.
   * @param diagonal The index of the diagonal to clip.
   * @param numDifferences The current number of differences being iterated upon.
   * @param diagonalBaseIndex The base reference diagonal.
   * @param numDiagonals The total number of diagonals.
   * @returns The clipped diagonal index.
   */
  ClipDiagonalBound(v, C, B, ne) {
    if (v >= 0 && v < ne)
      return v;
    const pe = B, Se = ne - B - 1, Ge = C % 2 === 0;
    if (v < 0) {
      const ct = pe % 2 === 0;
      return Ge === ct ? 0 : 1;
    } else {
      const ct = Se % 2 === 0;
      return Ge === ct ? ne - 1 : ne - 2;
    }
  }
}
let tR;
const zoe = globalThis.vscode;
if (typeof zoe < "u" && typeof zoe.process < "u") {
  const m = zoe.process;
  tR = {
    get platform() {
      return m.platform;
    },
    get arch() {
      return m.arch;
    },
    get env() {
      return m.env;
    },
    cwd() {
      return m.cwd();
    }
  };
} else
  typeof process < "u" ? tR = {
    get platform() {
      return process.platform;
    },
    get arch() {
      return process.arch;
    },
    get env() {
      return process.env;
    },
    cwd() {
      return process.env.VSCODE_CWD || process.cwd();
    }
  } : tR = {
    // Supported
    get platform() {
      return R4 ? "win32" : Plt ? "darwin" : "linux";
    },
    get arch() {
    },
    // Unsupported
    get env() {
      return {};
    },
    cwd() {
      return "/";
    }
  };
const fj = tR.cwd, ict = tR.env, act = tR.platform, oct = 65, sct = 97, lct = 90, cct = 122, cA = 46, jp = 47, iy = 92, rA = 58, uct = 63;
class tNe extends Error {
  constructor(v, C, B) {
    let ne;
    typeof C == "string" && C.indexOf("not ") === 0 ? (ne = "must not be", C = C.replace(/^not /, "")) : ne = "must be";
    const pe = v.indexOf(".") !== -1 ? "property" : "argument";
    let Se = `The "${v}" ${pe} ${ne} of type ${C}`;
    Se += `. Received type ${typeof B}`, super(Se), this.code = "ERR_INVALID_ARG_TYPE";
  }
}
function dct(m, v) {
  if (m === null || typeof m != "object")
    throw new tNe(v, "Object", m);
}
function zf(m, v) {
  if (typeof m != "string")
    throw new tNe(v, "string", m);
}
const fA = act === "win32";
function Ol(m) {
  return m === jp || m === iy;
}
function tse(m) {
  return m === jp;
}
function iA(m) {
  return m >= oct && m <= lct || m >= sct && m <= cct;
}
function _j(m, v, C, B) {
  let ne = "", pe = 0, Se = -1, Ge = 0, ct = 0;
  for (let Le = 0; Le <= m.length; ++Le) {
    if (Le < m.length)
      ct = m.charCodeAt(Le);
    else {
      if (B(ct))
        break;
      ct = jp;
    }
    if (B(ct)) {
      if (!(Se === Le - 1 || Ge === 1))
        if (Ge === 2) {
          if (ne.length < 2 || pe !== 2 || ne.charCodeAt(ne.length - 1) !== cA || ne.charCodeAt(ne.length - 2) !== cA) {
            if (ne.length > 2) {
              const ze = ne.lastIndexOf(C);
              ze === -1 ? (ne = "", pe = 0) : (ne = ne.slice(0, ze), pe = ne.length - 1 - ne.lastIndexOf(C)), Se = Le, Ge = 0;
              continue;
            } else if (ne.length !== 0) {
              ne = "", pe = 0, Se = Le, Ge = 0;
              continue;
            }
          }
          v && (ne += ne.length > 0 ? `${C}..` : "..", pe = 2);
        } else
          ne.length > 0 ? ne += `${C}${m.slice(Se + 1, Le)}` : ne = m.slice(Se + 1, Le), pe = Le - Se - 1;
      Se = Le, Ge = 0;
    } else
      ct === cA && Ge !== -1 ? ++Ge : Ge = -1;
  }
  return ne;
}
function nNe(m, v) {
  dct(v, "pathObject");
  const C = v.dir || v.root, B = v.base || `${v.name || ""}${v.ext || ""}`;
  return C ? C === v.root ? `${C}${B}` : `${C}${m}${B}` : B;
}
const eg = {
  // path.resolve([from ...], to)
  resolve(...m) {
    let v = "", C = "", B = !1;
    for (let ne = m.length - 1; ne >= -1; ne--) {
      let pe;
      if (ne >= 0) {
        if (pe = m[ne], zf(pe, "path"), pe.length === 0)
          continue;
      } else
        v.length === 0 ? pe = fj() : (pe = ict[`=${v}`] || fj(), (pe === void 0 || pe.slice(0, 2).toLowerCase() !== v.toLowerCase() && pe.charCodeAt(2) === iy) && (pe = `${v}\\`));
      const Se = pe.length;
      let Ge = 0, ct = "", Le = !1;
      const ze = pe.charCodeAt(0);
      if (Se === 1)
        Ol(ze) && (Ge = 1, Le = !0);
      else if (Ol(ze))
        if (Le = !0, Ol(pe.charCodeAt(1))) {
          let Xt = 2, Jt = Xt;
          for (; Xt < Se && !Ol(pe.charCodeAt(Xt)); )
            Xt++;
          if (Xt < Se && Xt !== Jt) {
            const dn = pe.slice(Jt, Xt);
            for (Jt = Xt; Xt < Se && Ol(pe.charCodeAt(Xt)); )
              Xt++;
            if (Xt < Se && Xt !== Jt) {
              for (Jt = Xt; Xt < Se && !Ol(pe.charCodeAt(Xt)); )
                Xt++;
              (Xt === Se || Xt !== Jt) && (ct = `\\\\${dn}\\${pe.slice(Jt, Xt)}`, Ge = Xt);
            }
          }
        } else
          Ge = 1;
      else
        iA(ze) && pe.charCodeAt(1) === rA && (ct = pe.slice(0, 2), Ge = 2, Se > 2 && Ol(pe.charCodeAt(2)) && (Le = !0, Ge = 3));
      if (ct.length > 0)
        if (v.length > 0) {
          if (ct.toLowerCase() !== v.toLowerCase())
            continue;
        } else
          v = ct;
      if (B) {
        if (v.length > 0)
          break;
      } else if (C = `${pe.slice(Ge)}\\${C}`, B = Le, Le && v.length > 0)
        break;
    }
    return C = _j(C, !B, "\\", Ol), B ? `${v}\\${C}` : `${v}${C}` || ".";
  },
  normalize(m) {
    zf(m, "path");
    const v = m.length;
    if (v === 0)
      return ".";
    let C = 0, B, ne = !1;
    const pe = m.charCodeAt(0);
    if (v === 1)
      return tse(pe) ? "\\" : m;
    if (Ol(pe))
      if (ne = !0, Ol(m.charCodeAt(1))) {
        let Ge = 2, ct = Ge;
        for (; Ge < v && !Ol(m.charCodeAt(Ge)); )
          Ge++;
        if (Ge < v && Ge !== ct) {
          const Le = m.slice(ct, Ge);
          for (ct = Ge; Ge < v && Ol(m.charCodeAt(Ge)); )
            Ge++;
          if (Ge < v && Ge !== ct) {
            for (ct = Ge; Ge < v && !Ol(m.charCodeAt(Ge)); )
              Ge++;
            if (Ge === v)
              return `\\\\${Le}\\${m.slice(ct)}\\`;
            Ge !== ct && (B = `\\\\${Le}\\${m.slice(ct, Ge)}`, C = Ge);
          }
        }
      } else
        C = 1;
    else
      iA(pe) && m.charCodeAt(1) === rA && (B = m.slice(0, 2), C = 2, v > 2 && Ol(m.charCodeAt(2)) && (ne = !0, C = 3));
    let Se = C < v ? _j(m.slice(C), !ne, "\\", Ol) : "";
    return Se.length === 0 && !ne && (Se = "."), Se.length > 0 && Ol(m.charCodeAt(v - 1)) && (Se += "\\"), B === void 0 ? ne ? `\\${Se}` : Se : ne ? `${B}\\${Se}` : `${B}${Se}`;
  },
  isAbsolute(m) {
    zf(m, "path");
    const v = m.length;
    if (v === 0)
      return !1;
    const C = m.charCodeAt(0);
    return Ol(C) || // Possible device root
    v > 2 && iA(C) && m.charCodeAt(1) === rA && Ol(m.charCodeAt(2));
  },
  join(...m) {
    if (m.length === 0)
      return ".";
    let v, C;
    for (let pe = 0; pe < m.length; ++pe) {
      const Se = m[pe];
      zf(Se, "path"), Se.length > 0 && (v === void 0 ? v = C = Se : v += `\\${Se}`);
    }
    if (v === void 0)
      return ".";
    let B = !0, ne = 0;
    if (typeof C == "string" && Ol(C.charCodeAt(0))) {
      ++ne;
      const pe = C.length;
      pe > 1 && Ol(C.charCodeAt(1)) && (++ne, pe > 2 && (Ol(C.charCodeAt(2)) ? ++ne : B = !1));
    }
    if (B) {
      for (; ne < v.length && Ol(v.charCodeAt(ne)); )
        ne++;
      ne >= 2 && (v = `\\${v.slice(ne)}`);
    }
    return eg.normalize(v);
  },
  // It will solve the relative path from `from` to `to`, for instance:
  //  from = 'C:\\orandea\\test\\aaa'
  //  to = 'C:\\orandea\\impl\\bbb'
  // The output of the function should be: '..\\..\\impl\\bbb'
  relative(m, v) {
    if (zf(m, "from"), zf(v, "to"), m === v)
      return "";
    const C = eg.resolve(m), B = eg.resolve(v);
    if (C === B || (m = C.toLowerCase(), v = B.toLowerCase(), m === v))
      return "";
    let ne = 0;
    for (; ne < m.length && m.charCodeAt(ne) === iy; )
      ne++;
    let pe = m.length;
    for (; pe - 1 > ne && m.charCodeAt(pe - 1) === iy; )
      pe--;
    const Se = pe - ne;
    let Ge = 0;
    for (; Ge < v.length && v.charCodeAt(Ge) === iy; )
      Ge++;
    let ct = v.length;
    for (; ct - 1 > Ge && v.charCodeAt(ct - 1) === iy; )
      ct--;
    const Le = ct - Ge, ze = Se < Le ? Se : Le;
    let Xt = -1, Jt = 0;
    for (; Jt < ze; Jt++) {
      const kr = m.charCodeAt(ne + Jt);
      if (kr !== v.charCodeAt(Ge + Jt))
        break;
      kr === iy && (Xt = Jt);
    }
    if (Jt !== ze) {
      if (Xt === -1)
        return B;
    } else {
      if (Le > ze) {
        if (v.charCodeAt(Ge + Jt) === iy)
          return B.slice(Ge + Jt + 1);
        if (Jt === 2)
          return B.slice(Ge + Jt);
      }
      Se > ze && (m.charCodeAt(ne + Jt) === iy ? Xt = Jt : Jt === 2 && (Xt = 3)), Xt === -1 && (Xt = 0);
    }
    let dn = "";
    for (Jt = ne + Xt + 1; Jt <= pe; ++Jt)
      (Jt === pe || m.charCodeAt(Jt) === iy) && (dn += dn.length === 0 ? ".." : "\\..");
    return Ge += Xt, dn.length > 0 ? `${dn}${B.slice(Ge, ct)}` : (B.charCodeAt(Ge) === iy && ++Ge, B.slice(Ge, ct));
  },
  toNamespacedPath(m) {
    if (typeof m != "string" || m.length === 0)
      return m;
    const v = eg.resolve(m);
    if (v.length <= 2)
      return m;
    if (v.charCodeAt(0) === iy) {
      if (v.charCodeAt(1) === iy) {
        const C = v.charCodeAt(2);
        if (C !== uct && C !== cA)
          return `\\\\?\\UNC\\${v.slice(2)}`;
      }
    } else if (iA(v.charCodeAt(0)) && v.charCodeAt(1) === rA && v.charCodeAt(2) === iy)
      return `\\\\?\\${v}`;
    return m;
  },
  dirname(m) {
    zf(m, "path");
    const v = m.length;
    if (v === 0)
      return ".";
    let C = -1, B = 0;
    const ne = m.charCodeAt(0);
    if (v === 1)
      return Ol(ne) ? m : ".";
    if (Ol(ne)) {
      if (C = B = 1, Ol(m.charCodeAt(1))) {
        let Ge = 2, ct = Ge;
        for (; Ge < v && !Ol(m.charCodeAt(Ge)); )
          Ge++;
        if (Ge < v && Ge !== ct) {
          for (ct = Ge; Ge < v && Ol(m.charCodeAt(Ge)); )
            Ge++;
          if (Ge < v && Ge !== ct) {
            for (ct = Ge; Ge < v && !Ol(m.charCodeAt(Ge)); )
              Ge++;
            if (Ge === v)
              return m;
            Ge !== ct && (C = B = Ge + 1);
          }
        }
      }
    } else
      iA(ne) && m.charCodeAt(1) === rA && (C = v > 2 && Ol(m.charCodeAt(2)) ? 3 : 2, B = C);
    let pe = -1, Se = !0;
    for (let Ge = v - 1; Ge >= B; --Ge)
      if (Ol(m.charCodeAt(Ge))) {
        if (!Se) {
          pe = Ge;
          break;
        }
      } else
        Se = !1;
    if (pe === -1) {
      if (C === -1)
        return ".";
      pe = C;
    }
    return m.slice(0, pe);
  },
  basename(m, v) {
    v !== void 0 && zf(v, "ext"), zf(m, "path");
    let C = 0, B = -1, ne = !0, pe;
    if (m.length >= 2 && iA(m.charCodeAt(0)) && m.charCodeAt(1) === rA && (C = 2), v !== void 0 && v.length > 0 && v.length <= m.length) {
      if (v === m)
        return "";
      let Se = v.length - 1, Ge = -1;
      for (pe = m.length - 1; pe >= C; --pe) {
        const ct = m.charCodeAt(pe);
        if (Ol(ct)) {
          if (!ne) {
            C = pe + 1;
            break;
          }
        } else
          Ge === -1 && (ne = !1, Ge = pe + 1), Se >= 0 && (ct === v.charCodeAt(Se) ? --Se === -1 && (B = pe) : (Se = -1, B = Ge));
      }
      return C === B ? B = Ge : B === -1 && (B = m.length), m.slice(C, B);
    }
    for (pe = m.length - 1; pe >= C; --pe)
      if (Ol(m.charCodeAt(pe))) {
        if (!ne) {
          C = pe + 1;
          break;
        }
      } else
        B === -1 && (ne = !1, B = pe + 1);
    return B === -1 ? "" : m.slice(C, B);
  },
  extname(m) {
    zf(m, "path");
    let v = 0, C = -1, B = 0, ne = -1, pe = !0, Se = 0;
    m.length >= 2 && m.charCodeAt(1) === rA && iA(m.charCodeAt(0)) && (v = B = 2);
    for (let Ge = m.length - 1; Ge >= v; --Ge) {
      const ct = m.charCodeAt(Ge);
      if (Ol(ct)) {
        if (!pe) {
          B = Ge + 1;
          break;
        }
        continue;
      }
      ne === -1 && (pe = !1, ne = Ge + 1), ct === cA ? C === -1 ? C = Ge : Se !== 1 && (Se = 1) : C !== -1 && (Se = -1);
    }
    return C === -1 || ne === -1 || // We saw a non-dot character immediately before the dot
    Se === 0 || // The (right-most) trimmed path component is exactly '..'
    Se === 1 && C === ne - 1 && C === B + 1 ? "" : m.slice(C, ne);
  },
  format: nNe.bind(null, "\\"),
  parse(m) {
    zf(m, "path");
    const v = { root: "", dir: "", base: "", ext: "", name: "" };
    if (m.length === 0)
      return v;
    const C = m.length;
    let B = 0, ne = m.charCodeAt(0);
    if (C === 1)
      return Ol(ne) ? (v.root = v.dir = m, v) : (v.base = v.name = m, v);
    if (Ol(ne)) {
      if (B = 1, Ol(m.charCodeAt(1))) {
        let Xt = 2, Jt = Xt;
        for (; Xt < C && !Ol(m.charCodeAt(Xt)); )
          Xt++;
        if (Xt < C && Xt !== Jt) {
          for (Jt = Xt; Xt < C && Ol(m.charCodeAt(Xt)); )
            Xt++;
          if (Xt < C && Xt !== Jt) {
            for (Jt = Xt; Xt < C && !Ol(m.charCodeAt(Xt)); )
              Xt++;
            Xt === C ? B = Xt : Xt !== Jt && (B = Xt + 1);
          }
        }
      }
    } else if (iA(ne) && m.charCodeAt(1) === rA) {
      if (C <= 2)
        return v.root = v.dir = m, v;
      if (B = 2, Ol(m.charCodeAt(2))) {
        if (C === 3)
          return v.root = v.dir = m, v;
        B = 3;
      }
    }
    B > 0 && (v.root = m.slice(0, B));
    let pe = -1, Se = B, Ge = -1, ct = !0, Le = m.length - 1, ze = 0;
    for (; Le >= B; --Le) {
      if (ne = m.charCodeAt(Le), Ol(ne)) {
        if (!ct) {
          Se = Le + 1;
          break;
        }
        continue;
      }
      Ge === -1 && (ct = !1, Ge = Le + 1), ne === cA ? pe === -1 ? pe = Le : ze !== 1 && (ze = 1) : pe !== -1 && (ze = -1);
    }
    return Ge !== -1 && (pe === -1 || // We saw a non-dot character immediately before the dot
    ze === 0 || // The (right-most) trimmed path component is exactly '..'
    ze === 1 && pe === Ge - 1 && pe === Se + 1 ? v.base = v.name = m.slice(Se, Ge) : (v.name = m.slice(Se, pe), v.base = m.slice(Se, Ge), v.ext = m.slice(pe, Ge))), Se > 0 && Se !== B ? v.dir = m.slice(0, Se - 1) : v.dir = v.root, v;
  },
  sep: "\\",
  delimiter: ";",
  win32: null,
  posix: null
}, fct = (() => {
  if (fA) {
    const m = /\\/g;
    return () => {
      const v = fj().replace(m, "/");
      return v.slice(v.indexOf("/"));
    };
  }
  return () => fj();
})(), ay = {
  // path.resolve([from ...], to)
  resolve(...m) {
    let v = "", C = !1;
    for (let B = m.length - 1; B >= -1 && !C; B--) {
      const ne = B >= 0 ? m[B] : fct();
      zf(ne, "path"), ne.length !== 0 && (v = `${ne}/${v}`, C = ne.charCodeAt(0) === jp);
    }
    return v = _j(v, !C, "/", tse), C ? `/${v}` : v.length > 0 ? v : ".";
  },
  normalize(m) {
    if (zf(m, "path"), m.length === 0)
      return ".";
    const v = m.charCodeAt(0) === jp, C = m.charCodeAt(m.length - 1) === jp;
    return m = _j(m, !v, "/", tse), m.length === 0 ? v ? "/" : C ? "./" : "." : (C && (m += "/"), v ? `/${m}` : m);
  },
  isAbsolute(m) {
    return zf(m, "path"), m.length > 0 && m.charCodeAt(0) === jp;
  },
  join(...m) {
    if (m.length === 0)
      return ".";
    let v;
    for (let C = 0; C < m.length; ++C) {
      const B = m[C];
      zf(B, "path"), B.length > 0 && (v === void 0 ? v = B : v += `/${B}`);
    }
    return v === void 0 ? "." : ay.normalize(v);
  },
  relative(m, v) {
    if (zf(m, "from"), zf(v, "to"), m === v || (m = ay.resolve(m), v = ay.resolve(v), m === v))
      return "";
    const C = 1, B = m.length, ne = B - C, pe = 1, Se = v.length - pe, Ge = ne < Se ? ne : Se;
    let ct = -1, Le = 0;
    for (; Le < Ge; Le++) {
      const Xt = m.charCodeAt(C + Le);
      if (Xt !== v.charCodeAt(pe + Le))
        break;
      Xt === jp && (ct = Le);
    }
    if (Le === Ge)
      if (Se > Ge) {
        if (v.charCodeAt(pe + Le) === jp)
          return v.slice(pe + Le + 1);
        if (Le === 0)
          return v.slice(pe + Le);
      } else
        ne > Ge && (m.charCodeAt(C + Le) === jp ? ct = Le : Le === 0 && (ct = 0));
    let ze = "";
    for (Le = C + ct + 1; Le <= B; ++Le)
      (Le === B || m.charCodeAt(Le) === jp) && (ze += ze.length === 0 ? ".." : "/..");
    return `${ze}${v.slice(pe + ct)}`;
  },
  toNamespacedPath(m) {
    return m;
  },
  dirname(m) {
    if (zf(m, "path"), m.length === 0)
      return ".";
    const v = m.charCodeAt(0) === jp;
    let C = -1, B = !0;
    for (let ne = m.length - 1; ne >= 1; --ne)
      if (m.charCodeAt(ne) === jp) {
        if (!B) {
          C = ne;
          break;
        }
      } else
        B = !1;
    return C === -1 ? v ? "/" : "." : v && C === 1 ? "//" : m.slice(0, C);
  },
  basename(m, v) {
    v !== void 0 && zf(v, "ext"), zf(m, "path");
    let C = 0, B = -1, ne = !0, pe;
    if (v !== void 0 && v.length > 0 && v.length <= m.length) {
      if (v === m)
        return "";
      let Se = v.length - 1, Ge = -1;
      for (pe = m.length - 1; pe >= 0; --pe) {
        const ct = m.charCodeAt(pe);
        if (ct === jp) {
          if (!ne) {
            C = pe + 1;
            break;
          }
        } else
          Ge === -1 && (ne = !1, Ge = pe + 1), Se >= 0 && (ct === v.charCodeAt(Se) ? --Se === -1 && (B = pe) : (Se = -1, B = Ge));
      }
      return C === B ? B = Ge : B === -1 && (B = m.length), m.slice(C, B);
    }
    for (pe = m.length - 1; pe >= 0; --pe)
      if (m.charCodeAt(pe) === jp) {
        if (!ne) {
          C = pe + 1;
          break;
        }
      } else
        B === -1 && (ne = !1, B = pe + 1);
    return B === -1 ? "" : m.slice(C, B);
  },
  extname(m) {
    zf(m, "path");
    let v = -1, C = 0, B = -1, ne = !0, pe = 0;
    for (let Se = m.length - 1; Se >= 0; --Se) {
      const Ge = m.charCodeAt(Se);
      if (Ge === jp) {
        if (!ne) {
          C = Se + 1;
          break;
        }
        continue;
      }
      B === -1 && (ne = !1, B = Se + 1), Ge === cA ? v === -1 ? v = Se : pe !== 1 && (pe = 1) : v !== -1 && (pe = -1);
    }
    return v === -1 || B === -1 || // We saw a non-dot character immediately before the dot
    pe === 0 || // The (right-most) trimmed path component is exactly '..'
    pe === 1 && v === B - 1 && v === C + 1 ? "" : m.slice(v, B);
  },
  format: nNe.bind(null, "/"),
  parse(m) {
    zf(m, "path");
    const v = { root: "", dir: "", base: "", ext: "", name: "" };
    if (m.length === 0)
      return v;
    const C = m.charCodeAt(0) === jp;
    let B;
    C ? (v.root = "/", B = 1) : B = 0;
    let ne = -1, pe = 0, Se = -1, Ge = !0, ct = m.length - 1, Le = 0;
    for (; ct >= B; --ct) {
      const ze = m.charCodeAt(ct);
      if (ze === jp) {
        if (!Ge) {
          pe = ct + 1;
          break;
        }
        continue;
      }
      Se === -1 && (Ge = !1, Se = ct + 1), ze === cA ? ne === -1 ? ne = ct : Le !== 1 && (Le = 1) : ne !== -1 && (Le = -1);
    }
    if (Se !== -1) {
      const ze = pe === 0 && C ? 1 : pe;
      ne === -1 || // We saw a non-dot character immediately before the dot
      Le === 0 || // The (right-most) trimmed path component is exactly '..'
      Le === 1 && ne === Se - 1 && ne === pe + 1 ? v.base = v.name = m.slice(ze, Se) : (v.name = m.slice(ze, ne), v.base = m.slice(ze, Se), v.ext = m.slice(ne, Se));
    }
    return pe > 0 ? v.dir = m.slice(0, pe - 1) : C && (v.dir = "/"), v;
  },
  sep: "/",
  delimiter: ":",
  win32: null,
  posix: null
};
ay.win32 = eg.win32 = eg;
ay.posix = eg.posix = ay;
fA ? eg.normalize : ay.normalize;
fA ? eg.resolve : ay.resolve;
fA ? eg.relative : ay.relative;
fA ? eg.dirname : ay.dirname;
fA ? eg.basename : ay.basename;
fA ? eg.extname : ay.extname;
fA ? eg.sep : ay.sep;
const _ct = /^\w[\w\d+.-]*$/, pct = /^\//, mct = /^\/\//;
function hct(m, v) {
  if (!m.scheme && v)
    throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${m.authority}", path: "${m.path}", query: "${m.query}", fragment: "${m.fragment}"}`);
  if (m.scheme && !_ct.test(m.scheme))
    throw new Error("[UriError]: Scheme contains illegal characters.");
  if (m.path) {
    if (m.authority) {
      if (!pct.test(m.path))
        throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character');
    } else if (mct.test(m.path))
      throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")');
  }
}
function gct(m, v) {
  return !m && !v ? "file" : m;
}
function yct(m, v) {
  switch (m) {
    case "https":
    case "http":
    case "file":
      v ? v[0] !== Qb && (v = Qb + v) : v = Qb;
      break;
  }
  return v;
}
const od = "", Qb = "/", vct = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
class eI {
  static isUri(v) {
    return v instanceof eI ? !0 : v ? typeof v.authority == "string" && typeof v.fragment == "string" && typeof v.path == "string" && typeof v.query == "string" && typeof v.scheme == "string" && typeof v.fsPath == "string" && typeof v.with == "function" && typeof v.toString == "function" : !1;
  }
  /**
   * @internal
   */
  constructor(v, C, B, ne, pe, Se = !1) {
    typeof v == "object" ? (this.scheme = v.scheme || od, this.authority = v.authority || od, this.path = v.path || od, this.query = v.query || od, this.fragment = v.fragment || od) : (this.scheme = gct(v, Se), this.authority = C || od, this.path = yct(this.scheme, B || od), this.query = ne || od, this.fragment = pe || od, hct(this, Se));
  }
  // ---- filesystem path -----------------------
  /**
   * Returns a string representing the corresponding file system path of this URI.
   * Will handle UNC paths, normalizes windows drive letters to lower-case, and uses the
   * platform specific path separator.
   *
   * * Will *not* validate the path for invalid characters and semantics.
   * * Will *not* look at the scheme of this URI.
   * * The result shall *not* be used for display purposes but for accessing a file on disk.
   *
   *
   * The *difference* to `URI#path` is the use of the platform specific separator and the handling
   * of UNC paths. See the below sample of a file-uri with an authority (UNC path).
   *
   * ```ts
      const u = URI.parse('file://server/c$/folder/file.txt')
      u.authority === 'server'
      u.path === '/shares/c$/file.txt'
      u.fsPath === '\\server\c$\folder\file.txt'
  ```
   *
   * Using `URI#path` to read a file (using fs-apis) would not be enough because parts of the path,
   * namely the server name, would be missing. Therefore `URI#fsPath` exists - it's sugar to ease working
   * with URIs that represent files on disk (`file` scheme).
   */
  get fsPath() {
    return nse(this, !1);
  }
  // ---- modify to new -------------------------
  with(v) {
    if (!v)
      return this;
    let { scheme: C, authority: B, path: ne, query: pe, fragment: Se } = v;
    return C === void 0 ? C = this.scheme : C === null && (C = od), B === void 0 ? B = this.authority : B === null && (B = od), ne === void 0 ? ne = this.path : ne === null && (ne = od), pe === void 0 ? pe = this.query : pe === null && (pe = od), Se === void 0 ? Se = this.fragment : Se === null && (Se = od), C === this.scheme && B === this.authority && ne === this.path && pe === this.query && Se === this.fragment ? this : new YD(C, B, ne, pe, Se);
  }
  // ---- parse & validate ------------------------
  /**
   * Creates a new URI from a string, e.g. `http://www.example.com/some/path`,
   * `file:///usr/home`, or `scheme:with/path`.
   *
   * @param value A string which represents an URI (see `URI#toString`).
   */
  static parse(v, C = !1) {
    const B = vct.exec(v);
    return B ? new YD(B[2] || od, ij(B[4] || od), ij(B[5] || od), ij(B[7] || od), ij(B[9] || od), C) : new YD(od, od, od, od, od);
  }
  /**
   * Creates a new URI from a file system path, e.g. `c:\my\files`,
   * `/usr/home`, or `\\server\share\some\path`.
   *
   * The *difference* between `URI#parse` and `URI#file` is that the latter treats the argument
   * as path, not as stringified-uri. E.g. `URI.file(path)` is **not the same as**
   * `URI.parse('file://' + path)` because the path might contain characters that are
   * interpreted (# and ?). See the following sample:
   * ```ts
  const good = URI.file('/coding/c#/project1');
  good.scheme === 'file';
  good.path === '/coding/c#/project1';
  good.fragment === '';
  const bad = URI.parse('file://' + '/coding/c#/project1');
  bad.scheme === 'file';
  bad.path === '/coding/c'; // path is now broken
  bad.fragment === '/project1';
  ```
   *
   * @param path A file system path (see `URI#fsPath`)
   */
  static file(v) {
    let C = od;
    if (R4 && (v = v.replace(/\\/g, Qb)), v[0] === Qb && v[1] === Qb) {
      const B = v.indexOf(Qb, 2);
      B === -1 ? (C = v.substring(2), v = Qb) : (C = v.substring(2, B), v = v.substring(B) || Qb);
    }
    return new YD("file", C, v, od, od);
  }
  /**
   * Creates new URI from uri components.
   *
   * Unless `strict` is `true` the scheme is defaults to be `file`. This function performs
   * validation and should be used for untrusted uri components retrieved from storage,
   * user input, command arguments etc
   */
  static from(v, C) {
    return new YD(v.scheme, v.authority, v.path, v.query, v.fragment, C);
  }
  /**
   * Join a URI path with path fragments and normalizes the resulting path.
   *
   * @param uri The input URI.
   * @param pathFragment The path fragment to add to the URI path.
   * @returns The resulting URI.
   */
  static joinPath(v, ...C) {
    if (!v.path)
      throw new Error("[UriError]: cannot call joinPath on URI without path");
    let B;
    return R4 && v.scheme === "file" ? B = eI.file(eg.join(nse(v, !0), ...C)).path : B = ay.join(v.path, ...C), v.with({ path: B });
  }
  // ---- printing/externalize ---------------------------
  /**
   * Creates a string representation for this URI. It's guaranteed that calling
   * `URI.parse` with the result of this function creates an URI which is equal
   * to this URI.
   *
   * * The result shall *not* be used for display purposes but for externalization or transport.
   * * The result will be encoded using the percentage encoding and encoding happens mostly
   * ignore the scheme-specific encoding rules.
   *
   * @param skipEncoding Do not encode the result, default is `false`
   */
  toString(v = !1) {
    return rse(this, v);
  }
  toJSON() {
    return this;
  }
  static revive(v) {
    var C, B;
    if (v) {
      if (v instanceof eI)
        return v;
      {
        const ne = new YD(v);
        return ne._formatted = (C = v.external) !== null && C !== void 0 ? C : null, ne._fsPath = v._sep === rNe && (B = v.fsPath) !== null && B !== void 0 ? B : null, ne;
      }
    } else
      return v;
  }
}
const rNe = R4 ? 1 : void 0;
class YD extends eI {
  constructor() {
    super(...arguments), this._formatted = null, this._fsPath = null;
  }
  get fsPath() {
    return this._fsPath || (this._fsPath = nse(this, !1)), this._fsPath;
  }
  toString(v = !1) {
    return v ? rse(this, !0) : (this._formatted || (this._formatted = rse(this, !1)), this._formatted);
  }
  toJSON() {
    const v = {
      $mid: 1
      /* MarshalledId.Uri */
    };
    return this._fsPath && (v.fsPath = this._fsPath, v._sep = rNe), this._formatted && (v.external = this._formatted), this.path && (v.path = this.path), this.scheme && (v.scheme = this.scheme), this.authority && (v.authority = this.authority), this.query && (v.query = this.query), this.fragment && (v.fragment = this.fragment), v;
  }
}
const iNe = {
  58: "%3A",
  // gen-delims
  47: "%2F",
  63: "%3F",
  35: "%23",
  91: "%5B",
  93: "%5D",
  64: "%40",
  33: "%21",
  // sub-delims
  36: "%24",
  38: "%26",
  39: "%27",
  40: "%28",
  41: "%29",
  42: "%2A",
  43: "%2B",
  44: "%2C",
  59: "%3B",
  61: "%3D",
  32: "%20"
};
function NDe(m, v, C) {
  let B, ne = -1;
  for (let pe = 0; pe < m.length; pe++) {
    const Se = m.charCodeAt(pe);
    if (Se >= 97 && Se <= 122 || Se >= 65 && Se <= 90 || Se >= 48 && Se <= 57 || Se === 45 || Se === 46 || Se === 95 || Se === 126 || v && Se === 47 || C && Se === 91 || C && Se === 93 || C && Se === 58)
      ne !== -1 && (B += encodeURIComponent(m.substring(ne, pe)), ne = -1), B !== void 0 && (B += m.charAt(pe));
    else {
      B === void 0 && (B = m.substr(0, pe));
      const Ge = iNe[Se];
      Ge !== void 0 ? (ne !== -1 && (B += encodeURIComponent(m.substring(ne, pe)), ne = -1), B += Ge) : ne === -1 && (ne = pe);
    }
  }
  return ne !== -1 && (B += encodeURIComponent(m.substring(ne))), B !== void 0 ? B : m;
}
function bct(m) {
  let v;
  for (let C = 0; C < m.length; C++) {
    const B = m.charCodeAt(C);
    B === 35 || B === 63 ? (v === void 0 && (v = m.substr(0, C)), v += iNe[B]) : v !== void 0 && (v += m[C]);
  }
  return v !== void 0 ? v : m;
}
function nse(m, v) {
  let C;
  return m.authority && m.path.length > 1 && m.scheme === "file" ? C = `//${m.authority}${m.path}` : m.path.charCodeAt(0) === 47 && (m.path.charCodeAt(1) >= 65 && m.path.charCodeAt(1) <= 90 || m.path.charCodeAt(1) >= 97 && m.path.charCodeAt(1) <= 122) && m.path.charCodeAt(2) === 58 ? v ? C = m.path.substr(1) : C = m.path[1].toLowerCase() + m.path.substr(2) : C = m.path, R4 && (C = C.replace(/\//g, "\\")), C;
}
function rse(m, v) {
  const C = v ? bct : NDe;
  let B = "", { scheme: ne, authority: pe, path: Se, query: Ge, fragment: ct } = m;
  if (ne && (B += ne, B += ":"), (pe || ne === "file") && (B += Qb, B += Qb), pe) {
    let Le = pe.indexOf("@");
    if (Le !== -1) {
      const ze = pe.substr(0, Le);
      pe = pe.substr(Le + 1), Le = ze.lastIndexOf(":"), Le === -1 ? B += C(ze, !1, !1) : (B += C(ze.substr(0, Le), !1, !1), B += ":", B += C(ze.substr(Le + 1), !1, !0)), B += "@";
    }
    pe = pe.toLowerCase(), Le = pe.lastIndexOf(":"), Le === -1 ? B += C(pe, !1, !0) : (B += C(pe.substr(0, Le), !1, !0), B += pe.substr(Le));
  }
  if (Se) {
    if (Se.length >= 3 && Se.charCodeAt(0) === 47 && Se.charCodeAt(2) === 58) {
      const Le = Se.charCodeAt(1);
      Le >= 65 && Le <= 90 && (Se = `/${String.fromCharCode(Le + 32)}:${Se.substr(3)}`);
    } else if (Se.length >= 2 && Se.charCodeAt(1) === 58) {
      const Le = Se.charCodeAt(0);
      Le >= 65 && Le <= 90 && (Se = `${String.fromCharCode(Le + 32)}:${Se.substr(2)}`);
    }
    B += C(Se, !0, !1);
  }
  return Ge && (B += "?", B += C(Ge, !1, !1)), ct && (B += "#", B += v ? ct : NDe(ct, !1, !1)), B;
}
function aNe(m) {
  try {
    return decodeURIComponent(m);
  } catch {
    return m.length > 3 ? m.substr(0, 3) + aNe(m.substr(3)) : m;
  }
}
const ODe = /(%[0-9A-Za-z][0-9A-Za-z])+/g;
function ij(m) {
  return m.match(ODe) ? m.replace(ODe, (v) => aNe(v)) : m;
}
class xm {
  constructor(v, C) {
    this.lineNumber = v, this.column = C;
  }
  /**
   * Create a new position from this position.
   *
   * @param newLineNumber new line number
   * @param newColumn new column
   */
  with(v = this.lineNumber, C = this.column) {
    return v === this.lineNumber && C === this.column ? this : new xm(v, C);
  }
  /**
   * Derive a new position from this position.
   *
   * @param deltaLineNumber line number delta
   * @param deltaColumn column delta
   */
  delta(v = 0, C = 0) {
    return this.with(this.lineNumber + v, this.column + C);
  }
  /**
   * Test if this position equals other position
   */
  equals(v) {
    return xm.equals(this, v);
  }
  /**
   * Test if position `a` equals position `b`
   */
  static equals(v, C) {
    return !v && !C ? !0 : !!v && !!C && v.lineNumber === C.lineNumber && v.column === C.column;
  }
  /**
   * Test if this position is before other position.
   * If the two positions are equal, the result will be false.
   */
  isBefore(v) {
    return xm.isBefore(this, v);
  }
  /**
   * Test if position `a` is before position `b`.
   * If the two positions are equal, the result will be false.
   */
  static isBefore(v, C) {
    return v.lineNumber < C.lineNumber ? !0 : C.lineNumber < v.lineNumber ? !1 : v.column < C.column;
  }
  /**
   * Test if this position is before other position.
   * If the two positions are equal, the result will be true.
   */
  isBeforeOrEqual(v) {
    return xm.isBeforeOrEqual(this, v);
  }
  /**
   * Test if position `a` is before position `b`.
   * If the two positions are equal, the result will be true.
   */
  static isBeforeOrEqual(v, C) {
    return v.lineNumber < C.lineNumber ? !0 : C.lineNumber < v.lineNumber ? !1 : v.column <= C.column;
  }
  /**
   * A function that compares positions, useful for sorting
   */
  static compare(v, C) {
    const B = v.lineNumber | 0, ne = C.lineNumber | 0;
    if (B === ne) {
      const pe = v.column | 0, Se = C.column | 0;
      return pe - Se;
    }
    return B - ne;
  }
  /**
   * Clone this position.
   */
  clone() {
    return new xm(this.lineNumber, this.column);
  }
  /**
   * Convert to a human-readable representation.
   */
  toString() {
    return "(" + this.lineNumber + "," + this.column + ")";
  }
  // ---
  /**
   * Create a `Position` from an `IPosition`.
   */
  static lift(v) {
    return new xm(v.lineNumber, v.column);
  }
  /**
   * Test if `obj` is an `IPosition`.
   */
  static isIPosition(v) {
    return v && typeof v.lineNumber == "number" && typeof v.column == "number";
  }
  toJSON() {
    return {
      lineNumber: this.lineNumber,
      column: this.column
    };
  }
}
class Wl {
  constructor(v, C, B, ne) {
    v > B || v === B && C > ne ? (this.startLineNumber = B, this.startColumn = ne, this.endLineNumber = v, this.endColumn = C) : (this.startLineNumber = v, this.startColumn = C, this.endLineNumber = B, this.endColumn = ne);
  }
  /**
   * Test if this range is empty.
   */
  isEmpty() {
    return Wl.isEmpty(this);
  }
  /**
   * Test if `range` is empty.
   */
  static isEmpty(v) {
    return v.startLineNumber === v.endLineNumber && v.startColumn === v.endColumn;
  }
  /**
   * Test if position is in this range. If the position is at the edges, will return true.
   */
  containsPosition(v) {
    return Wl.containsPosition(this, v);
  }
  /**
   * Test if `position` is in `range`. If the position is at the edges, will return true.
   */
  static containsPosition(v, C) {
    return !(C.lineNumber < v.startLineNumber || C.lineNumber > v.endLineNumber || C.lineNumber === v.startLineNumber && C.column < v.startColumn || C.lineNumber === v.endLineNumber && C.column > v.endColumn);
  }
  /**
   * Test if `position` is in `range`. If the position is at the edges, will return false.
   * @internal
   */
  static strictContainsPosition(v, C) {
    return !(C.lineNumber < v.startLineNumber || C.lineNumber > v.endLineNumber || C.lineNumber === v.startLineNumber && C.column <= v.startColumn || C.lineNumber === v.endLineNumber && C.column >= v.endColumn);
  }
  /**
   * Test if range is in this range. If the range is equal to this range, will return true.
   */
  containsRange(v) {
    return Wl.containsRange(this, v);
  }
  /**
   * Test if `otherRange` is in `range`. If the ranges are equal, will return true.
   */
  static containsRange(v, C) {
    return !(C.startLineNumber < v.startLineNumber || C.endLineNumber < v.startLineNumber || C.startLineNumber > v.endLineNumber || C.endLineNumber > v.endLineNumber || C.startLineNumber === v.startLineNumber && C.startColumn < v.startColumn || C.endLineNumber === v.endLineNumber && C.endColumn > v.endColumn);
  }
  /**
   * Test if `range` is strictly in this range. `range` must start after and end before this range for the result to be true.
   */
  strictContainsRange(v) {
    return Wl.strictContainsRange(this, v);
  }
  /**
   * Test if `otherRange` is strictly in `range` (must start after, and end before). If the ranges are equal, will return false.
   */
  static strictContainsRange(v, C) {
    return !(C.startLineNumber < v.startLineNumber || C.endLineNumber < v.startLineNumber || C.startLineNumber > v.endLineNumber || C.endLineNumber > v.endLineNumber || C.startLineNumber === v.startLineNumber && C.startColumn <= v.startColumn || C.endLineNumber === v.endLineNumber && C.endColumn >= v.endColumn);
  }
  /**
   * A reunion of the two ranges.
   * The smallest position will be used as the start point, and the largest one as the end point.
   */
  plusRange(v) {
    return Wl.plusRange(this, v);
  }
  /**
   * A reunion of the two ranges.
   * The smallest position will be used as the start point, and the largest one as the end point.
   */
  static plusRange(v, C) {
    let B, ne, pe, Se;
    return C.startLineNumber < v.startLineNumber ? (B = C.startLineNumber, ne = C.startColumn) : C.startLineNumber === v.startLineNumber ? (B = C.startLineNumber, ne = Math.min(C.startColumn, v.startColumn)) : (B = v.startLineNumber, ne = v.startColumn), C.endLineNumber > v.endLineNumber ? (pe = C.endLineNumber, Se = C.endColumn) : C.endLineNumber === v.endLineNumber ? (pe = C.endLineNumber, Se = Math.max(C.endColumn, v.endColumn)) : (pe = v.endLineNumber, Se = v.endColumn), new Wl(B, ne, pe, Se);
  }
  /**
   * A intersection of the two ranges.
   */
  intersectRanges(v) {
    return Wl.intersectRanges(this, v);
  }
  /**
   * A intersection of the two ranges.
   */
  static intersectRanges(v, C) {
    let B = v.startLineNumber, ne = v.startColumn, pe = v.endLineNumber, Se = v.endColumn;
    const Ge = C.startLineNumber, ct = C.startColumn, Le = C.endLineNumber, ze = C.endColumn;
    return B < Ge ? (B = Ge, ne = ct) : B === Ge && (ne = Math.max(ne, ct)), pe > Le ? (pe = Le, Se = ze) : pe === Le && (Se = Math.min(Se, ze)), B > pe || B === pe && ne > Se ? null : new Wl(B, ne, pe, Se);
  }
  /**
   * Test if this range equals other.
   */
  equalsRange(v) {
    return Wl.equalsRange(this, v);
  }
  /**
   * Test if range `a` equals `b`.
   */
  static equalsRange(v, C) {
    return !v && !C ? !0 : !!v && !!C && v.startLineNumber === C.startLineNumber && v.startColumn === C.startColumn && v.endLineNumber === C.endLineNumber && v.endColumn === C.endColumn;
  }
  /**
   * Return the end position (which will be after or equal to the start position)
   */
  getEndPosition() {
    return Wl.getEndPosition(this);
  }
  /**
   * Return the end position (which will be after or equal to the start position)
   */
  static getEndPosition(v) {
    return new xm(v.endLineNumber, v.endColumn);
  }
  /**
   * Return the start position (which will be before or equal to the end position)
   */
  getStartPosition() {
    return Wl.getStartPosition(this);
  }
  /**
   * Return the start position (which will be before or equal to the end position)
   */
  static getStartPosition(v) {
    return new xm(v.startLineNumber, v.startColumn);
  }
  /**
   * Transform to a user presentable string representation.
   */
  toString() {
    return "[" + this.startLineNumber + "," + this.startColumn + " -> " + this.endLineNumber + "," + this.endColumn + "]";
  }
  /**
   * Create a new range using this range's start position, and using endLineNumber and endColumn as the end position.
   */
  setEndPosition(v, C) {
    return new Wl(this.startLineNumber, this.startColumn, v, C);
  }
  /**
   * Create a new range using this range's end position, and using startLineNumber and startColumn as the start position.
   */
  setStartPosition(v, C) {
    return new Wl(v, C, this.endLineNumber, this.endColumn);
  }
  /**
   * Create a new empty range using this range's start position.
   */
  collapseToStart() {
    return Wl.collapseToStart(this);
  }
  /**
   * Create a new empty range using this range's start position.
   */
  static collapseToStart(v) {
    return new Wl(v.startLineNumber, v.startColumn, v.startLineNumber, v.startColumn);
  }
  /**
   * Create a new empty range using this range's end position.
   */
  collapseToEnd() {
    return Wl.collapseToEnd(this);
  }
  /**
   * Create a new empty range using this range's end position.
   */
  static collapseToEnd(v) {
    return new Wl(v.endLineNumber, v.endColumn, v.endLineNumber, v.endColumn);
  }
  /**
   * Moves the range by the given amount of lines.
   */
  delta(v) {
    return new Wl(this.startLineNumber + v, this.startColumn, this.endLineNumber + v, this.endColumn);
  }
  // ---
  static fromPositions(v, C = v) {
    return new Wl(v.lineNumber, v.column, C.lineNumber, C.column);
  }
  static lift(v) {
    return v ? new Wl(v.startLineNumber, v.startColumn, v.endLineNumber, v.endColumn) : null;
  }
  /**
   * Test if `obj` is an `IRange`.
   */
  static isIRange(v) {
    return v && typeof v.startLineNumber == "number" && typeof v.startColumn == "number" && typeof v.endLineNumber == "number" && typeof v.endColumn == "number";
  }
  /**
   * Test if the two ranges are touching in any way.
   */
  static areIntersectingOrTouching(v, C) {
    return !(v.endLineNumber < C.startLineNumber || v.endLineNumber === C.startLineNumber && v.endColumn < C.startColumn || C.endLineNumber < v.startLineNumber || C.endLineNumber === v.startLineNumber && C.endColumn < v.startColumn);
  }
  /**
   * Test if the two ranges are intersecting. If the ranges are touching it returns true.
   */
  static areIntersecting(v, C) {
    return !(v.endLineNumber < C.startLineNumber || v.endLineNumber === C.startLineNumber && v.endColumn <= C.startColumn || C.endLineNumber < v.startLineNumber || C.endLineNumber === v.startLineNumber && C.endColumn <= v.startColumn);
  }
  /**
   * A function that compares ranges, useful for sorting ranges
   * It will first compare ranges on the startPosition and then on the endPosition
   */
  static compareRangesUsingStarts(v, C) {
    if (v && C) {
      const pe = v.startLineNumber | 0, Se = C.startLineNumber | 0;
      if (pe === Se) {
        const Ge = v.startColumn | 0, ct = C.startColumn | 0;
        if (Ge === ct) {
          const Le = v.endLineNumber | 0, ze = C.endLineNumber | 0;
          if (Le === ze) {
            const Xt = v.endColumn | 0, Jt = C.endColumn | 0;
            return Xt - Jt;
          }
          return Le - ze;
        }
        return Ge - ct;
      }
      return pe - Se;
    }
    return (v ? 1 : 0) - (C ? 1 : 0);
  }
  /**
   * A function that compares ranges, useful for sorting ranges
   * It will first compare ranges on the endPosition and then on the startPosition
   */
  static compareRangesUsingEnds(v, C) {
    return v.endLineNumber === C.endLineNumber ? v.endColumn === C.endColumn ? v.startLineNumber === C.startLineNumber ? v.startColumn - C.startColumn : v.startLineNumber - C.startLineNumber : v.endColumn - C.endColumn : v.endLineNumber - C.endLineNumber;
  }
  /**
   * Test if the range spans multiple lines.
   */
  static spansMultipleLines(v) {
    return v.endLineNumber > v.startLineNumber;
  }
  toJSON() {
    return this;
  }
}
function Ect(m, v, C = (B, ne) => B === ne) {
  if (m === v)
    return !0;
  if (!m || !v || m.length !== v.length)
    return !1;
  for (let B = 0, ne = m.length; B < ne; B++)
    if (!C(m[B], v[B]))
      return !1;
  return !0;
}
function* Tct(m, v) {
  let C, B;
  for (const ne of m)
    B !== void 0 && v(B, ne) ? C.push(ne) : (C && (yield C), C = [ne]), B = ne;
  C && (yield C);
}
function Sct(m, v) {
  for (let C = 0; C <= m.length; C++)
    v(C === 0 ? void 0 : m[C - 1], C === m.length ? void 0 : m[C]);
}
function xct(m, v) {
  for (let C = 0; C < m.length; C++)
    v(C === 0 ? void 0 : m[C - 1], m[C], C + 1 === m.length ? void 0 : m[C + 1]);
}
function Act(m, v) {
  for (const C of v)
    m.push(C);
}
var PDe;
(function(m) {
  function v(pe) {
    return pe < 0;
  }
  m.isLessThan = v;
  function C(pe) {
    return pe <= 0;
  }
  m.isLessThanOrEqual = C;
  function B(pe) {
    return pe > 0;
  }
  m.isGreaterThan = B;
  function ne(pe) {
    return pe === 0;
  }
  m.isNeitherLessOrGreaterThan = ne, m.greaterThan = 1, m.lessThan = -1, m.neitherLessOrGreaterThan = 0;
})(PDe || (PDe = {}));
function aj(m, v) {
  return (C, B) => v(m(C), m(B));
}
const oj = (m, v) => m - v;
function Cct(m) {
  return (v, C) => -m(v, C);
}
function MDe(m) {
  return m < 0 ? 0 : m > 255 ? 255 : m | 0;
}
function $D(m) {
  return m < 0 ? 0 : m > 4294967295 ? 4294967295 : m | 0;
}
class Lct {
  constructor(v) {
    this.values = v, this.prefixSum = new Uint32Array(v.length), this.prefixSumValidIndex = new Int32Array(1), this.prefixSumValidIndex[0] = -1;
  }
  insertValues(v, C) {
    v = $D(v);
    const B = this.values, ne = this.prefixSum, pe = C.length;
    return pe === 0 ? !1 : (this.values = new Uint32Array(B.length + pe), this.values.set(B.subarray(0, v), 0), this.values.set(B.subarray(v), v + pe), this.values.set(C, v), v - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = v - 1), this.prefixSum = new Uint32Array(this.values.length), this.prefixSumValidIndex[0] >= 0 && this.prefixSum.set(ne.subarray(0, this.prefixSumValidIndex[0] + 1)), !0);
  }
  setValue(v, C) {
    return v = $D(v), C = $D(C), this.values[v] === C ? !1 : (this.values[v] = C, v - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = v - 1), !0);
  }
  removeValues(v, C) {
    v = $D(v), C = $D(C);
    const B = this.values, ne = this.prefixSum;
    if (v >= B.length)
      return !1;
    const pe = B.length - v;
    return C >= pe && (C = pe), C === 0 ? !1 : (this.values = new Uint32Array(B.length - C), this.values.set(B.subarray(0, v), 0), this.values.set(B.subarray(v + C), v), this.prefixSum = new Uint32Array(this.values.length), v - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = v - 1), this.prefixSumValidIndex[0] >= 0 && this.prefixSum.set(ne.subarray(0, this.prefixSumValidIndex[0] + 1)), !0);
  }
  getTotalSum() {
    return this.values.length === 0 ? 0 : this._getPrefixSum(this.values.length - 1);
  }
  /**
   * Returns the sum of the first `index + 1` many items.
   * @returns `SUM(0 <= j <= index, values[j])`.
   */
  getPrefixSum(v) {
    return v < 0 ? 0 : (v = $D(v), this._getPrefixSum(v));
  }
  _getPrefixSum(v) {
    if (v <= this.prefixSumValidIndex[0])
      return this.prefixSum[v];
    let C = this.prefixSumValidIndex[0] + 1;
    C === 0 && (this.prefixSum[0] = this.values[0], C++), v >= this.values.length && (v = this.values.length - 1);
    for (let B = C; B <= v; B++)
      this.prefixSum[B] = this.prefixSum[B - 1] + this.values[B];
    return this.prefixSumValidIndex[0] = Math.max(this.prefixSumValidIndex[0], v), this.prefixSum[v];
  }
  getIndexOf(v) {
    v = Math.floor(v), this.getTotalSum();
    let C = 0, B = this.values.length - 1, ne = 0, pe = 0, Se = 0;
    for (; C <= B; )
      if (ne = C + (B - C) / 2 | 0, pe = this.prefixSum[ne], Se = pe - this.values[ne], v < Se)
        B = ne - 1;
      else if (v >= pe)
        C = ne + 1;
      else
        break;
    return new Ict(ne, v - Se);
  }
}
class Ict {
  constructor(v, C) {
    this.index = v, this.remainder = C, this._prefixSumIndexOfResultBrand = void 0, this.index = v, this.remainder = C;
  }
}
class kct {
  constructor(v, C, B, ne) {
    this._uri = v, this._lines = C, this._eol = B, this._versionId = ne, this._lineStarts = null, this._cachedTextValue = null;
  }
  dispose() {
    this._lines.length = 0;
  }
  get version() {
    return this._versionId;
  }
  getText() {
    return this._cachedTextValue === null && (this._cachedTextValue = this._lines.join(this._eol)), this._cachedTextValue;
  }
  onEvents(v) {
    v.eol && v.eol !== this._eol && (this._eol = v.eol, this._lineStarts = null);
    const C = v.changes;
    for (const B of C)
      this._acceptDeleteRange(B.range), this._acceptInsertText(new xm(B.range.startLineNumber, B.range.startColumn), B.text);
    this._versionId = v.versionId, this._cachedTextValue = null;
  }
  _ensureLineStarts() {
    if (!this._lineStarts) {
      const v = this._eol.length, C = this._lines.length, B = new Uint32Array(C);
      for (let ne = 0; ne < C; ne++)
        B[ne] = this._lines[ne].length + v;
      this._lineStarts = new Lct(B);
    }
  }
  /**
   * All changes to a line's text go through this method
   */
  _setLineText(v, C) {
    this._lines[v] = C, this._lineStarts && this._lineStarts.setValue(v, this._lines[v].length + this._eol.length);
  }
  _acceptDeleteRange(v) {
    if (v.startLineNumber === v.endLineNumber) {
      if (v.startColumn === v.endColumn)
        return;
      this._setLineText(v.startLineNumber - 1, this._lines[v.startLineNumber - 1].substring(0, v.startColumn - 1) + this._lines[v.startLineNumber - 1].substring(v.endColumn - 1));
      return;
    }
    this._setLineText(v.startLineNumber - 1, this._lines[v.startLineNumber - 1].substring(0, v.startColumn - 1) + this._lines[v.endLineNumber - 1].substring(v.endColumn - 1)), this._lines.splice(v.startLineNumber, v.endLineNumber - v.startLineNumber), this._lineStarts && this._lineStarts.removeValues(v.startLineNumber, v.endLineNumber - v.startLineNumber);
  }
  _acceptInsertText(v, C) {
    if (C.length === 0)
      return;
    const B = Ult(C);
    if (B.length === 1) {
      this._setLineText(v.lineNumber - 1, this._lines[v.lineNumber - 1].substring(0, v.column - 1) + B[0] + this._lines[v.lineNumber - 1].substring(v.column - 1));
      return;
    }
    B[B.length - 1] += this._lines[v.lineNumber - 1].substring(v.column - 1), this._setLineText(v.lineNumber - 1, this._lines[v.lineNumber - 1].substring(0, v.column - 1) + B[0]);
    const ne = new Uint32Array(B.length - 1);
    for (let pe = 1; pe < B.length; pe++)
      this._lines.splice(v.lineNumber + pe - 1, 0, B[pe]), ne[pe - 1] = B[pe].length + this._eol.length;
    this._lineStarts && this._lineStarts.insertValues(v.lineNumber, ne);
  }
}
const wct = "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";
function Dct(m = "") {
  let v = "(-?\\d*\\.\\d\\w*)|([^";
  for (const C of wct)
    m.indexOf(C) >= 0 || (v += "\\" + C);
  return v += "\\s]+)", new RegExp(v, "g");
}
const oNe = Dct();
function sNe(m) {
  let v = oNe;
  if (m && m instanceof RegExp)
    if (m.global)
      v = m;
    else {
      let C = "g";
      m.ignoreCase && (C += "i"), m.multiline && (C += "m"), m.unicode && (C += "u"), v = new RegExp(m.source, C);
    }
  return v.lastIndex = 0, v;
}
const lNe = new Elt();
lNe.unshift({
  maxLen: 1e3,
  windowSize: 15,
  timeBudget: 150
});
function gse(m, v, C, B, ne) {
  if (v = sNe(v), ne || (ne = dj.first(lNe)), C.length > ne.maxLen) {
    let Le = m - ne.maxLen / 2;
    return Le < 0 ? Le = 0 : B += Le, C = C.substring(Le, m + ne.maxLen / 2), gse(m, v, C, B, ne);
  }
  const pe = Date.now(), Se = m - 1 - B;
  let Ge = -1, ct = null;
  for (let Le = 1; !(Date.now() - pe >= ne.timeBudget); Le++) {
    const ze = Se - ne.windowSize * Le;
    v.lastIndex = Math.max(0, ze);
    const Xt = Rct(v, C, Se, Ge);
    if (!Xt && ct || (ct = Xt, ze <= 0))
      break;
    Ge = ze;
  }
  if (ct) {
    const Le = {
      word: ct[0],
      startColumn: B + 1 + ct.index,
      endColumn: B + 1 + ct.index + ct[0].length
    };
    return v.lastIndex = 0, Le;
  }
  return null;
}
function Rct(m, v, C, B) {
  let ne;
  for (; ne = m.exec(v); ) {
    const pe = ne.index || 0;
    if (pe <= C && m.lastIndex >= C)
      return ne;
    if (B > 0 && pe > B)
      return null;
  }
  return null;
}
class yse {
  constructor(v) {
    const C = MDe(v);
    this._defaultValue = C, this._asciiMap = yse._createAsciiMap(C), this._map = /* @__PURE__ */ new Map();
  }
  static _createAsciiMap(v) {
    const C = new Uint8Array(256);
    return C.fill(v), C;
  }
  set(v, C) {
    const B = MDe(C);
    v >= 0 && v < 256 ? this._asciiMap[v] = B : this._map.set(v, B);
  }
  get(v) {
    return v >= 0 && v < 256 ? this._asciiMap[v] : this._map.get(v) || this._defaultValue;
  }
  clear() {
    this._asciiMap.fill(this._defaultValue), this._map.clear();
  }
}
class Nct {
  constructor(v, C, B) {
    const ne = new Uint8Array(v * C);
    for (let pe = 0, Se = v * C; pe < Se; pe++)
      ne[pe] = B;
    this._data = ne, this.rows = v, this.cols = C;
  }
  get(v, C) {
    return this._data[v * this.cols + C];
  }
  set(v, C, B) {
    this._data[v * this.cols + C] = B;
  }
}
class Oct {
  constructor(v) {
    let C = 0, B = 0;
    for (let pe = 0, Se = v.length; pe < Se; pe++) {
      const [Ge, ct, Le] = v[pe];
      ct > C && (C = ct), Ge > B && (B = Ge), Le > B && (B = Le);
    }
    C++, B++;
    const ne = new Nct(
      B,
      C,
      0
      /* State.Invalid */
    );
    for (let pe = 0, Se = v.length; pe < Se; pe++) {
      const [Ge, ct, Le] = v[pe];
      ne.set(Ge, ct, Le);
    }
    this._states = ne, this._maxCharCode = C;
  }
  nextState(v, C) {
    return C < 0 || C >= this._maxCharCode ? 0 : this._states.get(v, C);
  }
}
let qoe = null;
function Pct() {
  return qoe === null && (qoe = new Oct([
    [
      1,
      104,
      2
      /* State.H */
    ],
    [
      1,
      72,
      2
      /* State.H */
    ],
    [
      1,
      102,
      6
      /* State.F */
    ],
    [
      1,
      70,
      6
      /* State.F */
    ],
    [
      2,
      116,
      3
      /* State.HT */
    ],
    [
      2,
      84,
      3
      /* State.HT */
    ],
    [
      3,
      116,
      4
      /* State.HTT */
    ],
    [
      3,
      84,
      4
      /* State.HTT */
    ],
    [
      4,
      112,
      5
      /* State.HTTP */
    ],
    [
      4,
      80,
      5
      /* State.HTTP */
    ],
    [
      5,
      115,
      9
      /* State.BeforeColon */
    ],
    [
      5,
      83,
      9
      /* State.BeforeColon */
    ],
    [
      5,
      58,
      10
      /* State.AfterColon */
    ],
    [
      6,
      105,
      7
      /* State.FI */
    ],
    [
      6,
      73,
      7
      /* State.FI */
    ],
    [
      7,
      108,
      8
      /* State.FIL */
    ],
    [
      7,
      76,
      8
      /* State.FIL */
    ],
    [
      8,
      101,
      9
      /* State.BeforeColon */
    ],
    [
      8,
      69,
      9
      /* State.BeforeColon */
    ],
    [
      9,
      58,
      10
      /* State.AfterColon */
    ],
    [
      10,
      47,
      11
      /* State.AlmostThere */
    ],
    [
      11,
      47,
      12
      /* State.End */
    ]
  ])), qoe;
}
let C4 = null;
function Mct() {
  if (C4 === null) {
    C4 = new yse(
      0
      /* CharacterClass.None */
    );
    const m = ` 	<>'"、。｡､，．：；‘〈「『〔（［｛｢｣｝］）〕』」〉’｀～…`;
    for (let C = 0; C < m.length; C++)
      C4.set(
        m.charCodeAt(C),
        1
        /* CharacterClass.ForceTermination */
      );
    const v = ".,;:";
    for (let C = 0; C < v.length; C++)
      C4.set(
        v.charCodeAt(C),
        2
        /* CharacterClass.CannotEndIn */
      );
  }
  return C4;
}
class pj {
  static _createLink(v, C, B, ne, pe) {
    let Se = pe - 1;
    do {
      const Ge = C.charCodeAt(Se);
      if (v.get(Ge) !== 2)
        break;
      Se--;
    } while (Se > ne);
    if (ne > 0) {
      const Ge = C.charCodeAt(ne - 1), ct = C.charCodeAt(Se);
      (Ge === 40 && ct === 41 || Ge === 91 && ct === 93 || Ge === 123 && ct === 125) && Se--;
    }
    return {
      range: {
        startLineNumber: B,
        startColumn: ne + 1,
        endLineNumber: B,
        endColumn: Se + 2
      },
      url: C.substring(ne, Se + 1)
    };
  }
  static computeLinks(v, C = Pct()) {
    const B = Mct(), ne = [];
    for (let pe = 1, Se = v.getLineCount(); pe <= Se; pe++) {
      const Ge = v.getLineContent(pe), ct = Ge.length;
      let Le = 0, ze = 0, Xt = 0, Jt = 1, dn = !1, kr = !1, ui = !1, la = !1;
      for (; Le < ct; ) {
        let Yn = !1;
        const nn = Ge.charCodeAt(Le);
        if (Jt === 13) {
          let Li;
          switch (nn) {
            case 40:
              dn = !0, Li = 0;
              break;
            case 41:
              Li = dn ? 0 : 1;
              break;
            case 91:
              ui = !0, kr = !0, Li = 0;
              break;
            case 93:
              ui = !1, Li = kr ? 0 : 1;
              break;
            case 123:
              la = !0, Li = 0;
              break;
            case 125:
              Li = la ? 0 : 1;
              break;
            case 39:
            case 34:
            case 96:
              Xt === nn ? Li = 1 : Xt === 39 || Xt === 34 || Xt === 96 ? Li = 0 : Li = 1;
              break;
            case 42:
              Li = Xt === 42 ? 1 : 0;
              break;
            case 124:
              Li = Xt === 124 ? 1 : 0;
              break;
            case 32:
              Li = ui ? 0 : 1;
              break;
            default:
              Li = B.get(nn);
          }
          Li === 1 && (ne.push(pj._createLink(B, Ge, pe, ze, Le)), Yn = !0);
        } else if (Jt === 12) {
          let Li;
          nn === 91 ? (kr = !0, Li = 0) : Li = B.get(nn), Li === 1 ? Yn = !0 : Jt = 13;
        } else
          Jt = C.nextState(Jt, nn), Jt === 0 && (Yn = !0);
        Yn && (Jt = 1, dn = !1, kr = !1, la = !1, ze = Le + 1, Xt = nn), Le++;
      }
      Jt === 13 && ne.push(pj._createLink(B, Ge, pe, ze, ct));
    }
    return ne;
  }
}
function Fct(m) {
  return !m || typeof m.getLineCount != "function" || typeof m.getLineContent != "function" ? [] : pj.computeLinks(m);
}
class ise {
  constructor() {
    this._defaultValueSet = [
      ["true", "false"],
      ["True", "False"],
      ["Private", "Public", "Friend", "ReadOnly", "Partial", "Protected", "WriteOnly"],
      ["public", "protected", "private"]
    ];
  }
  navigateValueSet(v, C, B, ne, pe) {
    if (v && C) {
      const Se = this.doNavigateValueSet(C, pe);
      if (Se)
        return {
          range: v,
          value: Se
        };
    }
    if (B && ne) {
      const Se = this.doNavigateValueSet(ne, pe);
      if (Se)
        return {
          range: B,
          value: Se
        };
    }
    return null;
  }
  doNavigateValueSet(v, C) {
    const B = this.numberReplace(v, C);
    return B !== null ? B : this.textReplace(v, C);
  }
  numberReplace(v, C) {
    const B = Math.pow(10, v.length - (v.lastIndexOf(".") + 1));
    let ne = Number(v);
    const pe = parseFloat(v);
    return !isNaN(ne) && !isNaN(pe) && ne === pe ? ne === 0 && !C ? null : (ne = Math.floor(ne * B), ne += C ? B : -B, String(ne / B)) : null;
  }
  textReplace(v, C) {
    return this.valueSetsReplace(this._defaultValueSet, v, C);
  }
  valueSetsReplace(v, C, B) {
    let ne = null;
    for (let pe = 0, Se = v.length; ne === null && pe < Se; pe++)
      ne = this.valueSetReplace(v[pe], C, B);
    return ne;
  }
  valueSetReplace(v, C, B) {
    let ne = v.indexOf(C);
    return ne >= 0 ? (ne += B ? 1 : -1, ne < 0 ? ne = v.length - 1 : ne %= v.length, v[ne]) : null;
  }
}
ise.INSTANCE = new ise();
const cNe = Object.freeze(function(m, v) {
  const C = setTimeout(m.bind(v), 0);
  return { dispose() {
    clearTimeout(C);
  } };
});
var mj;
(function(m) {
  function v(C) {
    return C === m.None || C === m.Cancelled || C instanceof sj ? !0 : !C || typeof C != "object" ? !1 : typeof C.isCancellationRequested == "boolean" && typeof C.onCancellationRequested == "function";
  }
  m.isCancellationToken = v, m.None = Object.freeze({
    isCancellationRequested: !1,
    onCancellationRequested: Yoe.None
  }), m.Cancelled = Object.freeze({
    isCancellationRequested: !0,
    onCancellationRequested: cNe
  });
})(mj || (mj = {}));
class sj {
  constructor() {
    this._isCancelled = !1, this._emitter = null;
  }
  cancel() {
    this._isCancelled || (this._isCancelled = !0, this._emitter && (this._emitter.fire(void 0), this.dispose()));
  }
  get isCancellationRequested() {
    return this._isCancelled;
  }
  get onCancellationRequested() {
    return this._isCancelled ? cNe : (this._emitter || (this._emitter = new $b()), this._emitter.event);
  }
  dispose() {
    this._emitter && (this._emitter.dispose(), this._emitter = null);
  }
}
class Bct {
  constructor(v) {
    this._token = void 0, this._parentListener = void 0, this._parentListener = v && v.onCancellationRequested(this.cancel, this);
  }
  get token() {
    return this._token || (this._token = new sj()), this._token;
  }
  cancel() {
    this._token ? this._token instanceof sj && this._token.cancel() : this._token = mj.Cancelled;
  }
  dispose(v = !1) {
    var C;
    v && this.cancel(), (C = this._parentListener) === null || C === void 0 || C.dispose(), this._token ? this._token instanceof sj && this._token.dispose() : this._token = mj.None;
  }
}
class vse {
  constructor() {
    this._keyCodeToStr = [], this._strToKeyCode = /* @__PURE__ */ Object.create(null);
  }
  define(v, C) {
    this._keyCodeToStr[v] = C, this._strToKeyCode[C.toLowerCase()] = v;
  }
  keyCodeToStr(v) {
    return this._keyCodeToStr[v];
  }
  strToKeyCode(v) {
    return this._strToKeyCode[v.toLowerCase()] || 0;
  }
}
const lj = new vse(), ase = new vse(), ose = new vse(), Gct = new Array(230), Uct = /* @__PURE__ */ Object.create(null), Vct = /* @__PURE__ */ Object.create(null);
(function() {
  const m = "", v = [
    // immutable, scanCode, scanCodeStr, keyCode, keyCodeStr, eventKeyCode, vkey, usUserSettingsLabel, generalUserSettingsLabel
    [1, 0, "None", 0, "unknown", 0, "VK_UNKNOWN", m, m],
    [1, 1, "Hyper", 0, m, 0, m, m, m],
    [1, 2, "Super", 0, m, 0, m, m, m],
    [1, 3, "Fn", 0, m, 0, m, m, m],
    [1, 4, "FnLock", 0, m, 0, m, m, m],
    [1, 5, "Suspend", 0, m, 0, m, m, m],
    [1, 6, "Resume", 0, m, 0, m, m, m],
    [1, 7, "Turbo", 0, m, 0, m, m, m],
    [1, 8, "Sleep", 0, m, 0, "VK_SLEEP", m, m],
    [1, 9, "WakeUp", 0, m, 0, m, m, m],
    [0, 10, "KeyA", 31, "A", 65, "VK_A", m, m],
    [0, 11, "KeyB", 32, "B", 66, "VK_B", m, m],
    [0, 12, "KeyC", 33, "C", 67, "VK_C", m, m],
    [0, 13, "KeyD", 34, "D", 68, "VK_D", m, m],
    [0, 14, "KeyE", 35, "E", 69, "VK_E", m, m],
    [0, 15, "KeyF", 36, "F", 70, "VK_F", m, m],
    [0, 16, "KeyG", 37, "G", 71, "VK_G", m, m],
    [0, 17, "KeyH", 38, "H", 72, "VK_H", m, m],
    [0, 18, "KeyI", 39, "I", 73, "VK_I", m, m],
    [0, 19, "KeyJ", 40, "J", 74, "VK_J", m, m],
    [0, 20, "KeyK", 41, "K", 75, "VK_K", m, m],
    [0, 21, "KeyL", 42, "L", 76, "VK_L", m, m],
    [0, 22, "KeyM", 43, "M", 77, "VK_M", m, m],
    [0, 23, "KeyN", 44, "N", 78, "VK_N", m, m],
    [0, 24, "KeyO", 45, "O", 79, "VK_O", m, m],
    [0, 25, "KeyP", 46, "P", 80, "VK_P", m, m],
    [0, 26, "KeyQ", 47, "Q", 81, "VK_Q", m, m],
    [0, 27, "KeyR", 48, "R", 82, "VK_R", m, m],
    [0, 28, "KeyS", 49, "S", 83, "VK_S", m, m],
    [0, 29, "KeyT", 50, "T", 84, "VK_T", m, m],
    [0, 30, "KeyU", 51, "U", 85, "VK_U", m, m],
    [0, 31, "KeyV", 52, "V", 86, "VK_V", m, m],
    [0, 32, "KeyW", 53, "W", 87, "VK_W", m, m],
    [0, 33, "KeyX", 54, "X", 88, "VK_X", m, m],
    [0, 34, "KeyY", 55, "Y", 89, "VK_Y", m, m],
    [0, 35, "KeyZ", 56, "Z", 90, "VK_Z", m, m],
    [0, 36, "Digit1", 22, "1", 49, "VK_1", m, m],
    [0, 37, "Digit2", 23, "2", 50, "VK_2", m, m],
    [0, 38, "Digit3", 24, "3", 51, "VK_3", m, m],
    [0, 39, "Digit4", 25, "4", 52, "VK_4", m, m],
    [0, 40, "Digit5", 26, "5", 53, "VK_5", m, m],
    [0, 41, "Digit6", 27, "6", 54, "VK_6", m, m],
    [0, 42, "Digit7", 28, "7", 55, "VK_7", m, m],
    [0, 43, "Digit8", 29, "8", 56, "VK_8", m, m],
    [0, 44, "Digit9", 30, "9", 57, "VK_9", m, m],
    [0, 45, "Digit0", 21, "0", 48, "VK_0", m, m],
    [1, 46, "Enter", 3, "Enter", 13, "VK_RETURN", m, m],
    [1, 47, "Escape", 9, "Escape", 27, "VK_ESCAPE", m, m],
    [1, 48, "Backspace", 1, "Backspace", 8, "VK_BACK", m, m],
    [1, 49, "Tab", 2, "Tab", 9, "VK_TAB", m, m],
    [1, 50, "Space", 10, "Space", 32, "VK_SPACE", m, m],
    [0, 51, "Minus", 88, "-", 189, "VK_OEM_MINUS", "-", "OEM_MINUS"],
    [0, 52, "Equal", 86, "=", 187, "VK_OEM_PLUS", "=", "OEM_PLUS"],
    [0, 53, "BracketLeft", 92, "[", 219, "VK_OEM_4", "[", "OEM_4"],
    [0, 54, "BracketRight", 94, "]", 221, "VK_OEM_6", "]", "OEM_6"],
    [0, 55, "Backslash", 93, "\\", 220, "VK_OEM_5", "\\", "OEM_5"],
    [0, 56, "IntlHash", 0, m, 0, m, m, m],
    // has been dropped from the w3c spec
    [0, 57, "Semicolon", 85, ";", 186, "VK_OEM_1", ";", "OEM_1"],
    [0, 58, "Quote", 95, "'", 222, "VK_OEM_7", "'", "OEM_7"],
    [0, 59, "Backquote", 91, "`", 192, "VK_OEM_3", "`", "OEM_3"],
    [0, 60, "Comma", 87, ",", 188, "VK_OEM_COMMA", ",", "OEM_COMMA"],
    [0, 61, "Period", 89, ".", 190, "VK_OEM_PERIOD", ".", "OEM_PERIOD"],
    [0, 62, "Slash", 90, "/", 191, "VK_OEM_2", "/", "OEM_2"],
    [1, 63, "CapsLock", 8, "CapsLock", 20, "VK_CAPITAL", m, m],
    [1, 64, "F1", 59, "F1", 112, "VK_F1", m, m],
    [1, 65, "F2", 60, "F2", 113, "VK_F2", m, m],
    [1, 66, "F3", 61, "F3", 114, "VK_F3", m, m],
    [1, 67, "F4", 62, "F4", 115, "VK_F4", m, m],
    [1, 68, "F5", 63, "F5", 116, "VK_F5", m, m],
    [1, 69, "F6", 64, "F6", 117, "VK_F6", m, m],
    [1, 70, "F7", 65, "F7", 118, "VK_F7", m, m],
    [1, 71, "F8", 66, "F8", 119, "VK_F8", m, m],
    [1, 72, "F9", 67, "F9", 120, "VK_F9", m, m],
    [1, 73, "F10", 68, "F10", 121, "VK_F10", m, m],
    [1, 74, "F11", 69, "F11", 122, "VK_F11", m, m],
    [1, 75, "F12", 70, "F12", 123, "VK_F12", m, m],
    [1, 76, "PrintScreen", 0, m, 0, m, m, m],
    [1, 77, "ScrollLock", 84, "ScrollLock", 145, "VK_SCROLL", m, m],
    [1, 78, "Pause", 7, "PauseBreak", 19, "VK_PAUSE", m, m],
    [1, 79, "Insert", 19, "Insert", 45, "VK_INSERT", m, m],
    [1, 80, "Home", 14, "Home", 36, "VK_HOME", m, m],
    [1, 81, "PageUp", 11, "PageUp", 33, "VK_PRIOR", m, m],
    [1, 82, "Delete", 20, "Delete", 46, "VK_DELETE", m, m],
    [1, 83, "End", 13, "End", 35, "VK_END", m, m],
    [1, 84, "PageDown", 12, "PageDown", 34, "VK_NEXT", m, m],
    [1, 85, "ArrowRight", 17, "RightArrow", 39, "VK_RIGHT", "Right", m],
    [1, 86, "ArrowLeft", 15, "LeftArrow", 37, "VK_LEFT", "Left", m],
    [1, 87, "ArrowDown", 18, "DownArrow", 40, "VK_DOWN", "Down", m],
    [1, 88, "ArrowUp", 16, "UpArrow", 38, "VK_UP", "Up", m],
    [1, 89, "NumLock", 83, "NumLock", 144, "VK_NUMLOCK", m, m],
    [1, 90, "NumpadDivide", 113, "NumPad_Divide", 111, "VK_DIVIDE", m, m],
    [1, 91, "NumpadMultiply", 108, "NumPad_Multiply", 106, "VK_MULTIPLY", m, m],
    [1, 92, "NumpadSubtract", 111, "NumPad_Subtract", 109, "VK_SUBTRACT", m, m],
    [1, 93, "NumpadAdd", 109, "NumPad_Add", 107, "VK_ADD", m, m],
    [1, 94, "NumpadEnter", 3, m, 0, m, m, m],
    [1, 95, "Numpad1", 99, "NumPad1", 97, "VK_NUMPAD1", m, m],
    [1, 96, "Numpad2", 100, "NumPad2", 98, "VK_NUMPAD2", m, m],
    [1, 97, "Numpad3", 101, "NumPad3", 99, "VK_NUMPAD3", m, m],
    [1, 98, "Numpad4", 102, "NumPad4", 100, "VK_NUMPAD4", m, m],
    [1, 99, "Numpad5", 103, "NumPad5", 101, "VK_NUMPAD5", m, m],
    [1, 100, "Numpad6", 104, "NumPad6", 102, "VK_NUMPAD6", m, m],
    [1, 101, "Numpad7", 105, "NumPad7", 103, "VK_NUMPAD7", m, m],
    [1, 102, "Numpad8", 106, "NumPad8", 104, "VK_NUMPAD8", m, m],
    [1, 103, "Numpad9", 107, "NumPad9", 105, "VK_NUMPAD9", m, m],
    [1, 104, "Numpad0", 98, "NumPad0", 96, "VK_NUMPAD0", m, m],
    [1, 105, "NumpadDecimal", 112, "NumPad_Decimal", 110, "VK_DECIMAL", m, m],
    [0, 106, "IntlBackslash", 97, "OEM_102", 226, "VK_OEM_102", m, m],
    [1, 107, "ContextMenu", 58, "ContextMenu", 93, m, m, m],
    [1, 108, "Power", 0, m, 0, m, m, m],
    [1, 109, "NumpadEqual", 0, m, 0, m, m, m],
    [1, 110, "F13", 71, "F13", 124, "VK_F13", m, m],
    [1, 111, "F14", 72, "F14", 125, "VK_F14", m, m],
    [1, 112, "F15", 73, "F15", 126, "VK_F15", m, m],
    [1, 113, "F16", 74, "F16", 127, "VK_F16", m, m],
    [1, 114, "F17", 75, "F17", 128, "VK_F17", m, m],
    [1, 115, "F18", 76, "F18", 129, "VK_F18", m, m],
    [1, 116, "F19", 77, "F19", 130, "VK_F19", m, m],
    [1, 117, "F20", 78, "F20", 131, "VK_F20", m, m],
    [1, 118, "F21", 79, "F21", 132, "VK_F21", m, m],
    [1, 119, "F22", 80, "F22", 133, "VK_F22", m, m],
    [1, 120, "F23", 81, "F23", 134, "VK_F23", m, m],
    [1, 121, "F24", 82, "F24", 135, "VK_F24", m, m],
    [1, 122, "Open", 0, m, 0, m, m, m],
    [1, 123, "Help", 0, m, 0, m, m, m],
    [1, 124, "Select", 0, m, 0, m, m, m],
    [1, 125, "Again", 0, m, 0, m, m, m],
    [1, 126, "Undo", 0, m, 0, m, m, m],
    [1, 127, "Cut", 0, m, 0, m, m, m],
    [1, 128, "Copy", 0, m, 0, m, m, m],
    [1, 129, "Paste", 0, m, 0, m, m, m],
    [1, 130, "Find", 0, m, 0, m, m, m],
    [1, 131, "AudioVolumeMute", 117, "AudioVolumeMute", 173, "VK_VOLUME_MUTE", m, m],
    [1, 132, "AudioVolumeUp", 118, "AudioVolumeUp", 175, "VK_VOLUME_UP", m, m],
    [1, 133, "AudioVolumeDown", 119, "AudioVolumeDown", 174, "VK_VOLUME_DOWN", m, m],
    [1, 134, "NumpadComma", 110, "NumPad_Separator", 108, "VK_SEPARATOR", m, m],
    [0, 135, "IntlRo", 115, "ABNT_C1", 193, "VK_ABNT_C1", m, m],
    [1, 136, "KanaMode", 0, m, 0, m, m, m],
    [0, 137, "IntlYen", 0, m, 0, m, m, m],
    [1, 138, "Convert", 0, m, 0, m, m, m],
    [1, 139, "NonConvert", 0, m, 0, m, m, m],
    [1, 140, "Lang1", 0, m, 0, m, m, m],
    [1, 141, "Lang2", 0, m, 0, m, m, m],
    [1, 142, "Lang3", 0, m, 0, m, m, m],
    [1, 143, "Lang4", 0, m, 0, m, m, m],
    [1, 144, "Lang5", 0, m, 0, m, m, m],
    [1, 145, "Abort", 0, m, 0, m, m, m],
    [1, 146, "Props", 0, m, 0, m, m, m],
    [1, 147, "NumpadParenLeft", 0, m, 0, m, m, m],
    [1, 148, "NumpadParenRight", 0, m, 0, m, m, m],
    [1, 149, "NumpadBackspace", 0, m, 0, m, m, m],
    [1, 150, "NumpadMemoryStore", 0, m, 0, m, m, m],
    [1, 151, "NumpadMemoryRecall", 0, m, 0, m, m, m],
    [1, 152, "NumpadMemoryClear", 0, m, 0, m, m, m],
    [1, 153, "NumpadMemoryAdd", 0, m, 0, m, m, m],
    [1, 154, "NumpadMemorySubtract", 0, m, 0, m, m, m],
    [1, 155, "NumpadClear", 131, "Clear", 12, "VK_CLEAR", m, m],
    [1, 156, "NumpadClearEntry", 0, m, 0, m, m, m],
    [1, 0, m, 5, "Ctrl", 17, "VK_CONTROL", m, m],
    [1, 0, m, 4, "Shift", 16, "VK_SHIFT", m, m],
    [1, 0, m, 6, "Alt", 18, "VK_MENU", m, m],
    [1, 0, m, 57, "Meta", 91, "VK_COMMAND", m, m],
    [1, 157, "ControlLeft", 5, m, 0, "VK_LCONTROL", m, m],
    [1, 158, "ShiftLeft", 4, m, 0, "VK_LSHIFT", m, m],
    [1, 159, "AltLeft", 6, m, 0, "VK_LMENU", m, m],
    [1, 160, "MetaLeft", 57, m, 0, "VK_LWIN", m, m],
    [1, 161, "ControlRight", 5, m, 0, "VK_RCONTROL", m, m],
    [1, 162, "ShiftRight", 4, m, 0, "VK_RSHIFT", m, m],
    [1, 163, "AltRight", 6, m, 0, "VK_RMENU", m, m],
    [1, 164, "MetaRight", 57, m, 0, "VK_RWIN", m, m],
    [1, 165, "BrightnessUp", 0, m, 0, m, m, m],
    [1, 166, "BrightnessDown", 0, m, 0, m, m, m],
    [1, 167, "MediaPlay", 0, m, 0, m, m, m],
    [1, 168, "MediaRecord", 0, m, 0, m, m, m],
    [1, 169, "MediaFastForward", 0, m, 0, m, m, m],
    [1, 170, "MediaRewind", 0, m, 0, m, m, m],
    [1, 171, "MediaTrackNext", 124, "MediaTrackNext", 176, "VK_MEDIA_NEXT_TRACK", m, m],
    [1, 172, "MediaTrackPrevious", 125, "MediaTrackPrevious", 177, "VK_MEDIA_PREV_TRACK", m, m],
    [1, 173, "MediaStop", 126, "MediaStop", 178, "VK_MEDIA_STOP", m, m],
    [1, 174, "Eject", 0, m, 0, m, m, m],
    [1, 175, "MediaPlayPause", 127, "MediaPlayPause", 179, "VK_MEDIA_PLAY_PAUSE", m, m],
    [1, 176, "MediaSelect", 128, "LaunchMediaPlayer", 181, "VK_MEDIA_LAUNCH_MEDIA_SELECT", m, m],
    [1, 177, "LaunchMail", 129, "LaunchMail", 180, "VK_MEDIA_LAUNCH_MAIL", m, m],
    [1, 178, "LaunchApp2", 130, "LaunchApp2", 183, "VK_MEDIA_LAUNCH_APP2", m, m],
    [1, 179, "LaunchApp1", 0, m, 0, "VK_MEDIA_LAUNCH_APP1", m, m],
    [1, 180, "SelectTask", 0, m, 0, m, m, m],
    [1, 181, "LaunchScreenSaver", 0, m, 0, m, m, m],
    [1, 182, "BrowserSearch", 120, "BrowserSearch", 170, "VK_BROWSER_SEARCH", m, m],
    [1, 183, "BrowserHome", 121, "BrowserHome", 172, "VK_BROWSER_HOME", m, m],
    [1, 184, "BrowserBack", 122, "BrowserBack", 166, "VK_BROWSER_BACK", m, m],
    [1, 185, "BrowserForward", 123, "BrowserForward", 167, "VK_BROWSER_FORWARD", m, m],
    [1, 186, "BrowserStop", 0, m, 0, "VK_BROWSER_STOP", m, m],
    [1, 187, "BrowserRefresh", 0, m, 0, "VK_BROWSER_REFRESH", m, m],
    [1, 188, "BrowserFavorites", 0, m, 0, "VK_BROWSER_FAVORITES", m, m],
    [1, 189, "ZoomToggle", 0, m, 0, m, m, m],
    [1, 190, "MailReply", 0, m, 0, m, m, m],
    [1, 191, "MailForward", 0, m, 0, m, m, m],
    [1, 192, "MailSend", 0, m, 0, m, m, m],
    // See https://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html
    // If an Input Method Editor is processing key input and the event is keydown, return 229.
    [1, 0, m, 114, "KeyInComposition", 229, m, m, m],
    [1, 0, m, 116, "ABNT_C2", 194, "VK_ABNT_C2", m, m],
    [1, 0, m, 96, "OEM_8", 223, "VK_OEM_8", m, m],
    [1, 0, m, 0, m, 0, "VK_KANA", m, m],
    [1, 0, m, 0, m, 0, "VK_HANGUL", m, m],
    [1, 0, m, 0, m, 0, "VK_JUNJA", m, m],
    [1, 0, m, 0, m, 0, "VK_FINAL", m, m],
    [1, 0, m, 0, m, 0, "VK_HANJA", m, m],
    [1, 0, m, 0, m, 0, "VK_KANJI", m, m],
    [1, 0, m, 0, m, 0, "VK_CONVERT", m, m],
    [1, 0, m, 0, m, 0, "VK_NONCONVERT", m, m],
    [1, 0, m, 0, m, 0, "VK_ACCEPT", m, m],
    [1, 0, m, 0, m, 0, "VK_MODECHANGE", m, m],
    [1, 0, m, 0, m, 0, "VK_SELECT", m, m],
    [1, 0, m, 0, m, 0, "VK_PRINT", m, m],
    [1, 0, m, 0, m, 0, "VK_EXECUTE", m, m],
    [1, 0, m, 0, m, 0, "VK_SNAPSHOT", m, m],
    [1, 0, m, 0, m, 0, "VK_HELP", m, m],
    [1, 0, m, 0, m, 0, "VK_APPS", m, m],
    [1, 0, m, 0, m, 0, "VK_PROCESSKEY", m, m],
    [1, 0, m, 0, m, 0, "VK_PACKET", m, m],
    [1, 0, m, 0, m, 0, "VK_DBE_SBCSCHAR", m, m],
    [1, 0, m, 0, m, 0, "VK_DBE_DBCSCHAR", m, m],
    [1, 0, m, 0, m, 0, "VK_ATTN", m, m],
    [1, 0, m, 0, m, 0, "VK_CRSEL", m, m],
    [1, 0, m, 0, m, 0, "VK_EXSEL", m, m],
    [1, 0, m, 0, m, 0, "VK_EREOF", m, m],
    [1, 0, m, 0, m, 0, "VK_PLAY", m, m],
    [1, 0, m, 0, m, 0, "VK_ZOOM", m, m],
    [1, 0, m, 0, m, 0, "VK_NONAME", m, m],
    [1, 0, m, 0, m, 0, "VK_PA1", m, m],
    [1, 0, m, 0, m, 0, "VK_OEM_CLEAR", m, m]
  ], C = [], B = [];
  for (const ne of v) {
    const [pe, Se, Ge, ct, Le, ze, Xt, Jt, dn] = ne;
    if (B[Se] || (B[Se] = !0, Uct[Ge] = Se, Vct[Ge.toLowerCase()] = Se), !C[ct]) {
      if (C[ct] = !0, !Le)
        throw new Error(`String representation missing for key code ${ct} around scan code ${Ge}`);
      lj.define(ct, Le), ase.define(ct, Jt || Le), ose.define(ct, dn || Jt || Le);
    }
    ze && (Gct[ze] = ct);
  }
})();
var FDe;
(function(m) {
  function v(Ge) {
    return lj.keyCodeToStr(Ge);
  }
  m.toString = v;
  function C(Ge) {
    return lj.strToKeyCode(Ge);
  }
  m.fromString = C;
  function B(Ge) {
    return ase.keyCodeToStr(Ge);
  }
  m.toUserSettingsUS = B;
  function ne(Ge) {
    return ose.keyCodeToStr(Ge);
  }
  m.toUserSettingsGeneral = ne;
  function pe(Ge) {
    return ase.strToKeyCode(Ge) || ose.strToKeyCode(Ge);
  }
  m.fromUserSettings = pe;
  function Se(Ge) {
    if (Ge >= 98 && Ge <= 113)
      return null;
    switch (Ge) {
      case 16:
        return "Up";
      case 18:
        return "Down";
      case 15:
        return "Left";
      case 17:
        return "Right";
    }
    return lj.keyCodeToStr(Ge);
  }
  m.toElectronAccelerator = Se;
})(FDe || (FDe = {}));
function jct(m, v) {
  const C = (v & 65535) << 16 >>> 0;
  return (m | C) >>> 0;
}
class mv extends Wl {
  constructor(v, C, B, ne) {
    super(v, C, B, ne), this.selectionStartLineNumber = v, this.selectionStartColumn = C, this.positionLineNumber = B, this.positionColumn = ne;
  }
  /**
   * Transform to a human-readable representation.
   */
  toString() {
    return "[" + this.selectionStartLineNumber + "," + this.selectionStartColumn + " -> " + this.positionLineNumber + "," + this.positionColumn + "]";
  }
  /**
   * Test if equals other selection.
   */
  equalsSelection(v) {
    return mv.selectionsEqual(this, v);
  }
  /**
   * Test if the two selections are equal.
   */
  static selectionsEqual(v, C) {
    return v.selectionStartLineNumber === C.selectionStartLineNumber && v.selectionStartColumn === C.selectionStartColumn && v.positionLineNumber === C.positionLineNumber && v.positionColumn === C.positionColumn;
  }
  /**
   * Get directions (LTR or RTL).
   */
  getDirection() {
    return this.selectionStartLineNumber === this.startLineNumber && this.selectionStartColumn === this.startColumn ? 0 : 1;
  }
  /**
   * Create a new selection with a different `positionLineNumber` and `positionColumn`.
   */
  setEndPosition(v, C) {
    return this.getDirection() === 0 ? new mv(this.startLineNumber, this.startColumn, v, C) : new mv(v, C, this.startLineNumber, this.startColumn);
  }
  /**
   * Get the position at `positionLineNumber` and `positionColumn`.
   */
  getPosition() {
    return new xm(this.positionLineNumber, this.positionColumn);
  }
  /**
   * Get the position at the start of the selection.
  */
  getSelectionStart() {
    return new xm(this.selectionStartLineNumber, this.selectionStartColumn);
  }
  /**
   * Create a new selection with a different `selectionStartLineNumber` and `selectionStartColumn`.
   */
  setStartPosition(v, C) {
    return this.getDirection() === 0 ? new mv(v, C, this.endLineNumber, this.endColumn) : new mv(this.endLineNumber, this.endColumn, v, C);
  }
  // ----
  /**
   * Create a `Selection` from one or two positions
   */
  static fromPositions(v, C = v) {
    return new mv(v.lineNumber, v.column, C.lineNumber, C.column);
  }
  /**
   * Creates a `Selection` from a range, given a direction.
   */
  static fromRange(v, C) {
    return C === 0 ? new mv(v.startLineNumber, v.startColumn, v.endLineNumber, v.endColumn) : new mv(v.endLineNumber, v.endColumn, v.startLineNumber, v.startColumn);
  }
  /**
   * Create a `Selection` from an `ISelection`.
   */
  static liftSelection(v) {
    return new mv(v.selectionStartLineNumber, v.selectionStartColumn, v.positionLineNumber, v.positionColumn);
  }
  /**
   * `a` equals `b`.
   */
  static selectionsArrEqual(v, C) {
    if (v && !C || !v && C)
      return !1;
    if (!v && !C)
      return !0;
    if (v.length !== C.length)
      return !1;
    for (let B = 0, ne = v.length; B < ne; B++)
      if (!this.selectionsEqual(v[B], C[B]))
        return !1;
    return !0;
  }
  /**
   * Test if `obj` is an `ISelection`.
   */
  static isISelection(v) {
    return v && typeof v.selectionStartLineNumber == "number" && typeof v.selectionStartColumn == "number" && typeof v.positionLineNumber == "number" && typeof v.positionColumn == "number";
  }
  /**
   * Create with a direction.
   */
  static createWithDirection(v, C, B, ne, pe) {
    return pe === 0 ? new mv(v, C, B, ne) : new mv(B, ne, v, C);
  }
}
const BDe = /* @__PURE__ */ Object.create(null);
function Ae(m, v) {
  if (Llt(v)) {
    const C = BDe[v];
    if (C === void 0)
      throw new Error(`${m} references an unknown codicon: ${v}`);
    v = C;
  }
  return BDe[m] = v, { id: m };
}
const gs = {
  // built-in icons, with image name
  add: Ae("add", 6e4),
  plus: Ae("plus", 6e4),
  gistNew: Ae("gist-new", 6e4),
  repoCreate: Ae("repo-create", 6e4),
  lightbulb: Ae("lightbulb", 60001),
  lightBulb: Ae("light-bulb", 60001),
  repo: Ae("repo", 60002),
  repoDelete: Ae("repo-delete", 60002),
  gistFork: Ae("gist-fork", 60003),
  repoForked: Ae("repo-forked", 60003),
  gitPullRequest: Ae("git-pull-request", 60004),
  gitPullRequestAbandoned: Ae("git-pull-request-abandoned", 60004),
  recordKeys: Ae("record-keys", 60005),
  keyboard: Ae("keyboard", 60005),
  tag: Ae("tag", 60006),
  tagAdd: Ae("tag-add", 60006),
  tagRemove: Ae("tag-remove", 60006),
  gitPullRequestLabel: Ae("git-pull-request-label", 60006),
  person: Ae("person", 60007),
  personFollow: Ae("person-follow", 60007),
  personOutline: Ae("person-outline", 60007),
  personFilled: Ae("person-filled", 60007),
  gitBranch: Ae("git-branch", 60008),
  gitBranchCreate: Ae("git-branch-create", 60008),
  gitBranchDelete: Ae("git-branch-delete", 60008),
  sourceControl: Ae("source-control", 60008),
  mirror: Ae("mirror", 60009),
  mirrorPublic: Ae("mirror-public", 60009),
  star: Ae("star", 60010),
  starAdd: Ae("star-add", 60010),
  starDelete: Ae("star-delete", 60010),
  starEmpty: Ae("star-empty", 60010),
  comment: Ae("comment", 60011),
  commentAdd: Ae("comment-add", 60011),
  alert: Ae("alert", 60012),
  warning: Ae("warning", 60012),
  search: Ae("search", 60013),
  searchSave: Ae("search-save", 60013),
  logOut: Ae("log-out", 60014),
  signOut: Ae("sign-out", 60014),
  logIn: Ae("log-in", 60015),
  signIn: Ae("sign-in", 60015),
  eye: Ae("eye", 60016),
  eyeUnwatch: Ae("eye-unwatch", 60016),
  eyeWatch: Ae("eye-watch", 60016),
  circleFilled: Ae("circle-filled", 60017),
  primitiveDot: Ae("primitive-dot", 60017),
  closeDirty: Ae("close-dirty", 60017),
  debugBreakpoint: Ae("debug-breakpoint", 60017),
  debugBreakpointDisabled: Ae("debug-breakpoint-disabled", 60017),
  debugHint: Ae("debug-hint", 60017),
  primitiveSquare: Ae("primitive-square", 60018),
  edit: Ae("edit", 60019),
  pencil: Ae("pencil", 60019),
  info: Ae("info", 60020),
  issueOpened: Ae("issue-opened", 60020),
  gistPrivate: Ae("gist-private", 60021),
  gitForkPrivate: Ae("git-fork-private", 60021),
  lock: Ae("lock", 60021),
  mirrorPrivate: Ae("mirror-private", 60021),
  close: Ae("close", 60022),
  removeClose: Ae("remove-close", 60022),
  x: Ae("x", 60022),
  repoSync: Ae("repo-sync", 60023),
  sync: Ae("sync", 60023),
  clone: Ae("clone", 60024),
  desktopDownload: Ae("desktop-download", 60024),
  beaker: Ae("beaker", 60025),
  microscope: Ae("microscope", 60025),
  vm: Ae("vm", 60026),
  deviceDesktop: Ae("device-desktop", 60026),
  file: Ae("file", 60027),
  fileText: Ae("file-text", 60027),
  more: Ae("more", 60028),
  ellipsis: Ae("ellipsis", 60028),
  kebabHorizontal: Ae("kebab-horizontal", 60028),
  mailReply: Ae("mail-reply", 60029),
  reply: Ae("reply", 60029),
  organization: Ae("organization", 60030),
  organizationFilled: Ae("organization-filled", 60030),
  organizationOutline: Ae("organization-outline", 60030),
  newFile: Ae("new-file", 60031),
  fileAdd: Ae("file-add", 60031),
  newFolder: Ae("new-folder", 60032),
  fileDirectoryCreate: Ae("file-directory-create", 60032),
  trash: Ae("trash", 60033),
  trashcan: Ae("trashcan", 60033),
  history: Ae("history", 60034),
  clock: Ae("clock", 60034),
  folder: Ae("folder", 60035),
  fileDirectory: Ae("file-directory", 60035),
  symbolFolder: Ae("symbol-folder", 60035),
  logoGithub: Ae("logo-github", 60036),
  markGithub: Ae("mark-github", 60036),
  github: Ae("github", 60036),
  terminal: Ae("terminal", 60037),
  console: Ae("console", 60037),
  repl: Ae("repl", 60037),
  zap: Ae("zap", 60038),
  symbolEvent: Ae("symbol-event", 60038),
  error: Ae("error", 60039),
  stop: Ae("stop", 60039),
  variable: Ae("variable", 60040),
  symbolVariable: Ae("symbol-variable", 60040),
  array: Ae("array", 60042),
  symbolArray: Ae("symbol-array", 60042),
  symbolModule: Ae("symbol-module", 60043),
  symbolPackage: Ae("symbol-package", 60043),
  symbolNamespace: Ae("symbol-namespace", 60043),
  symbolObject: Ae("symbol-object", 60043),
  symbolMethod: Ae("symbol-method", 60044),
  symbolFunction: Ae("symbol-function", 60044),
  symbolConstructor: Ae("symbol-constructor", 60044),
  symbolBoolean: Ae("symbol-boolean", 60047),
  symbolNull: Ae("symbol-null", 60047),
  symbolNumeric: Ae("symbol-numeric", 60048),
  symbolNumber: Ae("symbol-number", 60048),
  symbolStructure: Ae("symbol-structure", 60049),
  symbolStruct: Ae("symbol-struct", 60049),
  symbolParameter: Ae("symbol-parameter", 60050),
  symbolTypeParameter: Ae("symbol-type-parameter", 60050),
  symbolKey: Ae("symbol-key", 60051),
  symbolText: Ae("symbol-text", 60051),
  symbolReference: Ae("symbol-reference", 60052),
  goToFile: Ae("go-to-file", 60052),
  symbolEnum: Ae("symbol-enum", 60053),
  symbolValue: Ae("symbol-value", 60053),
  symbolRuler: Ae("symbol-ruler", 60054),
  symbolUnit: Ae("symbol-unit", 60054),
  activateBreakpoints: Ae("activate-breakpoints", 60055),
  archive: Ae("archive", 60056),
  arrowBoth: Ae("arrow-both", 60057),
  arrowDown: Ae("arrow-down", 60058),
  arrowLeft: Ae("arrow-left", 60059),
  arrowRight: Ae("arrow-right", 60060),
  arrowSmallDown: Ae("arrow-small-down", 60061),
  arrowSmallLeft: Ae("arrow-small-left", 60062),
  arrowSmallRight: Ae("arrow-small-right", 60063),
  arrowSmallUp: Ae("arrow-small-up", 60064),
  arrowUp: Ae("arrow-up", 60065),
  bell: Ae("bell", 60066),
  bold: Ae("bold", 60067),
  book: Ae("book", 60068),
  bookmark: Ae("bookmark", 60069),
  debugBreakpointConditionalUnverified: Ae("debug-breakpoint-conditional-unverified", 60070),
  debugBreakpointConditional: Ae("debug-breakpoint-conditional", 60071),
  debugBreakpointConditionalDisabled: Ae("debug-breakpoint-conditional-disabled", 60071),
  debugBreakpointDataUnverified: Ae("debug-breakpoint-data-unverified", 60072),
  debugBreakpointData: Ae("debug-breakpoint-data", 60073),
  debugBreakpointDataDisabled: Ae("debug-breakpoint-data-disabled", 60073),
  debugBreakpointLogUnverified: Ae("debug-breakpoint-log-unverified", 60074),
  debugBreakpointLog: Ae("debug-breakpoint-log", 60075),
  debugBreakpointLogDisabled: Ae("debug-breakpoint-log-disabled", 60075),
  briefcase: Ae("briefcase", 60076),
  broadcast: Ae("broadcast", 60077),
  browser: Ae("browser", 60078),
  bug: Ae("bug", 60079),
  calendar: Ae("calendar", 60080),
  caseSensitive: Ae("case-sensitive", 60081),
  check: Ae("check", 60082),
  checklist: Ae("checklist", 60083),
  chevronDown: Ae("chevron-down", 60084),
  dropDownButton: Ae("drop-down-button", 60084),
  chevronLeft: Ae("chevron-left", 60085),
  chevronRight: Ae("chevron-right", 60086),
  chevronUp: Ae("chevron-up", 60087),
  chromeClose: Ae("chrome-close", 60088),
  chromeMaximize: Ae("chrome-maximize", 60089),
  chromeMinimize: Ae("chrome-minimize", 60090),
  chromeRestore: Ae("chrome-restore", 60091),
  circle: Ae("circle", 60092),
  circleOutline: Ae("circle-outline", 60092),
  debugBreakpointUnverified: Ae("debug-breakpoint-unverified", 60092),
  circleSlash: Ae("circle-slash", 60093),
  circuitBoard: Ae("circuit-board", 60094),
  clearAll: Ae("clear-all", 60095),
  clippy: Ae("clippy", 60096),
  closeAll: Ae("close-all", 60097),
  cloudDownload: Ae("cloud-download", 60098),
  cloudUpload: Ae("cloud-upload", 60099),
  code: Ae("code", 60100),
  collapseAll: Ae("collapse-all", 60101),
  colorMode: Ae("color-mode", 60102),
  commentDiscussion: Ae("comment-discussion", 60103),
  compareChanges: Ae("compare-changes", 60157),
  creditCard: Ae("credit-card", 60105),
  dash: Ae("dash", 60108),
  dashboard: Ae("dashboard", 60109),
  database: Ae("database", 60110),
  debugContinue: Ae("debug-continue", 60111),
  debugDisconnect: Ae("debug-disconnect", 60112),
  debugPause: Ae("debug-pause", 60113),
  debugRestart: Ae("debug-restart", 60114),
  debugStart: Ae("debug-start", 60115),
  debugStepInto: Ae("debug-step-into", 60116),
  debugStepOut: Ae("debug-step-out", 60117),
  debugStepOver: Ae("debug-step-over", 60118),
  debugStop: Ae("debug-stop", 60119),
  debug: Ae("debug", 60120),
  deviceCameraVideo: Ae("device-camera-video", 60121),
  deviceCamera: Ae("device-camera", 60122),
  deviceMobile: Ae("device-mobile", 60123),
  diffAdded: Ae("diff-added", 60124),
  diffIgnored: Ae("diff-ignored", 60125),
  diffModified: Ae("diff-modified", 60126),
  diffRemoved: Ae("diff-removed", 60127),
  diffRenamed: Ae("diff-renamed", 60128),
  diff: Ae("diff", 60129),
  discard: Ae("discard", 60130),
  editorLayout: Ae("editor-layout", 60131),
  emptyWindow: Ae("empty-window", 60132),
  exclude: Ae("exclude", 60133),
  extensions: Ae("extensions", 60134),
  eyeClosed: Ae("eye-closed", 60135),
  fileBinary: Ae("file-binary", 60136),
  fileCode: Ae("file-code", 60137),
  fileMedia: Ae("file-media", 60138),
  filePdf: Ae("file-pdf", 60139),
  fileSubmodule: Ae("file-submodule", 60140),
  fileSymlinkDirectory: Ae("file-symlink-directory", 60141),
  fileSymlinkFile: Ae("file-symlink-file", 60142),
  fileZip: Ae("file-zip", 60143),
  files: Ae("files", 60144),
  filter: Ae("filter", 60145),
  flame: Ae("flame", 60146),
  foldDown: Ae("fold-down", 60147),
  foldUp: Ae("fold-up", 60148),
  fold: Ae("fold", 60149),
  folderActive: Ae("folder-active", 60150),
  folderOpened: Ae("folder-opened", 60151),
  gear: Ae("gear", 60152),
  gift: Ae("gift", 60153),
  gistSecret: Ae("gist-secret", 60154),
  gist: Ae("gist", 60155),
  gitCommit: Ae("git-commit", 60156),
  gitCompare: Ae("git-compare", 60157),
  gitMerge: Ae("git-merge", 60158),
  githubAction: Ae("github-action", 60159),
  githubAlt: Ae("github-alt", 60160),
  globe: Ae("globe", 60161),
  grabber: Ae("grabber", 60162),
  graph: Ae("graph", 60163),
  gripper: Ae("gripper", 60164),
  heart: Ae("heart", 60165),
  home: Ae("home", 60166),
  horizontalRule: Ae("horizontal-rule", 60167),
  hubot: Ae("hubot", 60168),
  inbox: Ae("inbox", 60169),
  issueClosed: Ae("issue-closed", 60324),
  issueReopened: Ae("issue-reopened", 60171),
  issues: Ae("issues", 60172),
  italic: Ae("italic", 60173),
  jersey: Ae("jersey", 60174),
  json: Ae("json", 60175),
  bracket: Ae("bracket", 60175),
  kebabVertical: Ae("kebab-vertical", 60176),
  key: Ae("key", 60177),
  law: Ae("law", 60178),
  lightbulbAutofix: Ae("lightbulb-autofix", 60179),
  linkExternal: Ae("link-external", 60180),
  link: Ae("link", 60181),
  listOrdered: Ae("list-ordered", 60182),
  listUnordered: Ae("list-unordered", 60183),
  liveShare: Ae("live-share", 60184),
  loading: Ae("loading", 60185),
  location: Ae("location", 60186),
  mailRead: Ae("mail-read", 60187),
  mail: Ae("mail", 60188),
  markdown: Ae("markdown", 60189),
  megaphone: Ae("megaphone", 60190),
  mention: Ae("mention", 60191),
  milestone: Ae("milestone", 60192),
  gitPullRequestMilestone: Ae("git-pull-request-milestone", 60192),
  mortarBoard: Ae("mortar-board", 60193),
  move: Ae("move", 60194),
  multipleWindows: Ae("multiple-windows", 60195),
  mute: Ae("mute", 60196),
  noNewline: Ae("no-newline", 60197),
  note: Ae("note", 60198),
  octoface: Ae("octoface", 60199),
  openPreview: Ae("open-preview", 60200),
  package: Ae("package", 60201),
  paintcan: Ae("paintcan", 60202),
  pin: Ae("pin", 60203),
  play: Ae("play", 60204),
  run: Ae("run", 60204),
  plug: Ae("plug", 60205),
  preserveCase: Ae("preserve-case", 60206),
  preview: Ae("preview", 60207),
  project: Ae("project", 60208),
  pulse: Ae("pulse", 60209),
  question: Ae("question", 60210),
  quote: Ae("quote", 60211),
  radioTower: Ae("radio-tower", 60212),
  reactions: Ae("reactions", 60213),
  references: Ae("references", 60214),
  refresh: Ae("refresh", 60215),
  regex: Ae("regex", 60216),
  remoteExplorer: Ae("remote-explorer", 60217),
  remote: Ae("remote", 60218),
  remove: Ae("remove", 60219),
  replaceAll: Ae("replace-all", 60220),
  replace: Ae("replace", 60221),
  repoClone: Ae("repo-clone", 60222),
  repoForcePush: Ae("repo-force-push", 60223),
  repoPull: Ae("repo-pull", 60224),
  repoPush: Ae("repo-push", 60225),
  report: Ae("report", 60226),
  requestChanges: Ae("request-changes", 60227),
  rocket: Ae("rocket", 60228),
  rootFolderOpened: Ae("root-folder-opened", 60229),
  rootFolder: Ae("root-folder", 60230),
  rss: Ae("rss", 60231),
  ruby: Ae("ruby", 60232),
  saveAll: Ae("save-all", 60233),
  saveAs: Ae("save-as", 60234),
  save: Ae("save", 60235),
  screenFull: Ae("screen-full", 60236),
  screenNormal: Ae("screen-normal", 60237),
  searchStop: Ae("search-stop", 60238),
  server: Ae("server", 60240),
  settingsGear: Ae("settings-gear", 60241),
  settings: Ae("settings", 60242),
  shield: Ae("shield", 60243),
  smiley: Ae("smiley", 60244),
  sortPrecedence: Ae("sort-precedence", 60245),
  splitHorizontal: Ae("split-horizontal", 60246),
  splitVertical: Ae("split-vertical", 60247),
  squirrel: Ae("squirrel", 60248),
  starFull: Ae("star-full", 60249),
  starHalf: Ae("star-half", 60250),
  symbolClass: Ae("symbol-class", 60251),
  symbolColor: Ae("symbol-color", 60252),
  symbolCustomColor: Ae("symbol-customcolor", 60252),
  symbolConstant: Ae("symbol-constant", 60253),
  symbolEnumMember: Ae("symbol-enum-member", 60254),
  symbolField: Ae("symbol-field", 60255),
  symbolFile: Ae("symbol-file", 60256),
  symbolInterface: Ae("symbol-interface", 60257),
  symbolKeyword: Ae("symbol-keyword", 60258),
  symbolMisc: Ae("symbol-misc", 60259),
  symbolOperator: Ae("symbol-operator", 60260),
  symbolProperty: Ae("symbol-property", 60261),
  wrench: Ae("wrench", 60261),
  wrenchSubaction: Ae("wrench-subaction", 60261),
  symbolSnippet: Ae("symbol-snippet", 60262),
  tasklist: Ae("tasklist", 60263),
  telescope: Ae("telescope", 60264),
  textSize: Ae("text-size", 60265),
  threeBars: Ae("three-bars", 60266),
  thumbsdown: Ae("thumbsdown", 60267),
  thumbsup: Ae("thumbsup", 60268),
  tools: Ae("tools", 60269),
  triangleDown: Ae("triangle-down", 60270),
  triangleLeft: Ae("triangle-left", 60271),
  triangleRight: Ae("triangle-right", 60272),
  triangleUp: Ae("triangle-up", 60273),
  twitter: Ae("twitter", 60274),
  unfold: Ae("unfold", 60275),
  unlock: Ae("unlock", 60276),
  unmute: Ae("unmute", 60277),
  unverified: Ae("unverified", 60278),
  verified: Ae("verified", 60279),
  versions: Ae("versions", 60280),
  vmActive: Ae("vm-active", 60281),
  vmOutline: Ae("vm-outline", 60282),
  vmRunning: Ae("vm-running", 60283),
  watch: Ae("watch", 60284),
  whitespace: Ae("whitespace", 60285),
  wholeWord: Ae("whole-word", 60286),
  window: Ae("window", 60287),
  wordWrap: Ae("word-wrap", 60288),
  zoomIn: Ae("zoom-in", 60289),
  zoomOut: Ae("zoom-out", 60290),
  listFilter: Ae("list-filter", 60291),
  listFlat: Ae("list-flat", 60292),
  listSelection: Ae("list-selection", 60293),
  selection: Ae("selection", 60293),
  listTree: Ae("list-tree", 60294),
  debugBreakpointFunctionUnverified: Ae("debug-breakpoint-function-unverified", 60295),
  debugBreakpointFunction: Ae("debug-breakpoint-function", 60296),
  debugBreakpointFunctionDisabled: Ae("debug-breakpoint-function-disabled", 60296),
  debugStackframeActive: Ae("debug-stackframe-active", 60297),
  circleSmallFilled: Ae("circle-small-filled", 60298),
  debugStackframeDot: Ae("debug-stackframe-dot", 60298),
  debugStackframe: Ae("debug-stackframe", 60299),
  debugStackframeFocused: Ae("debug-stackframe-focused", 60299),
  debugBreakpointUnsupported: Ae("debug-breakpoint-unsupported", 60300),
  symbolString: Ae("symbol-string", 60301),
  debugReverseContinue: Ae("debug-reverse-continue", 60302),
  debugStepBack: Ae("debug-step-back", 60303),
  debugRestartFrame: Ae("debug-restart-frame", 60304),
  callIncoming: Ae("call-incoming", 60306),
  callOutgoing: Ae("call-outgoing", 60307),
  menu: Ae("menu", 60308),
  expandAll: Ae("expand-all", 60309),
  feedback: Ae("feedback", 60310),
  gitPullRequestReviewer: Ae("git-pull-request-reviewer", 60310),
  groupByRefType: Ae("group-by-ref-type", 60311),
  ungroupByRefType: Ae("ungroup-by-ref-type", 60312),
  account: Ae("account", 60313),
  gitPullRequestAssignee: Ae("git-pull-request-assignee", 60313),
  bellDot: Ae("bell-dot", 60314),
  debugConsole: Ae("debug-console", 60315),
  library: Ae("library", 60316),
  output: Ae("output", 60317),
  runAll: Ae("run-all", 60318),
  syncIgnored: Ae("sync-ignored", 60319),
  pinned: Ae("pinned", 60320),
  githubInverted: Ae("github-inverted", 60321),
  debugAlt: Ae("debug-alt", 60305),
  serverProcess: Ae("server-process", 60322),
  serverEnvironment: Ae("server-environment", 60323),
  pass: Ae("pass", 60324),
  stopCircle: Ae("stop-circle", 60325),
  playCircle: Ae("play-circle", 60326),
  record: Ae("record", 60327),
  debugAltSmall: Ae("debug-alt-small", 60328),
  vmConnect: Ae("vm-connect", 60329),
  cloud: Ae("cloud", 60330),
  merge: Ae("merge", 60331),
  exportIcon: Ae("export", 60332),
  graphLeft: Ae("graph-left", 60333),
  magnet: Ae("magnet", 60334),
  notebook: Ae("notebook", 60335),
  redo: Ae("redo", 60336),
  checkAll: Ae("check-all", 60337),
  pinnedDirty: Ae("pinned-dirty", 60338),
  passFilled: Ae("pass-filled", 60339),
  circleLargeFilled: Ae("circle-large-filled", 60340),
  circleLarge: Ae("circle-large", 60341),
  circleLargeOutline: Ae("circle-large-outline", 60341),
  combine: Ae("combine", 60342),
  gather: Ae("gather", 60342),
  table: Ae("table", 60343),
  variableGroup: Ae("variable-group", 60344),
  typeHierarchy: Ae("type-hierarchy", 60345),
  typeHierarchySub: Ae("type-hierarchy-sub", 60346),
  typeHierarchySuper: Ae("type-hierarchy-super", 60347),
  gitPullRequestCreate: Ae("git-pull-request-create", 60348),
  runAbove: Ae("run-above", 60349),
  runBelow: Ae("run-below", 60350),
  notebookTemplate: Ae("notebook-template", 60351),
  debugRerun: Ae("debug-rerun", 60352),
  workspaceTrusted: Ae("workspace-trusted", 60353),
  workspaceUntrusted: Ae("workspace-untrusted", 60354),
  workspaceUnspecified: Ae("workspace-unspecified", 60355),
  terminalCmd: Ae("terminal-cmd", 60356),
  terminalDebian: Ae("terminal-debian", 60357),
  terminalLinux: Ae("terminal-linux", 60358),
  terminalPowershell: Ae("terminal-powershell", 60359),
  terminalTmux: Ae("terminal-tmux", 60360),
  terminalUbuntu: Ae("terminal-ubuntu", 60361),
  terminalBash: Ae("terminal-bash", 60362),
  arrowSwap: Ae("arrow-swap", 60363),
  copy: Ae("copy", 60364),
  personAdd: Ae("person-add", 60365),
  filterFilled: Ae("filter-filled", 60366),
  wand: Ae("wand", 60367),
  debugLineByLine: Ae("debug-line-by-line", 60368),
  inspect: Ae("inspect", 60369),
  layers: Ae("layers", 60370),
  layersDot: Ae("layers-dot", 60371),
  layersActive: Ae("layers-active", 60372),
  compass: Ae("compass", 60373),
  compassDot: Ae("compass-dot", 60374),
  compassActive: Ae("compass-active", 60375),
  azure: Ae("azure", 60376),
  issueDraft: Ae("issue-draft", 60377),
  gitPullRequestClosed: Ae("git-pull-request-closed", 60378),
  gitPullRequestDraft: Ae("git-pull-request-draft", 60379),
  debugAll: Ae("debug-all", 60380),
  debugCoverage: Ae("debug-coverage", 60381),
  runErrors: Ae("run-errors", 60382),
  folderLibrary: Ae("folder-library", 60383),
  debugContinueSmall: Ae("debug-continue-small", 60384),
  beakerStop: Ae("beaker-stop", 60385),
  graphLine: Ae("graph-line", 60386),
  graphScatter: Ae("graph-scatter", 60387),
  pieChart: Ae("pie-chart", 60388),
  bracketDot: Ae("bracket-dot", 60389),
  bracketError: Ae("bracket-error", 60390),
  lockSmall: Ae("lock-small", 60391),
  azureDevops: Ae("azure-devops", 60392),
  verifiedFilled: Ae("verified-filled", 60393),
  newLine: Ae("newline", 60394),
  layout: Ae("layout", 60395),
  layoutActivitybarLeft: Ae("layout-activitybar-left", 60396),
  layoutActivitybarRight: Ae("layout-activitybar-right", 60397),
  layoutPanelLeft: Ae("layout-panel-left", 60398),
  layoutPanelCenter: Ae("layout-panel-center", 60399),
  layoutPanelJustify: Ae("layout-panel-justify", 60400),
  layoutPanelRight: Ae("layout-panel-right", 60401),
  layoutPanel: Ae("layout-panel", 60402),
  layoutSidebarLeft: Ae("layout-sidebar-left", 60403),
  layoutSidebarRight: Ae("layout-sidebar-right", 60404),
  layoutStatusbar: Ae("layout-statusbar", 60405),
  layoutMenubar: Ae("layout-menubar", 60406),
  layoutCentered: Ae("layout-centered", 60407),
  layoutSidebarRightOff: Ae("layout-sidebar-right-off", 60416),
  layoutPanelOff: Ae("layout-panel-off", 60417),
  layoutSidebarLeftOff: Ae("layout-sidebar-left-off", 60418),
  target: Ae("target", 60408),
  indent: Ae("indent", 60409),
  recordSmall: Ae("record-small", 60410),
  errorSmall: Ae("error-small", 60411),
  arrowCircleDown: Ae("arrow-circle-down", 60412),
  arrowCircleLeft: Ae("arrow-circle-left", 60413),
  arrowCircleRight: Ae("arrow-circle-right", 60414),
  arrowCircleUp: Ae("arrow-circle-up", 60415),
  heartFilled: Ae("heart-filled", 60420),
  map: Ae("map", 60421),
  mapFilled: Ae("map-filled", 60422),
  circleSmall: Ae("circle-small", 60423),
  bellSlash: Ae("bell-slash", 60424),
  bellSlashDot: Ae("bell-slash-dot", 60425),
  commentUnresolved: Ae("comment-unresolved", 60426),
  gitPullRequestGoToChanges: Ae("git-pull-request-go-to-changes", 60427),
  gitPullRequestNewChanges: Ae("git-pull-request-new-changes", 60428),
  searchFuzzy: Ae("search-fuzzy", 60429),
  commentDraft: Ae("comment-draft", 60430),
  send: Ae("send", 60431),
  sparkle: Ae("sparkle", 60432),
  insert: Ae("insert", 60433),
  mic: Ae("mic", 60434),
  thumbsDownFilled: Ae("thumbsdown-filled", 60435),
  thumbsUpFilled: Ae("thumbsup-filled", 60436),
  coffee: Ae("coffee", 60437),
  snake: Ae("snake", 60438),
  game: Ae("game", 60439),
  vr: Ae("vr", 60440),
  chip: Ae("chip", 60441),
  piano: Ae("piano", 60442),
  music: Ae("music", 60443),
  micFilled: Ae("mic-filled", 60444),
  gitFetch: Ae("git-fetch", 60445),
  copilot: Ae("copilot", 60446),
  lightbulbSparkle: Ae("lightbulb-sparkle", 60447),
  lightbulbSparkleAutofix: Ae("lightbulb-sparkle-autofix", 60447),
  robot: Ae("robot", 60448),
  sparkleFilled: Ae("sparkle-filled", 60449),
  diffSingle: Ae("diff-single", 60450),
  diffMultiple: Ae("diff-multiple", 60451),
  // derived icons, that could become separate icons
  dialogError: Ae("dialog-error", "error"),
  dialogWarning: Ae("dialog-warning", "warning"),
  dialogInfo: Ae("dialog-info", "info"),
  dialogClose: Ae("dialog-close", "close"),
  treeItemExpanded: Ae("tree-item-expanded", "chevron-down"),
  // collapsed is done with rotation
  treeFilterOnTypeOn: Ae("tree-filter-on-type-on", "list-filter"),
  treeFilterOnTypeOff: Ae("tree-filter-on-type-off", "list-selection"),
  treeFilterClear: Ae("tree-filter-clear", "close"),
  treeItemLoading: Ae("tree-item-loading", "loading"),
  menuSelection: Ae("menu-selection", "check"),
  menuSubmenu: Ae("menu-submenu", "chevron-right"),
  menuBarMore: Ae("menubar-more", "more"),
  scrollbarButtonLeft: Ae("scrollbar-button-left", "triangle-left"),
  scrollbarButtonRight: Ae("scrollbar-button-right", "triangle-right"),
  scrollbarButtonUp: Ae("scrollbar-button-up", "triangle-up"),
  scrollbarButtonDown: Ae("scrollbar-button-down", "triangle-down"),
  toolBarMore: Ae("toolbar-more", "more"),
  quickInputBack: Ae("quick-input-back", "arrow-left")
};
class Hct {
  constructor() {
    this._tokenizationSupports = /* @__PURE__ */ new Map(), this._factories = /* @__PURE__ */ new Map(), this._onDidChange = new $b(), this.onDidChange = this._onDidChange.event, this._colorMap = null;
  }
  handleChange(v) {
    this._onDidChange.fire({
      changedLanguages: v,
      changedColorMap: !1
    });
  }
  register(v, C) {
    return this._tokenizationSupports.set(v, C), this.handleChange([v]), w4(() => {
      this._tokenizationSupports.get(v) === C && (this._tokenizationSupports.delete(v), this.handleChange([v]));
    });
  }
  get(v) {
    return this._tokenizationSupports.get(v) || null;
  }
  registerFactory(v, C) {
    var B;
    (B = this._factories.get(v)) === null || B === void 0 || B.dispose();
    const ne = new Wct(this, v, C);
    return this._factories.set(v, ne), w4(() => {
      const pe = this._factories.get(v);
      !pe || pe !== ne || (this._factories.delete(v), pe.dispose());
    });
  }
  async getOrCreate(v) {
    const C = this.get(v);
    if (C)
      return C;
    const B = this._factories.get(v);
    return !B || B.isResolved ? null : (await B.resolve(), this.get(v));
  }
  isResolved(v) {
    if (this.get(v))
      return !0;
    const B = this._factories.get(v);
    return !!(!B || B.isResolved);
  }
  setColorMap(v) {
    this._colorMap = v, this._onDidChange.fire({
      changedLanguages: Array.from(this._tokenizationSupports.keys()),
      changedColorMap: !0
    });
  }
  getColorMap() {
    return this._colorMap;
  }
  getDefaultBackground() {
    return this._colorMap && this._colorMap.length > 2 ? this._colorMap[
      2
      /* ColorId.DefaultBackground */
    ] : null;
  }
}
class Wct extends D4 {
  get isResolved() {
    return this._isResolved;
  }
  constructor(v, C, B) {
    super(), this._registry = v, this._languageId = C, this._factory = B, this._isDisposed = !1, this._resolvePromise = null, this._isResolved = !1;
  }
  dispose() {
    this._isDisposed = !0, super.dispose();
  }
  async resolve() {
    return this._resolvePromise || (this._resolvePromise = this._create()), this._resolvePromise;
  }
  async _create() {
    const v = await this._factory.tokenizationSupport;
    this._isResolved = !0, v && !this._isDisposed && this._register(this._registry.register(this._languageId, v));
  }
}
class zct {
  constructor(v, C, B) {
    this.offset = v, this.type = C, this.language = B, this._tokenBrand = void 0;
  }
  toString() {
    return "(" + this.offset + ", " + this.type + ")";
  }
}
var GDe;
(function(m) {
  const v = /* @__PURE__ */ new Map();
  v.set(0, gs.symbolMethod), v.set(1, gs.symbolFunction), v.set(2, gs.symbolConstructor), v.set(3, gs.symbolField), v.set(4, gs.symbolVariable), v.set(5, gs.symbolClass), v.set(6, gs.symbolStruct), v.set(7, gs.symbolInterface), v.set(8, gs.symbolModule), v.set(9, gs.symbolProperty), v.set(10, gs.symbolEvent), v.set(11, gs.symbolOperator), v.set(12, gs.symbolUnit), v.set(13, gs.symbolValue), v.set(15, gs.symbolEnum), v.set(14, gs.symbolConstant), v.set(15, gs.symbolEnum), v.set(16, gs.symbolEnumMember), v.set(17, gs.symbolKeyword), v.set(27, gs.symbolSnippet), v.set(18, gs.symbolText), v.set(19, gs.symbolColor), v.set(20, gs.symbolFile), v.set(21, gs.symbolReference), v.set(22, gs.symbolCustomColor), v.set(23, gs.symbolFolder), v.set(24, gs.symbolTypeParameter), v.set(25, gs.account), v.set(26, gs.issues);
  function C(pe) {
    let Se = v.get(pe);
    return Se || (console.info("No codicon found for CompletionItemKind " + pe), Se = gs.symbolProperty), Se;
  }
  m.toIcon = C;
  const B = /* @__PURE__ */ new Map();
  B.set(
    "method",
    0
    /* CompletionItemKind.Method */
  ), B.set(
    "function",
    1
    /* CompletionItemKind.Function */
  ), B.set(
    "constructor",
    2
    /* CompletionItemKind.Constructor */
  ), B.set(
    "field",
    3
    /* CompletionItemKind.Field */
  ), B.set(
    "variable",
    4
    /* CompletionItemKind.Variable */
  ), B.set(
    "class",
    5
    /* CompletionItemKind.Class */
  ), B.set(
    "struct",
    6
    /* CompletionItemKind.Struct */
  ), B.set(
    "interface",
    7
    /* CompletionItemKind.Interface */
  ), B.set(
    "module",
    8
    /* CompletionItemKind.Module */
  ), B.set(
    "property",
    9
    /* CompletionItemKind.Property */
  ), B.set(
    "event",
    10
    /* CompletionItemKind.Event */
  ), B.set(
    "operator",
    11
    /* CompletionItemKind.Operator */
  ), B.set(
    "unit",
    12
    /* CompletionItemKind.Unit */
  ), B.set(
    "value",
    13
    /* CompletionItemKind.Value */
  ), B.set(
    "constant",
    14
    /* CompletionItemKind.Constant */
  ), B.set(
    "enum",
    15
    /* CompletionItemKind.Enum */
  ), B.set(
    "enum-member",
    16
    /* CompletionItemKind.EnumMember */
  ), B.set(
    "enumMember",
    16
    /* CompletionItemKind.EnumMember */
  ), B.set(
    "keyword",
    17
    /* CompletionItemKind.Keyword */
  ), B.set(
    "snippet",
    27
    /* CompletionItemKind.Snippet */
  ), B.set(
    "text",
    18
    /* CompletionItemKind.Text */
  ), B.set(
    "color",
    19
    /* CompletionItemKind.Color */
  ), B.set(
    "file",
    20
    /* CompletionItemKind.File */
  ), B.set(
    "reference",
    21
    /* CompletionItemKind.Reference */
  ), B.set(
    "customcolor",
    22
    /* CompletionItemKind.Customcolor */
  ), B.set(
    "folder",
    23
    /* CompletionItemKind.Folder */
  ), B.set(
    "type-parameter",
    24
    /* CompletionItemKind.TypeParameter */
  ), B.set(
    "typeParameter",
    24
    /* CompletionItemKind.TypeParameter */
  ), B.set(
    "account",
    25
    /* CompletionItemKind.User */
  ), B.set(
    "issue",
    26
    /* CompletionItemKind.Issue */
  );
  function ne(pe, Se) {
    let Ge = B.get(pe);
    return typeof Ge > "u" && !Se && (Ge = 9), Ge;
  }
  m.fromString = ne;
})(GDe || (GDe = {}));
var UDe;
(function(m) {
  m[m.Automatic = 0] = "Automatic", m[m.Explicit = 1] = "Explicit";
})(UDe || (UDe = {}));
var VDe;
(function(m) {
  m[m.Invoke = 1] = "Invoke", m[m.TriggerCharacter = 2] = "TriggerCharacter", m[m.ContentChange = 3] = "ContentChange";
})(VDe || (VDe = {}));
var jDe;
(function(m) {
  m[m.Text = 0] = "Text", m[m.Read = 1] = "Read", m[m.Write = 2] = "Write";
})(jDe || (jDe = {}));
sd("Array", "array"), sd("Boolean", "boolean"), sd("Class", "class"), sd("Constant", "constant"), sd("Constructor", "constructor"), sd("Enum", "enumeration"), sd("EnumMember", "enumeration member"), sd("Event", "event"), sd("Field", "field"), sd("File", "file"), sd("Function", "function"), sd("Interface", "interface"), sd("Key", "key"), sd("Method", "method"), sd("Module", "module"), sd("Namespace", "namespace"), sd("Null", "null"), sd("Number", "number"), sd("Object", "object"), sd("Operator", "operator"), sd("Package", "package"), sd("Property", "property"), sd("String", "string"), sd("Struct", "struct"), sd("TypeParameter", "type parameter"), sd("Variable", "variable");
var HDe;
(function(m) {
  const v = /* @__PURE__ */ new Map();
  v.set(0, gs.symbolFile), v.set(1, gs.symbolModule), v.set(2, gs.symbolNamespace), v.set(3, gs.symbolPackage), v.set(4, gs.symbolClass), v.set(5, gs.symbolMethod), v.set(6, gs.symbolProperty), v.set(7, gs.symbolField), v.set(8, gs.symbolConstructor), v.set(9, gs.symbolEnum), v.set(10, gs.symbolInterface), v.set(11, gs.symbolFunction), v.set(12, gs.symbolVariable), v.set(13, gs.symbolConstant), v.set(14, gs.symbolString), v.set(15, gs.symbolNumber), v.set(16, gs.symbolBoolean), v.set(17, gs.symbolArray), v.set(18, gs.symbolObject), v.set(19, gs.symbolKey), v.set(20, gs.symbolNull), v.set(21, gs.symbolEnumMember), v.set(22, gs.symbolStruct), v.set(23, gs.symbolEvent), v.set(24, gs.symbolOperator), v.set(25, gs.symbolTypeParameter);
  function C(B) {
    let ne = v.get(B);
    return ne || (console.info("No codicon found for SymbolKind " + B), ne = gs.symbolProperty), ne;
  }
  m.toIcon = C;
})(HDe || (HDe = {}));
var WDe;
(function(m) {
  function v(C) {
    return !C || typeof C != "object" ? !1 : typeof C.id == "string" && typeof C.title == "string";
  }
  m.is = v;
})(WDe || (WDe = {}));
var zDe;
(function(m) {
  m[m.Type = 1] = "Type", m[m.Parameter = 2] = "Parameter";
})(zDe || (zDe = {}));
new Hct();
var qDe;
(function(m) {
  m[m.Unknown = 0] = "Unknown", m[m.Disabled = 1] = "Disabled", m[m.Enabled = 2] = "Enabled";
})(qDe || (qDe = {}));
var JDe;
(function(m) {
  m[m.Invoke = 1] = "Invoke", m[m.Auto = 2] = "Auto";
})(JDe || (JDe = {}));
var KDe;
(function(m) {
  m[m.None = 0] = "None", m[m.KeepWhitespace = 1] = "KeepWhitespace", m[m.InsertAsSnippet = 4] = "InsertAsSnippet";
})(KDe || (KDe = {}));
var XDe;
(function(m) {
  m[m.Method = 0] = "Method", m[m.Function = 1] = "Function", m[m.Constructor = 2] = "Constructor", m[m.Field = 3] = "Field", m[m.Variable = 4] = "Variable", m[m.Class = 5] = "Class", m[m.Struct = 6] = "Struct", m[m.Interface = 7] = "Interface", m[m.Module = 8] = "Module", m[m.Property = 9] = "Property", m[m.Event = 10] = "Event", m[m.Operator = 11] = "Operator", m[m.Unit = 12] = "Unit", m[m.Value = 13] = "Value", m[m.Constant = 14] = "Constant", m[m.Enum = 15] = "Enum", m[m.EnumMember = 16] = "EnumMember", m[m.Keyword = 17] = "Keyword", m[m.Text = 18] = "Text", m[m.Color = 19] = "Color", m[m.File = 20] = "File", m[m.Reference = 21] = "Reference", m[m.Customcolor = 22] = "Customcolor", m[m.Folder = 23] = "Folder", m[m.TypeParameter = 24] = "TypeParameter", m[m.User = 25] = "User", m[m.Issue = 26] = "Issue", m[m.Snippet = 27] = "Snippet";
})(XDe || (XDe = {}));
var YDe;
(function(m) {
  m[m.Deprecated = 1] = "Deprecated";
})(YDe || (YDe = {}));
var $De;
(function(m) {
  m[m.Invoke = 0] = "Invoke", m[m.TriggerCharacter = 1] = "TriggerCharacter", m[m.TriggerForIncompleteCompletions = 2] = "TriggerForIncompleteCompletions";
})($De || ($De = {}));
var QDe;
(function(m) {
  m[m.EXACT = 0] = "EXACT", m[m.ABOVE = 1] = "ABOVE", m[m.BELOW = 2] = "BELOW";
})(QDe || (QDe = {}));
var ZDe;
(function(m) {
  m[m.NotSet = 0] = "NotSet", m[m.ContentFlush = 1] = "ContentFlush", m[m.RecoverFromMarkers = 2] = "RecoverFromMarkers", m[m.Explicit = 3] = "Explicit", m[m.Paste = 4] = "Paste", m[m.Undo = 5] = "Undo", m[m.Redo = 6] = "Redo";
})(ZDe || (ZDe = {}));
var eRe;
(function(m) {
  m[m.LF = 1] = "LF", m[m.CRLF = 2] = "CRLF";
})(eRe || (eRe = {}));
var tRe;
(function(m) {
  m[m.Text = 0] = "Text", m[m.Read = 1] = "Read", m[m.Write = 2] = "Write";
})(tRe || (tRe = {}));
var nRe;
(function(m) {
  m[m.None = 0] = "None", m[m.Keep = 1] = "Keep", m[m.Brackets = 2] = "Brackets", m[m.Advanced = 3] = "Advanced", m[m.Full = 4] = "Full";
})(nRe || (nRe = {}));
var rRe;
(function(m) {
  m[m.acceptSuggestionOnCommitCharacter = 0] = "acceptSuggestionOnCommitCharacter", m[m.acceptSuggestionOnEnter = 1] = "acceptSuggestionOnEnter", m[m.accessibilitySupport = 2] = "accessibilitySupport", m[m.accessibilityPageSize = 3] = "accessibilityPageSize", m[m.ariaLabel = 4] = "ariaLabel", m[m.ariaRequired = 5] = "ariaRequired", m[m.autoClosingBrackets = 6] = "autoClosingBrackets", m[m.autoClosingComments = 7] = "autoClosingComments", m[m.screenReaderAnnounceInlineSuggestion = 8] = "screenReaderAnnounceInlineSuggestion", m[m.autoClosingDelete = 9] = "autoClosingDelete", m[m.autoClosingOvertype = 10] = "autoClosingOvertype", m[m.autoClosingQuotes = 11] = "autoClosingQuotes", m[m.autoIndent = 12] = "autoIndent", m[m.automaticLayout = 13] = "automaticLayout", m[m.autoSurround = 14] = "autoSurround", m[m.bracketPairColorization = 15] = "bracketPairColorization", m[m.guides = 16] = "guides", m[m.codeLens = 17] = "codeLens", m[m.codeLensFontFamily = 18] = "codeLensFontFamily", m[m.codeLensFontSize = 19] = "codeLensFontSize", m[m.colorDecorators = 20] = "colorDecorators", m[m.colorDecoratorsLimit = 21] = "colorDecoratorsLimit", m[m.columnSelection = 22] = "columnSelection", m[m.comments = 23] = "comments", m[m.contextmenu = 24] = "contextmenu", m[m.copyWithSyntaxHighlighting = 25] = "copyWithSyntaxHighlighting", m[m.cursorBlinking = 26] = "cursorBlinking", m[m.cursorSmoothCaretAnimation = 27] = "cursorSmoothCaretAnimation", m[m.cursorStyle = 28] = "cursorStyle", m[m.cursorSurroundingLines = 29] = "cursorSurroundingLines", m[m.cursorSurroundingLinesStyle = 30] = "cursorSurroundingLinesStyle", m[m.cursorWidth = 31] = "cursorWidth", m[m.disableLayerHinting = 32] = "disableLayerHinting", m[m.disableMonospaceOptimizations = 33] = "disableMonospaceOptimizations", m[m.domReadOnly = 34] = "domReadOnly", m[m.dragAndDrop = 35] = "dragAndDrop", m[m.dropIntoEditor = 36] = "dropIntoEditor", m[m.emptySelectionClipboard = 37] = "emptySelectionClipboard", m[m.experimentalWhitespaceRendering = 38] = "experimentalWhitespaceRendering", m[m.extraEditorClassName = 39] = "extraEditorClassName", m[m.fastScrollSensitivity = 40] = "fastScrollSensitivity", m[m.find = 41] = "find", m[m.fixedOverflowWidgets = 42] = "fixedOverflowWidgets", m[m.folding = 43] = "folding", m[m.foldingStrategy = 44] = "foldingStrategy", m[m.foldingHighlight = 45] = "foldingHighlight", m[m.foldingImportsByDefault = 46] = "foldingImportsByDefault", m[m.foldingMaximumRegions = 47] = "foldingMaximumRegions", m[m.unfoldOnClickAfterEndOfLine = 48] = "unfoldOnClickAfterEndOfLine", m[m.fontFamily = 49] = "fontFamily", m[m.fontInfo = 50] = "fontInfo", m[m.fontLigatures = 51] = "fontLigatures", m[m.fontSize = 52] = "fontSize", m[m.fontWeight = 53] = "fontWeight", m[m.fontVariations = 54] = "fontVariations", m[m.formatOnPaste = 55] = "formatOnPaste", m[m.formatOnType = 56] = "formatOnType", m[m.glyphMargin = 57] = "glyphMargin", m[m.gotoLocation = 58] = "gotoLocation", m[m.hideCursorInOverviewRuler = 59] = "hideCursorInOverviewRuler", m[m.hover = 60] = "hover", m[m.inDiffEditor = 61] = "inDiffEditor", m[m.inlineSuggest = 62] = "inlineSuggest", m[m.letterSpacing = 63] = "letterSpacing", m[m.lightbulb = 64] = "lightbulb", m[m.lineDecorationsWidth = 65] = "lineDecorationsWidth", m[m.lineHeight = 66] = "lineHeight", m[m.lineNumbers = 67] = "lineNumbers", m[m.lineNumbersMinChars = 68] = "lineNumbersMinChars", m[m.linkedEditing = 69] = "linkedEditing", m[m.links = 70] = "links", m[m.matchBrackets = 71] = "matchBrackets", m[m.minimap = 72] = "minimap", m[m.mouseStyle = 73] = "mouseStyle", m[m.mouseWheelScrollSensitivity = 74] = "mouseWheelScrollSensitivity", m[m.mouseWheelZoom = 75] = "mouseWheelZoom", m[m.multiCursorMergeOverlapping = 76] = "multiCursorMergeOverlapping", m[m.multiCursorModifier = 77] = "multiCursorModifier", m[m.multiCursorPaste = 78] = "multiCursorPaste", m[m.multiCursorLimit = 79] = "multiCursorLimit", m[m.occurrencesHighlight = 80] = "occurrencesHighlight", m[m.overviewRulerBorder = 81] = "overviewRulerBorder", m[m.overviewRulerLanes = 82] = "overviewRulerLanes", m[m.padding = 83] = "padding", m[m.pasteAs = 84] = "pasteAs", m[m.parameterHints = 85] = "parameterHints", m[m.peekWidgetDefaultFocus = 86] = "peekWidgetDefaultFocus", m[m.definitionLinkOpensInPeek = 87] = "definitionLinkOpensInPeek", m[m.quickSuggestions = 88] = "quickSuggestions", m[m.quickSuggestionsDelay = 89] = "quickSuggestionsDelay", m[m.readOnly = 90] = "readOnly", m[m.readOnlyMessage = 91] = "readOnlyMessage", m[m.renameOnType = 92] = "renameOnType", m[m.renderControlCharacters = 93] = "renderControlCharacters", m[m.renderFinalNewline = 94] = "renderFinalNewline", m[m.renderLineHighlight = 95] = "renderLineHighlight", m[m.renderLineHighlightOnlyWhenFocus = 96] = "renderLineHighlightOnlyWhenFocus", m[m.renderValidationDecorations = 97] = "renderValidationDecorations", m[m.renderWhitespace = 98] = "renderWhitespace", m[m.revealHorizontalRightPadding = 99] = "revealHorizontalRightPadding", m[m.roundedSelection = 100] = "roundedSelection", m[m.rulers = 101] = "rulers", m[m.scrollbar = 102] = "scrollbar", m[m.scrollBeyondLastColumn = 103] = "scrollBeyondLastColumn", m[m.scrollBeyondLastLine = 104] = "scrollBeyondLastLine", m[m.scrollPredominantAxis = 105] = "scrollPredominantAxis", m[m.selectionClipboard = 106] = "selectionClipboard", m[m.selectionHighlight = 107] = "selectionHighlight", m[m.selectOnLineNumbers = 108] = "selectOnLineNumbers", m[m.showFoldingControls = 109] = "showFoldingControls", m[m.showUnused = 110] = "showUnused", m[m.snippetSuggestions = 111] = "snippetSuggestions", m[m.smartSelect = 112] = "smartSelect", m[m.smoothScrolling = 113] = "smoothScrolling", m[m.stickyScroll = 114] = "stickyScroll", m[m.stickyTabStops = 115] = "stickyTabStops", m[m.stopRenderingLineAfter = 116] = "stopRenderingLineAfter", m[m.suggest = 117] = "suggest", m[m.suggestFontSize = 118] = "suggestFontSize", m[m.suggestLineHeight = 119] = "suggestLineHeight", m[m.suggestOnTriggerCharacters = 120] = "suggestOnTriggerCharacters", m[m.suggestSelection = 121] = "suggestSelection", m[m.tabCompletion = 122] = "tabCompletion", m[m.tabIndex = 123] = "tabIndex", m[m.unicodeHighlighting = 124] = "unicodeHighlighting", m[m.unusualLineTerminators = 125] = "unusualLineTerminators", m[m.useShadowDOM = 126] = "useShadowDOM", m[m.useTabStops = 127] = "useTabStops", m[m.wordBreak = 128] = "wordBreak", m[m.wordSeparators = 129] = "wordSeparators", m[m.wordWrap = 130] = "wordWrap", m[m.wordWrapBreakAfterCharacters = 131] = "wordWrapBreakAfterCharacters", m[m.wordWrapBreakBeforeCharacters = 132] = "wordWrapBreakBeforeCharacters", m[m.wordWrapColumn = 133] = "wordWrapColumn", m[m.wordWrapOverride1 = 134] = "wordWrapOverride1", m[m.wordWrapOverride2 = 135] = "wordWrapOverride2", m[m.wrappingIndent = 136] = "wrappingIndent", m[m.wrappingStrategy = 137] = "wrappingStrategy", m[m.showDeprecated = 138] = "showDeprecated", m[m.inlayHints = 139] = "inlayHints", m[m.editorClassName = 140] = "editorClassName", m[m.pixelRatio = 141] = "pixelRatio", m[m.tabFocusMode = 142] = "tabFocusMode", m[m.layoutInfo = 143] = "layoutInfo", m[m.wrappingInfo = 144] = "wrappingInfo", m[m.defaultColorDecorators = 145] = "defaultColorDecorators", m[m.colorDecoratorsActivatedOn = 146] = "colorDecoratorsActivatedOn", m[m.inlineCompletionsAccessibilityVerbose = 147] = "inlineCompletionsAccessibilityVerbose";
})(rRe || (rRe = {}));
var iRe;
(function(m) {
  m[m.TextDefined = 0] = "TextDefined", m[m.LF = 1] = "LF", m[m.CRLF = 2] = "CRLF";
})(iRe || (iRe = {}));
var aRe;
(function(m) {
  m[m.LF = 0] = "LF", m[m.CRLF = 1] = "CRLF";
})(aRe || (aRe = {}));
var oRe;
(function(m) {
  m[m.Left = 1] = "Left", m[m.Right = 2] = "Right";
})(oRe || (oRe = {}));
var sRe;
(function(m) {
  m[m.None = 0] = "None", m[m.Indent = 1] = "Indent", m[m.IndentOutdent = 2] = "IndentOutdent", m[m.Outdent = 3] = "Outdent";
})(sRe || (sRe = {}));
var lRe;
(function(m) {
  m[m.Both = 0] = "Both", m[m.Right = 1] = "Right", m[m.Left = 2] = "Left", m[m.None = 3] = "None";
})(lRe || (lRe = {}));
var cRe;
(function(m) {
  m[m.Type = 1] = "Type", m[m.Parameter = 2] = "Parameter";
})(cRe || (cRe = {}));
var uRe;
(function(m) {
  m[m.Automatic = 0] = "Automatic", m[m.Explicit = 1] = "Explicit";
})(uRe || (uRe = {}));
var sse;
(function(m) {
  m[m.DependsOnKbLayout = -1] = "DependsOnKbLayout", m[m.Unknown = 0] = "Unknown", m[m.Backspace = 1] = "Backspace", m[m.Tab = 2] = "Tab", m[m.Enter = 3] = "Enter", m[m.Shift = 4] = "Shift", m[m.Ctrl = 5] = "Ctrl", m[m.Alt = 6] = "Alt", m[m.PauseBreak = 7] = "PauseBreak", m[m.CapsLock = 8] = "CapsLock", m[m.Escape = 9] = "Escape", m[m.Space = 10] = "Space", m[m.PageUp = 11] = "PageUp", m[m.PageDown = 12] = "PageDown", m[m.End = 13] = "End", m[m.Home = 14] = "Home", m[m.LeftArrow = 15] = "LeftArrow", m[m.UpArrow = 16] = "UpArrow", m[m.RightArrow = 17] = "RightArrow", m[m.DownArrow = 18] = "DownArrow", m[m.Insert = 19] = "Insert", m[m.Delete = 20] = "Delete", m[m.Digit0 = 21] = "Digit0", m[m.Digit1 = 22] = "Digit1", m[m.Digit2 = 23] = "Digit2", m[m.Digit3 = 24] = "Digit3", m[m.Digit4 = 25] = "Digit4", m[m.Digit5 = 26] = "Digit5", m[m.Digit6 = 27] = "Digit6", m[m.Digit7 = 28] = "Digit7", m[m.Digit8 = 29] = "Digit8", m[m.Digit9 = 30] = "Digit9", m[m.KeyA = 31] = "KeyA", m[m.KeyB = 32] = "KeyB", m[m.KeyC = 33] = "KeyC", m[m.KeyD = 34] = "KeyD", m[m.KeyE = 35] = "KeyE", m[m.KeyF = 36] = "KeyF", m[m.KeyG = 37] = "KeyG", m[m.KeyH = 38] = "KeyH", m[m.KeyI = 39] = "KeyI", m[m.KeyJ = 40] = "KeyJ", m[m.KeyK = 41] = "KeyK", m[m.KeyL = 42] = "KeyL", m[m.KeyM = 43] = "KeyM", m[m.KeyN = 44] = "KeyN", m[m.KeyO = 45] = "KeyO", m[m.KeyP = 46] = "KeyP", m[m.KeyQ = 47] = "KeyQ", m[m.KeyR = 48] = "KeyR", m[m.KeyS = 49] = "KeyS", m[m.KeyT = 50] = "KeyT", m[m.KeyU = 51] = "KeyU", m[m.KeyV = 52] = "KeyV", m[m.KeyW = 53] = "KeyW", m[m.KeyX = 54] = "KeyX", m[m.KeyY = 55] = "KeyY", m[m.KeyZ = 56] = "KeyZ", m[m.Meta = 57] = "Meta", m[m.ContextMenu = 58] = "ContextMenu", m[m.F1 = 59] = "F1", m[m.F2 = 60] = "F2", m[m.F3 = 61] = "F3", m[m.F4 = 62] = "F4", m[m.F5 = 63] = "F5", m[m.F6 = 64] = "F6", m[m.F7 = 65] = "F7", m[m.F8 = 66] = "F8", m[m.F9 = 67] = "F9", m[m.F10 = 68] = "F10", m[m.F11 = 69] = "F11", m[m.F12 = 70] = "F12", m[m.F13 = 71] = "F13", m[m.F14 = 72] = "F14", m[m.F15 = 73] = "F15", m[m.F16 = 74] = "F16", m[m.F17 = 75] = "F17", m[m.F18 = 76] = "F18", m[m.F19 = 77] = "F19", m[m.F20 = 78] = "F20", m[m.F21 = 79] = "F21", m[m.F22 = 80] = "F22", m[m.F23 = 81] = "F23", m[m.F24 = 82] = "F24", m[m.NumLock = 83] = "NumLock", m[m.ScrollLock = 84] = "ScrollLock", m[m.Semicolon = 85] = "Semicolon", m[m.Equal = 86] = "Equal", m[m.Comma = 87] = "Comma", m[m.Minus = 88] = "Minus", m[m.Period = 89] = "Period", m[m.Slash = 90] = "Slash", m[m.Backquote = 91] = "Backquote", m[m.BracketLeft = 92] = "BracketLeft", m[m.Backslash = 93] = "Backslash", m[m.BracketRight = 94] = "BracketRight", m[m.Quote = 95] = "Quote", m[m.OEM_8 = 96] = "OEM_8", m[m.IntlBackslash = 97] = "IntlBackslash", m[m.Numpad0 = 98] = "Numpad0", m[m.Numpad1 = 99] = "Numpad1", m[m.Numpad2 = 100] = "Numpad2", m[m.Numpad3 = 101] = "Numpad3", m[m.Numpad4 = 102] = "Numpad4", m[m.Numpad5 = 103] = "Numpad5", m[m.Numpad6 = 104] = "Numpad6", m[m.Numpad7 = 105] = "Numpad7", m[m.Numpad8 = 106] = "Numpad8", m[m.Numpad9 = 107] = "Numpad9", m[m.NumpadMultiply = 108] = "NumpadMultiply", m[m.NumpadAdd = 109] = "NumpadAdd", m[m.NUMPAD_SEPARATOR = 110] = "NUMPAD_SEPARATOR", m[m.NumpadSubtract = 111] = "NumpadSubtract", m[m.NumpadDecimal = 112] = "NumpadDecimal", m[m.NumpadDivide = 113] = "NumpadDivide", m[m.KEY_IN_COMPOSITION = 114] = "KEY_IN_COMPOSITION", m[m.ABNT_C1 = 115] = "ABNT_C1", m[m.ABNT_C2 = 116] = "ABNT_C2", m[m.AudioVolumeMute = 117] = "AudioVolumeMute", m[m.AudioVolumeUp = 118] = "AudioVolumeUp", m[m.AudioVolumeDown = 119] = "AudioVolumeDown", m[m.BrowserSearch = 120] = "BrowserSearch", m[m.BrowserHome = 121] = "BrowserHome", m[m.BrowserBack = 122] = "BrowserBack", m[m.BrowserForward = 123] = "BrowserForward", m[m.MediaTrackNext = 124] = "MediaTrackNext", m[m.MediaTrackPrevious = 125] = "MediaTrackPrevious", m[m.MediaStop = 126] = "MediaStop", m[m.MediaPlayPause = 127] = "MediaPlayPause", m[m.LaunchMediaPlayer = 128] = "LaunchMediaPlayer", m[m.LaunchMail = 129] = "LaunchMail", m[m.LaunchApp2 = 130] = "LaunchApp2", m[m.Clear = 131] = "Clear", m[m.MAX_VALUE = 132] = "MAX_VALUE";
})(sse || (sse = {}));
var lse;
(function(m) {
  m[m.Hint = 1] = "Hint", m[m.Info = 2] = "Info", m[m.Warning = 4] = "Warning", m[m.Error = 8] = "Error";
})(lse || (lse = {}));
var cse;
(function(m) {
  m[m.Unnecessary = 1] = "Unnecessary", m[m.Deprecated = 2] = "Deprecated";
})(cse || (cse = {}));
var dRe;
(function(m) {
  m[m.Inline = 1] = "Inline", m[m.Gutter = 2] = "Gutter";
})(dRe || (dRe = {}));
var fRe;
(function(m) {
  m[m.UNKNOWN = 0] = "UNKNOWN", m[m.TEXTAREA = 1] = "TEXTAREA", m[m.GUTTER_GLYPH_MARGIN = 2] = "GUTTER_GLYPH_MARGIN", m[m.GUTTER_LINE_NUMBERS = 3] = "GUTTER_LINE_NUMBERS", m[m.GUTTER_LINE_DECORATIONS = 4] = "GUTTER_LINE_DECORATIONS", m[m.GUTTER_VIEW_ZONE = 5] = "GUTTER_VIEW_ZONE", m[m.CONTENT_TEXT = 6] = "CONTENT_TEXT", m[m.CONTENT_EMPTY = 7] = "CONTENT_EMPTY", m[m.CONTENT_VIEW_ZONE = 8] = "CONTENT_VIEW_ZONE", m[m.CONTENT_WIDGET = 9] = "CONTENT_WIDGET", m[m.OVERVIEW_RULER = 10] = "OVERVIEW_RULER", m[m.SCROLLBAR = 11] = "SCROLLBAR", m[m.OVERLAY_WIDGET = 12] = "OVERLAY_WIDGET", m[m.OUTSIDE_EDITOR = 13] = "OUTSIDE_EDITOR";
})(fRe || (fRe = {}));
var _Re;
(function(m) {
  m[m.TOP_RIGHT_CORNER = 0] = "TOP_RIGHT_CORNER", m[m.BOTTOM_RIGHT_CORNER = 1] = "BOTTOM_RIGHT_CORNER", m[m.TOP_CENTER = 2] = "TOP_CENTER";
})(_Re || (_Re = {}));
var pRe;
(function(m) {
  m[m.Left = 1] = "Left", m[m.Center = 2] = "Center", m[m.Right = 4] = "Right", m[m.Full = 7] = "Full";
})(pRe || (pRe = {}));
var mRe;
(function(m) {
  m[m.Left = 0] = "Left", m[m.Right = 1] = "Right", m[m.None = 2] = "None", m[m.LeftOfInjectedText = 3] = "LeftOfInjectedText", m[m.RightOfInjectedText = 4] = "RightOfInjectedText";
})(mRe || (mRe = {}));
var hRe;
(function(m) {
  m[m.Off = 0] = "Off", m[m.On = 1] = "On", m[m.Relative = 2] = "Relative", m[m.Interval = 3] = "Interval", m[m.Custom = 4] = "Custom";
})(hRe || (hRe = {}));
var gRe;
(function(m) {
  m[m.None = 0] = "None", m[m.Text = 1] = "Text", m[m.Blocks = 2] = "Blocks";
})(gRe || (gRe = {}));
var yRe;
(function(m) {
  m[m.Smooth = 0] = "Smooth", m[m.Immediate = 1] = "Immediate";
})(yRe || (yRe = {}));
var vRe;
(function(m) {
  m[m.Auto = 1] = "Auto", m[m.Hidden = 2] = "Hidden", m[m.Visible = 3] = "Visible";
})(vRe || (vRe = {}));
var use;
(function(m) {
  m[m.LTR = 0] = "LTR", m[m.RTL = 1] = "RTL";
})(use || (use = {}));
var bRe;
(function(m) {
  m.Off = "off", m.OnCode = "onCode", m.On = "on";
})(bRe || (bRe = {}));
var ERe;
(function(m) {
  m[m.Invoke = 1] = "Invoke", m[m.TriggerCharacter = 2] = "TriggerCharacter", m[m.ContentChange = 3] = "ContentChange";
})(ERe || (ERe = {}));
var TRe;
(function(m) {
  m[m.File = 0] = "File", m[m.Module = 1] = "Module", m[m.Namespace = 2] = "Namespace", m[m.Package = 3] = "Package", m[m.Class = 4] = "Class", m[m.Method = 5] = "Method", m[m.Property = 6] = "Property", m[m.Field = 7] = "Field", m[m.Constructor = 8] = "Constructor", m[m.Enum = 9] = "Enum", m[m.Interface = 10] = "Interface", m[m.Function = 11] = "Function", m[m.Variable = 12] = "Variable", m[m.Constant = 13] = "Constant", m[m.String = 14] = "String", m[m.Number = 15] = "Number", m[m.Boolean = 16] = "Boolean", m[m.Array = 17] = "Array", m[m.Object = 18] = "Object", m[m.Key = 19] = "Key", m[m.Null = 20] = "Null", m[m.EnumMember = 21] = "EnumMember", m[m.Struct = 22] = "Struct", m[m.Event = 23] = "Event", m[m.Operator = 24] = "Operator", m[m.TypeParameter = 25] = "TypeParameter";
})(TRe || (TRe = {}));
var SRe;
(function(m) {
  m[m.Deprecated = 1] = "Deprecated";
})(SRe || (SRe = {}));
var xRe;
(function(m) {
  m[m.Hidden = 0] = "Hidden", m[m.Blink = 1] = "Blink", m[m.Smooth = 2] = "Smooth", m[m.Phase = 3] = "Phase", m[m.Expand = 4] = "Expand", m[m.Solid = 5] = "Solid";
})(xRe || (xRe = {}));
var ARe;
(function(m) {
  m[m.Line = 1] = "Line", m[m.Block = 2] = "Block", m[m.Underline = 3] = "Underline", m[m.LineThin = 4] = "LineThin", m[m.BlockOutline = 5] = "BlockOutline", m[m.UnderlineThin = 6] = "UnderlineThin";
})(ARe || (ARe = {}));
var CRe;
(function(m) {
  m[m.AlwaysGrowsWhenTypingAtEdges = 0] = "AlwaysGrowsWhenTypingAtEdges", m[m.NeverGrowsWhenTypingAtEdges = 1] = "NeverGrowsWhenTypingAtEdges", m[m.GrowsOnlyWhenTypingBefore = 2] = "GrowsOnlyWhenTypingBefore", m[m.GrowsOnlyWhenTypingAfter = 3] = "GrowsOnlyWhenTypingAfter";
})(CRe || (CRe = {}));
var LRe;
(function(m) {
  m[m.None = 0] = "None", m[m.Same = 1] = "Same", m[m.Indent = 2] = "Indent", m[m.DeepIndent = 3] = "DeepIndent";
})(LRe || (LRe = {}));
class M4 {
  static chord(v, C) {
    return jct(v, C);
  }
}
M4.CtrlCmd = 2048;
M4.Shift = 1024;
M4.Alt = 512;
M4.WinCtrl = 256;
function qct() {
  return {
    editor: void 0,
    // undefined override expected here
    languages: void 0,
    // undefined override expected here
    CancellationTokenSource: Bct,
    Emitter: $b,
    KeyCode: sse,
    KeyMod: M4,
    Position: xm,
    Range: Wl,
    Selection: mv,
    SelectionDirection: use,
    MarkerSeverity: lse,
    MarkerTag: cse,
    Uri: eI,
    Token: zct
  };
}
var IRe;
(function(m) {
  m[m.Left = 1] = "Left", m[m.Center = 2] = "Center", m[m.Right = 4] = "Right", m[m.Full = 7] = "Full";
})(IRe || (IRe = {}));
var kRe;
(function(m) {
  m[m.Left = 1] = "Left", m[m.Right = 2] = "Right";
})(kRe || (kRe = {}));
var wRe;
(function(m) {
  m[m.Inline = 1] = "Inline", m[m.Gutter = 2] = "Gutter";
})(wRe || (wRe = {}));
var DRe;
(function(m) {
  m[m.Both = 0] = "Both", m[m.Right = 1] = "Right", m[m.Left = 2] = "Left", m[m.None = 3] = "None";
})(DRe || (DRe = {}));
function Jct(m, v, C, B, ne) {
  if (B === 0)
    return !0;
  const pe = v.charCodeAt(B - 1);
  if (m.get(pe) !== 0 || pe === 13 || pe === 10)
    return !0;
  if (ne > 0) {
    const Se = v.charCodeAt(B);
    if (m.get(Se) !== 0)
      return !0;
  }
  return !1;
}
function Kct(m, v, C, B, ne) {
  if (B + ne === C)
    return !0;
  const pe = v.charCodeAt(B + ne);
  if (m.get(pe) !== 0 || pe === 13 || pe === 10)
    return !0;
  if (ne > 0) {
    const Se = v.charCodeAt(B + ne - 1);
    if (m.get(Se) !== 0)
      return !0;
  }
  return !1;
}
function Xct(m, v, C, B, ne) {
  return Jct(m, v, C, B, ne) && Kct(m, v, C, B, ne);
}
class Yct {
  constructor(v, C) {
    this._wordSeparators = v, this._searchRegex = C, this._prevMatchStartIndex = -1, this._prevMatchLength = 0;
  }
  reset(v) {
    this._searchRegex.lastIndex = v, this._prevMatchStartIndex = -1, this._prevMatchLength = 0;
  }
  next(v) {
    const C = v.length;
    let B;
    do {
      if (this._prevMatchStartIndex + this._prevMatchLength === C || (B = this._searchRegex.exec(v), !B))
        return null;
      const ne = B.index, pe = B[0].length;
      if (ne === this._prevMatchStartIndex && pe === this._prevMatchLength) {
        if (pe === 0) {
          zlt(v, C, this._searchRegex.lastIndex) > 65535 ? this._searchRegex.lastIndex += 2 : this._searchRegex.lastIndex += 1;
          continue;
        }
        return null;
      }
      if (this._prevMatchStartIndex = ne, this._prevMatchLength = pe, !this._wordSeparators || Xct(this._wordSeparators, v, C, ne, pe))
        return B;
    } while (B);
    return null;
  }
}
function $ct(m, v = "Unreachable") {
  throw new Error(v);
}
function hj(m) {
  if (!m()) {
    debugger;
    m(), XRe(new sA("Assertion Failed"));
  }
}
function uNe(m, v) {
  let C = 0;
  for (; C < m.length - 1; ) {
    const B = m[C], ne = m[C + 1];
    if (!v(B, ne))
      return !1;
    C++;
  }
  return !0;
}
class Qct {
  static computeUnicodeHighlights(v, C, B) {
    const ne = B ? B.startLineNumber : 1, pe = B ? B.endLineNumber : v.getLineCount(), Se = new RRe(C), Ge = Se.getCandidateCodePoints();
    let ct;
    Ge === "allNonBasicAscii" ? ct = new RegExp("[^\\t\\n\\r\\x20-\\x7E]", "g") : ct = new RegExp(`${Zct(Array.from(Ge))}`, "g");
    const Le = new Yct(null, ct), ze = [];
    let Xt = !1, Jt, dn = 0, kr = 0, ui = 0;
    e:
      for (let la = ne, Yn = pe; la <= Yn; la++) {
        const nn = v.getLineContent(la), Li = nn.length;
        Le.reset(0);
        do
          if (Jt = Le.next(nn), Jt) {
            let vi = Jt.index, ya = Jt.index + Jt[0].length;
            if (vi > 0) {
              const kc = nn.charCodeAt(vi - 1);
              ese(kc) && vi--;
            }
            if (ya + 1 < Li) {
              const kc = nn.charCodeAt(ya - 1);
              ese(kc) && ya++;
            }
            const Go = nn.substring(vi, ya);
            let jr = gse(vi + 1, oNe, nn, 0);
            jr && jr.endColumn <= vi + 1 && (jr = null);
            const es = Se.shouldHighlightNonBasicASCII(Go, jr ? jr.word : null);
            if (es !== 0) {
              if (es === 3 ? dn++ : es === 2 ? kr++ : es === 1 ? ui++ : $ct(), ze.length >= 1e3) {
                Xt = !0;
                break e;
              }
              ze.push(new Wl(la, vi + 1, la, ya + 1));
            }
          }
        while (Jt);
      }
    return {
      ranges: ze,
      hasMore: Xt,
      ambiguousCharacterCount: dn,
      invisibleCharacterCount: kr,
      nonBasicAsciiCharacterCount: ui
    };
  }
  static computeUnicodeHighlightReason(v, C) {
    const B = new RRe(C);
    switch (B.shouldHighlightNonBasicASCII(v, null)) {
      case 0:
        return null;
      case 2:
        return {
          kind: 1
          /* UnicodeHighlighterReasonKind.Invisible */
        };
      case 3: {
        const pe = v.codePointAt(0), Se = B.ambiguousCharacters.getPrimaryConfusable(pe), Ge = rI.getLocales().filter((ct) => !rI.getInstance(/* @__PURE__ */ new Set([...C.allowedLocales, ct])).isAmbiguous(pe));
        return { kind: 0, confusableWith: String.fromCodePoint(Se), notAmbiguousInLocales: Ge };
      }
      case 1:
        return {
          kind: 2
          /* UnicodeHighlighterReasonKind.NonBasicAscii */
        };
    }
  }
}
function Zct(m, v) {
  return `[${Glt(m.map((B) => String.fromCodePoint(B)).join(""))}]`;
}
class RRe {
  constructor(v) {
    this.options = v, this.allowedCodePoints = new Set(v.allowedCodePoints), this.ambiguousCharacters = rI.getInstance(new Set(v.allowedLocales));
  }
  getCandidateCodePoints() {
    if (this.options.nonBasicASCII)
      return "allNonBasicAscii";
    const v = /* @__PURE__ */ new Set();
    if (this.options.invisibleCharacters)
      for (const C of lA.codePoints)
        NRe(String.fromCodePoint(C)) || v.add(C);
    if (this.options.ambiguousCharacters)
      for (const C of this.ambiguousCharacters.getConfusableCodePoints())
        v.add(C);
    for (const C of this.allowedCodePoints)
      v.delete(C);
    return v;
  }
  shouldHighlightNonBasicASCII(v, C) {
    const B = v.codePointAt(0);
    if (this.allowedCodePoints.has(B))
      return 0;
    if (this.options.nonBasicASCII)
      return 1;
    let ne = !1, pe = !1;
    if (C)
      for (const Se of C) {
        const Ge = Se.codePointAt(0), ct = Jlt(Se);
        ne = ne || ct, !ct && !this.ambiguousCharacters.isAmbiguous(Ge) && !lA.isInvisibleCharacter(Ge) && (pe = !0);
      }
    return (
      /* Don't allow mixing weird looking characters with ASCII */
      !ne && /* Is there an obviously weird looking character? */
      pe ? 0 : this.options.invisibleCharacters && !NRe(v) && lA.isInvisibleCharacter(B) ? 2 : this.options.ambiguousCharacters && this.ambiguousCharacters.isAmbiguous(B) ? 3 : 0
    );
  }
}
function NRe(m) {
  return m === " " || m === `
` || m === "	";
}
class cj {
  constructor(v, C, B) {
    this.changes = v, this.moves = C, this.hitTimeout = B;
  }
}
class eut {
  constructor(v, C) {
    this.lineRangeMapping = v, this.changes = C;
  }
}
class Pl {
  static addRange(v, C) {
    let B = 0;
    for (; B < C.length && C[B].endExclusive < v.start; )
      B++;
    let ne = B;
    for (; ne < C.length && C[ne].start <= v.endExclusive; )
      ne++;
    if (B === ne)
      C.splice(B, 0, v);
    else {
      const pe = Math.min(v.start, C[B].start), Se = Math.max(v.endExclusive, C[ne - 1].endExclusive);
      C.splice(B, ne - B, new Pl(pe, Se));
    }
  }
  static tryCreate(v, C) {
    if (!(v > C))
      return new Pl(v, C);
  }
  static ofLength(v) {
    return new Pl(0, v);
  }
  static ofStartAndLength(v, C) {
    return new Pl(v, v + C);
  }
  constructor(v, C) {
    if (this.start = v, this.endExclusive = C, v > C)
      throw new sA(`Invalid range: ${this.toString()}`);
  }
  get isEmpty() {
    return this.start === this.endExclusive;
  }
  delta(v) {
    return new Pl(this.start + v, this.endExclusive + v);
  }
  deltaStart(v) {
    return new Pl(this.start + v, this.endExclusive);
  }
  deltaEnd(v) {
    return new Pl(this.start, this.endExclusive + v);
  }
  get length() {
    return this.endExclusive - this.start;
  }
  toString() {
    return `[${this.start}, ${this.endExclusive})`;
  }
  equals(v) {
    return this.start === v.start && this.endExclusive === v.endExclusive;
  }
  containsRange(v) {
    return this.start <= v.start && v.endExclusive <= this.endExclusive;
  }
  contains(v) {
    return this.start <= v && v < this.endExclusive;
  }
  /**
   * for all numbers n: range1.contains(n) or range2.contains(n) => range1.join(range2).contains(n)
   * The joined range is the smallest range that contains both ranges.
   */
  join(v) {
    return new Pl(Math.min(this.start, v.start), Math.max(this.endExclusive, v.endExclusive));
  }
  /**
   * for all numbers n: range1.contains(n) and range2.contains(n) <=> range1.intersect(range2).contains(n)
   *
   * The resulting range is empty if the ranges do not intersect, but touch.
   * If the ranges don't even touch, the result is undefined.
   */
  intersect(v) {
    const C = Math.max(this.start, v.start), B = Math.min(this.endExclusive, v.endExclusive);
    if (C <= B)
      return new Pl(C, B);
  }
  isBefore(v) {
    return this.endExclusive <= v.start;
  }
  isAfter(v) {
    return this.start >= v.endExclusive;
  }
  slice(v) {
    return v.slice(this.start, this.endExclusive);
  }
  /**
   * Returns the given value if it is contained in this instance, otherwise the closest value that is contained.
   * The range must not be empty.
   */
  clip(v) {
    if (this.isEmpty)
      throw new sA(`Invalid clipping range: ${this.toString()}`);
    return Math.max(this.start, Math.min(this.endExclusive - 1, v));
  }
  /**
   * Returns `r := value + k * length` such that `r` is contained in this range.
   * The range must not be empty.
   *
   * E.g. `[5, 10).clipCyclic(10) === 5`, `[5, 10).clipCyclic(11) === 6` and `[5, 10).clipCyclic(4) === 9`.
   */
  clipCyclic(v) {
    if (this.isEmpty)
      throw new sA(`Invalid clipping range: ${this.toString()}`);
    return v < this.start ? this.endExclusive - (this.start - v) % this.length : v >= this.endExclusive ? this.start + (v - this.start) % this.length : v;
  }
  forEach(v) {
    for (let C = this.start; C < this.endExclusive; C++)
      v(C);
  }
}
function oR(m, v) {
  const C = N4(m, v);
  return C === -1 ? void 0 : m[C];
}
function N4(m, v, C = 0, B = m.length) {
  let ne = C, pe = B;
  for (; ne < pe; ) {
    const Se = Math.floor((ne + pe) / 2);
    v(m[Se]) ? ne = Se + 1 : pe = Se;
  }
  return ne - 1;
}
function tut(m, v) {
  const C = dse(m, v);
  return C === m.length ? void 0 : m[C];
}
function dse(m, v, C = 0, B = m.length) {
  let ne = C, pe = B;
  for (; ne < pe; ) {
    const Se = Math.floor((ne + pe) / 2);
    v(m[Se]) ? pe = Se : ne = Se + 1;
  }
  return ne;
}
class F4 {
  constructor(v) {
    this._array = v, this._findLastMonotonousLastIdx = 0;
  }
  /**
   * The predicate must be monotonous, i.e. `arr.map(predicate)` must be like `[true, ..., true, false, ..., false]`!
   * For subsequent calls, current predicate must be weaker than (or equal to) the previous predicate, i.e. more entries must be `true`.
   */
  findLastMonotonous(v) {
    if (F4.assertInvariants) {
      if (this._prevFindLastPredicate) {
        for (const B of this._array)
          if (this._prevFindLastPredicate(B) && !v(B))
            throw new Error("MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.");
      }
      this._prevFindLastPredicate = v;
    }
    const C = N4(this._array, v, this._findLastMonotonousLastIdx);
    return this._findLastMonotonousLastIdx = C + 1, C === -1 ? void 0 : this._array[C];
  }
}
F4.assertInvariants = !1;
class mc {
  static fromRange(v) {
    return new mc(v.startLineNumber, v.endLineNumber);
  }
  static fromRangeInclusive(v) {
    return new mc(v.startLineNumber, v.endLineNumber + 1);
  }
  /**
   * @param lineRanges An array of sorted line ranges.
   */
  static joinMany(v) {
    if (v.length === 0)
      return [];
    let C = new zE(v[0].slice());
    for (let B = 1; B < v.length; B++)
      C = C.getUnion(new zE(v[B].slice()));
    return C.ranges;
  }
  static ofLength(v, C) {
    return new mc(v, v + C);
  }
  /**
   * @internal
   */
  static deserialize(v) {
    return new mc(v[0], v[1]);
  }
  constructor(v, C) {
    if (v > C)
      throw new sA(`startLineNumber ${v} cannot be after endLineNumberExclusive ${C}`);
    this.startLineNumber = v, this.endLineNumberExclusive = C;
  }
  /**
   * Indicates if this line range contains the given line number.
   */
  contains(v) {
    return this.startLineNumber <= v && v < this.endLineNumberExclusive;
  }
  /**
   * Indicates if this line range is empty.
   */
  get isEmpty() {
    return this.startLineNumber === this.endLineNumberExclusive;
  }
  /**
   * Moves this line range by the given offset of line numbers.
   */
  delta(v) {
    return new mc(this.startLineNumber + v, this.endLineNumberExclusive + v);
  }
  deltaLength(v) {
    return new mc(this.startLineNumber, this.endLineNumberExclusive + v);
  }
  /**
   * The number of lines this line range spans.
   */
  get length() {
    return this.endLineNumberExclusive - this.startLineNumber;
  }
  /**
   * Creates a line range that combines this and the given line range.
   */
  join(v) {
    return new mc(Math.min(this.startLineNumber, v.startLineNumber), Math.max(this.endLineNumberExclusive, v.endLineNumberExclusive));
  }
  toString() {
    return `[${this.startLineNumber},${this.endLineNumberExclusive})`;
  }
  /**
   * The resulting range is empty if the ranges do not intersect, but touch.
   * If the ranges don't even touch, the result is undefined.
   */
  intersect(v) {
    const C = Math.max(this.startLineNumber, v.startLineNumber), B = Math.min(this.endLineNumberExclusive, v.endLineNumberExclusive);
    if (C <= B)
      return new mc(C, B);
  }
  intersectsStrict(v) {
    return this.startLineNumber < v.endLineNumberExclusive && v.startLineNumber < this.endLineNumberExclusive;
  }
  overlapOrTouch(v) {
    return this.startLineNumber <= v.endLineNumberExclusive && v.startLineNumber <= this.endLineNumberExclusive;
  }
  equals(v) {
    return this.startLineNumber === v.startLineNumber && this.endLineNumberExclusive === v.endLineNumberExclusive;
  }
  toInclusiveRange() {
    return this.isEmpty ? null : new Wl(this.startLineNumber, 1, this.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER);
  }
  toExclusiveRange() {
    return new Wl(this.startLineNumber, 1, this.endLineNumberExclusive, 1);
  }
  mapToLineArray(v) {
    const C = [];
    for (let B = this.startLineNumber; B < this.endLineNumberExclusive; B++)
      C.push(v(B));
    return C;
  }
  forEach(v) {
    for (let C = this.startLineNumber; C < this.endLineNumberExclusive; C++)
      v(C);
  }
  /**
   * @internal
   */
  serialize() {
    return [this.startLineNumber, this.endLineNumberExclusive];
  }
  includes(v) {
    return this.startLineNumber <= v && v < this.endLineNumberExclusive;
  }
  /**
   * Converts this 1-based line range to a 0-based offset range (subtracts 1!).
   * @internal
   */
  toOffsetRange() {
    return new Pl(this.startLineNumber - 1, this.endLineNumberExclusive - 1);
  }
}
class zE {
  constructor(v = []) {
    this._normalizedRanges = v;
  }
  get ranges() {
    return this._normalizedRanges;
  }
  addRange(v) {
    if (v.length === 0)
      return;
    const C = dse(this._normalizedRanges, (ne) => ne.endLineNumberExclusive >= v.startLineNumber), B = N4(this._normalizedRanges, (ne) => ne.startLineNumber <= v.endLineNumberExclusive) + 1;
    if (C === B)
      this._normalizedRanges.splice(C, 0, v);
    else if (C === B - 1) {
      const ne = this._normalizedRanges[C];
      this._normalizedRanges[C] = ne.join(v);
    } else {
      const ne = this._normalizedRanges[C].join(this._normalizedRanges[B - 1]).join(v);
      this._normalizedRanges.splice(C, B - C, ne);
    }
  }
  contains(v) {
    const C = oR(this._normalizedRanges, (B) => B.startLineNumber <= v);
    return !!C && C.endLineNumberExclusive > v;
  }
  intersects(v) {
    const C = oR(this._normalizedRanges, (B) => B.startLineNumber < v.endLineNumberExclusive);
    return !!C && C.endLineNumberExclusive > v.startLineNumber;
  }
  getUnion(v) {
    if (this._normalizedRanges.length === 0)
      return v;
    if (v._normalizedRanges.length === 0)
      return this;
    const C = [];
    let B = 0, ne = 0, pe = null;
    for (; B < this._normalizedRanges.length || ne < v._normalizedRanges.length; ) {
      let Se = null;
      if (B < this._normalizedRanges.length && ne < v._normalizedRanges.length) {
        const Ge = this._normalizedRanges[B], ct = v._normalizedRanges[ne];
        Ge.startLineNumber < ct.startLineNumber ? (Se = Ge, B++) : (Se = ct, ne++);
      } else
        B < this._normalizedRanges.length ? (Se = this._normalizedRanges[B], B++) : (Se = v._normalizedRanges[ne], ne++);
      pe === null ? pe = Se : pe.endLineNumberExclusive >= Se.startLineNumber ? pe = new mc(pe.startLineNumber, Math.max(pe.endLineNumberExclusive, Se.endLineNumberExclusive)) : (C.push(pe), pe = Se);
    }
    return pe !== null && C.push(pe), new zE(C);
  }
  /**
   * Subtracts all ranges in this set from `range` and returns the result.
   */
  subtractFrom(v) {
    const C = dse(this._normalizedRanges, (Se) => Se.endLineNumberExclusive >= v.startLineNumber), B = N4(this._normalizedRanges, (Se) => Se.startLineNumber <= v.endLineNumberExclusive) + 1;
    if (C === B)
      return new zE([v]);
    const ne = [];
    let pe = v.startLineNumber;
    for (let Se = C; Se < B; Se++) {
      const Ge = this._normalizedRanges[Se];
      Ge.startLineNumber > pe && ne.push(new mc(pe, Ge.startLineNumber)), pe = Ge.endLineNumberExclusive;
    }
    return pe < v.endLineNumberExclusive && ne.push(new mc(pe, v.endLineNumberExclusive)), new zE(ne);
  }
  toString() {
    return this._normalizedRanges.map((v) => v.toString()).join(", ");
  }
  getIntersection(v) {
    const C = [];
    let B = 0, ne = 0;
    for (; B < this._normalizedRanges.length && ne < v._normalizedRanges.length; ) {
      const pe = this._normalizedRanges[B], Se = v._normalizedRanges[ne], Ge = pe.intersect(Se);
      Ge && !Ge.isEmpty && C.push(Ge), pe.endLineNumberExclusive < Se.endLineNumberExclusive ? B++ : ne++;
    }
    return new zE(C);
  }
  getWithDelta(v) {
    return new zE(this._normalizedRanges.map((C) => C.delta(v)));
  }
}
class dA {
  static inverse(v, C, B) {
    const ne = [];
    let pe = 1, Se = 1;
    for (const ct of v) {
      const Le = new NS(new mc(pe, ct.original.startLineNumber), new mc(Se, ct.modified.startLineNumber), void 0);
      Le.modified.isEmpty || ne.push(Le), pe = ct.original.endLineNumberExclusive, Se = ct.modified.endLineNumberExclusive;
    }
    const Ge = new NS(new mc(pe, C + 1), new mc(Se, B + 1), void 0);
    return Ge.modified.isEmpty || ne.push(Ge), ne;
  }
  constructor(v, C) {
    this.original = v, this.modified = C;
  }
  toString() {
    return `{${this.original.toString()}->${this.modified.toString()}}`;
  }
  flip() {
    return new dA(this.modified, this.original);
  }
  join(v) {
    return new dA(this.original.join(v.original), this.modified.join(v.modified));
  }
}
class NS extends dA {
  constructor(v, C, B) {
    super(v, C), this.innerChanges = B;
  }
  flip() {
    var v;
    return new NS(this.modified, this.original, (v = this.innerChanges) === null || v === void 0 ? void 0 : v.map((C) => C.flip()));
  }
}
class O4 {
  constructor(v, C) {
    this.originalRange = v, this.modifiedRange = C;
  }
  toString() {
    return `{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`;
  }
  flip() {
    return new O4(this.modifiedRange, this.originalRange);
  }
}
const nut = 3;
class rut {
  computeDiff(v, C, B) {
    var ne;
    const Se = new out(v, C, {
      maxComputationTime: B.maxComputationTimeMs,
      shouldIgnoreTrimWhitespace: B.ignoreTrimWhitespace,
      shouldComputeCharChanges: !0,
      shouldMakePrettyDiff: !0,
      shouldPostProcessCharChanges: !0
    }).computeDiff(), Ge = [];
    let ct = null;
    for (const Le of Se.changes) {
      let ze;
      Le.originalEndLineNumber === 0 ? ze = new mc(Le.originalStartLineNumber + 1, Le.originalStartLineNumber + 1) : ze = new mc(Le.originalStartLineNumber, Le.originalEndLineNumber + 1);
      let Xt;
      Le.modifiedEndLineNumber === 0 ? Xt = new mc(Le.modifiedStartLineNumber + 1, Le.modifiedStartLineNumber + 1) : Xt = new mc(Le.modifiedStartLineNumber, Le.modifiedEndLineNumber + 1);
      let Jt = new NS(ze, Xt, (ne = Le.charChanges) === null || ne === void 0 ? void 0 : ne.map((dn) => new O4(new Wl(dn.originalStartLineNumber, dn.originalStartColumn, dn.originalEndLineNumber, dn.originalEndColumn), new Wl(dn.modifiedStartLineNumber, dn.modifiedStartColumn, dn.modifiedEndLineNumber, dn.modifiedEndColumn))));
      ct && (ct.modified.endLineNumberExclusive === Jt.modified.startLineNumber || ct.original.endLineNumberExclusive === Jt.original.startLineNumber) && (Jt = new NS(ct.original.join(Jt.original), ct.modified.join(Jt.modified), ct.innerChanges && Jt.innerChanges ? ct.innerChanges.concat(Jt.innerChanges) : void 0), Ge.pop()), Ge.push(Jt), ct = Jt;
    }
    return hj(() => uNe(Ge, (Le, ze) => ze.original.startLineNumber - Le.original.endLineNumberExclusive === ze.modified.startLineNumber - Le.modified.endLineNumberExclusive && // There has to be an unchanged line in between (otherwise both diffs should have been joined)
    Le.original.endLineNumberExclusive < ze.original.startLineNumber && Le.modified.endLineNumberExclusive < ze.modified.startLineNumber)), new cj(Ge, [], Se.quitEarly);
  }
}
function dNe(m, v, C, B) {
  return new oA(m, v, C).ComputeDiff(B);
}
let ORe = class {
  constructor(v) {
    const C = [], B = [];
    for (let ne = 0, pe = v.length; ne < pe; ne++)
      C[ne] = fse(v[ne], 1), B[ne] = _se(v[ne], 1);
    this.lines = v, this._startColumns = C, this._endColumns = B;
  }
  getElements() {
    const v = [];
    for (let C = 0, B = this.lines.length; C < B; C++)
      v[C] = this.lines[C].substring(this._startColumns[C] - 1, this._endColumns[C] - 1);
    return v;
  }
  getStrictElement(v) {
    return this.lines[v];
  }
  getStartLineNumber(v) {
    return v + 1;
  }
  getEndLineNumber(v) {
    return v + 1;
  }
  createCharSequence(v, C, B) {
    const ne = [], pe = [], Se = [];
    let Ge = 0;
    for (let ct = C; ct <= B; ct++) {
      const Le = this.lines[ct], ze = v ? this._startColumns[ct] : 1, Xt = v ? this._endColumns[ct] : Le.length + 1;
      for (let Jt = ze; Jt < Xt; Jt++)
        ne[Ge] = Le.charCodeAt(Jt - 1), pe[Ge] = ct + 1, Se[Ge] = Jt, Ge++;
      !v && ct < B && (ne[Ge] = 10, pe[Ge] = ct + 1, Se[Ge] = Le.length + 1, Ge++);
    }
    return new iut(ne, pe, Se);
  }
};
class iut {
  constructor(v, C, B) {
    this._charCodes = v, this._lineNumbers = C, this._columns = B;
  }
  toString() {
    return "[" + this._charCodes.map((v, C) => (v === 10 ? "\\n" : String.fromCharCode(v)) + `-(${this._lineNumbers[C]},${this._columns[C]})`).join(", ") + "]";
  }
  _assertIndex(v, C) {
    if (v < 0 || v >= C.length)
      throw new Error("Illegal index");
  }
  getElements() {
    return this._charCodes;
  }
  getStartLineNumber(v) {
    return v > 0 && v === this._lineNumbers.length ? this.getEndLineNumber(v - 1) : (this._assertIndex(v, this._lineNumbers), this._lineNumbers[v]);
  }
  getEndLineNumber(v) {
    return v === -1 ? this.getStartLineNumber(v + 1) : (this._assertIndex(v, this._lineNumbers), this._charCodes[v] === 10 ? this._lineNumbers[v] + 1 : this._lineNumbers[v]);
  }
  getStartColumn(v) {
    return v > 0 && v === this._columns.length ? this.getEndColumn(v - 1) : (this._assertIndex(v, this._columns), this._columns[v]);
  }
  getEndColumn(v) {
    return v === -1 ? this.getStartColumn(v + 1) : (this._assertIndex(v, this._columns), this._charCodes[v] === 10 ? 1 : this._columns[v] + 1);
  }
}
class nR {
  constructor(v, C, B, ne, pe, Se, Ge, ct) {
    this.originalStartLineNumber = v, this.originalStartColumn = C, this.originalEndLineNumber = B, this.originalEndColumn = ne, this.modifiedStartLineNumber = pe, this.modifiedStartColumn = Se, this.modifiedEndLineNumber = Ge, this.modifiedEndColumn = ct;
  }
  static createFromDiffChange(v, C, B) {
    const ne = C.getStartLineNumber(v.originalStart), pe = C.getStartColumn(v.originalStart), Se = C.getEndLineNumber(v.originalStart + v.originalLength - 1), Ge = C.getEndColumn(v.originalStart + v.originalLength - 1), ct = B.getStartLineNumber(v.modifiedStart), Le = B.getStartColumn(v.modifiedStart), ze = B.getEndLineNumber(v.modifiedStart + v.modifiedLength - 1), Xt = B.getEndColumn(v.modifiedStart + v.modifiedLength - 1);
    return new nR(ne, pe, Se, Ge, ct, Le, ze, Xt);
  }
}
function aut(m) {
  if (m.length <= 1)
    return m;
  const v = [m[0]];
  let C = v[0];
  for (let B = 1, ne = m.length; B < ne; B++) {
    const pe = m[B], Se = pe.originalStart - (C.originalStart + C.originalLength), Ge = pe.modifiedStart - (C.modifiedStart + C.modifiedLength);
    Math.min(Se, Ge) < nut ? (C.originalLength = pe.originalStart + pe.originalLength - C.originalStart, C.modifiedLength = pe.modifiedStart + pe.modifiedLength - C.modifiedStart) : (v.push(pe), C = pe);
  }
  return v;
}
class k4 {
  constructor(v, C, B, ne, pe) {
    this.originalStartLineNumber = v, this.originalEndLineNumber = C, this.modifiedStartLineNumber = B, this.modifiedEndLineNumber = ne, this.charChanges = pe;
  }
  static createFromDiffResult(v, C, B, ne, pe, Se, Ge) {
    let ct, Le, ze, Xt, Jt;
    if (C.originalLength === 0 ? (ct = B.getStartLineNumber(C.originalStart) - 1, Le = 0) : (ct = B.getStartLineNumber(C.originalStart), Le = B.getEndLineNumber(C.originalStart + C.originalLength - 1)), C.modifiedLength === 0 ? (ze = ne.getStartLineNumber(C.modifiedStart) - 1, Xt = 0) : (ze = ne.getStartLineNumber(C.modifiedStart), Xt = ne.getEndLineNumber(C.modifiedStart + C.modifiedLength - 1)), Se && C.originalLength > 0 && C.originalLength < 20 && C.modifiedLength > 0 && C.modifiedLength < 20 && pe()) {
      const dn = B.createCharSequence(v, C.originalStart, C.originalStart + C.originalLength - 1), kr = ne.createCharSequence(v, C.modifiedStart, C.modifiedStart + C.modifiedLength - 1);
      if (dn.getElements().length > 0 && kr.getElements().length > 0) {
        let ui = dNe(dn, kr, pe, !0).changes;
        Ge && (ui = aut(ui)), Jt = [];
        for (let la = 0, Yn = ui.length; la < Yn; la++)
          Jt.push(nR.createFromDiffChange(ui[la], dn, kr));
      }
    }
    return new k4(ct, Le, ze, Xt, Jt);
  }
}
class out {
  constructor(v, C, B) {
    this.shouldComputeCharChanges = B.shouldComputeCharChanges, this.shouldPostProcessCharChanges = B.shouldPostProcessCharChanges, this.shouldIgnoreTrimWhitespace = B.shouldIgnoreTrimWhitespace, this.shouldMakePrettyDiff = B.shouldMakePrettyDiff, this.originalLines = v, this.modifiedLines = C, this.original = new ORe(v), this.modified = new ORe(C), this.continueLineDiff = PRe(B.maxComputationTime), this.continueCharDiff = PRe(B.maxComputationTime === 0 ? 0 : Math.min(B.maxComputationTime, 5e3));
  }
  computeDiff() {
    if (this.original.lines.length === 1 && this.original.lines[0].length === 0)
      return this.modified.lines.length === 1 && this.modified.lines[0].length === 0 ? {
        quitEarly: !1,
        changes: []
      } : {
        quitEarly: !1,
        changes: [{
          originalStartLineNumber: 1,
          originalEndLineNumber: 1,
          modifiedStartLineNumber: 1,
          modifiedEndLineNumber: this.modified.lines.length,
          charChanges: void 0
        }]
      };
    if (this.modified.lines.length === 1 && this.modified.lines[0].length === 0)
      return {
        quitEarly: !1,
        changes: [{
          originalStartLineNumber: 1,
          originalEndLineNumber: this.original.lines.length,
          modifiedStartLineNumber: 1,
          modifiedEndLineNumber: 1,
          charChanges: void 0
        }]
      };
    const v = dNe(this.original, this.modified, this.continueLineDiff, this.shouldMakePrettyDiff), C = v.changes, B = v.quitEarly;
    if (this.shouldIgnoreTrimWhitespace) {
      const Ge = [];
      for (let ct = 0, Le = C.length; ct < Le; ct++)
        Ge.push(k4.createFromDiffResult(this.shouldIgnoreTrimWhitespace, C[ct], this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges));
      return {
        quitEarly: B,
        changes: Ge
      };
    }
    const ne = [];
    let pe = 0, Se = 0;
    for (let Ge = -1, ct = C.length; Ge < ct; Ge++) {
      const Le = Ge + 1 < ct ? C[Ge + 1] : null, ze = Le ? Le.originalStart : this.originalLines.length, Xt = Le ? Le.modifiedStart : this.modifiedLines.length;
      for (; pe < ze && Se < Xt; ) {
        const Jt = this.originalLines[pe], dn = this.modifiedLines[Se];
        if (Jt !== dn) {
          {
            let kr = fse(Jt, 1), ui = fse(dn, 1);
            for (; kr > 1 && ui > 1; ) {
              const la = Jt.charCodeAt(kr - 2), Yn = dn.charCodeAt(ui - 2);
              if (la !== Yn)
                break;
              kr--, ui--;
            }
            (kr > 1 || ui > 1) && this._pushTrimWhitespaceCharChange(ne, pe + 1, 1, kr, Se + 1, 1, ui);
          }
          {
            let kr = _se(Jt, 1), ui = _se(dn, 1);
            const la = Jt.length + 1, Yn = dn.length + 1;
            for (; kr < la && ui < Yn; ) {
              const nn = Jt.charCodeAt(kr - 1), Li = Jt.charCodeAt(ui - 1);
              if (nn !== Li)
                break;
              kr++, ui++;
            }
            (kr < la || ui < Yn) && this._pushTrimWhitespaceCharChange(ne, pe + 1, kr, la, Se + 1, ui, Yn);
          }
        }
        pe++, Se++;
      }
      Le && (ne.push(k4.createFromDiffResult(this.shouldIgnoreTrimWhitespace, Le, this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges)), pe += Le.originalLength, Se += Le.modifiedLength);
    }
    return {
      quitEarly: B,
      changes: ne
    };
  }
  _pushTrimWhitespaceCharChange(v, C, B, ne, pe, Se, Ge) {
    if (this._mergeTrimWhitespaceCharChange(v, C, B, ne, pe, Se, Ge))
      return;
    let ct;
    this.shouldComputeCharChanges && (ct = [new nR(C, B, C, ne, pe, Se, pe, Ge)]), v.push(new k4(C, C, pe, pe, ct));
  }
  _mergeTrimWhitespaceCharChange(v, C, B, ne, pe, Se, Ge) {
    const ct = v.length;
    if (ct === 0)
      return !1;
    const Le = v[ct - 1];
    return Le.originalEndLineNumber === 0 || Le.modifiedEndLineNumber === 0 ? !1 : Le.originalEndLineNumber === C && Le.modifiedEndLineNumber === pe ? (this.shouldComputeCharChanges && Le.charChanges && Le.charChanges.push(new nR(C, B, C, ne, pe, Se, pe, Ge)), !0) : Le.originalEndLineNumber + 1 === C && Le.modifiedEndLineNumber + 1 === pe ? (Le.originalEndLineNumber = C, Le.modifiedEndLineNumber = pe, this.shouldComputeCharChanges && Le.charChanges && Le.charChanges.push(new nR(C, B, C, ne, pe, Se, pe, Ge)), !0) : !1;
  }
}
function fse(m, v) {
  const C = Vlt(m);
  return C === -1 ? v : C + 1;
}
function _se(m, v) {
  const C = jlt(m);
  return C === -1 ? v : C + 2;
}
function PRe(m) {
  if (m === 0)
    return () => !0;
  const v = Date.now();
  return () => Date.now() - v < m;
}
class RS {
  static trivial(v, C) {
    return new RS([new c_(Pl.ofLength(v.length), Pl.ofLength(C.length))], !1);
  }
  static trivialTimedOut(v, C) {
    return new RS([new c_(Pl.ofLength(v.length), Pl.ofLength(C.length))], !0);
  }
  constructor(v, C) {
    this.diffs = v, this.hitTimeout = C;
  }
}
class c_ {
  static invert(v, C) {
    const B = [];
    return Sct(v, (ne, pe) => {
      B.push(c_.fromOffsetPairs(ne ? ne.getEndExclusives() : qE.zero, pe ? pe.getStarts() : new qE(C, (ne ? ne.seq2Range.endExclusive - ne.seq1Range.endExclusive : 0) + C)));
    }), B;
  }
  static fromOffsetPairs(v, C) {
    return new c_(new Pl(v.offset1, C.offset1), new Pl(v.offset2, C.offset2));
  }
  constructor(v, C) {
    this.seq1Range = v, this.seq2Range = C;
  }
  swap() {
    return new c_(this.seq2Range, this.seq1Range);
  }
  toString() {
    return `${this.seq1Range} <-> ${this.seq2Range}`;
  }
  join(v) {
    return new c_(this.seq1Range.join(v.seq1Range), this.seq2Range.join(v.seq2Range));
  }
  delta(v) {
    return v === 0 ? this : new c_(this.seq1Range.delta(v), this.seq2Range.delta(v));
  }
  deltaStart(v) {
    return v === 0 ? this : new c_(this.seq1Range.deltaStart(v), this.seq2Range.deltaStart(v));
  }
  deltaEnd(v) {
    return v === 0 ? this : new c_(this.seq1Range.deltaEnd(v), this.seq2Range.deltaEnd(v));
  }
  intersect(v) {
    const C = this.seq1Range.intersect(v.seq1Range), B = this.seq2Range.intersect(v.seq2Range);
    if (!(!C || !B))
      return new c_(C, B);
  }
  getStarts() {
    return new qE(this.seq1Range.start, this.seq2Range.start);
  }
  getEndExclusives() {
    return new qE(this.seq1Range.endExclusive, this.seq2Range.endExclusive);
  }
}
class qE {
  constructor(v, C) {
    this.offset1 = v, this.offset2 = C;
  }
  toString() {
    return `${this.offset1} <-> ${this.offset2}`;
  }
}
qE.zero = new qE(0, 0);
qE.max = new qE(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);
class P4 {
  isValid() {
    return !0;
  }
}
P4.instance = new P4();
class sut {
  constructor(v) {
    if (this.timeout = v, this.startTime = Date.now(), this.valid = !0, v <= 0)
      throw new sA("timeout must be positive");
  }
  // Recommendation: Set a log-point `{this.disable()}` in the body
  isValid() {
    if (!(Date.now() - this.startTime < this.timeout) && this.valid) {
      this.valid = !1;
      debugger;
    }
    return this.valid;
  }
}
class Joe {
  constructor(v, C) {
    this.width = v, this.height = C, this.array = [], this.array = new Array(v * C);
  }
  get(v, C) {
    return this.array[v + C * this.width];
  }
  set(v, C, B) {
    this.array[v + C * this.width] = B;
  }
}
function pse(m) {
  return m === 32 || m === 9;
}
class sR {
  static getKey(v) {
    let C = this.chrKeys.get(v);
    return C === void 0 && (C = this.chrKeys.size, this.chrKeys.set(v, C)), C;
  }
  constructor(v, C, B) {
    this.range = v, this.lines = C, this.source = B, this.histogram = [];
    let ne = 0;
    for (let pe = v.startLineNumber - 1; pe < v.endLineNumberExclusive - 1; pe++) {
      const Se = C[pe];
      for (let ct = 0; ct < Se.length; ct++) {
        ne++;
        const Le = Se[ct], ze = sR.getKey(Le);
        this.histogram[ze] = (this.histogram[ze] || 0) + 1;
      }
      ne++;
      const Ge = sR.getKey(`
`);
      this.histogram[Ge] = (this.histogram[Ge] || 0) + 1;
    }
    this.totalCount = ne;
  }
  computeSimilarity(v) {
    var C, B;
    let ne = 0;
    const pe = Math.max(this.histogram.length, v.histogram.length);
    for (let Se = 0; Se < pe; Se++)
      ne += Math.abs(((C = this.histogram[Se]) !== null && C !== void 0 ? C : 0) - ((B = v.histogram[Se]) !== null && B !== void 0 ? B : 0));
    return 1 - ne / (this.totalCount + v.totalCount);
  }
}
sR.chrKeys = /* @__PURE__ */ new Map();
class lut {
  compute(v, C, B = P4.instance, ne) {
    if (v.length === 0 || C.length === 0)
      return RS.trivial(v, C);
    const pe = new Joe(v.length, C.length), Se = new Joe(v.length, C.length), Ge = new Joe(v.length, C.length);
    for (let kr = 0; kr < v.length; kr++)
      for (let ui = 0; ui < C.length; ui++) {
        if (!B.isValid())
          return RS.trivialTimedOut(v, C);
        const la = kr === 0 ? 0 : pe.get(kr - 1, ui), Yn = ui === 0 ? 0 : pe.get(kr, ui - 1);
        let nn;
        v.getElement(kr) === C.getElement(ui) ? (kr === 0 || ui === 0 ? nn = 0 : nn = pe.get(kr - 1, ui - 1), kr > 0 && ui > 0 && Se.get(kr - 1, ui - 1) === 3 && (nn += Ge.get(kr - 1, ui - 1)), nn += ne ? ne(kr, ui) : 1) : nn = -1;
        const Li = Math.max(la, Yn, nn);
        if (Li === nn) {
          const vi = kr > 0 && ui > 0 ? Ge.get(kr - 1, ui - 1) : 0;
          Ge.set(kr, ui, vi + 1), Se.set(kr, ui, 3);
        } else
          Li === la ? (Ge.set(kr, ui, 0), Se.set(kr, ui, 1)) : Li === Yn && (Ge.set(kr, ui, 0), Se.set(kr, ui, 2));
        pe.set(kr, ui, Li);
      }
    const ct = [];
    let Le = v.length, ze = C.length;
    function Xt(kr, ui) {
      (kr + 1 !== Le || ui + 1 !== ze) && ct.push(new c_(new Pl(kr + 1, Le), new Pl(ui + 1, ze))), Le = kr, ze = ui;
    }
    let Jt = v.length - 1, dn = C.length - 1;
    for (; Jt >= 0 && dn >= 0; )
      Se.get(Jt, dn) === 3 ? (Xt(Jt, dn), Jt--, dn--) : Se.get(Jt, dn) === 1 ? Jt-- : dn--;
    return Xt(-1, -1), ct.reverse(), new RS(ct, !1);
  }
}
class fNe {
  compute(v, C, B = P4.instance) {
    if (v.length === 0 || C.length === 0)
      return RS.trivial(v, C);
    const ne = v, pe = C;
    function Se(ui, la) {
      for (; ui < ne.length && la < pe.length && ne.getElement(ui) === pe.getElement(la); )
        ui++, la++;
      return ui;
    }
    let Ge = 0;
    const ct = new cut();
    ct.set(0, Se(0, 0));
    const Le = new uut();
    Le.set(0, ct.get(0) === 0 ? null : new MRe(null, 0, 0, ct.get(0)));
    let ze = 0;
    e:
      for (; ; ) {
        if (Ge++, !B.isValid())
          return RS.trivialTimedOut(ne, pe);
        const ui = -Math.min(Ge, pe.length + Ge % 2), la = Math.min(Ge, ne.length + Ge % 2);
        for (ze = ui; ze <= la; ze += 2) {
          const Yn = ze === la ? -1 : ct.get(ze + 1), nn = ze === ui ? -1 : ct.get(ze - 1) + 1, Li = Math.min(Math.max(Yn, nn), ne.length), vi = Li - ze;
          if (Li > ne.length || vi > pe.length)
            continue;
          const ya = Se(Li, vi);
          ct.set(ze, ya);
          const Go = Li === Yn ? Le.get(ze + 1) : Le.get(ze - 1);
          if (Le.set(ze, ya !== Li ? new MRe(Go, Li, vi, ya - Li) : Go), ct.get(ze) === ne.length && ct.get(ze) - ze === pe.length)
            break e;
        }
      }
    let Xt = Le.get(ze);
    const Jt = [];
    let dn = ne.length, kr = pe.length;
    for (; ; ) {
      const ui = Xt ? Xt.x + Xt.length : 0, la = Xt ? Xt.y + Xt.length : 0;
      if ((ui !== dn || la !== kr) && Jt.push(new c_(new Pl(ui, dn), new Pl(la, kr))), !Xt)
        break;
      dn = Xt.x, kr = Xt.y, Xt = Xt.prev;
    }
    return Jt.reverse(), new RS(Jt, !1);
  }
}
class MRe {
  constructor(v, C, B, ne) {
    this.prev = v, this.x = C, this.y = B, this.length = ne;
  }
}
class cut {
  constructor() {
    this.positiveArr = new Int32Array(10), this.negativeArr = new Int32Array(10);
  }
  get(v) {
    return v < 0 ? (v = -v - 1, this.negativeArr[v]) : this.positiveArr[v];
  }
  set(v, C) {
    if (v < 0) {
      if (v = -v - 1, v >= this.negativeArr.length) {
        const B = this.negativeArr;
        this.negativeArr = new Int32Array(B.length * 2), this.negativeArr.set(B);
      }
      this.negativeArr[v] = C;
    } else {
      if (v >= this.positiveArr.length) {
        const B = this.positiveArr;
        this.positiveArr = new Int32Array(B.length * 2), this.positiveArr.set(B);
      }
      this.positiveArr[v] = C;
    }
  }
}
class uut {
  constructor() {
    this.positiveArr = [], this.negativeArr = [];
  }
  get(v) {
    return v < 0 ? (v = -v - 1, this.negativeArr[v]) : this.positiveArr[v];
  }
  set(v, C) {
    v < 0 ? (v = -v - 1, this.negativeArr[v] = C) : this.positiveArr[v] = C;
  }
}
class dut {
  constructor() {
    this.map = /* @__PURE__ */ new Map();
  }
  add(v, C) {
    let B = this.map.get(v);
    B || (B = /* @__PURE__ */ new Set(), this.map.set(v, B)), B.add(C);
  }
  delete(v, C) {
    const B = this.map.get(v);
    B && (B.delete(C), B.size === 0 && this.map.delete(v));
  }
  forEach(v, C) {
    const B = this.map.get(v);
    B && B.forEach(C);
  }
  get(v) {
    const C = this.map.get(v);
    return C || /* @__PURE__ */ new Set();
  }
}
class gj {
  constructor(v, C, B) {
    this.lines = v, this.considerWhitespaceChanges = B, this.elements = [], this.firstCharOffsetByLine = [], this.additionalOffsetByLine = [];
    let ne = !1;
    C.start > 0 && C.endExclusive >= v.length && (C = new Pl(C.start - 1, C.endExclusive), ne = !0), this.lineRange = C, this.firstCharOffsetByLine[0] = 0;
    for (let pe = this.lineRange.start; pe < this.lineRange.endExclusive; pe++) {
      let Se = v[pe], Ge = 0;
      if (ne)
        Ge = Se.length, Se = "", ne = !1;
      else if (!B) {
        const ct = Se.trimStart();
        Ge = Se.length - ct.length, Se = ct.trimEnd();
      }
      this.additionalOffsetByLine.push(Ge);
      for (let ct = 0; ct < Se.length; ct++)
        this.elements.push(Se.charCodeAt(ct));
      pe < v.length - 1 && (this.elements.push(10), this.firstCharOffsetByLine[pe - this.lineRange.start + 1] = this.elements.length);
    }
    this.additionalOffsetByLine.push(0);
  }
  toString() {
    return `Slice: "${this.text}"`;
  }
  get text() {
    return this.getText(new Pl(0, this.length));
  }
  getText(v) {
    return this.elements.slice(v.start, v.endExclusive).map((C) => String.fromCharCode(C)).join("");
  }
  getElement(v) {
    return this.elements[v];
  }
  get length() {
    return this.elements.length;
  }
  getBoundaryScore(v) {
    const C = BRe(v > 0 ? this.elements[v - 1] : -1), B = BRe(v < this.elements.length ? this.elements[v] : -1);
    if (C === 7 && B === 8)
      return 0;
    let ne = 0;
    return C !== B && (ne += 10, C === 0 && B === 1 && (ne += 1)), ne += FRe(C), ne += FRe(B), ne;
  }
  translateOffset(v) {
    if (this.lineRange.isEmpty)
      return new xm(this.lineRange.start + 1, 1);
    const C = N4(this.firstCharOffsetByLine, (B) => B <= v);
    return new xm(this.lineRange.start + C + 1, v - this.firstCharOffsetByLine[C] + this.additionalOffsetByLine[C] + 1);
  }
  translateRange(v) {
    return Wl.fromPositions(this.translateOffset(v.start), this.translateOffset(v.endExclusive));
  }
  /**
   * Finds the word that contains the character at the given offset
   */
  findWordContaining(v) {
    if (v < 0 || v >= this.elements.length || !Koe(this.elements[v]))
      return;
    let C = v;
    for (; C > 0 && Koe(this.elements[C - 1]); )
      C--;
    let B = v;
    for (; B < this.elements.length && Koe(this.elements[B]); )
      B++;
    return new Pl(C, B);
  }
  countLinesIn(v) {
    return this.translateOffset(v.endExclusive).lineNumber - this.translateOffset(v.start).lineNumber;
  }
  isStronglyEqual(v, C) {
    return this.elements[v] === this.elements[C];
  }
  extendToFullLines(v) {
    var C, B;
    const ne = (C = oR(this.firstCharOffsetByLine, (Se) => Se <= v.start)) !== null && C !== void 0 ? C : 0, pe = (B = tut(this.firstCharOffsetByLine, (Se) => v.endExclusive <= Se)) !== null && B !== void 0 ? B : this.elements.length;
    return new Pl(ne, pe);
  }
}
function Koe(m) {
  return m >= 97 && m <= 122 || m >= 65 && m <= 90 || m >= 48 && m <= 57;
}
const fut = {
  0: 0,
  1: 0,
  2: 0,
  3: 10,
  4: 2,
  5: 3,
  6: 3,
  7: 10,
  8: 10
};
function FRe(m) {
  return fut[m];
}
function BRe(m) {
  return m === 10 ? 8 : m === 13 ? 7 : pse(m) ? 6 : m >= 97 && m <= 122 ? 0 : m >= 65 && m <= 90 ? 1 : m >= 48 && m <= 57 ? 2 : m === -1 ? 3 : m === 44 || m === 59 ? 5 : 4;
}
function _ut(m, v, C, B, ne, pe) {
  let { moves: Se, excludedChanges: Ge } = mut(m, v, C, pe);
  if (!pe.isValid())
    return [];
  const ct = m.filter((ze) => !Ge.has(ze)), Le = hut(ct, B, ne, v, C, pe);
  return Act(Se, Le), Se = gut(Se), Se = Se.filter((ze) => {
    const Xt = ze.original.toOffsetRange().slice(v).map((dn) => dn.trim());
    return Xt.join(`
`).length >= 15 && put(Xt, (dn) => dn.length >= 2) >= 2;
  }), Se = yut(m, Se), Se;
}
function put(m, v) {
  let C = 0;
  for (const B of m)
    v(B) && C++;
  return C;
}
function mut(m, v, C, B) {
  const ne = [], pe = m.filter((ct) => ct.modified.isEmpty && ct.original.length >= 3).map((ct) => new sR(ct.original, v, ct)), Se = new Set(m.filter((ct) => ct.original.isEmpty && ct.modified.length >= 3).map((ct) => new sR(ct.modified, C, ct))), Ge = /* @__PURE__ */ new Set();
  for (const ct of pe) {
    let Le = -1, ze;
    for (const Xt of Se) {
      const Jt = ct.computeSimilarity(Xt);
      Jt > Le && (Le = Jt, ze = Xt);
    }
    if (Le > 0.9 && ze && (Se.delete(ze), ne.push(new dA(ct.range, ze.range)), Ge.add(ct.source), Ge.add(ze.source)), !B.isValid())
      return { moves: ne, excludedChanges: Ge };
  }
  return { moves: ne, excludedChanges: Ge };
}
function hut(m, v, C, B, ne, pe) {
  const Se = [], Ge = new dut();
  for (const Jt of m)
    for (let dn = Jt.original.startLineNumber; dn < Jt.original.endLineNumberExclusive - 2; dn++) {
      const kr = `${v[dn - 1]}:${v[dn + 1 - 1]}:${v[dn + 2 - 1]}`;
      Ge.add(kr, { range: new mc(dn, dn + 3) });
    }
  const ct = [];
  m.sort(aj((Jt) => Jt.modified.startLineNumber, oj));
  for (const Jt of m) {
    let dn = [];
    for (let kr = Jt.modified.startLineNumber; kr < Jt.modified.endLineNumberExclusive - 2; kr++) {
      const ui = `${C[kr - 1]}:${C[kr + 1 - 1]}:${C[kr + 2 - 1]}`, la = new mc(kr, kr + 3), Yn = [];
      Ge.forEach(ui, ({ range: nn }) => {
        for (const vi of dn)
          if (vi.originalLineRange.endLineNumberExclusive + 1 === nn.endLineNumberExclusive && vi.modifiedLineRange.endLineNumberExclusive + 1 === la.endLineNumberExclusive) {
            vi.originalLineRange = new mc(vi.originalLineRange.startLineNumber, nn.endLineNumberExclusive), vi.modifiedLineRange = new mc(vi.modifiedLineRange.startLineNumber, la.endLineNumberExclusive), Yn.push(vi);
            return;
          }
        const Li = {
          modifiedLineRange: la,
          originalLineRange: nn
        };
        ct.push(Li), Yn.push(Li);
      }), dn = Yn;
    }
    if (!pe.isValid())
      return [];
  }
  ct.sort(Cct(aj((Jt) => Jt.modifiedLineRange.length, oj)));
  const Le = new zE(), ze = new zE();
  for (const Jt of ct) {
    const dn = Jt.modifiedLineRange.startLineNumber - Jt.originalLineRange.startLineNumber, kr = Le.subtractFrom(Jt.modifiedLineRange), ui = ze.subtractFrom(Jt.originalLineRange).getWithDelta(dn), la = kr.getIntersection(ui);
    for (const Yn of la.ranges) {
      if (Yn.length < 3)
        continue;
      const nn = Yn, Li = Yn.delta(-dn);
      Se.push(new dA(Li, nn)), Le.addRange(nn), ze.addRange(Li);
    }
  }
  Se.sort(aj((Jt) => Jt.original.startLineNumber, oj));
  const Xt = new F4(m);
  for (let Jt = 0; Jt < Se.length; Jt++) {
    const dn = Se[Jt], kr = Xt.findLastMonotonous((Go) => Go.original.startLineNumber <= dn.original.startLineNumber), ui = oR(m, (Go) => Go.modified.startLineNumber <= dn.modified.startLineNumber), la = Math.max(dn.original.startLineNumber - kr.original.startLineNumber, dn.modified.startLineNumber - ui.modified.startLineNumber), Yn = Xt.findLastMonotonous((Go) => Go.original.startLineNumber < dn.original.endLineNumberExclusive), nn = oR(m, (Go) => Go.modified.startLineNumber < dn.modified.endLineNumberExclusive), Li = Math.max(Yn.original.endLineNumberExclusive - dn.original.endLineNumberExclusive, nn.modified.endLineNumberExclusive - dn.modified.endLineNumberExclusive);
    let vi;
    for (vi = 0; vi < la; vi++) {
      const Go = dn.original.startLineNumber - vi - 1, jr = dn.modified.startLineNumber - vi - 1;
      if (Go > B.length || jr > ne.length || Le.contains(jr) || ze.contains(Go) || !GRe(B[Go - 1], ne[jr - 1], pe))
        break;
    }
    vi > 0 && (ze.addRange(new mc(dn.original.startLineNumber - vi, dn.original.startLineNumber)), Le.addRange(new mc(dn.modified.startLineNumber - vi, dn.modified.startLineNumber)));
    let ya;
    for (ya = 0; ya < Li; ya++) {
      const Go = dn.original.endLineNumberExclusive + ya, jr = dn.modified.endLineNumberExclusive + ya;
      if (Go > B.length || jr > ne.length || Le.contains(jr) || ze.contains(Go) || !GRe(B[Go - 1], ne[jr - 1], pe))
        break;
    }
    ya > 0 && (ze.addRange(new mc(dn.original.endLineNumberExclusive, dn.original.endLineNumberExclusive + ya)), Le.addRange(new mc(dn.modified.endLineNumberExclusive, dn.modified.endLineNumberExclusive + ya))), (vi > 0 || ya > 0) && (Se[Jt] = new dA(new mc(dn.original.startLineNumber - vi, dn.original.endLineNumberExclusive + ya), new mc(dn.modified.startLineNumber - vi, dn.modified.endLineNumberExclusive + ya)));
  }
  return Se;
}
function GRe(m, v, C) {
  if (m.trim() === v.trim())
    return !0;
  if (m.length > 300 && v.length > 300)
    return !1;
  const ne = new fNe().compute(new gj([m], new Pl(0, 1), !1), new gj([v], new Pl(0, 1), !1), C);
  let pe = 0;
  const Se = c_.invert(ne.diffs, m.length);
  for (const ze of Se)
    ze.seq1Range.forEach((Xt) => {
      pse(m.charCodeAt(Xt)) || pe++;
    });
  function Ge(ze) {
    let Xt = 0;
    for (let Jt = 0; Jt < m.length; Jt++)
      pse(ze.charCodeAt(Jt)) || Xt++;
    return Xt;
  }
  const ct = Ge(m.length > v.length ? m : v);
  return pe / ct > 0.6 && ct > 10;
}
function gut(m) {
  if (m.length === 0)
    return m;
  m.sort(aj((C) => C.original.startLineNumber, oj));
  const v = [m[0]];
  for (let C = 1; C < m.length; C++) {
    const B = v[v.length - 1], ne = m[C], pe = ne.original.startLineNumber - B.original.endLineNumberExclusive, Se = ne.modified.startLineNumber - B.modified.endLineNumberExclusive;
    if (pe >= 0 && Se >= 0 && pe + Se <= 2) {
      v[v.length - 1] = B.join(ne);
      continue;
    }
    v.push(ne);
  }
  return v;
}
function yut(m, v) {
  const C = new F4(m);
  return v = v.filter((B) => {
    const ne = C.findLastMonotonous((Ge) => Ge.original.startLineNumber < B.original.endLineNumberExclusive) || new dA(new mc(1, 1), new mc(1, 1)), pe = oR(m, (Ge) => Ge.modified.startLineNumber < B.modified.endLineNumberExclusive);
    return ne !== pe;
  }), v;
}
function URe(m, v, C) {
  let B = C;
  return B = VRe(m, v, B), B = VRe(m, v, B), B = vut(m, v, B), B;
}
function VRe(m, v, C) {
  if (C.length === 0)
    return C;
  const B = [];
  B.push(C[0]);
  for (let pe = 1; pe < C.length; pe++) {
    const Se = B[B.length - 1];
    let Ge = C[pe];
    if (Ge.seq1Range.isEmpty || Ge.seq2Range.isEmpty) {
      const ct = Ge.seq1Range.start - Se.seq1Range.endExclusive;
      let Le;
      for (Le = 1; Le <= ct && !(m.getElement(Ge.seq1Range.start - Le) !== m.getElement(Ge.seq1Range.endExclusive - Le) || v.getElement(Ge.seq2Range.start - Le) !== v.getElement(Ge.seq2Range.endExclusive - Le)); Le++)
        ;
      if (Le--, Le === ct) {
        B[B.length - 1] = new c_(new Pl(Se.seq1Range.start, Ge.seq1Range.endExclusive - ct), new Pl(Se.seq2Range.start, Ge.seq2Range.endExclusive - ct));
        continue;
      }
      Ge = Ge.delta(-Le);
    }
    B.push(Ge);
  }
  const ne = [];
  for (let pe = 0; pe < B.length - 1; pe++) {
    const Se = B[pe + 1];
    let Ge = B[pe];
    if (Ge.seq1Range.isEmpty || Ge.seq2Range.isEmpty) {
      const ct = Se.seq1Range.start - Ge.seq1Range.endExclusive;
      let Le;
      for (Le = 0; Le < ct && !(!m.isStronglyEqual(Ge.seq1Range.start + Le, Ge.seq1Range.endExclusive + Le) || !v.isStronglyEqual(Ge.seq2Range.start + Le, Ge.seq2Range.endExclusive + Le)); Le++)
        ;
      if (Le === ct) {
        B[pe + 1] = new c_(new Pl(Ge.seq1Range.start + ct, Se.seq1Range.endExclusive), new Pl(Ge.seq2Range.start + ct, Se.seq2Range.endExclusive));
        continue;
      }
      Le > 0 && (Ge = Ge.delta(Le));
    }
    ne.push(Ge);
  }
  return B.length > 0 && ne.push(B[B.length - 1]), ne;
}
function vut(m, v, C) {
  if (!m.getBoundaryScore || !v.getBoundaryScore)
    return C;
  for (let B = 0; B < C.length; B++) {
    const ne = B > 0 ? C[B - 1] : void 0, pe = C[B], Se = B + 1 < C.length ? C[B + 1] : void 0, Ge = new Pl(ne ? ne.seq1Range.start + 1 : 0, Se ? Se.seq1Range.endExclusive - 1 : m.length), ct = new Pl(ne ? ne.seq2Range.start + 1 : 0, Se ? Se.seq2Range.endExclusive - 1 : v.length);
    pe.seq1Range.isEmpty ? C[B] = jRe(pe, m, v, Ge, ct) : pe.seq2Range.isEmpty && (C[B] = jRe(pe.swap(), v, m, ct, Ge).swap());
  }
  return C;
}
function jRe(m, v, C, B, ne) {
  let Se = 1;
  for (; m.seq1Range.start - Se >= B.start && m.seq2Range.start - Se >= ne.start && C.isStronglyEqual(m.seq2Range.start - Se, m.seq2Range.endExclusive - Se) && Se < 100; )
    Se++;
  Se--;
  let Ge = 0;
  for (; m.seq1Range.start + Ge < B.endExclusive && m.seq2Range.endExclusive + Ge < ne.endExclusive && C.isStronglyEqual(m.seq2Range.start + Ge, m.seq2Range.endExclusive + Ge) && Ge < 100; )
    Ge++;
  if (Se === 0 && Ge === 0)
    return m;
  let ct = 0, Le = -1;
  for (let ze = -Se; ze <= Ge; ze++) {
    const Xt = m.seq2Range.start + ze, Jt = m.seq2Range.endExclusive + ze, dn = m.seq1Range.start + ze, kr = v.getBoundaryScore(dn) + C.getBoundaryScore(Xt) + C.getBoundaryScore(Jt);
    kr > Le && (Le = kr, ct = ze);
  }
  return m.delta(ct);
}
function but(m, v, C) {
  const B = [];
  for (const ne of C) {
    const pe = B[B.length - 1];
    if (!pe) {
      B.push(ne);
      continue;
    }
    ne.seq1Range.start - pe.seq1Range.endExclusive <= 2 || ne.seq2Range.start - pe.seq2Range.endExclusive <= 2 ? B[B.length - 1] = new c_(pe.seq1Range.join(ne.seq1Range), pe.seq2Range.join(ne.seq2Range)) : B.push(ne);
  }
  return B;
}
function Eut(m, v, C) {
  const B = [];
  let ne;
  function pe() {
    if (!ne)
      return;
    const Ge = ne.s1Range.length - ne.deleted;
    ne.s2Range.length - ne.added, Math.max(ne.deleted, ne.added) + (ne.count - 1) > Ge && B.push(new c_(ne.s1Range, ne.s2Range)), ne = void 0;
  }
  for (const Ge of C) {
    let ct = function(dn, kr) {
      var ui, la, Yn, nn;
      if (!ne || !ne.s1Range.containsRange(dn) || !ne.s2Range.containsRange(kr))
        if (ne && !(ne.s1Range.endExclusive < dn.start && ne.s2Range.endExclusive < kr.start)) {
          const ya = Pl.tryCreate(ne.s1Range.endExclusive, dn.start), Go = Pl.tryCreate(ne.s2Range.endExclusive, kr.start);
          ne.deleted += (ui = ya == null ? void 0 : ya.length) !== null && ui !== void 0 ? ui : 0, ne.added += (la = Go == null ? void 0 : Go.length) !== null && la !== void 0 ? la : 0, ne.s1Range = ne.s1Range.join(dn), ne.s2Range = ne.s2Range.join(kr);
        } else
          pe(), ne = { added: 0, deleted: 0, count: 0, s1Range: dn, s2Range: kr };
      const Li = dn.intersect(Ge.seq1Range), vi = kr.intersect(Ge.seq2Range);
      ne.count++, ne.deleted += (Yn = Li == null ? void 0 : Li.length) !== null && Yn !== void 0 ? Yn : 0, ne.added += (nn = vi == null ? void 0 : vi.length) !== null && nn !== void 0 ? nn : 0;
    };
    const Le = m.findWordContaining(Ge.seq1Range.start - 1), ze = v.findWordContaining(Ge.seq2Range.start - 1), Xt = m.findWordContaining(Ge.seq1Range.endExclusive), Jt = v.findWordContaining(Ge.seq2Range.endExclusive);
    Le && Xt && ze && Jt && Le.equals(Xt) && ze.equals(Jt) ? ct(Le, ze) : (Le && ze && ct(Le, ze), Xt && Jt && ct(Xt, Jt));
  }
  return pe(), Tut(C, B);
}
function Tut(m, v) {
  const C = [];
  for (; m.length > 0 || v.length > 0; ) {
    const B = m[0], ne = v[0];
    let pe;
    B && (!ne || B.seq1Range.start < ne.seq1Range.start) ? pe = m.shift() : pe = v.shift(), C.length > 0 && C[C.length - 1].seq1Range.endExclusive >= pe.seq1Range.start ? C[C.length - 1] = C[C.length - 1].join(pe) : C.push(pe);
  }
  return C;
}
function Sut(m, v, C) {
  let B = C;
  if (B.length === 0)
    return B;
  let ne = 0, pe;
  do {
    pe = !1;
    const Se = [
      B[0]
    ];
    for (let Ge = 1; Ge < B.length; Ge++) {
      let ze = function(Jt, dn) {
        const kr = new Pl(Le.seq1Range.endExclusive, ct.seq1Range.start);
        return m.getText(kr).replace(/\s/g, "").length <= 4 && (Jt.seq1Range.length + Jt.seq2Range.length > 5 || dn.seq1Range.length + dn.seq2Range.length > 5);
      };
      const ct = B[Ge], Le = Se[Se.length - 1];
      ze(Le, ct) ? (pe = !0, Se[Se.length - 1] = Se[Se.length - 1].join(ct)) : Se.push(ct);
    }
    B = Se;
  } while (ne++ < 10 && pe);
  return B;
}
function xut(m, v, C) {
  let B = C;
  if (B.length === 0)
    return B;
  let ne = 0, pe;
  do {
    pe = !1;
    const Ge = [
      B[0]
    ];
    for (let ct = 1; ct < B.length; ct++) {
      let Xt = function(dn, kr) {
        const ui = new Pl(ze.seq1Range.endExclusive, Le.seq1Range.start);
        if (m.countLinesIn(ui) > 5 || ui.length > 500)
          return !1;
        const Yn = m.getText(ui).trim();
        if (Yn.length > 20 || Yn.split(/\r\n|\r|\n/).length > 1)
          return !1;
        const nn = m.countLinesIn(dn.seq1Range), Li = dn.seq1Range.length, vi = v.countLinesIn(dn.seq2Range), ya = dn.seq2Range.length, Go = m.countLinesIn(kr.seq1Range), jr = kr.seq1Range.length, es = v.countLinesIn(kr.seq2Range), kc = kr.seq2Range.length, Bc = 2 * 40 + 50;
        function lr(Ri) {
          return Math.min(Ri, Bc);
        }
        return Math.pow(Math.pow(lr(nn * 40 + Li), 1.5) + Math.pow(lr(vi * 40 + ya), 1.5), 1.5) + Math.pow(Math.pow(lr(Go * 40 + jr), 1.5) + Math.pow(lr(es * 40 + kc), 1.5), 1.5) > (Bc ** 1.5) ** 1.5 * 1.3;
      };
      const Le = B[ct], ze = Ge[Ge.length - 1];
      Xt(ze, Le) ? (pe = !0, Ge[Ge.length - 1] = Ge[Ge.length - 1].join(Le)) : Ge.push(Le);
    }
    B = Ge;
  } while (ne++ < 10 && pe);
  const Se = [];
  return xct(B, (Ge, ct, Le) => {
    let ze = ct;
    function Xt(Yn) {
      return Yn.length > 0 && Yn.trim().length <= 3 && ct.seq1Range.length + ct.seq2Range.length > 100;
    }
    const Jt = m.extendToFullLines(ct.seq1Range), dn = m.getText(new Pl(Jt.start, ct.seq1Range.start));
    Xt(dn) && (ze = ze.deltaStart(-dn.length));
    const kr = m.getText(new Pl(ct.seq1Range.endExclusive, Jt.endExclusive));
    Xt(kr) && (ze = ze.deltaEnd(kr.length));
    const ui = c_.fromOffsetPairs(Ge ? Ge.getEndExclusives() : qE.zero, Le ? Le.getStarts() : qE.max), la = ze.intersect(ui);
    Se.push(la);
  }), Se;
}
class HRe {
  constructor(v, C) {
    this.trimmedHash = v, this.lines = C;
  }
  getElement(v) {
    return this.trimmedHash[v];
  }
  get length() {
    return this.trimmedHash.length;
  }
  getBoundaryScore(v) {
    const C = v === 0 ? 0 : WRe(this.lines[v - 1]), B = v === this.lines.length ? 0 : WRe(this.lines[v]);
    return 1e3 - (C + B);
  }
  getText(v) {
    return this.lines.slice(v.start, v.endExclusive).join(`
`);
  }
  isStronglyEqual(v, C) {
    return this.lines[v] === this.lines[C];
  }
}
function WRe(m) {
  let v = 0;
  for (; v < m.length && (m.charCodeAt(v) === 32 || m.charCodeAt(v) === 9); )
    v++;
  return v;
}
class Aut {
  constructor() {
    this.dynamicProgrammingDiffing = new lut(), this.myersDiffingAlgorithm = new fNe();
  }
  computeDiff(v, C, B) {
    if (v.length <= 1 && Ect(v, C, (ya, Go) => ya === Go))
      return new cj([], [], !1);
    if (v.length === 1 && v[0].length === 0 || C.length === 1 && C[0].length === 0)
      return new cj([
        new NS(new mc(1, v.length + 1), new mc(1, C.length + 1), [
          new O4(new Wl(1, 1, v.length, v[0].length + 1), new Wl(1, 1, C.length, C[0].length + 1))
        ])
      ], [], !1);
    const ne = B.maxComputationTimeMs === 0 ? P4.instance : new sut(B.maxComputationTimeMs), pe = !B.ignoreTrimWhitespace, Se = /* @__PURE__ */ new Map();
    function Ge(ya) {
      let Go = Se.get(ya);
      return Go === void 0 && (Go = Se.size, Se.set(ya, Go)), Go;
    }
    const ct = v.map((ya) => Ge(ya.trim())), Le = C.map((ya) => Ge(ya.trim())), ze = new HRe(ct, v), Xt = new HRe(Le, C), Jt = ze.length + Xt.length < 1700 ? this.dynamicProgrammingDiffing.compute(ze, Xt, ne, (ya, Go) => v[ya] === C[Go] ? C[Go].length === 0 ? 0.1 : 1 + Math.log(1 + C[Go].length) : 0.99) : this.myersDiffingAlgorithm.compute(ze, Xt);
    let dn = Jt.diffs, kr = Jt.hitTimeout;
    dn = URe(ze, Xt, dn), dn = Sut(ze, Xt, dn);
    const ui = [], la = (ya) => {
      if (pe)
        for (let Go = 0; Go < ya; Go++) {
          const jr = Yn + Go, es = nn + Go;
          if (v[jr] !== C[es]) {
            const kc = this.refineDiff(v, C, new c_(new Pl(jr, jr + 1), new Pl(es, es + 1)), ne, pe);
            for (const Bc of kc.mappings)
              ui.push(Bc);
            kc.hitTimeout && (kr = !0);
          }
        }
    };
    let Yn = 0, nn = 0;
    for (const ya of dn) {
      hj(() => ya.seq1Range.start - Yn === ya.seq2Range.start - nn);
      const Go = ya.seq1Range.start - Yn;
      la(Go), Yn = ya.seq1Range.endExclusive, nn = ya.seq2Range.endExclusive;
      const jr = this.refineDiff(v, C, ya, ne, pe);
      jr.hitTimeout && (kr = !0);
      for (const es of jr.mappings)
        ui.push(es);
    }
    la(v.length - Yn);
    const Li = zRe(ui, v, C);
    let vi = [];
    return B.computeMoves && (vi = this.computeMoves(Li, v, C, ct, Le, ne, pe)), hj(() => {
      function ya(jr, es) {
        if (jr.lineNumber < 1 || jr.lineNumber > es.length)
          return !1;
        const kc = es[jr.lineNumber - 1];
        return !(jr.column < 1 || jr.column > kc.length + 1);
      }
      function Go(jr, es) {
        return !(jr.startLineNumber < 1 || jr.startLineNumber > es.length + 1 || jr.endLineNumberExclusive < 1 || jr.endLineNumberExclusive > es.length + 1);
      }
      for (const jr of Li) {
        if (!jr.innerChanges)
          return !1;
        for (const es of jr.innerChanges)
          if (!(ya(es.modifiedRange.getStartPosition(), C) && ya(es.modifiedRange.getEndPosition(), C) && ya(es.originalRange.getStartPosition(), v) && ya(es.originalRange.getEndPosition(), v)))
            return !1;
        if (!Go(jr.modified, C) || !Go(jr.original, v))
          return !1;
      }
      return !0;
    }), new cj(Li, vi, kr);
  }
  computeMoves(v, C, B, ne, pe, Se, Ge) {
    return _ut(v, C, B, ne, pe, Se).map((ze) => {
      const Xt = this.refineDiff(C, B, new c_(ze.original.toOffsetRange(), ze.modified.toOffsetRange()), Se, Ge), Jt = zRe(Xt.mappings, C, B, !0);
      return new eut(ze, Jt);
    });
  }
  refineDiff(v, C, B, ne, pe) {
    const Se = new gj(v, B.seq1Range, pe), Ge = new gj(C, B.seq2Range, pe), ct = Se.length + Ge.length < 500 ? this.dynamicProgrammingDiffing.compute(Se, Ge, ne) : this.myersDiffingAlgorithm.compute(Se, Ge, ne);
    let Le = ct.diffs;
    return Le = URe(Se, Ge, Le), Le = Eut(Se, Ge, Le), Le = but(Se, Ge, Le), Le = xut(Se, Ge, Le), {
      mappings: Le.map((Xt) => new O4(Se.translateRange(Xt.seq1Range), Ge.translateRange(Xt.seq2Range))),
      hitTimeout: ct.hitTimeout
    };
  }
}
function zRe(m, v, C, B = !1) {
  const ne = [];
  for (const pe of Tct(m.map((Se) => Cut(Se, v, C)), (Se, Ge) => Se.original.overlapOrTouch(Ge.original) || Se.modified.overlapOrTouch(Ge.modified))) {
    const Se = pe[0], Ge = pe[pe.length - 1];
    ne.push(new NS(Se.original.join(Ge.original), Se.modified.join(Ge.modified), pe.map((ct) => ct.innerChanges[0])));
  }
  return hj(() => !B && ne.length > 0 && ne[0].original.startLineNumber !== ne[0].modified.startLineNumber ? !1 : uNe(ne, (pe, Se) => Se.original.startLineNumber - pe.original.endLineNumberExclusive === Se.modified.startLineNumber - pe.modified.endLineNumberExclusive && // There has to be an unchanged line in between (otherwise both diffs should have been joined)
  pe.original.endLineNumberExclusive < Se.original.startLineNumber && pe.modified.endLineNumberExclusive < Se.modified.startLineNumber)), ne;
}
function Cut(m, v, C) {
  let B = 0, ne = 0;
  m.modifiedRange.endColumn === 1 && m.originalRange.endColumn === 1 && m.originalRange.startLineNumber + B <= m.originalRange.endLineNumber && m.modifiedRange.startLineNumber + B <= m.modifiedRange.endLineNumber && (ne = -1), m.modifiedRange.startColumn - 1 >= C[m.modifiedRange.startLineNumber - 1].length && m.originalRange.startColumn - 1 >= v[m.originalRange.startLineNumber - 1].length && m.originalRange.startLineNumber <= m.originalRange.endLineNumber + ne && m.modifiedRange.startLineNumber <= m.modifiedRange.endLineNumber + ne && (B = 1);
  const pe = new mc(m.originalRange.startLineNumber + B, m.originalRange.endLineNumber + 1 + ne), Se = new mc(m.modifiedRange.startLineNumber + B, m.modifiedRange.endLineNumber + 1 + ne);
  return new NS(pe, Se, [m]);
}
const qRe = {
  getLegacy: () => new rut(),
  getDefault: () => new Aut()
};
function uA(m, v) {
  const C = Math.pow(10, v);
  return Math.round(m * C) / C;
}
class mp {
  constructor(v, C, B, ne = 1) {
    this._rgbaBrand = void 0, this.r = Math.min(255, Math.max(0, v)) | 0, this.g = Math.min(255, Math.max(0, C)) | 0, this.b = Math.min(255, Math.max(0, B)) | 0, this.a = uA(Math.max(Math.min(1, ne), 0), 3);
  }
  static equals(v, C) {
    return v.r === C.r && v.g === C.g && v.b === C.b && v.a === C.a;
  }
}
class P0 {
  constructor(v, C, B, ne) {
    this._hslaBrand = void 0, this.h = Math.max(Math.min(360, v), 0) | 0, this.s = uA(Math.max(Math.min(1, C), 0), 3), this.l = uA(Math.max(Math.min(1, B), 0), 3), this.a = uA(Math.max(Math.min(1, ne), 0), 3);
  }
  static equals(v, C) {
    return v.h === C.h && v.s === C.s && v.l === C.l && v.a === C.a;
  }
  /**
   * Converts an RGB color value to HSL. Conversion formula
   * adapted from http://en.wikipedia.org/wiki/HSL_color_space.
   * Assumes r, g, and b are contained in the set [0, 255] and
   * returns h in the set [0, 360], s, and l in the set [0, 1].
   */
  static fromRGBA(v) {
    const C = v.r / 255, B = v.g / 255, ne = v.b / 255, pe = v.a, Se = Math.max(C, B, ne), Ge = Math.min(C, B, ne);
    let ct = 0, Le = 0;
    const ze = (Ge + Se) / 2, Xt = Se - Ge;
    if (Xt > 0) {
      switch (Le = Math.min(ze <= 0.5 ? Xt / (2 * ze) : Xt / (2 - 2 * ze), 1), Se) {
        case C:
          ct = (B - ne) / Xt + (B < ne ? 6 : 0);
          break;
        case B:
          ct = (ne - C) / Xt + 2;
          break;
        case ne:
          ct = (C - B) / Xt + 4;
          break;
      }
      ct *= 60, ct = Math.round(ct);
    }
    return new P0(ct, Le, ze, pe);
  }
  static _hue2rgb(v, C, B) {
    return B < 0 && (B += 1), B > 1 && (B -= 1), B < 1 / 6 ? v + (C - v) * 6 * B : B < 1 / 2 ? C : B < 2 / 3 ? v + (C - v) * (2 / 3 - B) * 6 : v;
  }
  /**
   * Converts an HSL color value to RGB. Conversion formula
   * adapted from http://en.wikipedia.org/wiki/HSL_color_space.
   * Assumes h in the set [0, 360] s, and l are contained in the set [0, 1] and
   * returns r, g, and b in the set [0, 255].
   */
  static toRGBA(v) {
    const C = v.h / 360, { s: B, l: ne, a: pe } = v;
    let Se, Ge, ct;
    if (B === 0)
      Se = Ge = ct = ne;
    else {
      const Le = ne < 0.5 ? ne * (1 + B) : ne + B - ne * B, ze = 2 * ne - Le;
      Se = P0._hue2rgb(ze, Le, C + 1 / 3), Ge = P0._hue2rgb(ze, Le, C), ct = P0._hue2rgb(ze, Le, C - 1 / 3);
    }
    return new mp(Math.round(Se * 255), Math.round(Ge * 255), Math.round(ct * 255), pe);
  }
}
class ZD {
  constructor(v, C, B, ne) {
    this._hsvaBrand = void 0, this.h = Math.max(Math.min(360, v), 0) | 0, this.s = uA(Math.max(Math.min(1, C), 0), 3), this.v = uA(Math.max(Math.min(1, B), 0), 3), this.a = uA(Math.max(Math.min(1, ne), 0), 3);
  }
  static equals(v, C) {
    return v.h === C.h && v.s === C.s && v.v === C.v && v.a === C.a;
  }
  // from http://www.rapidtables.com/convert/color/rgb-to-hsv.htm
  static fromRGBA(v) {
    const C = v.r / 255, B = v.g / 255, ne = v.b / 255, pe = Math.max(C, B, ne), Se = Math.min(C, B, ne), Ge = pe - Se, ct = pe === 0 ? 0 : Ge / pe;
    let Le;
    return Ge === 0 ? Le = 0 : pe === C ? Le = ((B - ne) / Ge % 6 + 6) % 6 : pe === B ? Le = (ne - C) / Ge + 2 : Le = (C - B) / Ge + 4, new ZD(Math.round(Le * 60), ct, pe, v.a);
  }
  // from http://www.rapidtables.com/convert/color/hsv-to-rgb.htm
  static toRGBA(v) {
    const { h: C, s: B, v: ne, a: pe } = v, Se = ne * B, Ge = Se * (1 - Math.abs(C / 60 % 2 - 1)), ct = ne - Se;
    let [Le, ze, Xt] = [0, 0, 0];
    return C < 60 ? (Le = Se, ze = Ge) : C < 120 ? (Le = Ge, ze = Se) : C < 180 ? (ze = Se, Xt = Ge) : C < 240 ? (ze = Ge, Xt = Se) : C < 300 ? (Le = Ge, Xt = Se) : C <= 360 && (Le = Se, Xt = Ge), Le = Math.round((Le + ct) * 255), ze = Math.round((ze + ct) * 255), Xt = Math.round((Xt + ct) * 255), new mp(Le, ze, Xt, pe);
  }
}
class Xc {
  static fromHex(v) {
    return Xc.Format.CSS.parseHex(v) || Xc.red;
  }
  static equals(v, C) {
    return !v && !C ? !0 : !v || !C ? !1 : v.equals(C);
  }
  get hsla() {
    return this._hsla ? this._hsla : P0.fromRGBA(this.rgba);
  }
  get hsva() {
    return this._hsva ? this._hsva : ZD.fromRGBA(this.rgba);
  }
  constructor(v) {
    if (v)
      if (v instanceof mp)
        this.rgba = v;
      else if (v instanceof P0)
        this._hsla = v, this.rgba = P0.toRGBA(v);
      else if (v instanceof ZD)
        this._hsva = v, this.rgba = ZD.toRGBA(v);
      else
        throw new Error("Invalid color ctor argument");
    else
      throw new Error("Color needs a value");
  }
  equals(v) {
    return !!v && mp.equals(this.rgba, v.rgba) && P0.equals(this.hsla, v.hsla) && ZD.equals(this.hsva, v.hsva);
  }
  /**
   * http://www.w3.org/TR/WCAG20/#relativeluminancedef
   * Returns the number in the set [0, 1]. O => Darkest Black. 1 => Lightest white.
   */
  getRelativeLuminance() {
    const v = Xc._relativeLuminanceForComponent(this.rgba.r), C = Xc._relativeLuminanceForComponent(this.rgba.g), B = Xc._relativeLuminanceForComponent(this.rgba.b), ne = 0.2126 * v + 0.7152 * C + 0.0722 * B;
    return uA(ne, 4);
  }
  static _relativeLuminanceForComponent(v) {
    const C = v / 255;
    return C <= 0.03928 ? C / 12.92 : Math.pow((C + 0.055) / 1.055, 2.4);
  }
  /**
   *	http://24ways.org/2010/calculating-color-contrast
   *  Return 'true' if lighter color otherwise 'false'
   */
  isLighter() {
    return (this.rgba.r * 299 + this.rgba.g * 587 + this.rgba.b * 114) / 1e3 >= 128;
  }
  isLighterThan(v) {
    const C = this.getRelativeLuminance(), B = v.getRelativeLuminance();
    return C > B;
  }
  isDarkerThan(v) {
    const C = this.getRelativeLuminance(), B = v.getRelativeLuminance();
    return C < B;
  }
  lighten(v) {
    return new Xc(new P0(this.hsla.h, this.hsla.s, this.hsla.l + this.hsla.l * v, this.hsla.a));
  }
  darken(v) {
    return new Xc(new P0(this.hsla.h, this.hsla.s, this.hsla.l - this.hsla.l * v, this.hsla.a));
  }
  transparent(v) {
    const { r: C, g: B, b: ne, a: pe } = this.rgba;
    return new Xc(new mp(C, B, ne, pe * v));
  }
  isTransparent() {
    return this.rgba.a === 0;
  }
  isOpaque() {
    return this.rgba.a === 1;
  }
  opposite() {
    return new Xc(new mp(255 - this.rgba.r, 255 - this.rgba.g, 255 - this.rgba.b, this.rgba.a));
  }
  makeOpaque(v) {
    if (this.isOpaque() || v.rgba.a !== 1)
      return this;
    const { r: C, g: B, b: ne, a: pe } = this.rgba;
    return new Xc(new mp(v.rgba.r - pe * (v.rgba.r - C), v.rgba.g - pe * (v.rgba.g - B), v.rgba.b - pe * (v.rgba.b - ne), 1));
  }
  toString() {
    return this._toString || (this._toString = Xc.Format.CSS.format(this)), this._toString;
  }
  static getLighterColor(v, C, B) {
    if (v.isLighterThan(C))
      return v;
    B = B || 0.5;
    const ne = v.getRelativeLuminance(), pe = C.getRelativeLuminance();
    return B = B * (pe - ne) / pe, v.lighten(B);
  }
  static getDarkerColor(v, C, B) {
    if (v.isDarkerThan(C))
      return v;
    B = B || 0.5;
    const ne = v.getRelativeLuminance(), pe = C.getRelativeLuminance();
    return B = B * (ne - pe) / ne, v.darken(B);
  }
}
Xc.white = new Xc(new mp(255, 255, 255, 1));
Xc.black = new Xc(new mp(0, 0, 0, 1));
Xc.red = new Xc(new mp(255, 0, 0, 1));
Xc.blue = new Xc(new mp(0, 0, 255, 1));
Xc.green = new Xc(new mp(0, 255, 0, 1));
Xc.cyan = new Xc(new mp(0, 255, 255, 1));
Xc.lightgrey = new Xc(new mp(211, 211, 211, 1));
Xc.transparent = new Xc(new mp(0, 0, 0, 0));
(function(m) {
  (function(v) {
    (function(C) {
      function B(dn) {
        return dn.rgba.a === 1 ? `rgb(${dn.rgba.r}, ${dn.rgba.g}, ${dn.rgba.b})` : m.Format.CSS.formatRGBA(dn);
      }
      C.formatRGB = B;
      function ne(dn) {
        return `rgba(${dn.rgba.r}, ${dn.rgba.g}, ${dn.rgba.b}, ${+dn.rgba.a.toFixed(2)})`;
      }
      C.formatRGBA = ne;
      function pe(dn) {
        return dn.hsla.a === 1 ? `hsl(${dn.hsla.h}, ${(dn.hsla.s * 100).toFixed(2)}%, ${(dn.hsla.l * 100).toFixed(2)}%)` : m.Format.CSS.formatHSLA(dn);
      }
      C.formatHSL = pe;
      function Se(dn) {
        return `hsla(${dn.hsla.h}, ${(dn.hsla.s * 100).toFixed(2)}%, ${(dn.hsla.l * 100).toFixed(2)}%, ${dn.hsla.a.toFixed(2)})`;
      }
      C.formatHSLA = Se;
      function Ge(dn) {
        const kr = dn.toString(16);
        return kr.length !== 2 ? "0" + kr : kr;
      }
      function ct(dn) {
        return `#${Ge(dn.rgba.r)}${Ge(dn.rgba.g)}${Ge(dn.rgba.b)}`;
      }
      C.formatHex = ct;
      function Le(dn, kr = !1) {
        return kr && dn.rgba.a === 1 ? m.Format.CSS.formatHex(dn) : `#${Ge(dn.rgba.r)}${Ge(dn.rgba.g)}${Ge(dn.rgba.b)}${Ge(Math.round(dn.rgba.a * 255))}`;
      }
      C.formatHexA = Le;
      function ze(dn) {
        return dn.isOpaque() ? m.Format.CSS.formatHex(dn) : m.Format.CSS.formatRGBA(dn);
      }
      C.format = ze;
      function Xt(dn) {
        const kr = dn.length;
        if (kr === 0 || dn.charCodeAt(0) !== 35)
          return null;
        if (kr === 7) {
          const ui = 16 * Jt(dn.charCodeAt(1)) + Jt(dn.charCodeAt(2)), la = 16 * Jt(dn.charCodeAt(3)) + Jt(dn.charCodeAt(4)), Yn = 16 * Jt(dn.charCodeAt(5)) + Jt(dn.charCodeAt(6));
          return new m(new mp(ui, la, Yn, 1));
        }
        if (kr === 9) {
          const ui = 16 * Jt(dn.charCodeAt(1)) + Jt(dn.charCodeAt(2)), la = 16 * Jt(dn.charCodeAt(3)) + Jt(dn.charCodeAt(4)), Yn = 16 * Jt(dn.charCodeAt(5)) + Jt(dn.charCodeAt(6)), nn = 16 * Jt(dn.charCodeAt(7)) + Jt(dn.charCodeAt(8));
          return new m(new mp(ui, la, Yn, nn / 255));
        }
        if (kr === 4) {
          const ui = Jt(dn.charCodeAt(1)), la = Jt(dn.charCodeAt(2)), Yn = Jt(dn.charCodeAt(3));
          return new m(new mp(16 * ui + ui, 16 * la + la, 16 * Yn + Yn));
        }
        if (kr === 5) {
          const ui = Jt(dn.charCodeAt(1)), la = Jt(dn.charCodeAt(2)), Yn = Jt(dn.charCodeAt(3)), nn = Jt(dn.charCodeAt(4));
          return new m(new mp(16 * ui + ui, 16 * la + la, 16 * Yn + Yn, (16 * nn + nn) / 255));
        }
        return null;
      }
      C.parseHex = Xt;
      function Jt(dn) {
        switch (dn) {
          case 48:
            return 0;
          case 49:
            return 1;
          case 50:
            return 2;
          case 51:
            return 3;
          case 52:
            return 4;
          case 53:
            return 5;
          case 54:
            return 6;
          case 55:
            return 7;
          case 56:
            return 8;
          case 57:
            return 9;
          case 97:
            return 10;
          case 65:
            return 10;
          case 98:
            return 11;
          case 66:
            return 11;
          case 99:
            return 12;
          case 67:
            return 12;
          case 100:
            return 13;
          case 68:
            return 13;
          case 101:
            return 14;
          case 69:
            return 14;
          case 102:
            return 15;
          case 70:
            return 15;
        }
        return 0;
      }
    })(v.CSS || (v.CSS = {}));
  })(m.Format || (m.Format = {}));
})(Xc || (Xc = {}));
function _Ne(m) {
  const v = [];
  for (const C of m) {
    const B = Number(C);
    (B || B === 0 && C.replace(/\s/g, "") !== "") && v.push(B);
  }
  return v;
}
function bse(m, v, C, B) {
  return {
    red: m / 255,
    blue: C / 255,
    green: v / 255,
    alpha: B
  };
}
function L4(m, v) {
  const C = v.index, B = v[0].length;
  if (!C)
    return;
  const ne = m.positionAt(C);
  return {
    startLineNumber: ne.lineNumber,
    startColumn: ne.column,
    endLineNumber: ne.lineNumber,
    endColumn: ne.column + B
  };
}
function Lut(m, v) {
  if (!m)
    return;
  const C = Xc.Format.CSS.parseHex(v);
  if (C)
    return {
      range: m,
      color: bse(C.rgba.r, C.rgba.g, C.rgba.b, C.rgba.a)
    };
}
function JRe(m, v, C) {
  if (!m || v.length !== 1)
    return;
  const ne = v[0].values(), pe = _Ne(ne);
  return {
    range: m,
    color: bse(pe[0], pe[1], pe[2], C ? pe[3] : 1)
  };
}
function KRe(m, v, C) {
  if (!m || v.length !== 1)
    return;
  const ne = v[0].values(), pe = _Ne(ne), Se = new Xc(new P0(pe[0], pe[1] / 100, pe[2] / 100, C ? pe[3] : 1));
  return {
    range: m,
    color: bse(Se.rgba.r, Se.rgba.g, Se.rgba.b, Se.rgba.a)
  };
}
function I4(m, v) {
  return typeof m == "string" ? [...m.matchAll(v)] : m.findMatches(v);
}
function Iut(m) {
  const v = [], B = I4(m, /\b(rgb|rgba|hsl|hsla)(\([0-9\s,.\%]*\))|(#)([A-Fa-f0-9]{3})\b|(#)([A-Fa-f0-9]{4})\b|(#)([A-Fa-f0-9]{6})\b|(#)([A-Fa-f0-9]{8})\b/gm);
  if (B.length > 0)
    for (const ne of B) {
      const pe = ne.filter((Le) => Le !== void 0), Se = pe[1], Ge = pe[2];
      if (!Ge)
        continue;
      let ct;
      if (Se === "rgb") {
        const Le = /^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm;
        ct = JRe(L4(m, ne), I4(Ge, Le), !1);
      } else if (Se === "rgba") {
        const Le = /^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;
        ct = JRe(L4(m, ne), I4(Ge, Le), !0);
      } else if (Se === "hsl") {
        const Le = /^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm;
        ct = KRe(L4(m, ne), I4(Ge, Le), !1);
      } else if (Se === "hsla") {
        const Le = /^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;
        ct = KRe(L4(m, ne), I4(Ge, Le), !0);
      } else
        Se === "#" && (ct = Lut(L4(m, ne), Se + Ge));
      ct && v.push(ct);
    }
  return v;
}
function kut(m) {
  return !m || typeof m.getValue != "function" || typeof m.positionAt != "function" ? [] : Iut(m);
}
class wut extends kct {
  get uri() {
    return this._uri;
  }
  get eol() {
    return this._eol;
  }
  getValue() {
    return this.getText();
  }
  findMatches(v) {
    const C = [];
    for (let B = 0; B < this._lines.length; B++) {
      const ne = this._lines[B], pe = this.offsetAt(new xm(B + 1, 1)), Se = ne.matchAll(v);
      for (const Ge of Se)
        (Ge.index || Ge.index === 0) && (Ge.index = Ge.index + pe), C.push(Ge);
    }
    return C;
  }
  getLinesContent() {
    return this._lines.slice(0);
  }
  getLineCount() {
    return this._lines.length;
  }
  getLineContent(v) {
    return this._lines[v - 1];
  }
  getWordAtPosition(v, C) {
    const B = gse(v.column, sNe(C), this._lines[v.lineNumber - 1], 0);
    return B ? new Wl(v.lineNumber, B.startColumn, v.lineNumber, B.endColumn) : null;
  }
  words(v) {
    const C = this._lines, B = this._wordenize.bind(this);
    let ne = 0, pe = "", Se = 0, Ge = [];
    return {
      *[Symbol.iterator]() {
        for (; ; )
          if (Se < Ge.length) {
            const ct = pe.substring(Ge[Se].start, Ge[Se].end);
            Se += 1, yield ct;
          } else if (ne < C.length)
            pe = C[ne], Ge = B(pe, v), Se = 0, ne += 1;
          else
            break;
      }
    };
  }
  getLineWords(v, C) {
    const B = this._lines[v - 1], ne = this._wordenize(B, C), pe = [];
    for (const Se of ne)
      pe.push({
        word: B.substring(Se.start, Se.end),
        startColumn: Se.start + 1,
        endColumn: Se.end + 1
      });
    return pe;
  }
  _wordenize(v, C) {
    const B = [];
    let ne;
    for (C.lastIndex = 0; (ne = C.exec(v)) && ne[0].length !== 0; )
      B.push({ start: ne.index, end: ne.index + ne[0].length });
    return B;
  }
  getValueInRange(v) {
    if (v = this._validateRange(v), v.startLineNumber === v.endLineNumber)
      return this._lines[v.startLineNumber - 1].substring(v.startColumn - 1, v.endColumn - 1);
    const C = this._eol, B = v.startLineNumber - 1, ne = v.endLineNumber - 1, pe = [];
    pe.push(this._lines[B].substring(v.startColumn - 1));
    for (let Se = B + 1; Se < ne; Se++)
      pe.push(this._lines[Se]);
    return pe.push(this._lines[ne].substring(0, v.endColumn - 1)), pe.join(C);
  }
  offsetAt(v) {
    return v = this._validatePosition(v), this._ensureLineStarts(), this._lineStarts.getPrefixSum(v.lineNumber - 2) + (v.column - 1);
  }
  positionAt(v) {
    v = Math.floor(v), v = Math.max(0, v), this._ensureLineStarts();
    const C = this._lineStarts.getIndexOf(v), B = this._lines[C.index].length;
    return {
      lineNumber: 1 + C.index,
      column: 1 + Math.min(C.remainder, B)
    };
  }
  _validateRange(v) {
    const C = this._validatePosition({ lineNumber: v.startLineNumber, column: v.startColumn }), B = this._validatePosition({ lineNumber: v.endLineNumber, column: v.endColumn });
    return C.lineNumber !== v.startLineNumber || C.column !== v.startColumn || B.lineNumber !== v.endLineNumber || B.column !== v.endColumn ? {
      startLineNumber: C.lineNumber,
      startColumn: C.column,
      endLineNumber: B.lineNumber,
      endColumn: B.column
    } : v;
  }
  _validatePosition(v) {
    if (!xm.isIPosition(v))
      throw new Error("bad position");
    let { lineNumber: C, column: B } = v, ne = !1;
    if (C < 1)
      C = 1, B = 1, ne = !0;
    else if (C > this._lines.length)
      C = this._lines.length, B = this._lines[C - 1].length + 1, ne = !0;
    else {
      const pe = this._lines[C - 1].length + 1;
      B < 1 ? (B = 1, ne = !0) : B > pe && (B = pe, ne = !0);
    }
    return ne ? { lineNumber: C, column: B } : v;
  }
}
class tI {
  constructor(v, C) {
    this._host = v, this._models = /* @__PURE__ */ Object.create(null), this._foreignModuleFactory = C, this._foreignModule = null;
  }
  dispose() {
    this._models = /* @__PURE__ */ Object.create(null);
  }
  _getModel(v) {
    return this._models[v];
  }
  _getModels() {
    const v = [];
    return Object.keys(this._models).forEach((C) => v.push(this._models[C])), v;
  }
  acceptNewModel(v) {
    this._models[v.url] = new wut(eI.parse(v.url), v.lines, v.EOL, v.versionId);
  }
  acceptModelChanged(v, C) {
    if (!this._models[v])
      return;
    this._models[v].onEvents(C);
  }
  acceptRemovedModel(v) {
    this._models[v] && delete this._models[v];
  }
  async computeUnicodeHighlights(v, C, B) {
    const ne = this._getModel(v);
    return ne ? Qct.computeUnicodeHighlights(ne, C, B) : { ranges: [], hasMore: !1, ambiguousCharacterCount: 0, invisibleCharacterCount: 0, nonBasicAsciiCharacterCount: 0 };
  }
  // ---- BEGIN diff --------------------------------------------------------------------------
  async computeDiff(v, C, B, ne) {
    const pe = this._getModel(v), Se = this._getModel(C);
    return !pe || !Se ? null : tI.computeDiff(pe, Se, B, ne);
  }
  static computeDiff(v, C, B, ne) {
    const pe = ne === "advanced" ? qRe.getDefault() : qRe.getLegacy(), Se = v.getLinesContent(), Ge = C.getLinesContent(), ct = pe.computeDiff(Se, Ge, B), Le = ct.changes.length > 0 ? !1 : this._modelsAreIdentical(v, C);
    function ze(Xt) {
      return Xt.map((Jt) => {
        var dn;
        return [Jt.original.startLineNumber, Jt.original.endLineNumberExclusive, Jt.modified.startLineNumber, Jt.modified.endLineNumberExclusive, (dn = Jt.innerChanges) === null || dn === void 0 ? void 0 : dn.map((kr) => [
          kr.originalRange.startLineNumber,
          kr.originalRange.startColumn,
          kr.originalRange.endLineNumber,
          kr.originalRange.endColumn,
          kr.modifiedRange.startLineNumber,
          kr.modifiedRange.startColumn,
          kr.modifiedRange.endLineNumber,
          kr.modifiedRange.endColumn
        ])];
      });
    }
    return {
      identical: Le,
      quitEarly: ct.hitTimeout,
      changes: ze(ct.changes),
      moves: ct.moves.map((Xt) => [
        Xt.lineRangeMapping.original.startLineNumber,
        Xt.lineRangeMapping.original.endLineNumberExclusive,
        Xt.lineRangeMapping.modified.startLineNumber,
        Xt.lineRangeMapping.modified.endLineNumberExclusive,
        ze(Xt.changes)
      ])
    };
  }
  static _modelsAreIdentical(v, C) {
    const B = v.getLineCount(), ne = C.getLineCount();
    if (B !== ne)
      return !1;
    for (let pe = 1; pe <= B; pe++) {
      const Se = v.getLineContent(pe), Ge = C.getLineContent(pe);
      if (Se !== Ge)
        return !1;
    }
    return !0;
  }
  async computeMoreMinimalEdits(v, C, B) {
    const ne = this._getModel(v);
    if (!ne)
      return C;
    const pe = [];
    let Se;
    C = C.slice(0).sort((ct, Le) => {
      if (ct.range && Le.range)
        return Wl.compareRangesUsingStarts(ct.range, Le.range);
      const ze = ct.range ? 0 : 1, Xt = Le.range ? 0 : 1;
      return ze - Xt;
    });
    let Ge = 0;
    for (let ct = 1; ct < C.length; ct++)
      Wl.getEndPosition(C[Ge].range).equals(Wl.getStartPosition(C[ct].range)) ? (C[Ge].range = Wl.fromPositions(Wl.getStartPosition(C[Ge].range), Wl.getEndPosition(C[ct].range)), C[Ge].text += C[ct].text) : (Ge++, C[Ge] = C[ct]);
    C.length = Ge + 1;
    for (let { range: ct, text: Le, eol: ze } of C) {
      if (typeof ze == "number" && (Se = ze), Wl.isEmpty(ct) && !Le)
        continue;
      const Xt = ne.getValueInRange(ct);
      if (Le = Le.replace(/\r\n|\n|\r/g, ne.eol), Xt === Le)
        continue;
      if (Math.max(Le.length, Xt.length) > tI._diffLimit) {
        pe.push({ range: ct, text: Le });
        continue;
      }
      const Jt = rct(Xt, Le, B), dn = ne.offsetAt(Wl.lift(ct).getStartPosition());
      for (const kr of Jt) {
        const ui = ne.positionAt(dn + kr.originalStart), la = ne.positionAt(dn + kr.originalStart + kr.originalLength), Yn = {
          text: Le.substr(kr.modifiedStart, kr.modifiedLength),
          range: { startLineNumber: ui.lineNumber, startColumn: ui.column, endLineNumber: la.lineNumber, endColumn: la.column }
        };
        ne.getValueInRange(Yn.range) !== Yn.text && pe.push(Yn);
      }
    }
    return typeof Se == "number" && pe.push({ eol: Se, text: "", range: { startLineNumber: 0, startColumn: 0, endLineNumber: 0, endColumn: 0 } }), pe;
  }
  // ---- END minimal edits ---------------------------------------------------------------
  async computeLinks(v) {
    const C = this._getModel(v);
    return C ? Fct(C) : null;
  }
  // --- BEGIN default document colors -----------------------------------------------------------
  async computeDefaultDocumentColors(v) {
    const C = this._getModel(v);
    return C ? kut(C) : null;
  }
  async textualSuggest(v, C, B, ne) {
    const pe = new yj(), Se = new RegExp(B, ne), Ge = /* @__PURE__ */ new Set();
    e:
      for (const ct of v) {
        const Le = this._getModel(ct);
        if (Le) {
          for (const ze of Le.words(Se))
            if (!(ze === C || !isNaN(Number(ze))) && (Ge.add(ze), Ge.size > tI._suggestionsLimit))
              break e;
        }
      }
    return { words: Array.from(Ge), duration: pe.elapsed() };
  }
  // ---- END suggest --------------------------------------------------------------------------
  //#region -- word ranges --
  async computeWordRanges(v, C, B, ne) {
    const pe = this._getModel(v);
    if (!pe)
      return /* @__PURE__ */ Object.create(null);
    const Se = new RegExp(B, ne), Ge = /* @__PURE__ */ Object.create(null);
    for (let ct = C.startLineNumber; ct < C.endLineNumber; ct++) {
      const Le = pe.getLineWords(ct, Se);
      for (const ze of Le) {
        if (!isNaN(Number(ze.word)))
          continue;
        let Xt = Ge[ze.word];
        Xt || (Xt = [], Ge[ze.word] = Xt), Xt.push({
          startLineNumber: ct,
          startColumn: ze.startColumn,
          endLineNumber: ct,
          endColumn: ze.endColumn
        });
      }
    }
    return Ge;
  }
  //#endregion
  async navigateValueSet(v, C, B, ne, pe) {
    const Se = this._getModel(v);
    if (!Se)
      return null;
    const Ge = new RegExp(ne, pe);
    C.startColumn === C.endColumn && (C = {
      startLineNumber: C.startLineNumber,
      startColumn: C.startColumn,
      endLineNumber: C.endLineNumber,
      endColumn: C.endColumn + 1
    });
    const ct = Se.getValueInRange(C), Le = Se.getWordAtPosition({ lineNumber: C.startLineNumber, column: C.startColumn }, Ge);
    if (!Le)
      return null;
    const ze = Se.getValueInRange(Le);
    return ise.INSTANCE.navigateValueSet(C, ct, Le, ze, B);
  }
  // ---- BEGIN foreign module support --------------------------------------------------------------------------
  loadForeignModule(v, C, B) {
    const Se = {
      host: klt(B, (Ge, ct) => this._host.fhr(Ge, ct)),
      getMirrorModels: () => this._getModels()
    };
    return this._foreignModuleFactory ? (this._foreignModule = this._foreignModuleFactory(Se, C), Promise.resolve($oe(this._foreignModule))) : Promise.reject(new Error("Unexpected usage"));
  }
  // foreign method request
  fmr(v, C) {
    if (!this._foreignModule || typeof this._foreignModule[v] != "function")
      return Promise.reject(new Error("Missing requestHandler or method: " + v));
    try {
      return Promise.resolve(this._foreignModule[v].apply(this._foreignModule, C));
    } catch (B) {
      return Promise.reject(B);
    }
  }
}
tI._diffLimit = 1e5;
tI._suggestionsLimit = 1e4;
typeof importScripts == "function" && (globalThis.monaco = qct());
let mse = !1;
function pNe(m) {
  if (mse)
    return;
  mse = !0;
  const v = new tct((C) => {
    globalThis.postMessage(C);
  }, (C) => new tI(C, m));
  globalThis.onmessage = (C) => {
    v.onmessage(C.data);
  };
}
globalThis.onmessage = (m) => {
  mse || pNe(null);
};
/*!-----------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56)
 * Released under the MIT license
 * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
 *-----------------------------------------------------------------------------*/
var Dut = Object.defineProperty, Rut = (m, v) => {
  for (var C in v)
    Dut(m, C, { get: v[C], enumerable: !0 });
}, mNe = {};
Rut(mNe, {
  EndOfLineState: () => Put,
  IndentStyle: () => Fut,
  ScriptKind: () => QL,
  ScriptTarget: () => But,
  TokenClass: () => Gut,
  createClassifier: () => Nut,
  createLanguageService: () => hNe,
  displayPartsToString: () => Out,
  flattenDiagnosticMessageText: () => Mut,
  typescript: () => gNe
});
var Xb = void 0, uj = { exports: {} }, Zb = (() => {
  var m = Object.defineProperty, v = Object.getOwnPropertyNames, C = (e, t) => function() {
    return e && (t = (0, e[v(e)[0]])(e = 0)), t;
  }, B = (e, t) => function() {
    return t || (0, e[v(e)[0]])((t = { exports: {} }).exports, t), t.exports;
  }, ne = (e, t) => {
    for (var r in t)
      m(e, r, { get: t[r], enumerable: !0 });
  }, pe, Se, Ge, ct = C({
    "src/compiler/corePublic.ts"() {
      pe = "5.0", Se = "5.0.2", Ge = /* @__PURE__ */ ((e) => (e[e.LessThan = -1] = "LessThan", e[e.EqualTo = 0] = "EqualTo", e[e.GreaterThan = 1] = "GreaterThan", e))(Ge || {});
    }
  });
  function Le(e) {
    return e ? e.length : 0;
  }
  function ze(e, t) {
    if (e)
      for (let r = 0; r < e.length; r++) {
        const i = t(e[r], r);
        if (i)
          return i;
      }
  }
  function Xt(e, t) {
    if (e)
      for (let r = e.length - 1; r >= 0; r--) {
        const i = t(e[r], r);
        if (i)
          return i;
      }
  }
  function Jt(e, t) {
    if (e !== void 0)
      for (let r = 0; r < e.length; r++) {
        const i = t(e[r], r);
        if (i !== void 0)
          return i;
      }
  }
  function dn(e, t) {
    for (const r of e) {
      const i = t(r);
      if (i !== void 0)
        return i;
    }
  }
  function kr(e, t, r) {
    let i = r;
    if (e) {
      let o = 0;
      for (const s of e)
        i = t(i, s, o), o++;
    }
    return i;
  }
  function ui(e, t, r) {
    const i = [];
    D.assertEqual(e.length, t.length);
    for (let o = 0; o < e.length; o++)
      i.push(r(e[o], t[o], o));
    return i;
  }
  function la(e, t) {
    if (e.length <= 1)
      return e;
    const r = [];
    for (let i = 0, o = e.length; i < o; i++)
      i && r.push(t), r.push(e[i]);
    return r;
  }
  function Yn(e, t) {
    if (e) {
      for (let r = 0; r < e.length; r++)
        if (!t(e[r], r))
          return !1;
    }
    return !0;
  }
  function nn(e, t, r) {
    if (e !== void 0)
      for (let i = r ?? 0; i < e.length; i++) {
        const o = e[i];
        if (t(o, i))
          return o;
      }
  }
  function Li(e, t, r) {
    if (e !== void 0)
      for (let i = r ?? e.length - 1; i >= 0; i--) {
        const o = e[i];
        if (t(o, i))
          return o;
      }
  }
  function vi(e, t, r) {
    if (e === void 0)
      return -1;
    for (let i = r ?? 0; i < e.length; i++)
      if (t(e[i], i))
        return i;
    return -1;
  }
  function ya(e, t, r) {
    if (e === void 0)
      return -1;
    for (let i = r ?? e.length - 1; i >= 0; i--)
      if (t(e[i], i))
        return i;
    return -1;
  }
  function Go(e, t) {
    for (let r = 0; r < e.length; r++) {
      const i = t(e[r], r);
      if (i)
        return i;
    }
    return D.fail();
  }
  function jr(e, t, r = F0) {
    if (e) {
      for (const i of e)
        if (r(i, t))
          return !0;
    }
    return !1;
  }
  function es(e, t, r = F0) {
    return e.length === t.length && e.every((i, o) => r(i, t[o]));
  }
  function kc(e, t, r) {
    for (let i = r || 0; i < e.length; i++)
      if (jr(t, e.charCodeAt(i)))
        return i;
    return -1;
  }
  function Bc(e, t) {
    let r = 0;
    if (e)
      for (let i = 0; i < e.length; i++) {
        const o = e[i];
        t(o, i) && r++;
      }
    return r;
  }
  function lr(e, t) {
    if (e) {
      const r = e.length;
      let i = 0;
      for (; i < r && t(e[i]); )
        i++;
      if (i < r) {
        const o = e.slice(0, i);
        for (i++; i < r; ) {
          const s = e[i];
          t(s) && o.push(s), i++;
        }
        return o;
      }
    }
    return e;
  }
  function Ri(e, t) {
    let r = 0;
    for (let i = 0; i < e.length; i++)
      t(e[i], i, e) && (e[r] = e[i], r++);
    e.length = r;
  }
  function Fi(e) {
    e.length = 0;
  }
  function jt(e, t) {
    let r;
    if (e) {
      r = [];
      for (let i = 0; i < e.length; i++)
        r.push(t(e[i], i));
    }
    return r;
  }
  function* ao(e, t) {
    for (const r of e)
      yield t(r);
  }
  function _a(e, t) {
    if (e)
      for (let r = 0; r < e.length; r++) {
        const i = e[r], o = t(i, r);
        if (i !== o) {
          const s = e.slice(0, r);
          for (s.push(o), r++; r < e.length; r++)
            s.push(t(e[r], r));
          return s;
        }
      }
    return e;
  }
  function No(e) {
    const t = [];
    for (const r of e)
      r && (Va(r) ? Ti(t, r) : t.push(r));
    return t;
  }
  function ca(e, t) {
    let r;
    if (e)
      for (let i = 0; i < e.length; i++) {
        const o = t(e[i], i);
        o && (Va(o) ? r = Ti(r, o) : r = Fn(r, o));
      }
    return r || rt;
  }
  function Bd(e, t) {
    const r = [];
    if (e)
      for (let i = 0; i < e.length; i++) {
        const o = t(e[i], i);
        o && (Va(o) ? Ti(r, o) : r.push(o));
      }
    return r;
  }
  function* u_(e, t) {
    for (const r of e) {
      const i = t(r);
      i && (yield* i);
    }
  }
  function KE(e, t) {
    let r;
    if (e)
      for (let i = 0; i < e.length; i++) {
        const o = e[i], s = t(o, i);
        (r || o !== s || Va(s)) && (r || (r = e.slice(0, i)), Va(s) ? Ti(r, s) : r.push(s));
      }
    return r || e;
  }
  function OS(e, t) {
    const r = [];
    for (let i = 0; i < e.length; i++) {
      const o = t(e[i], i);
      if (o === void 0)
        return;
      r.push(o);
    }
    return r;
  }
  function ia(e, t) {
    const r = [];
    if (e)
      for (let i = 0; i < e.length; i++) {
        const o = t(e[i], i);
        o !== void 0 && r.push(o);
      }
    return r;
  }
  function* _A(e, t) {
    for (const r of e) {
      const i = t(r);
      i !== void 0 && (yield i);
    }
  }
  function iI(e, t) {
    if (!e)
      return;
    const r = /* @__PURE__ */ new Map();
    return e.forEach((i, o) => {
      const s = t(o, i);
      if (s !== void 0) {
        const [c, f] = s;
        c !== void 0 && f !== void 0 && r.set(c, f);
      }
    }), r;
  }
  function pA(e, t, r) {
    if (e.has(t))
      return e.get(t);
    const i = r();
    return e.set(t, i), i;
  }
  function hv(e, t) {
    return e.has(t) ? !1 : (e.add(t), !0);
  }
  function* yNe(e) {
    yield e;
  }
  function B4(e, t, r) {
    let i;
    if (e) {
      i = [];
      const o = e.length;
      let s, c, f = 0, d = 0;
      for (; f < o; ) {
        for (; d < o; ) {
          const y = e[d];
          if (c = t(y, d), d === 0)
            s = c;
          else if (c !== s)
            break;
          d++;
        }
        if (f < d) {
          const y = r(e.slice(f, d), s, f, d);
          y && i.push(y), f = d;
        }
        s = c, d++;
      }
    }
    return i;
  }
  function Ese(e, t) {
    if (!e)
      return;
    const r = /* @__PURE__ */ new Map();
    return e.forEach((i, o) => {
      const [s, c] = t(o, i);
      r.set(s, c);
    }), r;
  }
  function kt(e, t) {
    if (e)
      if (t) {
        for (const r of e)
          if (t(r))
            return !0;
      } else
        return e.length > 0;
    return !1;
  }
  function vj(e, t, r) {
    let i;
    for (let o = 0; o < e.length; o++)
      t(e[o]) ? i = i === void 0 ? o : i : i !== void 0 && (r(i, o), i = void 0);
    i !== void 0 && r(i, e.length);
  }
  function va(e, t) {
    return kt(t) ? kt(e) ? [...e, ...t] : t : e;
  }
  function vNe(e, t) {
    return t;
  }
  function lR(e) {
    return e.map(vNe);
  }
  function bNe(e, t, r) {
    const i = lR(e);
    xse(e, i, r);
    let o = e[i[0]];
    const s = [i[0]];
    for (let c = 1; c < i.length; c++) {
      const f = i[c], d = e[f];
      t(o, d) || (s.push(f), o = d);
    }
    return s.sort(), s.map((c) => e[c]);
  }
  function ENe(e, t) {
    const r = [];
    for (const i of e)
      d_(r, i, t);
    return r;
  }
  function mA(e, t, r) {
    return e.length === 0 ? [] : e.length === 1 ? e.slice() : r ? bNe(e, t, r) : ENe(e, t);
  }
  function TNe(e, t) {
    if (e.length === 0)
      return rt;
    let r = e[0];
    const i = [r];
    for (let o = 1; o < e.length; o++) {
      const s = e[o];
      switch (t(s, r)) {
        case !0:
        case 0:
          continue;
        case -1:
          return D.fail("Array is unsorted.");
      }
      i.push(r = s);
    }
    return i;
  }
  function bj() {
    return [];
  }
  function gv(e, t, r, i) {
    if (e.length === 0)
      return e.push(t), !0;
    const o = yv(e, t, ml, r);
    return o < 0 ? (e.splice(~o, 0, t), !0) : i ? (e.splice(o, 0, t), !0) : !1;
  }
  function cR(e, t, r) {
    return TNe(aI(e, t), r || t || Nu);
  }
  function Tse(e, t) {
    if (e.length < 2)
      return !0;
    for (let r = 1, i = e.length; r < i; r++)
      if (t(e[r - 1], e[r]) === 1)
        return !1;
    return !0;
  }
  function G4(e, t, r, i) {
    let o = 3;
    if (e.length < 2)
      return o;
    let s = t(e[0]);
    for (let c = 1, f = e.length; c < f && o !== 0; c++) {
      const d = t(e[c]);
      o & 1 && r(s, d) > 0 && (o &= -2), o & 2 && i(s, d) > 0 && (o &= -3), s = d;
    }
    return o;
  }
  function Hp(e, t, r = F0) {
    if (!e || !t)
      return e === t;
    if (e.length !== t.length)
      return !1;
    for (let i = 0; i < e.length; i++)
      if (!r(e[i], t[i], i))
        return !1;
    return !0;
  }
  function uR(e) {
    let t;
    if (e)
      for (let r = 0; r < e.length; r++) {
        const i = e[r];
        (t || !i) && (t || (t = e.slice(0, r)), i && t.push(i));
      }
    return t || e;
  }
  function Sse(e, t, r) {
    if (!t || !e || t.length === 0 || e.length === 0)
      return t;
    const i = [];
    e:
      for (let o = 0, s = 0; s < t.length; s++) {
        s > 0 && D.assertGreaterThanOrEqual(r(t[s], t[s - 1]), 0);
        t:
          for (const c = o; o < e.length; o++)
            switch (o > c && D.assertGreaterThanOrEqual(r(e[o], e[o - 1]), 0), r(t[s], e[o])) {
              case -1:
                i.push(t[s]);
                continue e;
              case 0:
                continue e;
              case 1:
                continue t;
            }
      }
    return i;
  }
  function Fn(e, t) {
    return t === void 0 ? e : e === void 0 ? [t] : (e.push(t), e);
  }
  function hA(e, t) {
    return e === void 0 ? t : t === void 0 ? e : Va(e) ? Va(t) ? va(e, t) : Fn(e, t) : Va(t) ? Fn(t, e) : [e, t];
  }
  function Ej(e, t) {
    return t < 0 ? e.length + t : t;
  }
  function Ti(e, t, r, i) {
    if (t === void 0 || t.length === 0)
      return e;
    if (e === void 0)
      return t.slice(r, i);
    r = r === void 0 ? 0 : Ej(t, r), i = i === void 0 ? t.length : Ej(t, i);
    for (let o = r; o < i && o < t.length; o++)
      t[o] !== void 0 && e.push(t[o]);
    return e;
  }
  function d_(e, t, r) {
    return jr(e, t, r) ? !1 : (e.push(t), !0);
  }
  function oy(e, t, r) {
    return e ? (d_(e, t, r), e) : [t];
  }
  function xse(e, t, r) {
    t.sort((i, o) => r(e[i], e[o]) || Ws(i, o));
  }
  function aI(e, t) {
    return e.length === 0 ? e : e.slice().sort(t);
  }
  function* SNe(e) {
    for (let t = e.length - 1; t >= 0; t--)
      yield e[t];
  }
  function sy(e, t) {
    const r = lR(e);
    return xse(e, r, t), r.map((i) => e[i]);
  }
  function Tj(e, t, r, i) {
    for (; r < i; ) {
      if (e[r] !== t[r])
        return !1;
      r++;
    }
    return !0;
  }
  function Yc(e) {
    return e === void 0 || e.length === 0 ? void 0 : e[0];
  }
  function U4(e) {
    if (e)
      for (const t of e)
        return t;
  }
  function us(e) {
    return D.assert(e.length !== 0), e[0];
  }
  function Ase(e) {
    for (const t of e)
      return t;
    D.fail("iterator is empty");
  }
  function tl(e) {
    return e === void 0 || e.length === 0 ? void 0 : e[e.length - 1];
  }
  function qo(e) {
    return D.assert(e.length !== 0), e[e.length - 1];
  }
  function Am(e) {
    return e && e.length === 1 ? e[0] : void 0;
  }
  function Sj(e) {
    return D.checkDefined(Am(e));
  }
  function Cm(e) {
    return e && e.length === 1 ? e[0] : e;
  }
  function xj(e, t, r) {
    const i = e.slice(0);
    return i[t] = r, i;
  }
  function yv(e, t, r, i, o) {
    return PS(e, r(t), r, i, o);
  }
  function PS(e, t, r, i, o) {
    if (!kt(e))
      return -1;
    let s = o || 0, c = e.length - 1;
    for (; s <= c; ) {
      const f = s + (c - s >> 1), d = r(e[f], f);
      switch (i(d, t)) {
        case -1:
          s = f + 1;
          break;
        case 0:
          return f;
        case 1:
          c = f - 1;
          break;
      }
    }
    return ~s;
  }
  function Ru(e, t, r, i, o) {
    if (e && e.length > 0) {
      const s = e.length;
      if (s > 0) {
        let c = i === void 0 || i < 0 ? 0 : i;
        const f = o === void 0 || c + o > s - 1 ? s - 1 : c + o;
        let d;
        for (arguments.length <= 2 ? (d = e[c], c++) : d = r; c <= f; )
          d = t(d, e[c], c), c++;
        return d;
      }
    }
    return r;
  }
  function Ps(e, t) {
    return uy.call(e, t);
  }
  function dR(e, t) {
    return uy.call(e, t) ? e[t] : void 0;
  }
  function tg(e) {
    const t = [];
    for (const r in e)
      uy.call(e, r) && t.push(r);
    return t;
  }
  function xNe(e) {
    const t = [];
    do {
      const r = Object.getOwnPropertyNames(e);
      for (const i of r)
        d_(t, i);
    } while (e = Object.getPrototypeOf(e));
    return t;
  }
  function MS(e) {
    const t = [];
    for (const r in e)
      uy.call(e, r) && t.push(e[r]);
    return t;
  }
  function Cse(e, t) {
    const r = new Array(e);
    for (let i = 0; i < e; i++)
      r[i] = t(i);
    return r;
  }
  function Ro(e, t) {
    const r = [];
    for (const i of e)
      r.push(t ? t(i) : i);
    return r;
  }
  function fR(e, ...t) {
    for (const r of t)
      if (r !== void 0)
        for (const i in r)
          Ps(r, i) && (e[i] = r[i]);
    return e;
  }
  function Lse(e, t, r = F0) {
    if (e === t)
      return !0;
    if (!e || !t)
      return !1;
    for (const i in e)
      if (uy.call(e, i) && (!uy.call(t, i) || !r(e[i], t[i])))
        return !1;
    for (const i in t)
      if (uy.call(t, i) && !uy.call(e, i))
        return !1;
    return !0;
  }
  function e1(e, t, r = ml) {
    const i = /* @__PURE__ */ new Map();
    for (const o of e) {
      const s = t(o);
      s !== void 0 && i.set(s, r(o));
    }
    return i;
  }
  function Ise(e, t, r = ml) {
    const i = [];
    for (const o of e)
      i[t(o)] = r(o);
    return i;
  }
  function _R(e, t, r = ml) {
    const i = f_();
    for (const o of e)
      i.add(t(o), r(o));
    return i;
  }
  function oI(e, t, r = ml) {
    return Ro(_R(e, t).values(), r);
  }
  function kse(e, t) {
    var r;
    const i = {};
    if (e)
      for (const o of e) {
        const s = `${t(o)}`;
        ((r = i[s]) != null ? r : i[s] = []).push(o);
      }
    return i;
  }
  function Aj(e) {
    const t = {};
    for (const r in e)
      uy.call(e, r) && (t[r] = e[r]);
    return t;
  }
  function V4(e, t) {
    const r = {};
    for (const i in t)
      uy.call(t, i) && (r[i] = t[i]);
    for (const i in e)
      uy.call(e, i) && (r[i] = e[i]);
    return r;
  }
  function Cj(e, t) {
    for (const r in t)
      uy.call(t, r) && (e[r] = t[r]);
  }
  function Uo(e, t) {
    return t ? t.bind(e) : void 0;
  }
  function f_() {
    const e = /* @__PURE__ */ new Map();
    return e.add = ANe, e.remove = CNe, e;
  }
  function ANe(e, t) {
    let r = this.get(e);
    return r ? r.push(t) : this.set(e, r = [t]), r;
  }
  function CNe(e, t) {
    const r = this.get(e);
    r && (hR(r, t), r.length || this.delete(e));
  }
  function wse() {
    return f_();
  }
  function Lj(e) {
    const t = (e == null ? void 0 : e.slice()) || [];
    let r = 0;
    function i() {
      return r === t.length;
    }
    function o(...c) {
      t.push(...c);
    }
    function s() {
      if (i())
        throw new Error("Queue is empty");
      const c = t[r];
      if (t[r] = void 0, r++, r > 100 && r > t.length >> 1) {
        const f = t.length - r;
        t.copyWithin(0, r), t.length = f, r = 0;
      }
      return c;
    }
    return {
      enqueue: o,
      dequeue: s,
      isEmpty: i
    };
  }
  function LNe(e, t) {
    const r = /* @__PURE__ */ new Map();
    let i = 0;
    function* o() {
      for (const c of r.values())
        Va(c) ? yield* c : yield c;
    }
    const s = {
      has(c) {
        const f = e(c);
        if (!r.has(f))
          return !1;
        const d = r.get(f);
        if (!Va(d))
          return t(d, c);
        for (const y of d)
          if (t(y, c))
            return !0;
        return !1;
      },
      add(c) {
        const f = e(c);
        if (r.has(f)) {
          const d = r.get(f);
          if (Va(d))
            jr(d, c, t) || (d.push(c), i++);
          else {
            const y = d;
            t(y, c) || (r.set(f, [y, c]), i++);
          }
        } else
          r.set(f, c), i++;
        return this;
      },
      delete(c) {
        const f = e(c);
        if (!r.has(f))
          return !1;
        const d = r.get(f);
        if (Va(d)) {
          for (let y = 0; y < d.length; y++)
            if (t(d[y], c))
              return d.length === 1 ? r.delete(f) : d.length === 2 ? r.set(f, d[1 - y]) : kj(d, y), i--, !0;
        } else if (t(d, c))
          return r.delete(f), i--, !0;
        return !1;
      },
      clear() {
        r.clear(), i = 0;
      },
      get size() {
        return i;
      },
      forEach(c) {
        for (const f of Ro(r.values()))
          if (Va(f))
            for (const d of f)
              c(d, d, s);
          else {
            const d = f;
            c(d, d, s);
          }
      },
      keys() {
        return o();
      },
      values() {
        return o();
      },
      *entries() {
        for (const c of o())
          yield [c, c];
      },
      [Symbol.iterator]: () => o(),
      [Symbol.toStringTag]: r[Symbol.toStringTag]
    };
    return s;
  }
  function Va(e) {
    return Array.isArray(e);
  }
  function pR(e) {
    return Va(e) ? e : [e];
  }
  function Ha(e) {
    return typeof e == "string";
  }
  function ly(e) {
    return typeof e == "number";
  }
  function ai(e, t) {
    return e !== void 0 && t(e) ? e : void 0;
  }
  function oo(e, t) {
    return e !== void 0 && t(e) ? e : D.fail(`Invalid cast. The supplied value ${e} did not pass the test '${D.getFunctionName(t)}'.`);
  }
  function so(e) {
  }
  function t1() {
    return !1;
  }
  function n1() {
    return !0;
  }
  function M0() {
  }
  function ml(e) {
    return e;
  }
  function Dse(e) {
    return e.toLowerCase();
  }
  function N_(e) {
    return Oj.test(e) ? e.replace(Oj, Dse) : e;
  }
  function Wa() {
    throw new Error("Not implemented");
  }
  function Ed(e) {
    let t;
    return () => (e && (t = e(), e = void 0), t);
  }
  function Lm(e) {
    const t = /* @__PURE__ */ new Map();
    return (r) => {
      const i = `${typeof r}:${r}`;
      let o = t.get(i);
      return o === void 0 && !t.has(i) && (o = e(r), t.set(i, o)), o;
    };
  }
  function INe(e) {
    const t = /* @__PURE__ */ new WeakMap();
    return (r) => {
      let i = t.get(r);
      return i === void 0 && !t.has(r) && (i = e(r), t.set(r, i)), i;
    };
  }
  function Rse(e, t) {
    return (...r) => {
      let i = t.get(r);
      return i === void 0 && !t.has(r) && (i = e(...r), t.set(r, i)), i;
    };
  }
  function kNe(e, t, r, i, o) {
    if (o) {
      const s = [];
      for (let c = 0; c < arguments.length; c++)
        s[c] = arguments[c];
      return (c) => Ru(s, (f, d) => d(f), c);
    } else
      return i ? (s) => i(r(t(e(s)))) : r ? (s) => r(t(e(s))) : t ? (s) => t(e(s)) : e ? (s) => e(s) : (s) => s;
  }
  function F0(e, t) {
    return e === t;
  }
  function FS(e, t) {
    return e === t || e !== void 0 && t !== void 0 && e.toUpperCase() === t.toUpperCase();
  }
  function BS(e, t) {
    return F0(e, t);
  }
  function Nse(e, t) {
    return e === t ? 0 : e === void 0 ? -1 : t === void 0 ? 1 : e < t ? -1 : 1;
  }
  function Ws(e, t) {
    return Nse(e, t);
  }
  function j4(e, t) {
    return Ws(e == null ? void 0 : e.start, t == null ? void 0 : t.start) || Ws(e == null ? void 0 : e.length, t == null ? void 0 : t.length);
  }
  function Ij(e, t) {
    return Ru(e, (r, i) => t(r, i) === -1 ? r : i);
  }
  function H4(e, t) {
    return e === t ? 0 : e === void 0 ? -1 : t === void 0 ? 1 : (e = e.toUpperCase(), t = t.toUpperCase(), e < t ? -1 : e > t ? 1 : 0);
  }
  function Ose(e, t) {
    return e === t ? 0 : e === void 0 ? -1 : t === void 0 ? 1 : (e = e.toLowerCase(), t = t.toLowerCase(), e < t ? -1 : e > t ? 1 : 0);
  }
  function Nu(e, t) {
    return Nse(e, t);
  }
  function W4(e) {
    return e ? H4 : Nu;
  }
  function Pse() {
    return Q4;
  }
  function Mse(e) {
    Q4 !== e && (Q4 = e, Mj = void 0);
  }
  function mR(e, t) {
    return (Mj || (Mj = Jse(Q4)))(e, t);
  }
  function Fse(e, t, r, i) {
    return e === t ? 0 : e === void 0 ? -1 : t === void 0 ? 1 : i(e[r], t[r]);
  }
  function r1(e, t) {
    return Ws(e ? 1 : 0, t ? 1 : 0);
  }
  function sI(e, t, r) {
    const i = Math.max(2, Math.floor(e.length * 0.34));
    let o = Math.floor(e.length * 0.4) + 1, s;
    for (const c of t) {
      const f = r(c);
      if (f !== void 0 && Math.abs(f.length - e.length) <= i) {
        if (f === e || f.length < 3 && f.toLowerCase() !== e.toLowerCase())
          continue;
        const d = wNe(e, f, o - 0.1);
        if (d === void 0)
          continue;
        D.assert(d < o), o = d, s = c;
      }
    }
    return s;
  }
  function wNe(e, t, r) {
    let i = new Array(t.length + 1), o = new Array(t.length + 1);
    const s = r + 0.01;
    for (let f = 0; f <= t.length; f++)
      i[f] = f;
    for (let f = 1; f <= e.length; f++) {
      const d = e.charCodeAt(f - 1), y = Math.ceil(f > r ? f - r : 1), h = Math.floor(t.length > r + f ? r + f : t.length);
      o[0] = f;
      let E = f;
      for (let L = 1; L < y; L++)
        o[L] = s;
      for (let L = y; L <= h; L++) {
        const I = e[f - 1].toLowerCase() === t[L - 1].toLowerCase() ? i[L - 1] + 0.1 : i[L - 1] + 2, O = d === t.charCodeAt(L - 1) ? i[L - 1] : Math.min(i[L] + 1, o[L - 1] + 1, I);
        o[L] = O, E = Math.min(E, O);
      }
      for (let L = h + 1; L <= t.length; L++)
        o[L] = s;
      if (E > r)
        return;
      const A = i;
      i = o, o = A;
    }
    const c = i[t.length];
    return c > r ? void 0 : c;
  }
  function ic(e, t) {
    const r = e.length - t.length;
    return r >= 0 && e.indexOf(t, r) === r;
  }
  function gA(e, t) {
    return ic(e, t) ? e.slice(0, e.length - t.length) : e;
  }
  function Bse(e, t) {
    return ic(e, t) ? e.slice(0, e.length - t.length) : void 0;
  }
  function pu(e, t) {
    return e.indexOf(t) !== -1;
  }
  function Gse(e) {
    let t = e.length;
    for (let r = t - 1; r > 0; r--) {
      let i = e.charCodeAt(r);
      if (i >= 48 && i <= 57)
        do
          --r, i = e.charCodeAt(r);
        while (r > 0 && i >= 48 && i <= 57);
      else if (r > 4 && (i === 110 || i === 78)) {
        if (--r, i = e.charCodeAt(r), i !== 105 && i !== 73 || (--r, i = e.charCodeAt(r), i !== 109 && i !== 77))
          break;
        --r, i = e.charCodeAt(r);
      } else
        break;
      if (i !== 45 && i !== 46)
        break;
      t = r;
    }
    return t === e.length ? e : e.slice(0, t);
  }
  function z4(e, t) {
    for (let r = 0; r < e.length; r++)
      if (e[r] === t)
        return i1(e, r), !0;
    return !1;
  }
  function i1(e, t) {
    for (let r = t; r < e.length - 1; r++)
      e[r] = e[r + 1];
    e.pop();
  }
  function kj(e, t) {
    e[t] = e[e.length - 1], e.pop();
  }
  function hR(e, t) {
    return DNe(e, (r) => r === t);
  }
  function DNe(e, t) {
    for (let r = 0; r < e.length; r++)
      if (t(e[r]))
        return kj(e, r), !0;
    return !1;
  }
  function ru(e) {
    return e ? ml : N_;
  }
  function Use({ prefix: e, suffix: t }) {
    return `${e}*${t}`;
  }
  function Vse(e, t) {
    return D.assert(q4(e, t)), t.substring(e.prefix.length, t.length - e.suffix.length);
  }
  function wj(e, t, r) {
    let i, o = -1;
    for (const s of e) {
      const c = t(s);
      q4(c, r) && c.prefix.length > o && (o = c.prefix.length, i = s);
    }
    return i;
  }
  function xa(e, t) {
    return e.lastIndexOf(t, 0) === 0;
  }
  function lI(e, t) {
    return xa(e, t) ? e.substr(t.length) : e;
  }
  function Dj(e, t, r = ml) {
    return xa(r(e), r(t)) ? e.substring(t.length) : void 0;
  }
  function q4({ prefix: e, suffix: t }, r) {
    return r.length >= e.length + t.length && xa(r, e) && ic(r, t);
  }
  function J4(e, t) {
    return (r) => e(r) && t(r);
  }
  function Im(...e) {
    return (...t) => {
      let r;
      for (const i of e)
        if (r = i(...t), r)
          return r;
      return r;
    };
  }
  function K4(e) {
    return (...t) => !e(...t);
  }
  function RNe(e) {
  }
  function XE(e) {
    return e === void 0 ? void 0 : [e];
  }
  function jse(e, t, r, i, o, s) {
    s = s || so;
    let c = 0, f = 0;
    const d = e.length, y = t.length;
    let h = !1;
    for (; c < d && f < y; ) {
      const E = e[c], A = t[f], L = r(E, A);
      L === -1 ? (i(E), c++, h = !0) : L === 1 ? (o(A), f++, h = !0) : (s(A, E), c++, f++);
    }
    for (; c < d; )
      i(e[c++]), h = !0;
    for (; f < y; )
      o(t[f++]), h = !0;
    return h;
  }
  function Hse(e) {
    const t = [];
    return Wse(e, t, void 0, 0), t;
  }
  function Wse(e, t, r, i) {
    for (const o of e[i]) {
      let s;
      r ? (s = r.slice(), s.push(o)) : s = [o], i === e.length - 1 ? t.push(s) : Wse(e, t, s, i + 1);
    }
  }
  function GS(e, t, r = " ") {
    return t <= e.length ? e : r.repeat(t - e.length) + e;
  }
  function NNe(e, t, r = " ") {
    return t <= e.length ? e : e + r.repeat(t - e.length);
  }
  function X4(e, t) {
    if (e) {
      const r = e.length;
      let i = 0;
      for (; i < r && t(e[i]); )
        i++;
      return e.slice(0, i);
    }
  }
  function zse(e, t) {
    if (e) {
      const r = e.length;
      let i = 0;
      for (; i < r && t(e[i]); )
        i++;
      return e.slice(i);
    }
  }
  function ONe(e) {
    let t = e.length - 1;
    for (; t >= 0 && ag(e.charCodeAt(t)); )
      t--;
    return e.slice(0, t + 1);
  }
  function Rj() {
    return typeof process < "u" && process.nextTick && !process.browser && typeof uj == "object";
  }
  var rt, Y4, qse, Nj, cy, uy, $4, Oj, Pj, Jse, Mj, Q4, a1, gR, cI, PNe = C({
    "src/compiler/core.ts"() {
      Oa(), rt = [], Y4 = /* @__PURE__ */ new Map(), qse = /* @__PURE__ */ new Set(), Nj = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.CaseSensitive = 1] = "CaseSensitive", e[e.CaseInsensitive = 2] = "CaseInsensitive", e[e.Both = 3] = "Both", e))(Nj || {}), cy = Array.prototype.at ? (e, t) => e == null ? void 0 : e.at(t) : (e, t) => {
        if (e && (t = Ej(e, t), t < e.length))
          return e[t];
      }, uy = Object.prototype.hasOwnProperty, $4 = {
        push: so,
        length: 0
      }, Oj = /[^\u0130\u0131\u00DFa-z0-9\\/:\-_\. ]+/g, Pj = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Normal = 1] = "Normal", e[e.Aggressive = 2] = "Aggressive", e[e.VeryAggressive = 3] = "VeryAggressive", e))(Pj || {}), Jse = (() => {
        let e, t;
        const r = f();
        return d;
        function i(y, h, E) {
          if (y === h)
            return 0;
          if (y === void 0)
            return -1;
          if (h === void 0)
            return 1;
          const A = E(y, h);
          return A < 0 ? -1 : A > 0 ? 1 : 0;
        }
        function o(y) {
          const h = new Intl.Collator(y, { usage: "sort", sensitivity: "variant" }).compare;
          return (E, A) => i(E, A, h);
        }
        function s(y) {
          if (y !== void 0)
            return c();
          return (E, A) => i(E, A, h);
          function h(E, A) {
            return E.localeCompare(A);
          }
        }
        function c() {
          return (E, A) => i(E, A, y);
          function y(E, A) {
            return h(E.toUpperCase(), A.toUpperCase()) || h(E, A);
          }
          function h(E, A) {
            return E < A ? -1 : E > A ? 1 : 0;
          }
        }
        function f() {
          return typeof Intl == "object" && typeof Intl.Collator == "function" ? o : typeof String.prototype.localeCompare == "function" && typeof String.prototype.toLocaleUpperCase == "function" && "a".localeCompare("B") < 0 ? s : c;
        }
        function d(y) {
          return y === void 0 ? e || (e = r(y)) : y === "en-US" ? t || (t = r(y)) : r(y);
        }
      })(), a1 = String.prototype.trim ? (e) => e.trim() : (e) => gR(cI(e)), gR = String.prototype.trimEnd ? (e) => e.trimEnd() : ONe, cI = String.prototype.trimStart ? (e) => e.trimStart() : (e) => e.replace(/^\s+/g, "");
    }
  }), Fj, D, MNe = C({
    "src/compiler/debug.ts"() {
      Oa(), Oa(), Fj = /* @__PURE__ */ ((e) => (e[e.Off = 0] = "Off", e[e.Error = 1] = "Error", e[e.Warning = 2] = "Warning", e[e.Info = 3] = "Info", e[e.Verbose = 4] = "Verbose", e))(Fj || {}), ((e) => {
        let t = 0;
        e.currentLogLevel = 2, e.isDebugging = !1;
        function r(Wt) {
          return e.currentLogLevel <= Wt;
        }
        e.shouldLog = r;
        function i(Wt, fn) {
          e.loggingHost && r(Wt) && e.loggingHost.log(Wt, fn);
        }
        function o(Wt) {
          i(3, Wt);
        }
        e.log = o, ((Wt) => {
          function fn(hi) {
            i(1, hi);
          }
          Wt.error = fn;
          function rr(hi) {
            i(2, hi);
          }
          Wt.warn = rr;
          function cr(hi) {
            i(3, hi);
          }
          Wt.log = cr;
          function Pi(hi) {
            i(4, hi);
          }
          Wt.trace = Pi;
        })(o = e.log || (e.log = {}));
        const s = {};
        function c() {
          return t;
        }
        e.getAssertionLevel = c;
        function f(Wt) {
          const fn = t;
          if (t = Wt, Wt > fn)
            for (const rr of tg(s)) {
              const cr = s[rr];
              cr !== void 0 && e[rr] !== cr.assertion && Wt >= cr.level && (e[rr] = cr, s[rr] = void 0);
            }
        }
        e.setAssertionLevel = f;
        function d(Wt) {
          return t >= Wt;
        }
        e.shouldAssert = d;
        function y(Wt, fn) {
          return d(Wt) ? !0 : (s[fn] = { level: Wt, assertion: e[fn] }, e[fn] = so, !1);
        }
        function h(Wt, fn) {
          const rr = new Error(Wt ? `Debug Failure. ${Wt}` : "Debug Failure.");
          throw Error.captureStackTrace && Error.captureStackTrace(rr, fn || h), rr;
        }
        e.fail = h;
        function E(Wt, fn, rr) {
          return h(`${fn || "Unexpected node."}\r
Node ${Qe(Wt.kind)} was unexpected.`, rr || E);
        }
        e.failBadSyntaxKind = E;
        function A(Wt, fn, rr, cr) {
          Wt || (fn = fn ? `False expression: ${fn}` : "False expression.", rr && (fn += `\r
Verbose Debug Information: ` + (typeof rr == "string" ? rr : rr())), h(fn, cr || A));
        }
        e.assert = A;
        function L(Wt, fn, rr, cr, Pi) {
          if (Wt !== fn) {
            const hi = rr ? cr ? `${rr} ${cr}` : rr : "";
            h(`Expected ${Wt} === ${fn}. ${hi}`, Pi || L);
          }
        }
        e.assertEqual = L;
        function I(Wt, fn, rr, cr) {
          Wt >= fn && h(`Expected ${Wt} < ${fn}. ${rr || ""}`, cr || I);
        }
        e.assertLessThan = I;
        function O(Wt, fn, rr) {
          Wt > fn && h(`Expected ${Wt} <= ${fn}`, rr || O);
        }
        e.assertLessThanOrEqual = O;
        function k(Wt, fn, rr) {
          Wt < fn && h(`Expected ${Wt} >= ${fn}`, rr || k);
        }
        e.assertGreaterThanOrEqual = k;
        function G(Wt, fn, rr) {
          Wt == null && h(fn, rr || G);
        }
        e.assertIsDefined = G;
        function V(Wt, fn, rr) {
          return G(Wt, fn, rr || V), Wt;
        }
        e.checkDefined = V;
        function H(Wt, fn, rr) {
          for (const cr of Wt)
            G(cr, fn, rr || H);
        }
        e.assertEachIsDefined = H;
        function te(Wt, fn, rr) {
          return H(Wt, fn, rr || te), Wt;
        }
        e.checkEachDefined = te;
        function X(Wt, fn = "Illegal value:", rr) {
          const cr = typeof Wt == "object" && Ps(Wt, "kind") && Ps(Wt, "pos") ? "SyntaxKind: " + Qe(Wt.kind) : JSON.stringify(Wt);
          return h(`${fn} ${cr}`, rr || X);
        }
        e.assertNever = X;
        function Y(Wt, fn, rr, cr) {
          y(1, "assertEachNode") && A(fn === void 0 || Yn(Wt, fn), rr || "Unexpected node.", () => `Node array did not pass test '${ce(fn)}'.`, cr || Y);
        }
        e.assertEachNode = Y;
        function P(Wt, fn, rr, cr) {
          y(1, "assertNode") && A(Wt !== void 0 && (fn === void 0 || fn(Wt)), rr || "Unexpected node.", () => `Node ${Qe(Wt == null ? void 0 : Wt.kind)} did not pass test '${ce(fn)}'.`, cr || P);
        }
        e.assertNode = P;
        function de(Wt, fn, rr, cr) {
          y(1, "assertNotNode") && A(Wt === void 0 || fn === void 0 || !fn(Wt), rr || "Unexpected node.", () => `Node ${Qe(Wt.kind)} should not have passed test '${ce(fn)}'.`, cr || de);
        }
        e.assertNotNode = de;
        function re(Wt, fn, rr, cr) {
          y(1, "assertOptionalNode") && A(fn === void 0 || Wt === void 0 || fn(Wt), rr || "Unexpected node.", () => `Node ${Qe(Wt == null ? void 0 : Wt.kind)} did not pass test '${ce(fn)}'.`, cr || re);
        }
        e.assertOptionalNode = re;
        function ye(Wt, fn, rr, cr) {
          y(1, "assertOptionalToken") && A(fn === void 0 || Wt === void 0 || Wt.kind === fn, rr || "Unexpected node.", () => `Node ${Qe(Wt == null ? void 0 : Wt.kind)} was not a '${Qe(fn)}' token.`, cr || ye);
        }
        e.assertOptionalToken = ye;
        function ae(Wt, fn, rr) {
          y(1, "assertMissingNode") && A(Wt === void 0, fn || "Unexpected node.", () => `Node ${Qe(Wt.kind)} was unexpected'.`, rr || ae);
        }
        e.assertMissingNode = ae;
        function W(Wt) {
        }
        e.type = W;
        function ce(Wt) {
          if (typeof Wt != "function")
            return "";
          if (Ps(Wt, "name"))
            return Wt.name;
          {
            const fn = Function.prototype.toString.call(Wt), rr = /^function\s+([\w\$]+)\s*\(/.exec(fn);
            return rr ? rr[1] : "";
          }
        }
        e.getFunctionName = ce;
        function me(Wt) {
          return `{ name: ${ta(Wt.escapedName)}; flags: ${Ye(Wt.flags)}; declarations: ${jt(Wt.declarations, (fn) => Qe(fn.kind))} }`;
        }
        e.formatSymbol = me;
        function ve(Wt = 0, fn, rr) {
          const cr = ee(fn);
          if (Wt === 0)
            return cr.length > 0 && cr[0][0] === 0 ? cr[0][1] : "0";
          if (rr) {
            const Pi = [];
            let hi = Wt;
            for (const [Rn, an] of cr) {
              if (Rn > Wt)
                break;
              Rn !== 0 && Rn & Wt && (Pi.push(an), hi &= ~Rn);
            }
            if (hi === 0)
              return Pi.join("|");
          } else
            for (const [Pi, hi] of cr)
              if (Pi === Wt)
                return hi;
          return Wt.toString();
        }
        e.formatEnum = ve;
        const Te = /* @__PURE__ */ new Map();
        function ee(Wt) {
          const fn = Te.get(Wt);
          if (fn)
            return fn;
          const rr = [];
          for (const Pi in Wt) {
            const hi = Wt[Pi];
            typeof hi == "number" && rr.push([hi, Pi]);
          }
          const cr = sy(rr, (Pi, hi) => Ws(Pi[0], hi[0]));
          return Te.set(Wt, cr), cr;
        }
        function Qe(Wt) {
          return ve(Wt, rM, !1);
        }
        e.formatSyntaxKind = Qe;
        function Ve(Wt) {
          return ve(Wt, mM, !1);
        }
        e.formatSnippetKind = Ve;
        function Be(Wt) {
          return ve(Wt, iM, !0);
        }
        e.formatNodeFlags = Be;
        function qe(Wt) {
          return ve(Wt, aM, !0);
        }
        e.formatModifierFlags = qe;
        function Oe(Wt) {
          return ve(Wt, pM, !0);
        }
        e.formatTransformFlags = Oe;
        function Me(Wt) {
          return ve(Wt, hM, !0);
        }
        e.formatEmitFlags = Me;
        function Ye(Wt) {
          return ve(Wt, cM, !0);
        }
        e.formatSymbolFlags = Ye;
        function We(Wt) {
          return ve(Wt, uM, !0);
        }
        e.formatTypeFlags = We;
        function Fe(Wt) {
          return ve(Wt, fM, !0);
        }
        e.formatSignatureFlags = Fe;
        function st(Wt) {
          return ve(Wt, dM, !0);
        }
        e.formatObjectFlags = st;
        function Ct(Wt) {
          return ve(Wt, ER, !0);
        }
        e.formatFlowFlags = Ct;
        function Et(Wt) {
          return ve(Wt, oM, !0);
        }
        e.formatRelationComparisonResult = Et;
        function Vt(Wt) {
          return ve(Wt, H5, !0);
        }
        e.formatCheckMode = Vt;
        function tt(Wt) {
          return ve(Wt, W5, !0);
        }
        e.formatSignatureCheckMode = tt;
        function at(Wt) {
          return ve(Wt, V5, !0);
        }
        e.formatTypeFacts = at;
        let sn = !1, Qt;
        function On(Wt) {
          "__debugFlowFlags" in Wt || Object.defineProperties(Wt, {
            __tsDebuggerDisplay: {
              value() {
                const fn = this.flags & 2 ? "FlowStart" : this.flags & 4 ? "FlowBranchLabel" : this.flags & 8 ? "FlowLoopLabel" : this.flags & 16 ? "FlowAssignment" : this.flags & 32 ? "FlowTrueCondition" : this.flags & 64 ? "FlowFalseCondition" : this.flags & 128 ? "FlowSwitchClause" : this.flags & 256 ? "FlowArrayMutation" : this.flags & 512 ? "FlowCall" : this.flags & 1024 ? "FlowReduceLabel" : this.flags & 1 ? "FlowUnreachable" : "UnknownFlow", rr = this.flags & -2048;
                return `${fn}${rr ? ` (${Ct(rr)})` : ""}`;
              }
            },
            __debugFlowFlags: { get() {
              return ve(this.flags, ER, !0);
            } },
            __debugToString: { value() {
              return vn(this);
            } }
          });
        }
        function jn(Wt) {
          sn && (typeof Object.setPrototypeOf == "function" ? (Qt || (Qt = Object.create(Object.prototype), On(Qt)), Object.setPrototypeOf(Wt, Qt)) : On(Wt));
        }
        e.attachFlowNodeDebugInfo = jn;
        let In;
        function Zt(Wt) {
          "__tsDebuggerDisplay" in Wt || Object.defineProperties(Wt, {
            __tsDebuggerDisplay: {
              value(fn) {
                return fn = String(fn).replace(/(?:,[\s\w\d_]+:[^,]+)+\]$/, "]"), `NodeArray ${fn}`;
              }
            }
          });
        }
        function _r(Wt) {
          sn && (typeof Object.setPrototypeOf == "function" ? (In || (In = Object.create(Array.prototype), Zt(In)), Object.setPrototypeOf(Wt, In)) : Zt(Wt));
        }
        e.attachNodeArrayDebugInfo = _r;
        function Ii() {
          if (sn)
            return;
          const Wt = /* @__PURE__ */ new WeakMap(), fn = /* @__PURE__ */ new WeakMap();
          Object.defineProperties(jc.getSymbolConstructor().prototype, {
            __tsDebuggerDisplay: {
              value() {
                const cr = this.flags & 33554432 ? "TransientSymbol" : "Symbol", Pi = this.flags & -33554433;
                return `${cr} '${Ml(this)}'${Pi ? ` (${Ye(Pi)})` : ""}`;
              }
            },
            __debugFlags: { get() {
              return Ye(this.flags);
            } }
          }), Object.defineProperties(jc.getTypeConstructor().prototype, {
            __tsDebuggerDisplay: {
              value() {
                const cr = this.flags & 98304 ? "NullableType" : this.flags & 384 ? `LiteralType ${JSON.stringify(this.value)}` : this.flags & 2048 ? `LiteralType ${this.value.negative ? "-" : ""}${this.value.base10Value}n` : this.flags & 8192 ? "UniqueESSymbolType" : this.flags & 32 ? "EnumType" : this.flags & 67359327 ? `IntrinsicType ${this.intrinsicName}` : this.flags & 1048576 ? "UnionType" : this.flags & 2097152 ? "IntersectionType" : this.flags & 4194304 ? "IndexType" : this.flags & 8388608 ? "IndexedAccessType" : this.flags & 16777216 ? "ConditionalType" : this.flags & 33554432 ? "SubstitutionType" : this.flags & 262144 ? "TypeParameter" : this.flags & 524288 ? this.objectFlags & 3 ? "InterfaceType" : this.objectFlags & 4 ? "TypeReference" : this.objectFlags & 8 ? "TupleType" : this.objectFlags & 16 ? "AnonymousType" : this.objectFlags & 32 ? "MappedType" : this.objectFlags & 1024 ? "ReverseMappedType" : this.objectFlags & 256 ? "EvolvingArrayType" : "ObjectType" : "Type", Pi = this.flags & 524288 ? this.objectFlags & -1344 : 0;
                return `${cr}${this.symbol ? ` '${Ml(this.symbol)}'` : ""}${Pi ? ` (${st(Pi)})` : ""}`;
              }
            },
            __debugFlags: { get() {
              return We(this.flags);
            } },
            __debugObjectFlags: { get() {
              return this.flags & 524288 ? st(this.objectFlags) : "";
            } },
            __debugTypeToString: {
              value() {
                let cr = Wt.get(this);
                return cr === void 0 && (cr = this.checker.typeToString(this), Wt.set(this, cr)), cr;
              }
            }
          }), Object.defineProperties(jc.getSignatureConstructor().prototype, {
            __debugFlags: { get() {
              return Fe(this.flags);
            } },
            __debugSignatureToString: { value() {
              var cr;
              return (cr = this.checker) == null ? void 0 : cr.signatureToString(this);
            } }
          });
          const rr = [
            jc.getNodeConstructor(),
            jc.getIdentifierConstructor(),
            jc.getTokenConstructor(),
            jc.getSourceFileConstructor()
          ];
          for (const cr of rr)
            Ps(cr.prototype, "__debugKind") || Object.defineProperties(cr.prototype, {
              __tsDebuggerDisplay: {
                value() {
                  return `${Sl(this) ? "GeneratedIdentifier" : je(this) ? `Identifier '${Mr(this)}'` : Ni(this) ? `PrivateIdentifier '${Mr(this)}'` : jo(this) ? `StringLiteral ${JSON.stringify(this.text.length < 10 ? this.text : this.text.slice(10) + "...")}` : v_(this) ? `NumericLiteral ${this.text}` : P7(this) ? `BigIntLiteral ${this.text}n` : Fl(this) ? "TypeParameterDeclaration" : Ba(this) ? "ParameterDeclaration" : ql(this) ? "ConstructorDeclaration" : z_(this) ? "GetAccessorDeclaration" : e_(this) ? "SetAccessorDeclaration" : hC(this) ? "CallSignatureDeclaration" : wO(this) ? "ConstructSignatureDeclaration" : Tx(this) ? "IndexSignatureDeclaration" : G7(this) ? "TypePredicateNode" : q_(this) ? "TypeReferenceNode" : Ch(this) ? "FunctionTypeNode" : Ik(this) ? "ConstructorTypeNode" : kk(this) ? "TypeQueryNode" : uf(this) ? "TypeLiteralNode" : mJ(this) ? "ArrayTypeNode" : gC(this) ? "TupleTypeNode" : hJ(this) ? "OptionalTypeNode" : gJ(this) ? "RestTypeNode" : Sx(this) ? "UnionTypeNode" : DO(this) ? "IntersectionTypeNode" : yC(this) ? "ConditionalTypeNode" : vC(this) ? "InferTypeNode" : xx(this) ? "ParenthesizedTypeNode" : U7(this) ? "ThisTypeNode" : Ax(this) ? "TypeOperatorNode" : Cx(this) ? "IndexedAccessTypeNode" : Dk(this) ? "MappedTypeNode" : Z0(this) ? "LiteralTypeNode" : wk(this) ? "NamedTupleMember" : gg(this) ? "ImportTypeNode" : Qe(this.kind)}${this.flags ? ` (${Be(this.flags)})` : ""}`;
                }
              },
              __debugKind: { get() {
                return Qe(this.kind);
              } },
              __debugNodeFlags: { get() {
                return Be(this.flags);
              } },
              __debugModifierFlags: { get() {
                return qe(ade(this));
              } },
              __debugTransformFlags: { get() {
                return Oe(this.transformFlags);
              } },
              __debugIsParseTreeNode: { get() {
                return EI(this);
              } },
              __debugEmitFlags: { get() {
                return Me(vo(this));
              } },
              __debugGetText: {
                value(Pi) {
                  if (Zs(this))
                    return "";
                  let hi = fn.get(this);
                  if (hi === void 0) {
                    const Rn = Ea(this), an = Rn && Zn(Rn);
                    hi = an ? m1(an, Rn, Pi) : "", fn.set(this, hi);
                  }
                  return hi;
                }
              }
            });
          sn = !0;
        }
        e.enableDebugInfo = Ii;
        function $i(Wt) {
          const fn = Wt & 7;
          let rr = fn === 0 ? "in out" : fn === 3 ? "[bivariant]" : fn === 2 ? "in" : fn === 1 ? "out" : fn === 4 ? "[independent]" : "";
          return Wt & 8 ? rr += " (unmeasurable)" : Wt & 16 && (rr += " (unreliable)"), rr;
        }
        e.formatVariance = $i;
        class Qi {
          __debugToString() {
            var fn;
            switch (this.kind) {
              case 3:
                return ((fn = this.debugInfo) == null ? void 0 : fn.call(this)) || "(function mapper)";
              case 0:
                return `${this.source.__debugTypeToString()} -> ${this.target.__debugTypeToString()}`;
              case 1:
                return ui(this.sources, this.targets || jt(this.sources, () => "any"), (rr, cr) => `${rr.__debugTypeToString()} -> ${typeof cr == "string" ? cr : cr.__debugTypeToString()}`).join(", ");
              case 2:
                return ui(this.sources, this.targets, (rr, cr) => `${rr.__debugTypeToString()} -> ${cr().__debugTypeToString()}`).join(", ");
              case 5:
              case 4:
                return `m1: ${this.mapper1.__debugToString().split(`
`).join(`
    `)}
m2: ${this.mapper2.__debugToString().split(`
`).join(`
    `)}`;
              default:
                return X(this);
            }
          }
        }
        e.DebugTypeMapper = Qi;
        function Or(Wt) {
          return e.isDebugging ? Object.setPrototypeOf(Wt, Qi.prototype) : Wt;
        }
        e.attachDebugPrototypeIfDebug = Or;
        function At(Wt) {
          return console.log(vn(Wt));
        }
        e.printControlFlowGraph = At;
        function vn(Wt) {
          let fn = -1;
          function rr(K) {
            return K.id || (K.id = fn, fn--), K.id;
          }
          let cr;
          ((K) => {
            K.lr = "─", K.ud = "│", K.dr = "╭", K.dl = "╮", K.ul = "╯", K.ur = "╰", K.udr = "├", K.udl = "┤", K.dlr = "┬", K.ulr = "┴", K.udlr = "╫";
          })(cr || (cr = {}));
          let Pi;
          ((K) => {
            K[K.None = 0] = "None", K[K.Up = 1] = "Up", K[K.Down = 2] = "Down", K[K.Left = 4] = "Left", K[K.Right = 8] = "Right", K[K.UpDown = 3] = "UpDown", K[K.LeftRight = 12] = "LeftRight", K[K.UpLeft = 5] = "UpLeft", K[K.UpRight = 9] = "UpRight", K[K.DownLeft = 6] = "DownLeft", K[K.DownRight = 10] = "DownRight", K[K.UpDownLeft = 7] = "UpDownLeft", K[K.UpDownRight = 11] = "UpDownRight", K[K.UpLeftRight = 13] = "UpLeftRight", K[K.DownLeftRight = 14] = "DownLeftRight", K[K.UpDownLeftRight = 15] = "UpDownLeftRight", K[K.NoChildren = 16] = "NoChildren";
          })(Pi || (Pi = {}));
          const hi = 2032, Rn = 882, an = /* @__PURE__ */ Object.create(null), Pn = [], Ar = he(Wt, /* @__PURE__ */ new Set());
          for (const K of Pn)
            K.text = Er(K.flowNode, K.circular), He(K);
          const Hr = Ze(Ar), we = Xe(Hr);
          return Ut(Ar, 0), ue();
          function yt(K) {
            return !!(K.flags & 128);
          }
          function Nt(K) {
            return !!(K.flags & 12) && !!K.antecedents;
          }
          function Ce(K) {
            return !!(K.flags & hi);
          }
          function pt(K) {
            return !!(K.flags & Rn);
          }
          function _e(K) {
            const Pe = [];
            for (const Z of K.edges)
              Z.source === K && Pe.push(Z.target);
            return Pe;
          }
          function ie(K) {
            const Pe = [];
            for (const Z of K.edges)
              Z.target === K && Pe.push(Z.source);
            return Pe;
          }
          function he(K, Pe) {
            const Z = rr(K);
            let Re = an[Z];
            if (Re && Pe.has(K))
              return Re.circular = !0, Re = {
                id: -1,
                flowNode: K,
                edges: [],
                text: "",
                lane: -1,
                endLane: -1,
                level: -1,
                circular: "circularity"
              }, Pn.push(Re), Re;
            if (Pe.add(K), !Re)
              if (an[Z] = Re = { id: Z, flowNode: K, edges: [], text: "", lane: -1, endLane: -1, level: -1, circular: !1 }, Pn.push(Re), Nt(K))
                for (const q of K.antecedents)
                  j(Re, q, Pe);
              else
                Ce(K) && j(Re, K.antecedent, Pe);
            return Pe.delete(K), Re;
          }
          function j(K, Pe, Z) {
            const Re = he(Pe, Z), q = { source: K, target: Re };
            K.edges.push(q), Re.edges.push(q);
          }
          function He(K) {
            if (K.level !== -1)
              return K.level;
            let Pe = 0;
            for (const Z of ie(K))
              Pe = Math.max(Pe, He(Z) + 1);
            return K.level = Pe;
          }
          function Ze(K) {
            let Pe = 0;
            for (const Z of _e(K))
              Pe = Math.max(Pe, Ze(Z));
            return Pe + 1;
          }
          function Xe(K) {
            const Pe = zt(Array(K), 0);
            for (const Z of Pn)
              Pe[Z.level] = Math.max(Pe[Z.level], Z.text.length);
            return Pe;
          }
          function Ut(K, Pe) {
            if (K.lane === -1) {
              K.lane = Pe, K.endLane = Pe;
              const Z = _e(K);
              for (let Re = 0; Re < Z.length; Re++) {
                Re > 0 && Pe++;
                const q = Z[Re];
                Ut(q, Pe), q.endLane > K.endLane && (Pe = q.endLane);
              }
              K.endLane = Pe;
            }
          }
          function cn(K) {
            if (K & 2)
              return "Start";
            if (K & 4)
              return "Branch";
            if (K & 8)
              return "Loop";
            if (K & 16)
              return "Assignment";
            if (K & 32)
              return "True";
            if (K & 64)
              return "False";
            if (K & 128)
              return "SwitchClause";
            if (K & 256)
              return "ArrayMutation";
            if (K & 512)
              return "Call";
            if (K & 1024)
              return "ReduceLabel";
            if (K & 1)
              return "Unreachable";
            throw new Error();
          }
          function Sn(K) {
            const Pe = Zn(K);
            return m1(Pe, K, !1);
          }
          function Er(K, Pe) {
            let Z = cn(K.flags);
            if (Pe && (Z = `${Z}#${rr(K)}`), pt(K))
              K.node && (Z += ` (${Sn(K.node)})`);
            else if (yt(K)) {
              const Re = [];
              for (let q = K.clauseStart; q < K.clauseEnd; q++) {
                const Rt = K.switchStatement.caseBlock.clauses[q];
                BO(Rt) ? Re.push("default") : Re.push(Sn(Rt.expression));
              }
              Z += ` (${Re.join(", ")})`;
            }
            return Pe === "circularity" ? `Circular(${Z})` : Z;
          }
          function ue() {
            const K = we.length, Pe = Pn.reduce((gt, ft) => Math.max(gt, ft.lane), 0) + 1, Z = zt(Array(Pe), ""), Re = we.map(() => Array(Pe)), q = we.map(() => zt(Array(Pe), 0));
            for (const gt of Pn) {
              Re[gt.level][gt.lane] = gt;
              const ft = _e(gt);
              for (let $n = 0; $n < ft.length; $n++) {
                const oi = ft[$n];
                let Ai = 8;
                oi.lane === gt.lane && (Ai |= 4), $n > 0 && (Ai |= 1), $n < ft.length - 1 && (Ai |= 2), q[gt.level][oi.lane] |= Ai;
              }
              ft.length === 0 && (q[gt.level][gt.lane] |= 16);
              const _n = ie(gt);
              for (let $n = 0; $n < _n.length; $n++) {
                const oi = _n[$n];
                let Ai = 4;
                $n > 0 && (Ai |= 1), $n < _n.length - 1 && (Ai |= 2), q[gt.level - 1][oi.lane] |= Ai;
              }
            }
            for (let gt = 0; gt < K; gt++)
              for (let ft = 0; ft < Pe; ft++) {
                const _n = gt > 0 ? q[gt - 1][ft] : 0, $n = ft > 0 ? q[gt][ft - 1] : 0;
                let oi = q[gt][ft];
                oi || (_n & 8 && (oi |= 12), $n & 2 && (oi |= 3), q[gt][ft] = oi);
              }
            for (let gt = 0; gt < K; gt++)
              for (let ft = 0; ft < Z.length; ft++) {
                const _n = q[gt][ft], $n = _n & 4 ? "─" : " ", oi = Re[gt][ft];
                oi ? (Rt(ft, oi.text), gt < K - 1 && (Rt(ft, " "), Rt(ft, it($n, we[gt] - oi.text.length)))) : gt < K - 1 && Rt(ft, it($n, we[gt] + 1)), Rt(ft, mt(_n)), Rt(ft, _n & 8 && gt < K - 1 && !Re[gt + 1][ft] ? "─" : " ");
              }
            return `
${Z.join(`
`)}
`;
            function Rt(gt, ft) {
              Z[gt] += ft;
            }
          }
          function mt(K) {
            switch (K) {
              case 3:
                return "│";
              case 12:
                return "─";
              case 5:
                return "╯";
              case 9:
                return "╰";
              case 6:
                return "╮";
              case 10:
                return "╭";
              case 7:
                return "┤";
              case 11:
                return "├";
              case 13:
                return "┴";
              case 14:
                return "┬";
              case 15:
                return "╫";
            }
            return " ";
          }
          function zt(K, Pe) {
            if (K.fill)
              K.fill(Pe);
            else
              for (let Z = 0; Z < K.length; Z++)
                K[Z] = Pe;
            return K;
          }
          function it(K, Pe) {
            if (K.repeat)
              return Pe > 0 ? K.repeat(Pe) : "";
            let Z = "";
            for (; Z.length < Pe; )
              Z += K;
            return Z;
          }
        }
        e.formatControlFlowGraph = vn;
      })(D || (D = {}));
    }
  });
  function Kse(e) {
    const t = Yse.exec(e);
    if (!t)
      return;
    const [, r, i = "0", o = "0", s = "", c = ""] = t;
    if (!(s && !$se.test(s)) && !(c && !Zse.test(c)))
      return {
        major: parseInt(r, 10),
        minor: parseInt(i, 10),
        patch: parseInt(o, 10),
        prerelease: s,
        build: c
      };
  }
  function FNe(e, t) {
    if (e === t)
      return 0;
    if (e.length === 0)
      return t.length === 0 ? 0 : 1;
    if (t.length === 0)
      return -1;
    const r = Math.min(e.length, t.length);
    for (let i = 0; i < r; i++) {
      const o = e[i], s = t[i];
      if (o === s)
        continue;
      const c = Gj.test(o), f = Gj.test(s);
      if (c || f) {
        if (c !== f)
          return c ? -1 : 1;
        const d = Ws(+o, +s);
        if (d)
          return d;
      } else {
        const d = Nu(o, s);
        if (d)
          return d;
      }
    }
    return Ws(e.length, t.length);
  }
  function Xse(e) {
    const t = [];
    for (let r of a1(e).split(tle)) {
      if (!r)
        continue;
      const i = [];
      r = a1(r);
      const o = ile.exec(r);
      if (o) {
        if (!BNe(o[1], o[2], i))
          return;
      } else
        for (const s of r.split(nle)) {
          const c = ale.exec(a1(s));
          if (!c || !GNe(c[1], c[2], i))
            return;
        }
      t.push(i);
    }
    return t;
  }
  function Bj(e) {
    const t = rle.exec(e);
    if (!t)
      return;
    const [, r, i = "*", o = "*", s, c] = t;
    return { version: new O_(qf(r) ? 0 : parseInt(r, 10), qf(r) || qf(i) ? 0 : parseInt(i, 10), qf(r) || qf(i) || qf(o) ? 0 : parseInt(o, 10), s, c), major: r, minor: i, patch: o };
  }
  function BNe(e, t, r) {
    const i = Bj(e);
    if (!i)
      return !1;
    const o = Bj(t);
    return o ? (qf(i.major) || r.push(Wp(">=", i.version)), qf(o.major) || r.push(qf(o.minor) ? Wp("<", o.version.increment("major")) : qf(o.patch) ? Wp("<", o.version.increment("minor")) : Wp("<=", o.version)), !0) : !1;
  }
  function GNe(e, t, r) {
    const i = Bj(t);
    if (!i)
      return !1;
    const { version: o, major: s, minor: c, patch: f } = i;
    if (qf(s))
      (e === "<" || e === ">") && r.push(Wp("<", O_.zero));
    else
      switch (e) {
        case "~":
          r.push(Wp(">=", o)), r.push(Wp("<", o.increment(qf(c) ? "major" : "minor")));
          break;
        case "^":
          r.push(Wp(">=", o)), r.push(Wp("<", o.increment(o.major > 0 || qf(c) ? "major" : o.minor > 0 || qf(f) ? "minor" : "patch")));
          break;
        case "<":
        case ">=":
          r.push(qf(c) || qf(f) ? Wp(e, o.with({ prerelease: "0" })) : Wp(e, o));
          break;
        case "<=":
        case ">":
          r.push(qf(c) ? Wp(e === "<=" ? "<" : ">=", o.increment("major").with({ prerelease: "0" })) : qf(f) ? Wp(e === "<=" ? "<" : ">=", o.increment("minor").with({ prerelease: "0" })) : Wp(e, o));
          break;
        case "=":
        case void 0:
          qf(c) || qf(f) ? (r.push(Wp(">=", o.with({ prerelease: "0" }))), r.push(Wp("<", o.increment(qf(c) ? "major" : "minor").with({ prerelease: "0" })))) : r.push(Wp("=", o));
          break;
        default:
          return !1;
      }
    return !0;
  }
  function qf(e) {
    return e === "*" || e === "x" || e === "X";
  }
  function Wp(e, t) {
    return { operator: e, operand: t };
  }
  function UNe(e, t) {
    if (t.length === 0)
      return !0;
    for (const r of t)
      if (VNe(e, r))
        return !0;
    return !1;
  }
  function VNe(e, t) {
    for (const r of t)
      if (!jNe(e, r.operator, r.operand))
        return !1;
    return !0;
  }
  function jNe(e, t, r) {
    const i = e.compareTo(r);
    switch (t) {
      case "<":
        return i < 0;
      case "<=":
        return i <= 0;
      case ">":
        return i > 0;
      case ">=":
        return i >= 0;
      case "=":
        return i === 0;
      default:
        return D.assertNever(t);
    }
  }
  function HNe(e) {
    return jt(e, WNe).join(" || ") || "*";
  }
  function WNe(e) {
    return jt(e, zNe).join(" ");
  }
  function zNe(e) {
    return `${e.operator}${e.operand}`;
  }
  var Yse, $se, Qse, Zse, ele, Gj, US, O_, yA, tle, nle, rle, ile, ale, qNe = C({
    "src/compiler/semver.ts"() {
      Oa(), Yse = /^(0|[1-9]\d*)(?:\.(0|[1-9]\d*)(?:\.(0|[1-9]\d*)(?:\-([a-z0-9-.]+))?(?:\+([a-z0-9-.]+))?)?)?$/i, $se = /^(?:0|[1-9]\d*|[a-z-][a-z0-9-]*)(?:\.(?:0|[1-9]\d*|[a-z-][a-z0-9-]*))*$/i, Qse = /^(?:0|[1-9]\d*|[a-z-][a-z0-9-]*)$/i, Zse = /^[a-z0-9-]+(?:\.[a-z0-9-]+)*$/i, ele = /^[a-z0-9-]+$/i, Gj = /^(0|[1-9]\d*)$/, US = class {
        constructor(e, t = 0, r = 0, i = "", o = "") {
          typeof e == "string" && ({ major: e, minor: t, patch: r, prerelease: i, build: o } = D.checkDefined(Kse(e), "Invalid version")), D.assert(e >= 0, "Invalid argument: major"), D.assert(t >= 0, "Invalid argument: minor"), D.assert(r >= 0, "Invalid argument: patch");
          const s = i ? Va(i) ? i : i.split(".") : rt, c = o ? Va(o) ? o : o.split(".") : rt;
          D.assert(Yn(s, (f) => Qse.test(f)), "Invalid argument: prerelease"), D.assert(Yn(c, (f) => ele.test(f)), "Invalid argument: build"), this.major = e, this.minor = t, this.patch = r, this.prerelease = s, this.build = c;
        }
        static tryParse(e) {
          const t = Kse(e);
          if (!t)
            return;
          const { major: r, minor: i, patch: o, prerelease: s, build: c } = t;
          return new US(r, i, o, s, c);
        }
        compareTo(e) {
          return this === e ? 0 : e === void 0 ? 1 : Ws(this.major, e.major) || Ws(this.minor, e.minor) || Ws(this.patch, e.patch) || FNe(this.prerelease, e.prerelease);
        }
        increment(e) {
          switch (e) {
            case "major":
              return new US(this.major + 1, 0, 0);
            case "minor":
              return new US(this.major, this.minor + 1, 0);
            case "patch":
              return new US(this.major, this.minor, this.patch + 1);
            default:
              return D.assertNever(e);
          }
        }
        with(e) {
          const {
            major: t = this.major,
            minor: r = this.minor,
            patch: i = this.patch,
            prerelease: o = this.prerelease,
            build: s = this.build
          } = e;
          return new US(t, r, i, o, s);
        }
        toString() {
          let e = `${this.major}.${this.minor}.${this.patch}`;
          return kt(this.prerelease) && (e += `-${this.prerelease.join(".")}`), kt(this.build) && (e += `+${this.build.join(".")}`), e;
        }
      }, O_ = US, O_.zero = new US(0, 0, 0, ["0"]), yA = class {
        constructor(e) {
          this._alternatives = e ? D.checkDefined(Xse(e), "Invalid range spec.") : rt;
        }
        static tryParse(e) {
          const t = Xse(e);
          if (t) {
            const r = new yA("");
            return r._alternatives = t, r;
          }
        }
        test(e) {
          return typeof e == "string" && (e = new O_(e)), UNe(e, this._alternatives);
        }
        toString() {
          return HNe(this._alternatives);
        }
      }, tle = /\|\|/g, nle = /\s+/g, rle = /^([xX*0]|[1-9]\d*)(?:\.([xX*0]|[1-9]\d*)(?:\.([xX*0]|[1-9]\d*)(?:-([a-z0-9-.]+))?(?:\+([a-z0-9-.]+))?)?)?$/i, ile = /^\s*([a-z0-9-+.*]+)\s+-\s+([a-z0-9-+.*]+)\s*$/i, ale = /^(~|\^|<|<=|>|>=|=)?\s*([a-z0-9-+.*]+)$/i;
    }
  });
  function ole(e, t) {
    return typeof e == "object" && typeof e.timeOrigin == "number" && typeof e.mark == "function" && typeof e.measure == "function" && typeof e.now == "function" && typeof e.clearMarks == "function" && typeof e.clearMeasures == "function" && typeof t == "function";
  }
  function JNe() {
    if (typeof performance == "object" && typeof PerformanceObserver == "function" && ole(performance, PerformanceObserver))
      return {
        shouldWriteNativeEvents: !0,
        performance,
        PerformanceObserver
      };
  }
  function KNe() {
    if (Rj())
      try {
        let e;
        const { performance: t, PerformanceObserver: r } = Xb("perf_hooks");
        if (ole(t, r)) {
          e = t;
          const i = new O_(process.versions.node);
          return new yA("<12.16.3 || 13 <13.13").test(i) && (e = {
            get timeOrigin() {
              return t.timeOrigin;
            },
            now() {
              return t.now();
            },
            mark(s) {
              return t.mark(s);
            },
            measure(s, c = "nodeStart", f) {
              f === void 0 && (f = "__performance.measure-fix__", t.mark(f)), t.measure(s, c, f), f === "__performance.measure-fix__" && t.clearMarks("__performance.measure-fix__");
            },
            clearMarks(s) {
              return t.clearMarks(s);
            },
            clearMeasures(s) {
              return t.clearMeasures(s);
            }
          }), {
            shouldWriteNativeEvents: !1,
            performance: e,
            PerformanceObserver: r
          };
        }
      } catch {
      }
  }
  function sle() {
    return Z4;
  }
  var Z4, Uj, il, XNe = C({
    "src/compiler/performanceCore.ts"() {
      Oa(), Z4 = JNe() || KNe(), Uj = Z4 == null ? void 0 : Z4.performance, il = Uj ? () => Uj.now() : Date.now ? Date.now : () => +/* @__PURE__ */ new Date();
    }
  }), lle, yR, cle, zp, YNe = C({
    "src/compiler/perfLogger.ts"() {
      Oa(), lle = {
        logEvent: so,
        logErrEvent: so,
        logPerfEvent: so,
        logInfoEvent: so,
        logStartCommand: so,
        logStopCommand: so,
        logStartUpdateProgram: so,
        logStopUpdateProgram: so,
        logStartUpdateGraph: so,
        logStopUpdateGraph: so,
        logStartResolveModule: so,
        logStopResolveModule: so,
        logStartParseSourceFile: so,
        logStopParseSourceFile: so,
        logStartReadFile: so,
        logStopReadFile: so,
        logStartBindFile: so,
        logStopBindFile: so,
        logStartScheduledOperation: so,
        logStopScheduledOperation: so
      };
      try {
        const e = (cle = process.env.TS_ETW_MODULE_PATH) != null ? cle : "./node_modules/@microsoft/typescript-etw";
        yR = Xb(e);
      } catch {
        yR = void 0;
      }
      zp = yR != null && yR.logEvent ? yR : lle;
    }
  });
  function ule(e, t, r, i) {
    return e ? eM(t, r, i) : tM;
  }
  function eM(e, t, r) {
    let i = 0;
    return {
      enter: o,
      exit: s
    };
    function o() {
      ++i === 1 && al(t);
    }
    function s() {
      --i === 0 ? (al(r), Jf(e, t, r)) : i < 0 && D.fail("enter/exit count does not match.");
    }
  }
  function al(e) {
    var t;
    if (VS) {
      const r = (t = vA.get(e)) != null ? t : 0;
      vA.set(e, r + 1), jS.set(e, il()), o1 == null || o1.mark(e), typeof onProfilerEvent == "function" && onProfilerEvent(e);
    }
  }
  function Jf(e, t, r) {
    var i, o;
    if (VS) {
      const s = (i = r !== void 0 ? jS.get(r) : void 0) != null ? i : il(), c = (o = t !== void 0 ? jS.get(t) : void 0) != null ? o : Vj, f = HS.get(e) || 0;
      HS.set(e, f + (s - c)), o1 == null || o1.measure(e, t, r);
    }
  }
  function $Ne(e) {
    return vA.get(e) || 0;
  }
  function QNe(e) {
    return HS.get(e) || 0;
  }
  function ZNe(e) {
    HS.forEach((t, r) => e(r, t));
  }
  function eOe(e) {
    jS.forEach((t, r) => e(r));
  }
  function tOe(e) {
    e !== void 0 ? HS.delete(e) : HS.clear(), o1 == null || o1.clearMeasures(e);
  }
  function nOe(e) {
    e !== void 0 ? (vA.delete(e), jS.delete(e)) : (vA.clear(), jS.clear()), o1 == null || o1.clearMarks(e);
  }
  function rOe() {
    return VS;
  }
  function iOe(e = $c) {
    var t;
    return VS || (VS = !0, uI || (uI = sle()), uI && (Vj = uI.performance.timeOrigin, (uI.shouldWriteNativeEvents || (t = e == null ? void 0 : e.cpuProfilingEnabled) != null && t.call(e) || e != null && e.debugMode) && (o1 = uI.performance))), !0;
  }
  function aOe() {
    VS && (jS.clear(), vA.clear(), HS.clear(), o1 = void 0, VS = !1);
  }
  var uI, o1, tM, VS, Vj, jS, vA, HS, oOe = C({
    "src/compiler/performance.ts"() {
      Oa(), tM = { enter: so, exit: so }, VS = !1, Vj = il(), jS = /* @__PURE__ */ new Map(), vA = /* @__PURE__ */ new Map(), HS = /* @__PURE__ */ new Map();
    }
  }), vR = {};
  ne(vR, {
    clearMarks: () => nOe,
    clearMeasures: () => tOe,
    createTimer: () => eM,
    createTimerIf: () => ule,
    disable: () => aOe,
    enable: () => iOe,
    forEachMark: () => eOe,
    forEachMeasure: () => ZNe,
    getCount: () => $Ne,
    getDuration: () => QNe,
    isEnabled: () => rOe,
    mark: () => al,
    measure: () => Jf,
    nullTimer: () => tM
  });
  var s1 = C({
    "src/compiler/_namespaces/ts.performance.ts"() {
      oOe();
    }
  }), bi, bR, dle, fle, sOe = C({
    "src/compiler/tracing.ts"() {
      Oa(), s1(), ((e) => {
        let t, r = 0, i = 0, o;
        const s = [];
        let c;
        const f = [];
        function d(Y, P, de) {
          if (D.assert(!bi, "Tracing already started"), t === void 0)
            try {
              t = Xb("fs");
            } catch (ce) {
              throw new Error(`tracing requires having fs
(original error: ${ce.message || ce})`);
            }
          o = Y, s.length = 0, c === void 0 && (c = Bi(P, "legend.json")), t.existsSync(P) || t.mkdirSync(P, { recursive: !0 });
          const re = o === "build" ? `.${process.pid}-${++r}` : o === "server" ? `.${process.pid}` : "", ye = Bi(P, `trace${re}.json`), ae = Bi(P, `types${re}.json`);
          f.push({
            configFilePath: de,
            tracePath: ye,
            typesPath: ae
          }), i = t.openSync(ye, "w"), bi = e;
          const W = { cat: "__metadata", ph: "M", ts: 1e3 * il(), pid: 1, tid: 1 };
          t.writeSync(i, `[
` + [
            { name: "process_name", args: { name: "tsc" }, ...W },
            { name: "thread_name", args: { name: "Main" }, ...W },
            { name: "TracingStartedInBrowser", ...W, cat: "disabled-by-default-devtools.timeline" }
          ].map((ce) => JSON.stringify(ce)).join(`,
`));
        }
        e.startTracing = d;
        function y() {
          D.assert(bi, "Tracing is not in progress"), D.assert(!!s.length == (o !== "server")), t.writeSync(i, `
]
`), t.closeSync(i), bi = void 0, s.length ? te(s) : f[f.length - 1].typesPath = void 0;
        }
        e.stopTracing = y;
        function h(Y) {
          o !== "server" && s.push(Y);
        }
        e.recordType = h, ((Y) => {
          Y.Parse = "parse", Y.Program = "program", Y.Bind = "bind", Y.Check = "check", Y.CheckTypes = "checkTypes", Y.Emit = "emit", Y.Session = "session";
        })(e.Phase || (e.Phase = {}));
        function E(Y, P, de) {
          V("I", Y, P, de, '"s":"g"');
        }
        e.instant = E;
        const A = [];
        function L(Y, P, de, re = !1) {
          re && V("B", Y, P, de), A.push({ phase: Y, name: P, args: de, time: 1e3 * il(), separateBeginAndEnd: re });
        }
        e.push = L;
        function I(Y) {
          D.assert(A.length > 0), G(A.length - 1, 1e3 * il(), Y), A.length--;
        }
        e.pop = I;
        function O() {
          const Y = 1e3 * il();
          for (let P = A.length - 1; P >= 0; P--)
            G(P, Y);
          A.length = 0;
        }
        e.popAll = O;
        const k = 1e3 * 10;
        function G(Y, P, de) {
          const { phase: re, name: ye, args: ae, time: W, separateBeginAndEnd: ce } = A[Y];
          ce ? (D.assert(!de, "`results` are not supported for events with `separateBeginAndEnd`"), V("E", re, ye, ae, void 0, P)) : k - W % k <= P - W && V("X", re, ye, { ...ae, results: de }, `"dur":${P - W}`, W);
        }
        function V(Y, P, de, re, ye, ae = 1e3 * il()) {
          o === "server" && P === "checkTypes" || (al("beginTracing"), t.writeSync(i, `,
{"pid":1,"tid":1,"ph":"${Y}","cat":"${P}","ts":${ae},"name":"${de}"`), ye && t.writeSync(i, `,${ye}`), re && t.writeSync(i, `,"args":${JSON.stringify(re)}`), t.writeSync(i, "}"), al("endTracing"), Jf("Tracing", "beginTracing", "endTracing"));
        }
        function H(Y) {
          const P = Zn(Y);
          return P ? {
            path: P.path,
            start: de(ol(P, Y.pos)),
            end: de(ol(P, Y.end))
          } : void 0;
          function de(re) {
            return {
              line: re.line + 1,
              character: re.character + 1
            };
          }
        }
        function te(Y) {
          var P, de, re, ye, ae, W, ce, me, ve, Te, ee, Qe, Ve, Be, qe, Oe, Me, Ye, We, Fe, st, Ct;
          al("beginDumpTypes");
          const Et = f[f.length - 1].typesPath, Vt = t.openSync(Et, "w"), tt = /* @__PURE__ */ new Map();
          t.writeSync(Vt, "[");
          const at = Y.length;
          for (let sn = 0; sn < at; sn++) {
            const Qt = Y[sn], On = Qt.objectFlags, jn = (P = Qt.aliasSymbol) != null ? P : Qt.symbol;
            let In;
            if (On & 16 | Qt.flags & 2944)
              try {
                In = (de = Qt.checker) == null ? void 0 : de.typeToString(Qt);
              } catch {
                In = void 0;
              }
            let Zt = {};
            if (Qt.flags & 8388608) {
              const fn = Qt;
              Zt = {
                indexedAccessObjectType: (re = fn.objectType) == null ? void 0 : re.id,
                indexedAccessIndexType: (ye = fn.indexType) == null ? void 0 : ye.id
              };
            }
            let _r = {};
            if (On & 4) {
              const fn = Qt;
              _r = {
                instantiatedType: (ae = fn.target) == null ? void 0 : ae.id,
                typeArguments: (W = fn.resolvedTypeArguments) == null ? void 0 : W.map((rr) => rr.id),
                referenceLocation: H(fn.node)
              };
            }
            let Ii = {};
            if (Qt.flags & 16777216) {
              const fn = Qt;
              Ii = {
                conditionalCheckType: (ce = fn.checkType) == null ? void 0 : ce.id,
                conditionalExtendsType: (me = fn.extendsType) == null ? void 0 : me.id,
                conditionalTrueType: (Te = (ve = fn.resolvedTrueType) == null ? void 0 : ve.id) != null ? Te : -1,
                conditionalFalseType: (Qe = (ee = fn.resolvedFalseType) == null ? void 0 : ee.id) != null ? Qe : -1
              };
            }
            let $i = {};
            if (Qt.flags & 33554432) {
              const fn = Qt;
              $i = {
                substitutionBaseType: (Ve = fn.baseType) == null ? void 0 : Ve.id,
                constraintType: (Be = fn.constraint) == null ? void 0 : Be.id
              };
            }
            let Qi = {};
            if (On & 1024) {
              const fn = Qt;
              Qi = {
                reverseMappedSourceType: (qe = fn.source) == null ? void 0 : qe.id,
                reverseMappedMappedType: (Oe = fn.mappedType) == null ? void 0 : Oe.id,
                reverseMappedConstraintType: (Me = fn.constraintType) == null ? void 0 : Me.id
              };
            }
            let Or = {};
            if (On & 256) {
              const fn = Qt;
              Or = {
                evolvingArrayElementType: fn.elementType.id,
                evolvingArrayFinalType: (Ye = fn.finalArrayType) == null ? void 0 : Ye.id
              };
            }
            let At;
            const vn = Qt.checker.getRecursionIdentity(Qt);
            vn && (At = tt.get(vn), At || (At = tt.size, tt.set(vn, At)));
            const Wt = {
              id: Qt.id,
              intrinsicName: Qt.intrinsicName,
              symbolName: (jn == null ? void 0 : jn.escapedName) && ta(jn.escapedName),
              recursionId: At,
              isTuple: On & 8 ? !0 : void 0,
              unionTypes: Qt.flags & 1048576 ? (We = Qt.types) == null ? void 0 : We.map((fn) => fn.id) : void 0,
              intersectionTypes: Qt.flags & 2097152 ? Qt.types.map((fn) => fn.id) : void 0,
              aliasTypeArguments: (Fe = Qt.aliasTypeArguments) == null ? void 0 : Fe.map((fn) => fn.id),
              keyofType: Qt.flags & 4194304 ? (st = Qt.type) == null ? void 0 : st.id : void 0,
              ...Zt,
              ..._r,
              ...Ii,
              ...$i,
              ...Qi,
              ...Or,
              destructuringPattern: H(Qt.pattern),
              firstDeclaration: H((Ct = jn == null ? void 0 : jn.declarations) == null ? void 0 : Ct[0]),
              flags: D.formatTypeFlags(Qt.flags).split("|"),
              display: In
            };
            t.writeSync(Vt, JSON.stringify(Wt)), sn < at - 1 && t.writeSync(Vt, `,
`);
          }
          t.writeSync(Vt, `]
`), t.closeSync(Vt), al("endDumpTypes"), Jf("Dump types", "beginDumpTypes", "endDumpTypes");
        }
        function X() {
          c && t.writeFileSync(c, JSON.stringify(f));
        }
        e.dumpLegend = X;
      })(bR || (bR = {})), dle = bR.startTracing, fle = bR.dumpLegend;
    }
  });
  function nM(e, t = !0) {
    const r = TR[e.category];
    return t ? r.toLowerCase() : r;
  }
  var rM, iM, aM, jj, oM, sM, Hj, ER, Wj, dI, lM, zj, qj, Jj, Kj, Xj, Yj, $j, Qj, Zj, eH, tH, nH, rH, iH, cM, aH, oH, sH, lH, uM, dM, cH, uH, dH, fH, _H, fM, pH, mH, hH, gH, yH, vH, TR, SR, bH, EH, TH, SH, _M, xH, AH, CH, LH, IH, kH, wH, DH, RH, pM, mM, hM, NH, OH, PH, MH, FH, BH, GH, UH, xR, _le = C({
    "src/compiler/types.ts"() {
      rM = /* @__PURE__ */ ((e) => (e[e.Unknown = 0] = "Unknown", e[e.EndOfFileToken = 1] = "EndOfFileToken", e[e.SingleLineCommentTrivia = 2] = "SingleLineCommentTrivia", e[e.MultiLineCommentTrivia = 3] = "MultiLineCommentTrivia", e[e.NewLineTrivia = 4] = "NewLineTrivia", e[e.WhitespaceTrivia = 5] = "WhitespaceTrivia", e[e.ShebangTrivia = 6] = "ShebangTrivia", e[e.ConflictMarkerTrivia = 7] = "ConflictMarkerTrivia", e[e.NumericLiteral = 8] = "NumericLiteral", e[e.BigIntLiteral = 9] = "BigIntLiteral", e[e.StringLiteral = 10] = "StringLiteral", e[e.JsxText = 11] = "JsxText", e[e.JsxTextAllWhiteSpaces = 12] = "JsxTextAllWhiteSpaces", e[e.RegularExpressionLiteral = 13] = "RegularExpressionLiteral", e[e.NoSubstitutionTemplateLiteral = 14] = "NoSubstitutionTemplateLiteral", e[e.TemplateHead = 15] = "TemplateHead", e[e.TemplateMiddle = 16] = "TemplateMiddle", e[e.TemplateTail = 17] = "TemplateTail", e[e.OpenBraceToken = 18] = "OpenBraceToken", e[e.CloseBraceToken = 19] = "CloseBraceToken", e[e.OpenParenToken = 20] = "OpenParenToken", e[e.CloseParenToken = 21] = "CloseParenToken", e[e.OpenBracketToken = 22] = "OpenBracketToken", e[e.CloseBracketToken = 23] = "CloseBracketToken", e[e.DotToken = 24] = "DotToken", e[e.DotDotDotToken = 25] = "DotDotDotToken", e[e.SemicolonToken = 26] = "SemicolonToken", e[e.CommaToken = 27] = "CommaToken", e[e.QuestionDotToken = 28] = "QuestionDotToken", e[e.LessThanToken = 29] = "LessThanToken", e[e.LessThanSlashToken = 30] = "LessThanSlashToken", e[e.GreaterThanToken = 31] = "GreaterThanToken", e[e.LessThanEqualsToken = 32] = "LessThanEqualsToken", e[e.GreaterThanEqualsToken = 33] = "GreaterThanEqualsToken", e[e.EqualsEqualsToken = 34] = "EqualsEqualsToken", e[e.ExclamationEqualsToken = 35] = "ExclamationEqualsToken", e[e.EqualsEqualsEqualsToken = 36] = "EqualsEqualsEqualsToken", e[e.ExclamationEqualsEqualsToken = 37] = "ExclamationEqualsEqualsToken", e[e.EqualsGreaterThanToken = 38] = "EqualsGreaterThanToken", e[e.PlusToken = 39] = "PlusToken", e[e.MinusToken = 40] = "MinusToken", e[e.AsteriskToken = 41] = "AsteriskToken", e[e.AsteriskAsteriskToken = 42] = "AsteriskAsteriskToken", e[e.SlashToken = 43] = "SlashToken", e[e.PercentToken = 44] = "PercentToken", e[e.PlusPlusToken = 45] = "PlusPlusToken", e[e.MinusMinusToken = 46] = "MinusMinusToken", e[e.LessThanLessThanToken = 47] = "LessThanLessThanToken", e[e.GreaterThanGreaterThanToken = 48] = "GreaterThanGreaterThanToken", e[e.GreaterThanGreaterThanGreaterThanToken = 49] = "GreaterThanGreaterThanGreaterThanToken", e[e.AmpersandToken = 50] = "AmpersandToken", e[e.BarToken = 51] = "BarToken", e[e.CaretToken = 52] = "CaretToken", e[e.ExclamationToken = 53] = "ExclamationToken", e[e.TildeToken = 54] = "TildeToken", e[e.AmpersandAmpersandToken = 55] = "AmpersandAmpersandToken", e[e.BarBarToken = 56] = "BarBarToken", e[e.QuestionToken = 57] = "QuestionToken", e[e.ColonToken = 58] = "ColonToken", e[e.AtToken = 59] = "AtToken", e[e.QuestionQuestionToken = 60] = "QuestionQuestionToken", e[e.BacktickToken = 61] = "BacktickToken", e[e.HashToken = 62] = "HashToken", e[e.EqualsToken = 63] = "EqualsToken", e[e.PlusEqualsToken = 64] = "PlusEqualsToken", e[e.MinusEqualsToken = 65] = "MinusEqualsToken", e[e.AsteriskEqualsToken = 66] = "AsteriskEqualsToken", e[e.AsteriskAsteriskEqualsToken = 67] = "AsteriskAsteriskEqualsToken", e[e.SlashEqualsToken = 68] = "SlashEqualsToken", e[e.PercentEqualsToken = 69] = "PercentEqualsToken", e[e.LessThanLessThanEqualsToken = 70] = "LessThanLessThanEqualsToken", e[e.GreaterThanGreaterThanEqualsToken = 71] = "GreaterThanGreaterThanEqualsToken", e[e.GreaterThanGreaterThanGreaterThanEqualsToken = 72] = "GreaterThanGreaterThanGreaterThanEqualsToken", e[e.AmpersandEqualsToken = 73] = "AmpersandEqualsToken", e[e.BarEqualsToken = 74] = "BarEqualsToken", e[e.BarBarEqualsToken = 75] = "BarBarEqualsToken", e[e.AmpersandAmpersandEqualsToken = 76] = "AmpersandAmpersandEqualsToken", e[e.QuestionQuestionEqualsToken = 77] = "QuestionQuestionEqualsToken", e[e.CaretEqualsToken = 78] = "CaretEqualsToken", e[e.Identifier = 79] = "Identifier", e[e.PrivateIdentifier = 80] = "PrivateIdentifier", e[e.BreakKeyword = 81] = "BreakKeyword", e[e.CaseKeyword = 82] = "CaseKeyword", e[e.CatchKeyword = 83] = "CatchKeyword", e[e.ClassKeyword = 84] = "ClassKeyword", e[e.ConstKeyword = 85] = "ConstKeyword", e[e.ContinueKeyword = 86] = "ContinueKeyword", e[e.DebuggerKeyword = 87] = "DebuggerKeyword", e[e.DefaultKeyword = 88] = "DefaultKeyword", e[e.DeleteKeyword = 89] = "DeleteKeyword", e[e.DoKeyword = 90] = "DoKeyword", e[e.ElseKeyword = 91] = "ElseKeyword", e[e.EnumKeyword = 92] = "EnumKeyword", e[e.ExportKeyword = 93] = "ExportKeyword", e[e.ExtendsKeyword = 94] = "ExtendsKeyword", e[e.FalseKeyword = 95] = "FalseKeyword", e[e.FinallyKeyword = 96] = "FinallyKeyword", e[e.ForKeyword = 97] = "ForKeyword", e[e.FunctionKeyword = 98] = "FunctionKeyword", e[e.IfKeyword = 99] = "IfKeyword", e[e.ImportKeyword = 100] = "ImportKeyword", e[e.InKeyword = 101] = "InKeyword", e[e.InstanceOfKeyword = 102] = "InstanceOfKeyword", e[e.NewKeyword = 103] = "NewKeyword", e[e.NullKeyword = 104] = "NullKeyword", e[e.ReturnKeyword = 105] = "ReturnKeyword", e[e.SuperKeyword = 106] = "SuperKeyword", e[e.SwitchKeyword = 107] = "SwitchKeyword", e[e.ThisKeyword = 108] = "ThisKeyword", e[e.ThrowKeyword = 109] = "ThrowKeyword", e[e.TrueKeyword = 110] = "TrueKeyword", e[e.TryKeyword = 111] = "TryKeyword", e[e.TypeOfKeyword = 112] = "TypeOfKeyword", e[e.VarKeyword = 113] = "VarKeyword", e[e.VoidKeyword = 114] = "VoidKeyword", e[e.WhileKeyword = 115] = "WhileKeyword", e[e.WithKeyword = 116] = "WithKeyword", e[e.ImplementsKeyword = 117] = "ImplementsKeyword", e[e.InterfaceKeyword = 118] = "InterfaceKeyword", e[e.LetKeyword = 119] = "LetKeyword", e[e.PackageKeyword = 120] = "PackageKeyword", e[e.PrivateKeyword = 121] = "PrivateKeyword", e[e.ProtectedKeyword = 122] = "ProtectedKeyword", e[e.PublicKeyword = 123] = "PublicKeyword", e[e.StaticKeyword = 124] = "StaticKeyword", e[e.YieldKeyword = 125] = "YieldKeyword", e[e.AbstractKeyword = 126] = "AbstractKeyword", e[e.AccessorKeyword = 127] = "AccessorKeyword", e[e.AsKeyword = 128] = "AsKeyword", e[e.AssertsKeyword = 129] = "AssertsKeyword", e[e.AssertKeyword = 130] = "AssertKeyword", e[e.AnyKeyword = 131] = "AnyKeyword", e[e.AsyncKeyword = 132] = "AsyncKeyword", e[e.AwaitKeyword = 133] = "AwaitKeyword", e[e.BooleanKeyword = 134] = "BooleanKeyword", e[e.ConstructorKeyword = 135] = "ConstructorKeyword", e[e.DeclareKeyword = 136] = "DeclareKeyword", e[e.GetKeyword = 137] = "GetKeyword", e[e.InferKeyword = 138] = "InferKeyword", e[e.IntrinsicKeyword = 139] = "IntrinsicKeyword", e[e.IsKeyword = 140] = "IsKeyword", e[e.KeyOfKeyword = 141] = "KeyOfKeyword", e[e.ModuleKeyword = 142] = "ModuleKeyword", e[e.NamespaceKeyword = 143] = "NamespaceKeyword", e[e.NeverKeyword = 144] = "NeverKeyword", e[e.OutKeyword = 145] = "OutKeyword", e[e.ReadonlyKeyword = 146] = "ReadonlyKeyword", e[e.RequireKeyword = 147] = "RequireKeyword", e[e.NumberKeyword = 148] = "NumberKeyword", e[e.ObjectKeyword = 149] = "ObjectKeyword", e[e.SatisfiesKeyword = 150] = "SatisfiesKeyword", e[e.SetKeyword = 151] = "SetKeyword", e[e.StringKeyword = 152] = "StringKeyword", e[e.SymbolKeyword = 153] = "SymbolKeyword", e[e.TypeKeyword = 154] = "TypeKeyword", e[e.UndefinedKeyword = 155] = "UndefinedKeyword", e[e.UniqueKeyword = 156] = "UniqueKeyword", e[e.UnknownKeyword = 157] = "UnknownKeyword", e[e.FromKeyword = 158] = "FromKeyword", e[e.GlobalKeyword = 159] = "GlobalKeyword", e[e.BigIntKeyword = 160] = "BigIntKeyword", e[e.OverrideKeyword = 161] = "OverrideKeyword", e[e.OfKeyword = 162] = "OfKeyword", e[e.QualifiedName = 163] = "QualifiedName", e[e.ComputedPropertyName = 164] = "ComputedPropertyName", e[e.TypeParameter = 165] = "TypeParameter", e[e.Parameter = 166] = "Parameter", e[e.Decorator = 167] = "Decorator", e[e.PropertySignature = 168] = "PropertySignature", e[e.PropertyDeclaration = 169] = "PropertyDeclaration", e[e.MethodSignature = 170] = "MethodSignature", e[e.MethodDeclaration = 171] = "MethodDeclaration", e[e.ClassStaticBlockDeclaration = 172] = "ClassStaticBlockDeclaration", e[e.Constructor = 173] = "Constructor", e[e.GetAccessor = 174] = "GetAccessor", e[e.SetAccessor = 175] = "SetAccessor", e[e.CallSignature = 176] = "CallSignature", e[e.ConstructSignature = 177] = "ConstructSignature", e[e.IndexSignature = 178] = "IndexSignature", e[e.TypePredicate = 179] = "TypePredicate", e[e.TypeReference = 180] = "TypeReference", e[e.FunctionType = 181] = "FunctionType", e[e.ConstructorType = 182] = "ConstructorType", e[e.TypeQuery = 183] = "TypeQuery", e[e.TypeLiteral = 184] = "TypeLiteral", e[e.ArrayType = 185] = "ArrayType", e[e.TupleType = 186] = "TupleType", e[e.OptionalType = 187] = "OptionalType", e[e.RestType = 188] = "RestType", e[e.UnionType = 189] = "UnionType", e[e.IntersectionType = 190] = "IntersectionType", e[e.ConditionalType = 191] = "ConditionalType", e[e.InferType = 192] = "InferType", e[e.ParenthesizedType = 193] = "ParenthesizedType", e[e.ThisType = 194] = "ThisType", e[e.TypeOperator = 195] = "TypeOperator", e[e.IndexedAccessType = 196] = "IndexedAccessType", e[e.MappedType = 197] = "MappedType", e[e.LiteralType = 198] = "LiteralType", e[e.NamedTupleMember = 199] = "NamedTupleMember", e[e.TemplateLiteralType = 200] = "TemplateLiteralType", e[e.TemplateLiteralTypeSpan = 201] = "TemplateLiteralTypeSpan", e[e.ImportType = 202] = "ImportType", e[e.ObjectBindingPattern = 203] = "ObjectBindingPattern", e[e.ArrayBindingPattern = 204] = "ArrayBindingPattern", e[e.BindingElement = 205] = "BindingElement", e[e.ArrayLiteralExpression = 206] = "ArrayLiteralExpression", e[e.ObjectLiteralExpression = 207] = "ObjectLiteralExpression", e[e.PropertyAccessExpression = 208] = "PropertyAccessExpression", e[e.ElementAccessExpression = 209] = "ElementAccessExpression", e[e.CallExpression = 210] = "CallExpression", e[e.NewExpression = 211] = "NewExpression", e[e.TaggedTemplateExpression = 212] = "TaggedTemplateExpression", e[e.TypeAssertionExpression = 213] = "TypeAssertionExpression", e[e.ParenthesizedExpression = 214] = "ParenthesizedExpression", e[e.FunctionExpression = 215] = "FunctionExpression", e[e.ArrowFunction = 216] = "ArrowFunction", e[e.DeleteExpression = 217] = "DeleteExpression", e[e.TypeOfExpression = 218] = "TypeOfExpression", e[e.VoidExpression = 219] = "VoidExpression", e[e.AwaitExpression = 220] = "AwaitExpression", e[e.PrefixUnaryExpression = 221] = "PrefixUnaryExpression", e[e.PostfixUnaryExpression = 222] = "PostfixUnaryExpression", e[e.BinaryExpression = 223] = "BinaryExpression", e[e.ConditionalExpression = 224] = "ConditionalExpression", e[e.TemplateExpression = 225] = "TemplateExpression", e[e.YieldExpression = 226] = "YieldExpression", e[e.SpreadElement = 227] = "SpreadElement", e[e.ClassExpression = 228] = "ClassExpression", e[e.OmittedExpression = 229] = "OmittedExpression", e[e.ExpressionWithTypeArguments = 230] = "ExpressionWithTypeArguments", e[e.AsExpression = 231] = "AsExpression", e[e.NonNullExpression = 232] = "NonNullExpression", e[e.MetaProperty = 233] = "MetaProperty", e[e.SyntheticExpression = 234] = "SyntheticExpression", e[e.SatisfiesExpression = 235] = "SatisfiesExpression", e[e.TemplateSpan = 236] = "TemplateSpan", e[e.SemicolonClassElement = 237] = "SemicolonClassElement", e[e.Block = 238] = "Block", e[e.EmptyStatement = 239] = "EmptyStatement", e[e.VariableStatement = 240] = "VariableStatement", e[e.ExpressionStatement = 241] = "ExpressionStatement", e[e.IfStatement = 242] = "IfStatement", e[e.DoStatement = 243] = "DoStatement", e[e.WhileStatement = 244] = "WhileStatement", e[e.ForStatement = 245] = "ForStatement", e[e.ForInStatement = 246] = "ForInStatement", e[e.ForOfStatement = 247] = "ForOfStatement", e[e.ContinueStatement = 248] = "ContinueStatement", e[e.BreakStatement = 249] = "BreakStatement", e[e.ReturnStatement = 250] = "ReturnStatement", e[e.WithStatement = 251] = "WithStatement", e[e.SwitchStatement = 252] = "SwitchStatement", e[e.LabeledStatement = 253] = "LabeledStatement", e[e.ThrowStatement = 254] = "ThrowStatement", e[e.TryStatement = 255] = "TryStatement", e[e.DebuggerStatement = 256] = "DebuggerStatement", e[e.VariableDeclaration = 257] = "VariableDeclaration", e[e.VariableDeclarationList = 258] = "VariableDeclarationList", e[e.FunctionDeclaration = 259] = "FunctionDeclaration", e[e.ClassDeclaration = 260] = "ClassDeclaration", e[e.InterfaceDeclaration = 261] = "InterfaceDeclaration", e[e.TypeAliasDeclaration = 262] = "TypeAliasDeclaration", e[e.EnumDeclaration = 263] = "EnumDeclaration", e[e.ModuleDeclaration = 264] = "ModuleDeclaration", e[e.ModuleBlock = 265] = "ModuleBlock", e[e.CaseBlock = 266] = "CaseBlock", e[e.NamespaceExportDeclaration = 267] = "NamespaceExportDeclaration", e[e.ImportEqualsDeclaration = 268] = "ImportEqualsDeclaration", e[e.ImportDeclaration = 269] = "ImportDeclaration", e[e.ImportClause = 270] = "ImportClause", e[e.NamespaceImport = 271] = "NamespaceImport", e[e.NamedImports = 272] = "NamedImports", e[e.ImportSpecifier = 273] = "ImportSpecifier", e[e.ExportAssignment = 274] = "ExportAssignment", e[e.ExportDeclaration = 275] = "ExportDeclaration", e[e.NamedExports = 276] = "NamedExports", e[e.NamespaceExport = 277] = "NamespaceExport", e[e.ExportSpecifier = 278] = "ExportSpecifier", e[e.MissingDeclaration = 279] = "MissingDeclaration", e[e.ExternalModuleReference = 280] = "ExternalModuleReference", e[e.JsxElement = 281] = "JsxElement", e[e.JsxSelfClosingElement = 282] = "JsxSelfClosingElement", e[e.JsxOpeningElement = 283] = "JsxOpeningElement", e[e.JsxClosingElement = 284] = "JsxClosingElement", e[e.JsxFragment = 285] = "JsxFragment", e[e.JsxOpeningFragment = 286] = "JsxOpeningFragment", e[e.JsxClosingFragment = 287] = "JsxClosingFragment", e[e.JsxAttribute = 288] = "JsxAttribute", e[e.JsxAttributes = 289] = "JsxAttributes", e[e.JsxSpreadAttribute = 290] = "JsxSpreadAttribute", e[e.JsxExpression = 291] = "JsxExpression", e[e.CaseClause = 292] = "CaseClause", e[e.DefaultClause = 293] = "DefaultClause", e[e.HeritageClause = 294] = "HeritageClause", e[e.CatchClause = 295] = "CatchClause", e[e.AssertClause = 296] = "AssertClause", e[e.AssertEntry = 297] = "AssertEntry", e[e.ImportTypeAssertionContainer = 298] = "ImportTypeAssertionContainer", e[e.PropertyAssignment = 299] = "PropertyAssignment", e[e.ShorthandPropertyAssignment = 300] = "ShorthandPropertyAssignment", e[e.SpreadAssignment = 301] = "SpreadAssignment", e[e.EnumMember = 302] = "EnumMember", e[e.UnparsedPrologue = 303] = "UnparsedPrologue", e[e.UnparsedPrepend = 304] = "UnparsedPrepend", e[e.UnparsedText = 305] = "UnparsedText", e[e.UnparsedInternalText = 306] = "UnparsedInternalText", e[e.UnparsedSyntheticReference = 307] = "UnparsedSyntheticReference", e[e.SourceFile = 308] = "SourceFile", e[e.Bundle = 309] = "Bundle", e[e.UnparsedSource = 310] = "UnparsedSource", e[e.InputFiles = 311] = "InputFiles", e[e.JSDocTypeExpression = 312] = "JSDocTypeExpression", e[e.JSDocNameReference = 313] = "JSDocNameReference", e[e.JSDocMemberName = 314] = "JSDocMemberName", e[e.JSDocAllType = 315] = "JSDocAllType", e[e.JSDocUnknownType = 316] = "JSDocUnknownType", e[e.JSDocNullableType = 317] = "JSDocNullableType", e[e.JSDocNonNullableType = 318] = "JSDocNonNullableType", e[e.JSDocOptionalType = 319] = "JSDocOptionalType", e[e.JSDocFunctionType = 320] = "JSDocFunctionType", e[e.JSDocVariadicType = 321] = "JSDocVariadicType", e[e.JSDocNamepathType = 322] = "JSDocNamepathType", e[e.JSDoc = 323] = "JSDoc", e[e.JSDocComment = 323] = "JSDocComment", e[e.JSDocText = 324] = "JSDocText", e[e.JSDocTypeLiteral = 325] = "JSDocTypeLiteral", e[e.JSDocSignature = 326] = "JSDocSignature", e[e.JSDocLink = 327] = "JSDocLink", e[e.JSDocLinkCode = 328] = "JSDocLinkCode", e[e.JSDocLinkPlain = 329] = "JSDocLinkPlain", e[e.JSDocTag = 330] = "JSDocTag", e[e.JSDocAugmentsTag = 331] = "JSDocAugmentsTag", e[e.JSDocImplementsTag = 332] = "JSDocImplementsTag", e[e.JSDocAuthorTag = 333] = "JSDocAuthorTag", e[e.JSDocDeprecatedTag = 334] = "JSDocDeprecatedTag", e[e.JSDocClassTag = 335] = "JSDocClassTag", e[e.JSDocPublicTag = 336] = "JSDocPublicTag", e[e.JSDocPrivateTag = 337] = "JSDocPrivateTag", e[e.JSDocProtectedTag = 338] = "JSDocProtectedTag", e[e.JSDocReadonlyTag = 339] = "JSDocReadonlyTag", e[e.JSDocOverrideTag = 340] = "JSDocOverrideTag", e[e.JSDocCallbackTag = 341] = "JSDocCallbackTag", e[e.JSDocOverloadTag = 342] = "JSDocOverloadTag", e[e.JSDocEnumTag = 343] = "JSDocEnumTag", e[e.JSDocParameterTag = 344] = "JSDocParameterTag", e[e.JSDocReturnTag = 345] = "JSDocReturnTag", e[e.JSDocThisTag = 346] = "JSDocThisTag", e[e.JSDocTypeTag = 347] = "JSDocTypeTag", e[e.JSDocTemplateTag = 348] = "JSDocTemplateTag", e[e.JSDocTypedefTag = 349] = "JSDocTypedefTag", e[e.JSDocSeeTag = 350] = "JSDocSeeTag", e[e.JSDocPropertyTag = 351] = "JSDocPropertyTag", e[e.JSDocThrowsTag = 352] = "JSDocThrowsTag", e[e.JSDocSatisfiesTag = 353] = "JSDocSatisfiesTag", e[e.SyntaxList = 354] = "SyntaxList", e[e.NotEmittedStatement = 355] = "NotEmittedStatement", e[e.PartiallyEmittedExpression = 356] = "PartiallyEmittedExpression", e[e.CommaListExpression = 357] = "CommaListExpression", e[e.MergeDeclarationMarker = 358] = "MergeDeclarationMarker", e[e.EndOfDeclarationMarker = 359] = "EndOfDeclarationMarker", e[e.SyntheticReferenceExpression = 360] = "SyntheticReferenceExpression", e[e.Count = 361] = "Count", e[e.FirstAssignment = 63] = "FirstAssignment", e[e.LastAssignment = 78] = "LastAssignment", e[e.FirstCompoundAssignment = 64] = "FirstCompoundAssignment", e[e.LastCompoundAssignment = 78] = "LastCompoundAssignment", e[e.FirstReservedWord = 81] = "FirstReservedWord", e[e.LastReservedWord = 116] = "LastReservedWord", e[e.FirstKeyword = 81] = "FirstKeyword", e[e.LastKeyword = 162] = "LastKeyword", e[e.FirstFutureReservedWord = 117] = "FirstFutureReservedWord", e[e.LastFutureReservedWord = 125] = "LastFutureReservedWord", e[e.FirstTypeNode = 179] = "FirstTypeNode", e[e.LastTypeNode = 202] = "LastTypeNode", e[e.FirstPunctuation = 18] = "FirstPunctuation", e[e.LastPunctuation = 78] = "LastPunctuation", e[e.FirstToken = 0] = "FirstToken", e[e.LastToken = 162] = "LastToken", e[e.FirstTriviaToken = 2] = "FirstTriviaToken", e[e.LastTriviaToken = 7] = "LastTriviaToken", e[e.FirstLiteralToken = 8] = "FirstLiteralToken", e[e.LastLiteralToken = 14] = "LastLiteralToken", e[e.FirstTemplateToken = 14] = "FirstTemplateToken", e[e.LastTemplateToken = 17] = "LastTemplateToken", e[e.FirstBinaryOperator = 29] = "FirstBinaryOperator", e[e.LastBinaryOperator = 78] = "LastBinaryOperator", e[e.FirstStatement = 240] = "FirstStatement", e[e.LastStatement = 256] = "LastStatement", e[e.FirstNode = 163] = "FirstNode", e[e.FirstJSDocNode = 312] = "FirstJSDocNode", e[e.LastJSDocNode = 353] = "LastJSDocNode", e[e.FirstJSDocTagNode = 330] = "FirstJSDocTagNode", e[e.LastJSDocTagNode = 353] = "LastJSDocTagNode", e[e.FirstContextualKeyword = 126] = "FirstContextualKeyword", e[e.LastContextualKeyword = 162] = "LastContextualKeyword", e))(rM || {}), iM = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Let = 1] = "Let", e[e.Const = 2] = "Const", e[e.NestedNamespace = 4] = "NestedNamespace", e[e.Synthesized = 8] = "Synthesized", e[e.Namespace = 16] = "Namespace", e[e.OptionalChain = 32] = "OptionalChain", e[e.ExportContext = 64] = "ExportContext", e[e.ContainsThis = 128] = "ContainsThis", e[e.HasImplicitReturn = 256] = "HasImplicitReturn", e[e.HasExplicitReturn = 512] = "HasExplicitReturn", e[e.GlobalAugmentation = 1024] = "GlobalAugmentation", e[e.HasAsyncFunctions = 2048] = "HasAsyncFunctions", e[e.DisallowInContext = 4096] = "DisallowInContext", e[e.YieldContext = 8192] = "YieldContext", e[e.DecoratorContext = 16384] = "DecoratorContext", e[e.AwaitContext = 32768] = "AwaitContext", e[e.DisallowConditionalTypesContext = 65536] = "DisallowConditionalTypesContext", e[e.ThisNodeHasError = 131072] = "ThisNodeHasError", e[e.JavaScriptFile = 262144] = "JavaScriptFile", e[e.ThisNodeOrAnySubNodesHasError = 524288] = "ThisNodeOrAnySubNodesHasError", e[e.HasAggregatedChildData = 1048576] = "HasAggregatedChildData", e[e.PossiblyContainsDynamicImport = 2097152] = "PossiblyContainsDynamicImport", e[e.PossiblyContainsImportMeta = 4194304] = "PossiblyContainsImportMeta", e[e.JSDoc = 8388608] = "JSDoc", e[e.Ambient = 16777216] = "Ambient", e[e.InWithStatement = 33554432] = "InWithStatement", e[e.JsonFile = 67108864] = "JsonFile", e[e.TypeCached = 134217728] = "TypeCached", e[e.Deprecated = 268435456] = "Deprecated", e[e.BlockScoped = 3] = "BlockScoped", e[e.ReachabilityCheckFlags = 768] = "ReachabilityCheckFlags", e[e.ReachabilityAndEmitFlags = 2816] = "ReachabilityAndEmitFlags", e[e.ContextFlags = 50720768] = "ContextFlags", e[e.TypeExcludesFlags = 40960] = "TypeExcludesFlags", e[e.PermanentlySetIncrementalFlags = 6291456] = "PermanentlySetIncrementalFlags", e[e.IdentifierHasExtendedUnicodeEscape = 128] = "IdentifierHasExtendedUnicodeEscape", e[e.IdentifierIsInJSDocNamespace = 2048] = "IdentifierIsInJSDocNamespace", e))(iM || {}), aM = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Export = 1] = "Export", e[e.Ambient = 2] = "Ambient", e[e.Public = 4] = "Public", e[e.Private = 8] = "Private", e[e.Protected = 16] = "Protected", e[e.Static = 32] = "Static", e[e.Readonly = 64] = "Readonly", e[e.Accessor = 128] = "Accessor", e[e.Abstract = 256] = "Abstract", e[e.Async = 512] = "Async", e[e.Default = 1024] = "Default", e[e.Const = 2048] = "Const", e[e.HasComputedJSDocModifiers = 4096] = "HasComputedJSDocModifiers", e[e.Deprecated = 8192] = "Deprecated", e[e.Override = 16384] = "Override", e[e.In = 32768] = "In", e[e.Out = 65536] = "Out", e[e.Decorator = 131072] = "Decorator", e[e.HasComputedFlags = 536870912] = "HasComputedFlags", e[e.AccessibilityModifier = 28] = "AccessibilityModifier", e[e.ParameterPropertyModifier = 16476] = "ParameterPropertyModifier", e[e.NonPublicAccessibilityModifier = 24] = "NonPublicAccessibilityModifier", e[e.TypeScriptModifier = 117086] = "TypeScriptModifier", e[e.ExportDefault = 1025] = "ExportDefault", e[e.All = 258047] = "All", e[e.Modifier = 126975] = "Modifier", e))(aM || {}), jj = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.IntrinsicNamedElement = 1] = "IntrinsicNamedElement", e[e.IntrinsicIndexedElement = 2] = "IntrinsicIndexedElement", e[e.IntrinsicElement = 3] = "IntrinsicElement", e))(jj || {}), oM = /* @__PURE__ */ ((e) => (e[e.Succeeded = 1] = "Succeeded", e[e.Failed = 2] = "Failed", e[e.Reported = 4] = "Reported", e[e.ReportsUnmeasurable = 8] = "ReportsUnmeasurable", e[e.ReportsUnreliable = 16] = "ReportsUnreliable", e[e.ReportsMask = 24] = "ReportsMask", e))(oM || {}), sM = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Auto = 1] = "Auto", e[e.Loop = 2] = "Loop", e[e.Unique = 3] = "Unique", e[e.Node = 4] = "Node", e[e.KindMask = 7] = "KindMask", e[e.ReservedInNestedScopes = 8] = "ReservedInNestedScopes", e[e.Optimistic = 16] = "Optimistic", e[e.FileLevel = 32] = "FileLevel", e[e.AllowNameSubstitution = 64] = "AllowNameSubstitution", e))(sM || {}), Hj = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.PrecedingLineBreak = 1] = "PrecedingLineBreak", e[e.PrecedingJSDocComment = 2] = "PrecedingJSDocComment", e[e.Unterminated = 4] = "Unterminated", e[e.ExtendedUnicodeEscape = 8] = "ExtendedUnicodeEscape", e[e.Scientific = 16] = "Scientific", e[e.Octal = 32] = "Octal", e[e.HexSpecifier = 64] = "HexSpecifier", e[e.BinarySpecifier = 128] = "BinarySpecifier", e[e.OctalSpecifier = 256] = "OctalSpecifier", e[e.ContainsSeparator = 512] = "ContainsSeparator", e[e.UnicodeEscape = 1024] = "UnicodeEscape", e[e.ContainsInvalidEscape = 2048] = "ContainsInvalidEscape", e[e.BinaryOrOctalSpecifier = 384] = "BinaryOrOctalSpecifier", e[e.NumericLiteralFlags = 1008] = "NumericLiteralFlags", e[e.TemplateLiteralLikeFlags = 2048] = "TemplateLiteralLikeFlags", e))(Hj || {}), ER = /* @__PURE__ */ ((e) => (e[e.Unreachable = 1] = "Unreachable", e[e.Start = 2] = "Start", e[e.BranchLabel = 4] = "BranchLabel", e[e.LoopLabel = 8] = "LoopLabel", e[e.Assignment = 16] = "Assignment", e[e.TrueCondition = 32] = "TrueCondition", e[e.FalseCondition = 64] = "FalseCondition", e[e.SwitchClause = 128] = "SwitchClause", e[e.ArrayMutation = 256] = "ArrayMutation", e[e.Call = 512] = "Call", e[e.ReduceLabel = 1024] = "ReduceLabel", e[e.Referenced = 2048] = "Referenced", e[e.Shared = 4096] = "Shared", e[e.Label = 12] = "Label", e[e.Condition = 96] = "Condition", e))(ER || {}), Wj = /* @__PURE__ */ ((e) => (e[e.ExpectError = 0] = "ExpectError", e[e.Ignore = 1] = "Ignore", e))(Wj || {}), dI = class {
      }, lM = /* @__PURE__ */ ((e) => (e[e.RootFile = 0] = "RootFile", e[e.SourceFromProjectReference = 1] = "SourceFromProjectReference", e[e.OutputFromProjectReference = 2] = "OutputFromProjectReference", e[e.Import = 3] = "Import", e[e.ReferenceFile = 4] = "ReferenceFile", e[e.TypeReferenceDirective = 5] = "TypeReferenceDirective", e[e.LibFile = 6] = "LibFile", e[e.LibReferenceDirective = 7] = "LibReferenceDirective", e[e.AutomaticTypeDirectiveFile = 8] = "AutomaticTypeDirectiveFile", e))(lM || {}), zj = /* @__PURE__ */ ((e) => (e[e.FilePreprocessingReferencedDiagnostic = 0] = "FilePreprocessingReferencedDiagnostic", e[e.FilePreprocessingFileExplainingDiagnostic = 1] = "FilePreprocessingFileExplainingDiagnostic", e[e.ResolutionDiagnostics = 2] = "ResolutionDiagnostics", e))(zj || {}), qj = /* @__PURE__ */ ((e) => (e[e.Js = 0] = "Js", e[e.Dts = 1] = "Dts", e))(qj || {}), Jj = /* @__PURE__ */ ((e) => (e[e.Not = 0] = "Not", e[e.SafeModules = 1] = "SafeModules", e[e.Completely = 2] = "Completely", e))(Jj || {}), Kj = /* @__PURE__ */ ((e) => (e[e.Success = 0] = "Success", e[e.DiagnosticsPresent_OutputsSkipped = 1] = "DiagnosticsPresent_OutputsSkipped", e[e.DiagnosticsPresent_OutputsGenerated = 2] = "DiagnosticsPresent_OutputsGenerated", e[e.InvalidProject_OutputsSkipped = 3] = "InvalidProject_OutputsSkipped", e[e.ProjectReferenceCycle_OutputsSkipped = 4] = "ProjectReferenceCycle_OutputsSkipped", e))(Kj || {}), Xj = /* @__PURE__ */ ((e) => (e[e.Ok = 0] = "Ok", e[e.NeedsOverride = 1] = "NeedsOverride", e[e.HasInvalidOverride = 2] = "HasInvalidOverride", e))(Xj || {}), Yj = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Literal = 1] = "Literal", e[e.Subtype = 2] = "Subtype", e))(Yj || {}), $j = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Signature = 1] = "Signature", e[e.NoConstraints = 2] = "NoConstraints", e[e.Completions = 4] = "Completions", e[e.SkipBindingPatterns = 8] = "SkipBindingPatterns", e))($j || {}), Qj = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.NoTruncation = 1] = "NoTruncation", e[e.WriteArrayAsGenericType = 2] = "WriteArrayAsGenericType", e[e.GenerateNamesForShadowedTypeParams = 4] = "GenerateNamesForShadowedTypeParams", e[e.UseStructuralFallback = 8] = "UseStructuralFallback", e[e.ForbidIndexedAccessSymbolReferences = 16] = "ForbidIndexedAccessSymbolReferences", e[e.WriteTypeArgumentsOfSignature = 32] = "WriteTypeArgumentsOfSignature", e[e.UseFullyQualifiedType = 64] = "UseFullyQualifiedType", e[e.UseOnlyExternalAliasing = 128] = "UseOnlyExternalAliasing", e[e.SuppressAnyReturnType = 256] = "SuppressAnyReturnType", e[e.WriteTypeParametersInQualifiedName = 512] = "WriteTypeParametersInQualifiedName", e[e.MultilineObjectLiterals = 1024] = "MultilineObjectLiterals", e[e.WriteClassExpressionAsTypeLiteral = 2048] = "WriteClassExpressionAsTypeLiteral", e[e.UseTypeOfFunction = 4096] = "UseTypeOfFunction", e[e.OmitParameterModifiers = 8192] = "OmitParameterModifiers", e[e.UseAliasDefinedOutsideCurrentScope = 16384] = "UseAliasDefinedOutsideCurrentScope", e[e.UseSingleQuotesForStringLiteralType = 268435456] = "UseSingleQuotesForStringLiteralType", e[e.NoTypeReduction = 536870912] = "NoTypeReduction", e[e.OmitThisParameter = 33554432] = "OmitThisParameter", e[e.AllowThisInObjectLiteral = 32768] = "AllowThisInObjectLiteral", e[e.AllowQualifiedNameInPlaceOfIdentifier = 65536] = "AllowQualifiedNameInPlaceOfIdentifier", e[e.AllowAnonymousIdentifier = 131072] = "AllowAnonymousIdentifier", e[e.AllowEmptyUnionOrIntersection = 262144] = "AllowEmptyUnionOrIntersection", e[e.AllowEmptyTuple = 524288] = "AllowEmptyTuple", e[e.AllowUniqueESSymbolType = 1048576] = "AllowUniqueESSymbolType", e[e.AllowEmptyIndexInfoType = 2097152] = "AllowEmptyIndexInfoType", e[e.WriteComputedProps = 1073741824] = "WriteComputedProps", e[e.AllowNodeModulesRelativePaths = 67108864] = "AllowNodeModulesRelativePaths", e[e.DoNotIncludeSymbolChain = 134217728] = "DoNotIncludeSymbolChain", e[e.IgnoreErrors = 70221824] = "IgnoreErrors", e[e.InObjectTypeLiteral = 4194304] = "InObjectTypeLiteral", e[e.InTypeAlias = 8388608] = "InTypeAlias", e[e.InInitialEntityName = 16777216] = "InInitialEntityName", e))(Qj || {}), Zj = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.NoTruncation = 1] = "NoTruncation", e[e.WriteArrayAsGenericType = 2] = "WriteArrayAsGenericType", e[e.UseStructuralFallback = 8] = "UseStructuralFallback", e[e.WriteTypeArgumentsOfSignature = 32] = "WriteTypeArgumentsOfSignature", e[e.UseFullyQualifiedType = 64] = "UseFullyQualifiedType", e[e.SuppressAnyReturnType = 256] = "SuppressAnyReturnType", e[e.MultilineObjectLiterals = 1024] = "MultilineObjectLiterals", e[e.WriteClassExpressionAsTypeLiteral = 2048] = "WriteClassExpressionAsTypeLiteral", e[e.UseTypeOfFunction = 4096] = "UseTypeOfFunction", e[e.OmitParameterModifiers = 8192] = "OmitParameterModifiers", e[e.UseAliasDefinedOutsideCurrentScope = 16384] = "UseAliasDefinedOutsideCurrentScope", e[e.UseSingleQuotesForStringLiteralType = 268435456] = "UseSingleQuotesForStringLiteralType", e[e.NoTypeReduction = 536870912] = "NoTypeReduction", e[e.OmitThisParameter = 33554432] = "OmitThisParameter", e[e.AllowUniqueESSymbolType = 1048576] = "AllowUniqueESSymbolType", e[e.AddUndefined = 131072] = "AddUndefined", e[e.WriteArrowStyleSignature = 262144] = "WriteArrowStyleSignature", e[e.InArrayType = 524288] = "InArrayType", e[e.InElementType = 2097152] = "InElementType", e[e.InFirstTypeArgument = 4194304] = "InFirstTypeArgument", e[e.InTypeAlias = 8388608] = "InTypeAlias", e[e.NodeBuilderFlagsMask = 848330091] = "NodeBuilderFlagsMask", e))(Zj || {}), eH = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.WriteTypeParametersOrArguments = 1] = "WriteTypeParametersOrArguments", e[e.UseOnlyExternalAliasing = 2] = "UseOnlyExternalAliasing", e[e.AllowAnyNodeKind = 4] = "AllowAnyNodeKind", e[e.UseAliasDefinedOutsideCurrentScope = 8] = "UseAliasDefinedOutsideCurrentScope", e[e.WriteComputedProps = 16] = "WriteComputedProps", e[e.DoNotIncludeSymbolChain = 32] = "DoNotIncludeSymbolChain", e))(eH || {}), tH = /* @__PURE__ */ ((e) => (e[e.Accessible = 0] = "Accessible", e[e.NotAccessible = 1] = "NotAccessible", e[e.CannotBeNamed = 2] = "CannotBeNamed", e))(tH || {}), nH = /* @__PURE__ */ ((e) => (e[e.UnionOrIntersection = 0] = "UnionOrIntersection", e[e.Spread = 1] = "Spread", e))(nH || {}), rH = /* @__PURE__ */ ((e) => (e[e.This = 0] = "This", e[e.Identifier = 1] = "Identifier", e[e.AssertsThis = 2] = "AssertsThis", e[e.AssertsIdentifier = 3] = "AssertsIdentifier", e))(rH || {}), iH = /* @__PURE__ */ ((e) => (e[e.Unknown = 0] = "Unknown", e[e.TypeWithConstructSignatureAndValue = 1] = "TypeWithConstructSignatureAndValue", e[e.VoidNullableOrNeverType = 2] = "VoidNullableOrNeverType", e[e.NumberLikeType = 3] = "NumberLikeType", e[e.BigIntLikeType = 4] = "BigIntLikeType", e[e.StringLikeType = 5] = "StringLikeType", e[e.BooleanType = 6] = "BooleanType", e[e.ArrayLikeType = 7] = "ArrayLikeType", e[e.ESSymbolType = 8] = "ESSymbolType", e[e.Promise = 9] = "Promise", e[e.TypeWithCallSignature = 10] = "TypeWithCallSignature", e[e.ObjectType = 11] = "ObjectType", e))(iH || {}), cM = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.FunctionScopedVariable = 1] = "FunctionScopedVariable", e[e.BlockScopedVariable = 2] = "BlockScopedVariable", e[e.Property = 4] = "Property", e[e.EnumMember = 8] = "EnumMember", e[e.Function = 16] = "Function", e[e.Class = 32] = "Class", e[e.Interface = 64] = "Interface", e[e.ConstEnum = 128] = "ConstEnum", e[e.RegularEnum = 256] = "RegularEnum", e[e.ValueModule = 512] = "ValueModule", e[e.NamespaceModule = 1024] = "NamespaceModule", e[e.TypeLiteral = 2048] = "TypeLiteral", e[e.ObjectLiteral = 4096] = "ObjectLiteral", e[e.Method = 8192] = "Method", e[e.Constructor = 16384] = "Constructor", e[e.GetAccessor = 32768] = "GetAccessor", e[e.SetAccessor = 65536] = "SetAccessor", e[e.Signature = 131072] = "Signature", e[e.TypeParameter = 262144] = "TypeParameter", e[e.TypeAlias = 524288] = "TypeAlias", e[e.ExportValue = 1048576] = "ExportValue", e[e.Alias = 2097152] = "Alias", e[e.Prototype = 4194304] = "Prototype", e[e.ExportStar = 8388608] = "ExportStar", e[e.Optional = 16777216] = "Optional", e[e.Transient = 33554432] = "Transient", e[e.Assignment = 67108864] = "Assignment", e[e.ModuleExports = 134217728] = "ModuleExports", e[e.All = 67108863] = "All", e[e.Enum = 384] = "Enum", e[e.Variable = 3] = "Variable", e[e.Value = 111551] = "Value", e[e.Type = 788968] = "Type", e[e.Namespace = 1920] = "Namespace", e[e.Module = 1536] = "Module", e[e.Accessor = 98304] = "Accessor", e[e.FunctionScopedVariableExcludes = 111550] = "FunctionScopedVariableExcludes", e[e.BlockScopedVariableExcludes = 111551] = "BlockScopedVariableExcludes", e[e.ParameterExcludes = 111551] = "ParameterExcludes", e[e.PropertyExcludes = 0] = "PropertyExcludes", e[e.EnumMemberExcludes = 900095] = "EnumMemberExcludes", e[e.FunctionExcludes = 110991] = "FunctionExcludes", e[e.ClassExcludes = 899503] = "ClassExcludes", e[e.InterfaceExcludes = 788872] = "InterfaceExcludes", e[e.RegularEnumExcludes = 899327] = "RegularEnumExcludes", e[e.ConstEnumExcludes = 899967] = "ConstEnumExcludes", e[e.ValueModuleExcludes = 110735] = "ValueModuleExcludes", e[e.NamespaceModuleExcludes = 0] = "NamespaceModuleExcludes", e[e.MethodExcludes = 103359] = "MethodExcludes", e[e.GetAccessorExcludes = 46015] = "GetAccessorExcludes", e[e.SetAccessorExcludes = 78783] = "SetAccessorExcludes", e[e.AccessorExcludes = 13247] = "AccessorExcludes", e[e.TypeParameterExcludes = 526824] = "TypeParameterExcludes", e[e.TypeAliasExcludes = 788968] = "TypeAliasExcludes", e[e.AliasExcludes = 2097152] = "AliasExcludes", e[e.ModuleMember = 2623475] = "ModuleMember", e[e.ExportHasLocal = 944] = "ExportHasLocal", e[e.BlockScoped = 418] = "BlockScoped", e[e.PropertyOrAccessor = 98308] = "PropertyOrAccessor", e[e.ClassMember = 106500] = "ClassMember", e[e.ExportSupportsDefaultModifier = 112] = "ExportSupportsDefaultModifier", e[e.ExportDoesNotSupportDefaultModifier = -113] = "ExportDoesNotSupportDefaultModifier", e[e.Classifiable = 2885600] = "Classifiable", e[e.LateBindingContainer = 6256] = "LateBindingContainer", e))(cM || {}), aH = /* @__PURE__ */ ((e) => (e[e.Numeric = 0] = "Numeric", e[e.Literal = 1] = "Literal", e))(aH || {}), oH = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Instantiated = 1] = "Instantiated", e[e.SyntheticProperty = 2] = "SyntheticProperty", e[e.SyntheticMethod = 4] = "SyntheticMethod", e[e.Readonly = 8] = "Readonly", e[e.ReadPartial = 16] = "ReadPartial", e[e.WritePartial = 32] = "WritePartial", e[e.HasNonUniformType = 64] = "HasNonUniformType", e[e.HasLiteralType = 128] = "HasLiteralType", e[e.ContainsPublic = 256] = "ContainsPublic", e[e.ContainsProtected = 512] = "ContainsProtected", e[e.ContainsPrivate = 1024] = "ContainsPrivate", e[e.ContainsStatic = 2048] = "ContainsStatic", e[e.Late = 4096] = "Late", e[e.ReverseMapped = 8192] = "ReverseMapped", e[e.OptionalParameter = 16384] = "OptionalParameter", e[e.RestParameter = 32768] = "RestParameter", e[e.DeferredType = 65536] = "DeferredType", e[e.HasNeverType = 131072] = "HasNeverType", e[e.Mapped = 262144] = "Mapped", e[e.StripOptional = 524288] = "StripOptional", e[e.Unresolved = 1048576] = "Unresolved", e[e.Synthetic = 6] = "Synthetic", e[e.Discriminant = 192] = "Discriminant", e[e.Partial = 48] = "Partial", e))(oH || {}), sH = /* @__PURE__ */ ((e) => (e.Call = "__call", e.Constructor = "__constructor", e.New = "__new", e.Index = "__index", e.ExportStar = "__export", e.Global = "__global", e.Missing = "__missing", e.Type = "__type", e.Object = "__object", e.JSXAttributes = "__jsxAttributes", e.Class = "__class", e.Function = "__function", e.Computed = "__computed", e.Resolving = "__resolving__", e.ExportEquals = "export=", e.Default = "default", e.This = "this", e))(sH || {}), lH = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.TypeChecked = 1] = "TypeChecked", e[e.LexicalThis = 2] = "LexicalThis", e[e.CaptureThis = 4] = "CaptureThis", e[e.CaptureNewTarget = 8] = "CaptureNewTarget", e[e.SuperInstance = 16] = "SuperInstance", e[e.SuperStatic = 32] = "SuperStatic", e[e.ContextChecked = 64] = "ContextChecked", e[e.MethodWithSuperPropertyAccessInAsync = 128] = "MethodWithSuperPropertyAccessInAsync", e[e.MethodWithSuperPropertyAssignmentInAsync = 256] = "MethodWithSuperPropertyAssignmentInAsync", e[e.CaptureArguments = 512] = "CaptureArguments", e[e.EnumValuesComputed = 1024] = "EnumValuesComputed", e[e.LexicalModuleMergesWithClass = 2048] = "LexicalModuleMergesWithClass", e[e.LoopWithCapturedBlockScopedBinding = 4096] = "LoopWithCapturedBlockScopedBinding", e[e.ContainsCapturedBlockScopeBinding = 8192] = "ContainsCapturedBlockScopeBinding", e[e.CapturedBlockScopedBinding = 16384] = "CapturedBlockScopedBinding", e[e.BlockScopedBindingInLoop = 32768] = "BlockScopedBindingInLoop", e[e.ClassWithBodyScopedClassBinding = 65536] = "ClassWithBodyScopedClassBinding", e[e.BodyScopedClassBinding = 131072] = "BodyScopedClassBinding", e[e.NeedsLoopOutParameter = 262144] = "NeedsLoopOutParameter", e[e.AssignmentsMarked = 524288] = "AssignmentsMarked", e[e.ClassWithConstructorReference = 1048576] = "ClassWithConstructorReference", e[e.ConstructorReferenceInClass = 2097152] = "ConstructorReferenceInClass", e[e.ContainsClassWithPrivateIdentifiers = 4194304] = "ContainsClassWithPrivateIdentifiers", e[e.ContainsSuperPropertyInStaticInitializer = 8388608] = "ContainsSuperPropertyInStaticInitializer", e[e.InCheckIdentifier = 16777216] = "InCheckIdentifier", e))(lH || {}), uM = /* @__PURE__ */ ((e) => (e[e.Any = 1] = "Any", e[e.Unknown = 2] = "Unknown", e[e.String = 4] = "String", e[e.Number = 8] = "Number", e[e.Boolean = 16] = "Boolean", e[e.Enum = 32] = "Enum", e[e.BigInt = 64] = "BigInt", e[e.StringLiteral = 128] = "StringLiteral", e[e.NumberLiteral = 256] = "NumberLiteral", e[e.BooleanLiteral = 512] = "BooleanLiteral", e[e.EnumLiteral = 1024] = "EnumLiteral", e[e.BigIntLiteral = 2048] = "BigIntLiteral", e[e.ESSymbol = 4096] = "ESSymbol", e[e.UniqueESSymbol = 8192] = "UniqueESSymbol", e[e.Void = 16384] = "Void", e[e.Undefined = 32768] = "Undefined", e[e.Null = 65536] = "Null", e[e.Never = 131072] = "Never", e[e.TypeParameter = 262144] = "TypeParameter", e[e.Object = 524288] = "Object", e[e.Union = 1048576] = "Union", e[e.Intersection = 2097152] = "Intersection", e[e.Index = 4194304] = "Index", e[e.IndexedAccess = 8388608] = "IndexedAccess", e[e.Conditional = 16777216] = "Conditional", e[e.Substitution = 33554432] = "Substitution", e[e.NonPrimitive = 67108864] = "NonPrimitive", e[e.TemplateLiteral = 134217728] = "TemplateLiteral", e[e.StringMapping = 268435456] = "StringMapping", e[e.AnyOrUnknown = 3] = "AnyOrUnknown", e[e.Nullable = 98304] = "Nullable", e[e.Literal = 2944] = "Literal", e[e.Unit = 109472] = "Unit", e[e.Freshable = 2976] = "Freshable", e[e.StringOrNumberLiteral = 384] = "StringOrNumberLiteral", e[e.StringOrNumberLiteralOrUnique = 8576] = "StringOrNumberLiteralOrUnique", e[e.DefinitelyFalsy = 117632] = "DefinitelyFalsy", e[e.PossiblyFalsy = 117724] = "PossiblyFalsy", e[e.Intrinsic = 67359327] = "Intrinsic", e[e.Primitive = 134348796] = "Primitive", e[e.StringLike = 402653316] = "StringLike", e[e.NumberLike = 296] = "NumberLike", e[e.BigIntLike = 2112] = "BigIntLike", e[e.BooleanLike = 528] = "BooleanLike", e[e.EnumLike = 1056] = "EnumLike", e[e.ESSymbolLike = 12288] = "ESSymbolLike", e[e.VoidLike = 49152] = "VoidLike", e[e.DefinitelyNonNullable = 470302716] = "DefinitelyNonNullable", e[e.DisjointDomains = 469892092] = "DisjointDomains", e[e.UnionOrIntersection = 3145728] = "UnionOrIntersection", e[e.StructuredType = 3670016] = "StructuredType", e[e.TypeVariable = 8650752] = "TypeVariable", e[e.InstantiableNonPrimitive = 58982400] = "InstantiableNonPrimitive", e[e.InstantiablePrimitive = 406847488] = "InstantiablePrimitive", e[e.Instantiable = 465829888] = "Instantiable", e[e.StructuredOrInstantiable = 469499904] = "StructuredOrInstantiable", e[e.ObjectFlagsType = 3899393] = "ObjectFlagsType", e[e.Simplifiable = 25165824] = "Simplifiable", e[e.Singleton = 67358815] = "Singleton", e[e.Narrowable = 536624127] = "Narrowable", e[e.IncludesMask = 205258751] = "IncludesMask", e[e.IncludesMissingType = 262144] = "IncludesMissingType", e[e.IncludesNonWideningType = 4194304] = "IncludesNonWideningType", e[e.IncludesWildcard = 8388608] = "IncludesWildcard", e[e.IncludesEmptyObject = 16777216] = "IncludesEmptyObject", e[e.IncludesInstantiable = 33554432] = "IncludesInstantiable", e[e.NotPrimitiveUnion = 36323363] = "NotPrimitiveUnion", e))(uM || {}), dM = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Class = 1] = "Class", e[e.Interface = 2] = "Interface", e[e.Reference = 4] = "Reference", e[e.Tuple = 8] = "Tuple", e[e.Anonymous = 16] = "Anonymous", e[e.Mapped = 32] = "Mapped", e[e.Instantiated = 64] = "Instantiated", e[e.ObjectLiteral = 128] = "ObjectLiteral", e[e.EvolvingArray = 256] = "EvolvingArray", e[e.ObjectLiteralPatternWithComputedProperties = 512] = "ObjectLiteralPatternWithComputedProperties", e[e.ReverseMapped = 1024] = "ReverseMapped", e[e.JsxAttributes = 2048] = "JsxAttributes", e[e.JSLiteral = 4096] = "JSLiteral", e[e.FreshLiteral = 8192] = "FreshLiteral", e[e.ArrayLiteral = 16384] = "ArrayLiteral", e[e.PrimitiveUnion = 32768] = "PrimitiveUnion", e[e.ContainsWideningType = 65536] = "ContainsWideningType", e[e.ContainsObjectOrArrayLiteral = 131072] = "ContainsObjectOrArrayLiteral", e[e.NonInferrableType = 262144] = "NonInferrableType", e[e.CouldContainTypeVariablesComputed = 524288] = "CouldContainTypeVariablesComputed", e[e.CouldContainTypeVariables = 1048576] = "CouldContainTypeVariables", e[e.ClassOrInterface = 3] = "ClassOrInterface", e[e.RequiresWidening = 196608] = "RequiresWidening", e[e.PropagatingFlags = 458752] = "PropagatingFlags", e[e.ObjectTypeKindMask = 1343] = "ObjectTypeKindMask", e[e.ContainsSpread = 2097152] = "ContainsSpread", e[e.ObjectRestType = 4194304] = "ObjectRestType", e[e.InstantiationExpressionType = 8388608] = "InstantiationExpressionType", e[e.IsClassInstanceClone = 16777216] = "IsClassInstanceClone", e[e.IdenticalBaseTypeCalculated = 33554432] = "IdenticalBaseTypeCalculated", e[e.IdenticalBaseTypeExists = 67108864] = "IdenticalBaseTypeExists", e[e.IsGenericTypeComputed = 2097152] = "IsGenericTypeComputed", e[e.IsGenericObjectType = 4194304] = "IsGenericObjectType", e[e.IsGenericIndexType = 8388608] = "IsGenericIndexType", e[e.IsGenericType = 12582912] = "IsGenericType", e[e.ContainsIntersections = 16777216] = "ContainsIntersections", e[e.IsUnknownLikeUnionComputed = 33554432] = "IsUnknownLikeUnionComputed", e[e.IsUnknownLikeUnion = 67108864] = "IsUnknownLikeUnion", e[e.IsNeverIntersectionComputed = 16777216] = "IsNeverIntersectionComputed", e[e.IsNeverIntersection = 33554432] = "IsNeverIntersection", e))(dM || {}), cH = /* @__PURE__ */ ((e) => (e[e.Invariant = 0] = "Invariant", e[e.Covariant = 1] = "Covariant", e[e.Contravariant = 2] = "Contravariant", e[e.Bivariant = 3] = "Bivariant", e[e.Independent = 4] = "Independent", e[e.VarianceMask = 7] = "VarianceMask", e[e.Unmeasurable = 8] = "Unmeasurable", e[e.Unreliable = 16] = "Unreliable", e[e.AllowsStructuralFallback = 24] = "AllowsStructuralFallback", e))(cH || {}), uH = /* @__PURE__ */ ((e) => (e[e.Required = 1] = "Required", e[e.Optional = 2] = "Optional", e[e.Rest = 4] = "Rest", e[e.Variadic = 8] = "Variadic", e[e.Fixed = 3] = "Fixed", e[e.Variable = 12] = "Variable", e[e.NonRequired = 14] = "NonRequired", e[e.NonRest = 11] = "NonRest", e))(uH || {}), dH = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.IncludeUndefined = 1] = "IncludeUndefined", e[e.NoIndexSignatures = 2] = "NoIndexSignatures", e[e.Writing = 4] = "Writing", e[e.CacheSymbol = 8] = "CacheSymbol", e[e.NoTupleBoundsCheck = 16] = "NoTupleBoundsCheck", e[e.ExpressionPosition = 32] = "ExpressionPosition", e[e.ReportDeprecated = 64] = "ReportDeprecated", e[e.SuppressNoImplicitAnyError = 128] = "SuppressNoImplicitAnyError", e[e.Contextual = 256] = "Contextual", e[e.Persistent = 1] = "Persistent", e))(dH || {}), fH = /* @__PURE__ */ ((e) => (e[e.Component = 0] = "Component", e[e.Function = 1] = "Function", e[e.Mixed = 2] = "Mixed", e))(fH || {}), _H = /* @__PURE__ */ ((e) => (e[e.Call = 0] = "Call", e[e.Construct = 1] = "Construct", e))(_H || {}), fM = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.HasRestParameter = 1] = "HasRestParameter", e[e.HasLiteralTypes = 2] = "HasLiteralTypes", e[e.Abstract = 4] = "Abstract", e[e.IsInnerCallChain = 8] = "IsInnerCallChain", e[e.IsOuterCallChain = 16] = "IsOuterCallChain", e[e.IsUntypedSignatureInJSFile = 32] = "IsUntypedSignatureInJSFile", e[e.PropagatingFlags = 39] = "PropagatingFlags", e[e.CallChainFlags = 24] = "CallChainFlags", e))(fM || {}), pH = /* @__PURE__ */ ((e) => (e[e.String = 0] = "String", e[e.Number = 1] = "Number", e))(pH || {}), mH = /* @__PURE__ */ ((e) => (e[e.Simple = 0] = "Simple", e[e.Array = 1] = "Array", e[e.Deferred = 2] = "Deferred", e[e.Function = 3] = "Function", e[e.Composite = 4] = "Composite", e[e.Merged = 5] = "Merged", e))(mH || {}), hH = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.NakedTypeVariable = 1] = "NakedTypeVariable", e[e.SpeculativeTuple = 2] = "SpeculativeTuple", e[e.SubstituteSource = 4] = "SubstituteSource", e[e.HomomorphicMappedType = 8] = "HomomorphicMappedType", e[e.PartialHomomorphicMappedType = 16] = "PartialHomomorphicMappedType", e[e.MappedTypeConstraint = 32] = "MappedTypeConstraint", e[e.ContravariantConditional = 64] = "ContravariantConditional", e[e.ReturnType = 128] = "ReturnType", e[e.LiteralKeyof = 256] = "LiteralKeyof", e[e.NoConstraints = 512] = "NoConstraints", e[e.AlwaysStrict = 1024] = "AlwaysStrict", e[e.MaxValue = 2048] = "MaxValue", e[e.PriorityImpliesCombination = 416] = "PriorityImpliesCombination", e[e.Circularity = -1] = "Circularity", e))(hH || {}), gH = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.NoDefault = 1] = "NoDefault", e[e.AnyDefault = 2] = "AnyDefault", e[e.SkippedGenericFunction = 4] = "SkippedGenericFunction", e))(gH || {}), yH = /* @__PURE__ */ ((e) => (e[e.False = 0] = "False", e[e.Unknown = 1] = "Unknown", e[e.Maybe = 3] = "Maybe", e[e.True = -1] = "True", e))(yH || {}), vH = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.ExportsProperty = 1] = "ExportsProperty", e[e.ModuleExports = 2] = "ModuleExports", e[e.PrototypeProperty = 3] = "PrototypeProperty", e[e.ThisProperty = 4] = "ThisProperty", e[e.Property = 5] = "Property", e[e.Prototype = 6] = "Prototype", e[e.ObjectDefinePropertyValue = 7] = "ObjectDefinePropertyValue", e[e.ObjectDefinePropertyExports = 8] = "ObjectDefinePropertyExports", e[e.ObjectDefinePrototypeProperty = 9] = "ObjectDefinePrototypeProperty", e))(vH || {}), TR = /* @__PURE__ */ ((e) => (e[e.Warning = 0] = "Warning", e[e.Error = 1] = "Error", e[e.Suggestion = 2] = "Suggestion", e[e.Message = 3] = "Message", e))(TR || {}), SR = /* @__PURE__ */ ((e) => (e[e.Classic = 1] = "Classic", e[e.NodeJs = 2] = "NodeJs", e[e.Node10 = 2] = "Node10", e[e.Node16 = 3] = "Node16", e[e.NodeNext = 99] = "NodeNext", e[e.Bundler = 100] = "Bundler", e))(SR || {}), bH = /* @__PURE__ */ ((e) => (e[e.Legacy = 1] = "Legacy", e[e.Auto = 2] = "Auto", e[e.Force = 3] = "Force", e))(bH || {}), EH = /* @__PURE__ */ ((e) => (e[e.FixedPollingInterval = 0] = "FixedPollingInterval", e[e.PriorityPollingInterval = 1] = "PriorityPollingInterval", e[e.DynamicPriorityPolling = 2] = "DynamicPriorityPolling", e[e.FixedChunkSizePolling = 3] = "FixedChunkSizePolling", e[e.UseFsEvents = 4] = "UseFsEvents", e[e.UseFsEventsOnParentDirectory = 5] = "UseFsEventsOnParentDirectory", e))(EH || {}), TH = /* @__PURE__ */ ((e) => (e[e.UseFsEvents = 0] = "UseFsEvents", e[e.FixedPollingInterval = 1] = "FixedPollingInterval", e[e.DynamicPriorityPolling = 2] = "DynamicPriorityPolling", e[e.FixedChunkSizePolling = 3] = "FixedChunkSizePolling", e))(TH || {}), SH = /* @__PURE__ */ ((e) => (e[e.FixedInterval = 0] = "FixedInterval", e[e.PriorityInterval = 1] = "PriorityInterval", e[e.DynamicPriority = 2] = "DynamicPriority", e[e.FixedChunkSize = 3] = "FixedChunkSize", e))(SH || {}), _M = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.CommonJS = 1] = "CommonJS", e[e.AMD = 2] = "AMD", e[e.UMD = 3] = "UMD", e[e.System = 4] = "System", e[e.ES2015 = 5] = "ES2015", e[e.ES2020 = 6] = "ES2020", e[e.ES2022 = 7] = "ES2022", e[e.ESNext = 99] = "ESNext", e[e.Node16 = 100] = "Node16", e[e.NodeNext = 199] = "NodeNext", e))(_M || {}), xH = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Preserve = 1] = "Preserve", e[e.React = 2] = "React", e[e.ReactNative = 3] = "ReactNative", e[e.ReactJSX = 4] = "ReactJSX", e[e.ReactJSXDev = 5] = "ReactJSXDev", e))(xH || {}), AH = /* @__PURE__ */ ((e) => (e[e.Remove = 0] = "Remove", e[e.Preserve = 1] = "Preserve", e[e.Error = 2] = "Error", e))(AH || {}), CH = /* @__PURE__ */ ((e) => (e[e.CarriageReturnLineFeed = 0] = "CarriageReturnLineFeed", e[e.LineFeed = 1] = "LineFeed", e))(CH || {}), LH = /* @__PURE__ */ ((e) => (e[e.Unknown = 0] = "Unknown", e[e.JS = 1] = "JS", e[e.JSX = 2] = "JSX", e[e.TS = 3] = "TS", e[e.TSX = 4] = "TSX", e[e.External = 5] = "External", e[e.JSON = 6] = "JSON", e[e.Deferred = 7] = "Deferred", e))(LH || {}), IH = /* @__PURE__ */ ((e) => (e[e.ES3 = 0] = "ES3", e[e.ES5 = 1] = "ES5", e[e.ES2015 = 2] = "ES2015", e[e.ES2016 = 3] = "ES2016", e[e.ES2017 = 4] = "ES2017", e[e.ES2018 = 5] = "ES2018", e[e.ES2019 = 6] = "ES2019", e[e.ES2020 = 7] = "ES2020", e[e.ES2021 = 8] = "ES2021", e[e.ES2022 = 9] = "ES2022", e[e.ESNext = 99] = "ESNext", e[e.JSON = 100] = "JSON", e[e.Latest = 99] = "Latest", e))(IH || {}), kH = /* @__PURE__ */ ((e) => (e[e.Standard = 0] = "Standard", e[e.JSX = 1] = "JSX", e))(kH || {}), wH = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Recursive = 1] = "Recursive", e))(wH || {}), DH = /* @__PURE__ */ ((e) => (e[e.nullCharacter = 0] = "nullCharacter", e[e.maxAsciiCharacter = 127] = "maxAsciiCharacter", e[e.lineFeed = 10] = "lineFeed", e[e.carriageReturn = 13] = "carriageReturn", e[e.lineSeparator = 8232] = "lineSeparator", e[e.paragraphSeparator = 8233] = "paragraphSeparator", e[e.nextLine = 133] = "nextLine", e[e.space = 32] = "space", e[e.nonBreakingSpace = 160] = "nonBreakingSpace", e[e.enQuad = 8192] = "enQuad", e[e.emQuad = 8193] = "emQuad", e[e.enSpace = 8194] = "enSpace", e[e.emSpace = 8195] = "emSpace", e[e.threePerEmSpace = 8196] = "threePerEmSpace", e[e.fourPerEmSpace = 8197] = "fourPerEmSpace", e[e.sixPerEmSpace = 8198] = "sixPerEmSpace", e[e.figureSpace = 8199] = "figureSpace", e[e.punctuationSpace = 8200] = "punctuationSpace", e[e.thinSpace = 8201] = "thinSpace", e[e.hairSpace = 8202] = "hairSpace", e[e.zeroWidthSpace = 8203] = "zeroWidthSpace", e[e.narrowNoBreakSpace = 8239] = "narrowNoBreakSpace", e[e.ideographicSpace = 12288] = "ideographicSpace", e[e.mathematicalSpace = 8287] = "mathematicalSpace", e[e.ogham = 5760] = "ogham", e[e._ = 95] = "_", e[e.$ = 36] = "$", e[e._0 = 48] = "_0", e[e._1 = 49] = "_1", e[e._2 = 50] = "_2", e[e._3 = 51] = "_3", e[e._4 = 52] = "_4", e[e._5 = 53] = "_5", e[e._6 = 54] = "_6", e[e._7 = 55] = "_7", e[e._8 = 56] = "_8", e[e._9 = 57] = "_9", e[e.a = 97] = "a", e[e.b = 98] = "b", e[e.c = 99] = "c", e[e.d = 100] = "d", e[e.e = 101] = "e", e[e.f = 102] = "f", e[e.g = 103] = "g", e[e.h = 104] = "h", e[e.i = 105] = "i", e[e.j = 106] = "j", e[e.k = 107] = "k", e[e.l = 108] = "l", e[e.m = 109] = "m", e[e.n = 110] = "n", e[e.o = 111] = "o", e[e.p = 112] = "p", e[e.q = 113] = "q", e[e.r = 114] = "r", e[e.s = 115] = "s", e[e.t = 116] = "t", e[e.u = 117] = "u", e[e.v = 118] = "v", e[e.w = 119] = "w", e[e.x = 120] = "x", e[e.y = 121] = "y", e[e.z = 122] = "z", e[e.A = 65] = "A", e[e.B = 66] = "B", e[e.C = 67] = "C", e[e.D = 68] = "D", e[e.E = 69] = "E", e[e.F = 70] = "F", e[e.G = 71] = "G", e[e.H = 72] = "H", e[e.I = 73] = "I", e[e.J = 74] = "J", e[e.K = 75] = "K", e[e.L = 76] = "L", e[e.M = 77] = "M", e[e.N = 78] = "N", e[e.O = 79] = "O", e[e.P = 80] = "P", e[e.Q = 81] = "Q", e[e.R = 82] = "R", e[e.S = 83] = "S", e[e.T = 84] = "T", e[e.U = 85] = "U", e[e.V = 86] = "V", e[e.W = 87] = "W", e[e.X = 88] = "X", e[e.Y = 89] = "Y", e[e.Z = 90] = "Z", e[e.ampersand = 38] = "ampersand", e[e.asterisk = 42] = "asterisk", e[e.at = 64] = "at", e[e.backslash = 92] = "backslash", e[e.backtick = 96] = "backtick", e[e.bar = 124] = "bar", e[e.caret = 94] = "caret", e[e.closeBrace = 125] = "closeBrace", e[e.closeBracket = 93] = "closeBracket", e[e.closeParen = 41] = "closeParen", e[e.colon = 58] = "colon", e[e.comma = 44] = "comma", e[e.dot = 46] = "dot", e[e.doubleQuote = 34] = "doubleQuote", e[e.equals = 61] = "equals", e[e.exclamation = 33] = "exclamation", e[e.greaterThan = 62] = "greaterThan", e[e.hash = 35] = "hash", e[e.lessThan = 60] = "lessThan", e[e.minus = 45] = "minus", e[e.openBrace = 123] = "openBrace", e[e.openBracket = 91] = "openBracket", e[e.openParen = 40] = "openParen", e[e.percent = 37] = "percent", e[e.plus = 43] = "plus", e[e.question = 63] = "question", e[e.semicolon = 59] = "semicolon", e[e.singleQuote = 39] = "singleQuote", e[e.slash = 47] = "slash", e[e.tilde = 126] = "tilde", e[e.backspace = 8] = "backspace", e[e.formFeed = 12] = "formFeed", e[e.byteOrderMark = 65279] = "byteOrderMark", e[e.tab = 9] = "tab", e[e.verticalTab = 11] = "verticalTab", e))(DH || {}), RH = /* @__PURE__ */ ((e) => (e.Ts = ".ts", e.Tsx = ".tsx", e.Dts = ".d.ts", e.Js = ".js", e.Jsx = ".jsx", e.Json = ".json", e.TsBuildInfo = ".tsbuildinfo", e.Mjs = ".mjs", e.Mts = ".mts", e.Dmts = ".d.mts", e.Cjs = ".cjs", e.Cts = ".cts", e.Dcts = ".d.cts", e))(RH || {}), pM = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.ContainsTypeScript = 1] = "ContainsTypeScript", e[e.ContainsJsx = 2] = "ContainsJsx", e[e.ContainsESNext = 4] = "ContainsESNext", e[e.ContainsES2022 = 8] = "ContainsES2022", e[e.ContainsES2021 = 16] = "ContainsES2021", e[e.ContainsES2020 = 32] = "ContainsES2020", e[e.ContainsES2019 = 64] = "ContainsES2019", e[e.ContainsES2018 = 128] = "ContainsES2018", e[e.ContainsES2017 = 256] = "ContainsES2017", e[e.ContainsES2016 = 512] = "ContainsES2016", e[e.ContainsES2015 = 1024] = "ContainsES2015", e[e.ContainsGenerator = 2048] = "ContainsGenerator", e[e.ContainsDestructuringAssignment = 4096] = "ContainsDestructuringAssignment", e[e.ContainsTypeScriptClassSyntax = 8192] = "ContainsTypeScriptClassSyntax", e[e.ContainsLexicalThis = 16384] = "ContainsLexicalThis", e[e.ContainsRestOrSpread = 32768] = "ContainsRestOrSpread", e[e.ContainsObjectRestOrSpread = 65536] = "ContainsObjectRestOrSpread", e[e.ContainsComputedPropertyName = 131072] = "ContainsComputedPropertyName", e[e.ContainsBlockScopedBinding = 262144] = "ContainsBlockScopedBinding", e[e.ContainsBindingPattern = 524288] = "ContainsBindingPattern", e[e.ContainsYield = 1048576] = "ContainsYield", e[e.ContainsAwait = 2097152] = "ContainsAwait", e[e.ContainsHoistedDeclarationOrCompletion = 4194304] = "ContainsHoistedDeclarationOrCompletion", e[e.ContainsDynamicImport = 8388608] = "ContainsDynamicImport", e[e.ContainsClassFields = 16777216] = "ContainsClassFields", e[e.ContainsDecorators = 33554432] = "ContainsDecorators", e[e.ContainsPossibleTopLevelAwait = 67108864] = "ContainsPossibleTopLevelAwait", e[e.ContainsLexicalSuper = 134217728] = "ContainsLexicalSuper", e[e.ContainsUpdateExpressionForIdentifier = 268435456] = "ContainsUpdateExpressionForIdentifier", e[e.ContainsPrivateIdentifierInExpression = 536870912] = "ContainsPrivateIdentifierInExpression", e[e.HasComputedFlags = -2147483648] = "HasComputedFlags", e[e.AssertTypeScript = 1] = "AssertTypeScript", e[e.AssertJsx = 2] = "AssertJsx", e[e.AssertESNext = 4] = "AssertESNext", e[e.AssertES2022 = 8] = "AssertES2022", e[e.AssertES2021 = 16] = "AssertES2021", e[e.AssertES2020 = 32] = "AssertES2020", e[e.AssertES2019 = 64] = "AssertES2019", e[e.AssertES2018 = 128] = "AssertES2018", e[e.AssertES2017 = 256] = "AssertES2017", e[e.AssertES2016 = 512] = "AssertES2016", e[e.AssertES2015 = 1024] = "AssertES2015", e[e.AssertGenerator = 2048] = "AssertGenerator", e[e.AssertDestructuringAssignment = 4096] = "AssertDestructuringAssignment", e[e.OuterExpressionExcludes = -2147483648] = "OuterExpressionExcludes", e[e.PropertyAccessExcludes = -2147483648] = "PropertyAccessExcludes", e[e.NodeExcludes = -2147483648] = "NodeExcludes", e[e.ArrowFunctionExcludes = -2072174592] = "ArrowFunctionExcludes", e[e.FunctionExcludes = -1937940480] = "FunctionExcludes", e[e.ConstructorExcludes = -1937948672] = "ConstructorExcludes", e[e.MethodOrAccessorExcludes = -2005057536] = "MethodOrAccessorExcludes", e[e.PropertyExcludes = -2013249536] = "PropertyExcludes", e[e.ClassExcludes = -2147344384] = "ClassExcludes", e[e.ModuleExcludes = -1941676032] = "ModuleExcludes", e[e.TypeExcludes = -2] = "TypeExcludes", e[e.ObjectLiteralExcludes = -2147278848] = "ObjectLiteralExcludes", e[e.ArrayLiteralOrCallOrNewExcludes = -2147450880] = "ArrayLiteralOrCallOrNewExcludes", e[e.VariableDeclarationListExcludes = -2146893824] = "VariableDeclarationListExcludes", e[e.ParameterExcludes = -2147483648] = "ParameterExcludes", e[e.CatchClauseExcludes = -2147418112] = "CatchClauseExcludes", e[e.BindingPatternExcludes = -2147450880] = "BindingPatternExcludes", e[e.ContainsLexicalThisOrSuper = 134234112] = "ContainsLexicalThisOrSuper", e[e.PropertyNamePropagatingFlags = 134234112] = "PropertyNamePropagatingFlags", e))(pM || {}), mM = /* @__PURE__ */ ((e) => (e[e.TabStop = 0] = "TabStop", e[e.Placeholder = 1] = "Placeholder", e[e.Choice = 2] = "Choice", e[e.Variable = 3] = "Variable", e))(mM || {}), hM = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.SingleLine = 1] = "SingleLine", e[e.MultiLine = 2] = "MultiLine", e[e.AdviseOnEmitNode = 4] = "AdviseOnEmitNode", e[e.NoSubstitution = 8] = "NoSubstitution", e[e.CapturesThis = 16] = "CapturesThis", e[e.NoLeadingSourceMap = 32] = "NoLeadingSourceMap", e[e.NoTrailingSourceMap = 64] = "NoTrailingSourceMap", e[e.NoSourceMap = 96] = "NoSourceMap", e[e.NoNestedSourceMaps = 128] = "NoNestedSourceMaps", e[e.NoTokenLeadingSourceMaps = 256] = "NoTokenLeadingSourceMaps", e[e.NoTokenTrailingSourceMaps = 512] = "NoTokenTrailingSourceMaps", e[e.NoTokenSourceMaps = 768] = "NoTokenSourceMaps", e[e.NoLeadingComments = 1024] = "NoLeadingComments", e[e.NoTrailingComments = 2048] = "NoTrailingComments", e[e.NoComments = 3072] = "NoComments", e[e.NoNestedComments = 4096] = "NoNestedComments", e[e.HelperName = 8192] = "HelperName", e[e.ExportName = 16384] = "ExportName", e[e.LocalName = 32768] = "LocalName", e[e.InternalName = 65536] = "InternalName", e[e.Indented = 131072] = "Indented", e[e.NoIndentation = 262144] = "NoIndentation", e[e.AsyncFunctionBody = 524288] = "AsyncFunctionBody", e[e.ReuseTempVariableScope = 1048576] = "ReuseTempVariableScope", e[e.CustomPrologue = 2097152] = "CustomPrologue", e[e.NoHoisting = 4194304] = "NoHoisting", e[e.HasEndOfDeclarationMarker = 8388608] = "HasEndOfDeclarationMarker", e[e.Iterator = 16777216] = "Iterator", e[e.NoAsciiEscaping = 33554432] = "NoAsciiEscaping", e))(hM || {}), NH = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.TypeScriptClassWrapper = 1] = "TypeScriptClassWrapper", e[e.NeverApplyImportHelper = 2] = "NeverApplyImportHelper", e[e.IgnoreSourceNewlines = 4] = "IgnoreSourceNewlines", e[e.Immutable = 8] = "Immutable", e[e.IndirectCall = 16] = "IndirectCall", e[e.TransformPrivateStaticElements = 32] = "TransformPrivateStaticElements", e))(NH || {}), OH = /* @__PURE__ */ ((e) => (e[e.Extends = 1] = "Extends", e[e.Assign = 2] = "Assign", e[e.Rest = 4] = "Rest", e[e.Decorate = 8] = "Decorate", e[e.ESDecorateAndRunInitializers = 8] = "ESDecorateAndRunInitializers", e[e.Metadata = 16] = "Metadata", e[e.Param = 32] = "Param", e[e.Awaiter = 64] = "Awaiter", e[e.Generator = 128] = "Generator", e[e.Values = 256] = "Values", e[e.Read = 512] = "Read", e[e.SpreadArray = 1024] = "SpreadArray", e[e.Await = 2048] = "Await", e[e.AsyncGenerator = 4096] = "AsyncGenerator", e[e.AsyncDelegator = 8192] = "AsyncDelegator", e[e.AsyncValues = 16384] = "AsyncValues", e[e.ExportStar = 32768] = "ExportStar", e[e.ImportStar = 65536] = "ImportStar", e[e.ImportDefault = 131072] = "ImportDefault", e[e.MakeTemplateObject = 262144] = "MakeTemplateObject", e[e.ClassPrivateFieldGet = 524288] = "ClassPrivateFieldGet", e[e.ClassPrivateFieldSet = 1048576] = "ClassPrivateFieldSet", e[e.ClassPrivateFieldIn = 2097152] = "ClassPrivateFieldIn", e[e.CreateBinding = 4194304] = "CreateBinding", e[e.SetFunctionName = 8388608] = "SetFunctionName", e[e.PropKey = 16777216] = "PropKey", e[e.FirstEmitHelper = 1] = "FirstEmitHelper", e[e.LastEmitHelper = 16777216] = "LastEmitHelper", e[e.ForOfIncludes = 256] = "ForOfIncludes", e[e.ForAwaitOfIncludes = 16384] = "ForAwaitOfIncludes", e[e.AsyncGeneratorIncludes = 6144] = "AsyncGeneratorIncludes", e[e.AsyncDelegatorIncludes = 26624] = "AsyncDelegatorIncludes", e[e.SpreadIncludes = 1536] = "SpreadIncludes", e))(OH || {}), PH = /* @__PURE__ */ ((e) => (e[e.SourceFile = 0] = "SourceFile", e[e.Expression = 1] = "Expression", e[e.IdentifierName = 2] = "IdentifierName", e[e.MappedTypeParameter = 3] = "MappedTypeParameter", e[e.Unspecified = 4] = "Unspecified", e[e.EmbeddedStatement = 5] = "EmbeddedStatement", e[e.JsxAttributeValue = 6] = "JsxAttributeValue", e))(PH || {}), MH = /* @__PURE__ */ ((e) => (e[e.Parentheses = 1] = "Parentheses", e[e.TypeAssertions = 2] = "TypeAssertions", e[e.NonNullAssertions = 4] = "NonNullAssertions", e[e.PartiallyEmittedExpressions = 8] = "PartiallyEmittedExpressions", e[e.Assertions = 6] = "Assertions", e[e.All = 15] = "All", e[e.ExcludeJSDocTypeAssertion = 16] = "ExcludeJSDocTypeAssertion", e))(MH || {}), FH = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.InParameters = 1] = "InParameters", e[e.VariablesHoistedInParameters = 2] = "VariablesHoistedInParameters", e))(FH || {}), BH = /* @__PURE__ */ ((e) => (e.Prologue = "prologue", e.EmitHelpers = "emitHelpers", e.NoDefaultLib = "no-default-lib", e.Reference = "reference", e.Type = "type", e.TypeResolutionModeRequire = "type-require", e.TypeResolutionModeImport = "type-import", e.Lib = "lib", e.Prepend = "prepend", e.Text = "text", e.Internal = "internal", e))(BH || {}), GH = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.SingleLine = 0] = "SingleLine", e[e.MultiLine = 1] = "MultiLine", e[e.PreserveLines = 2] = "PreserveLines", e[e.LinesMask = 3] = "LinesMask", e[e.NotDelimited = 0] = "NotDelimited", e[e.BarDelimited = 4] = "BarDelimited", e[e.AmpersandDelimited = 8] = "AmpersandDelimited", e[e.CommaDelimited = 16] = "CommaDelimited", e[e.AsteriskDelimited = 32] = "AsteriskDelimited", e[e.DelimitersMask = 60] = "DelimitersMask", e[e.AllowTrailingComma = 64] = "AllowTrailingComma", e[e.Indented = 128] = "Indented", e[e.SpaceBetweenBraces = 256] = "SpaceBetweenBraces", e[e.SpaceBetweenSiblings = 512] = "SpaceBetweenSiblings", e[e.Braces = 1024] = "Braces", e[e.Parenthesis = 2048] = "Parenthesis", e[e.AngleBrackets = 4096] = "AngleBrackets", e[e.SquareBrackets = 8192] = "SquareBrackets", e[e.BracketsMask = 15360] = "BracketsMask", e[e.OptionalIfUndefined = 16384] = "OptionalIfUndefined", e[e.OptionalIfEmpty = 32768] = "OptionalIfEmpty", e[e.Optional = 49152] = "Optional", e[e.PreferNewLine = 65536] = "PreferNewLine", e[e.NoTrailingNewLine = 131072] = "NoTrailingNewLine", e[e.NoInterveningComments = 262144] = "NoInterveningComments", e[e.NoSpaceIfEmpty = 524288] = "NoSpaceIfEmpty", e[e.SingleElement = 1048576] = "SingleElement", e[e.SpaceAfterList = 2097152] = "SpaceAfterList", e[e.Modifiers = 2359808] = "Modifiers", e[e.HeritageClauses = 512] = "HeritageClauses", e[e.SingleLineTypeLiteralMembers = 768] = "SingleLineTypeLiteralMembers", e[e.MultiLineTypeLiteralMembers = 32897] = "MultiLineTypeLiteralMembers", e[e.SingleLineTupleTypeElements = 528] = "SingleLineTupleTypeElements", e[e.MultiLineTupleTypeElements = 657] = "MultiLineTupleTypeElements", e[e.UnionTypeConstituents = 516] = "UnionTypeConstituents", e[e.IntersectionTypeConstituents = 520] = "IntersectionTypeConstituents", e[e.ObjectBindingPatternElements = 525136] = "ObjectBindingPatternElements", e[e.ArrayBindingPatternElements = 524880] = "ArrayBindingPatternElements", e[e.ObjectLiteralExpressionProperties = 526226] = "ObjectLiteralExpressionProperties", e[e.ImportClauseEntries = 526226] = "ImportClauseEntries", e[e.ArrayLiteralExpressionElements = 8914] = "ArrayLiteralExpressionElements", e[e.CommaListElements = 528] = "CommaListElements", e[e.CallExpressionArguments = 2576] = "CallExpressionArguments", e[e.NewExpressionArguments = 18960] = "NewExpressionArguments", e[e.TemplateExpressionSpans = 262144] = "TemplateExpressionSpans", e[e.SingleLineBlockStatements = 768] = "SingleLineBlockStatements", e[e.MultiLineBlockStatements = 129] = "MultiLineBlockStatements", e[e.VariableDeclarationList = 528] = "VariableDeclarationList", e[e.SingleLineFunctionBodyStatements = 768] = "SingleLineFunctionBodyStatements", e[e.MultiLineFunctionBodyStatements = 1] = "MultiLineFunctionBodyStatements", e[e.ClassHeritageClauses = 0] = "ClassHeritageClauses", e[e.ClassMembers = 129] = "ClassMembers", e[e.InterfaceMembers = 129] = "InterfaceMembers", e[e.EnumMembers = 145] = "EnumMembers", e[e.CaseBlockClauses = 129] = "CaseBlockClauses", e[e.NamedImportsOrExportsElements = 525136] = "NamedImportsOrExportsElements", e[e.JsxElementOrFragmentChildren = 262144] = "JsxElementOrFragmentChildren", e[e.JsxElementAttributes = 262656] = "JsxElementAttributes", e[e.CaseOrDefaultClauseStatements = 163969] = "CaseOrDefaultClauseStatements", e[e.HeritageClauseTypes = 528] = "HeritageClauseTypes", e[e.SourceFileStatements = 131073] = "SourceFileStatements", e[e.Decorators = 2146305] = "Decorators", e[e.TypeArguments = 53776] = "TypeArguments", e[e.TypeParameters = 53776] = "TypeParameters", e[e.Parameters = 2576] = "Parameters", e[e.IndexSignatureParameters = 8848] = "IndexSignatureParameters", e[e.JSDocComment = 33] = "JSDocComment", e))(GH || {}), UH = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.TripleSlashXML = 1] = "TripleSlashXML", e[e.SingleLine = 2] = "SingleLine", e[e.MultiLine = 4] = "MultiLine", e[e.All = 7] = "All", e[e.Default = 7] = "Default", e))(UH || {}), xR = {
        reference: {
          args: [
            { name: "types", optional: !0, captureSpan: !0 },
            { name: "lib", optional: !0, captureSpan: !0 },
            { name: "path", optional: !0, captureSpan: !0 },
            { name: "no-default-lib", optional: !0 },
            { name: "resolution-mode", optional: !0 }
          ],
          kind: 1
        },
        "amd-dependency": {
          args: [{ name: "path" }, { name: "name", optional: !0 }],
          kind: 1
        },
        "amd-module": {
          args: [{ name: "name" }],
          kind: 1
        },
        "ts-check": {
          kind: 2
        },
        "ts-nocheck": {
          kind: 2
        },
        jsx: {
          args: [{ name: "factory" }],
          kind: 4
        },
        jsxfrag: {
          args: [{ name: "factory" }],
          kind: 4
        },
        jsximportsource: {
          args: [{ name: "factory" }],
          kind: 4
        },
        jsxruntime: {
          args: [{ name: "factory" }],
          kind: 4
        }
      };
    }
  });
  function AR(e) {
    let t = 5381;
    for (let r = 0; r < e.length; r++)
      t = (t << 5) + t + e.charCodeAt(r);
    return t.toString();
  }
  function lOe() {
    Error.stackTraceLimit < 100 && (Error.stackTraceLimit = 100);
  }
  function WS(e, t) {
    return e.getModifiedTime(t) || ng;
  }
  function VH(e) {
    return {
      250: e.Low,
      500: e.Medium,
      2e3: e.High
    };
  }
  function cOe(e) {
    if (!e.getEnvironmentVariable)
      return;
    const t = o("TSC_WATCH_POLLINGINTERVAL", gM);
    IR = s("TSC_WATCH_POLLINGCHUNKSIZE", LR) || IR, kR = s("TSC_WATCH_UNCHANGEDPOLLTHRESHOLDS", LR) || kR;
    function r(c, f) {
      return e.getEnvironmentVariable(`${c}_${f.toUpperCase()}`);
    }
    function i(c) {
      let f;
      return d("Low"), d("Medium"), d("High"), f;
      function d(y) {
        const h = r(c, y);
        h && ((f || (f = {}))[y] = Number(h));
      }
    }
    function o(c, f) {
      const d = i(c);
      if (d)
        return y("Low"), y("Medium"), y("High"), !0;
      return !1;
      function y(h) {
        f[h] = d[h] || f[h];
      }
    }
    function s(c, f) {
      const d = i(c);
      return (t || d) && VH(d ? { ...f, ...d } : f);
    }
  }
  function ple(e, t, r, i, o) {
    let s = r;
    for (let f = t.length; i && f; c(), f--) {
      const d = t[r];
      if (d) {
        if (d.isClosed) {
          t[r] = void 0;
          continue;
        }
      } else
        continue;
      i--;
      const y = _Oe(d, WS(e, d.fileName));
      if (d.isClosed) {
        t[r] = void 0;
        continue;
      }
      o == null || o(d, r, y), t[r] && (s < r && (t[s] = d, t[r] = void 0), s++);
    }
    return r;
    function c() {
      r++, r === t.length && (s < r && (t.length = s), r = 0, s = 0);
    }
  }
  function uOe(e) {
    const t = [], r = [], i = f(250), o = f(500), s = f(2e3);
    return c;
    function c(k, G, V) {
      const H = {
        fileName: k,
        callback: G,
        unchangedPolls: 0,
        mtime: WS(e, k)
      };
      return t.push(H), A(H, V), {
        close: () => {
          H.isClosed = !0, hR(t, H);
        }
      };
    }
    function f(k) {
      const G = [];
      return G.pollingInterval = k, G.pollIndex = 0, G.pollScheduled = !1, G;
    }
    function d(k) {
      k.pollIndex = h(k, k.pollingInterval, k.pollIndex, IR[k.pollingInterval]), k.length ? O(k.pollingInterval) : (D.assert(k.pollIndex === 0), k.pollScheduled = !1);
    }
    function y(k) {
      h(r, 250, 0, r.length), d(k), !k.pollScheduled && r.length && O(250);
    }
    function h(k, G, V, H) {
      return ple(e, k, V, H, te);
      function te(X, Y, P) {
        P ? (X.unchangedPolls = 0, k !== r && (k[Y] = void 0, L(X))) : X.unchangedPolls !== kR[G] ? X.unchangedPolls++ : k === r ? (X.unchangedPolls = 1, k[Y] = void 0, A(X, 250)) : G !== 2e3 && (X.unchangedPolls++, k[Y] = void 0, A(X, G === 250 ? 500 : 2e3));
      }
    }
    function E(k) {
      switch (k) {
        case 250:
          return i;
        case 500:
          return o;
        case 2e3:
          return s;
      }
    }
    function A(k, G) {
      E(G).push(k), I(G);
    }
    function L(k) {
      r.push(k), I(250);
    }
    function I(k) {
      E(k).pollScheduled || O(k);
    }
    function O(k) {
      E(k).pollScheduled = e.setTimeout(k === 250 ? y : d, k, E(k));
    }
  }
  function dOe(e, t) {
    const r = f_(), i = /* @__PURE__ */ new Map(), o = ru(t);
    return s;
    function s(f, d, y, h) {
      const E = o(f);
      r.add(E, d);
      const A = mi(E) || ".", L = i.get(A) || c(mi(f) || ".", A, h);
      return L.referenceCount++, {
        close: () => {
          L.referenceCount === 1 ? (L.close(), i.delete(A)) : L.referenceCount--, r.remove(E, d);
        }
      };
    }
    function c(f, d, y) {
      const h = e(f, 1, (E, A, L) => {
        if (!Ha(A))
          return;
        const I = Pa(A, f), O = I && r.get(o(I));
        if (O)
          for (const k of O)
            k(I, 1, L);
      }, !1, 500, y);
      return h.referenceCount = 0, i.set(d, h), h;
    }
  }
  function fOe(e) {
    const t = [];
    let r = 0, i;
    return o;
    function o(f, d) {
      const y = {
        fileName: f,
        callback: d,
        mtime: WS(e, f)
      };
      return t.push(y), c(), {
        close: () => {
          y.isClosed = !0, hR(t, y);
        }
      };
    }
    function s() {
      i = void 0, r = ple(e, t, r, IR[250]), c();
    }
    function c() {
      !t.length || i || (i = e.setTimeout(s, 2e3));
    }
  }
  function mle(e, t, r, i, o) {
    const c = ru(t)(r), f = e.get(c);
    return f ? f.callbacks.push(i) : e.set(c, {
      watcher: o((d, y, h) => {
        var E;
        return (E = e.get(c)) == null ? void 0 : E.callbacks.slice().forEach((A) => A(d, y, h));
      }),
      callbacks: [i]
    }), {
      close: () => {
        const d = e.get(c);
        d && (!z4(d.callbacks, i) || d.callbacks.length || (e.delete(c), Km(d)));
      }
    };
  }
  function _Oe(e, t) {
    const r = e.mtime.getTime(), i = t.getTime();
    return r !== i ? (e.mtime = t, e.callback(e.fileName, hle(r, i), t), !0) : !1;
  }
  function hle(e, t) {
    return e === 0 ? 0 : t === 0 ? 2 : 1;
  }
  function CR(e) {
    return HH(e);
  }
  function gle(e) {
    HH = e;
  }
  function pOe({
    watchDirectory: e,
    useCaseSensitiveFileNames: t,
    getCurrentDirectory: r,
    getAccessibleSortedChildDirectories: i,
    fileSystemEntryExists: o,
    realpath: s,
    setTimeout: c,
    clearTimeout: f
  }) {
    const d = /* @__PURE__ */ new Map(), y = f_(), h = /* @__PURE__ */ new Map();
    let E;
    const A = W4(!t), L = ru(t);
    return (P, de, re, ye) => re ? I(P, ye, de) : e(P, de, re, ye);
    function I(P, de, re) {
      const ye = L(P);
      let ae = d.get(ye);
      ae ? ae.refCount++ : (ae = {
        watcher: e(P, (ce) => {
          X(ce, de) || (de != null && de.synchronousWatchDirectory ? (O(ye, ce), te(P, ye, de)) : k(P, ye, ce, de));
        }, !1, de),
        refCount: 1,
        childWatches: rt
      }, d.set(ye, ae), te(P, ye, de));
      const W = re && { dirName: P, callback: re };
      return W && y.add(ye, W), {
        dirName: P,
        close: () => {
          const ce = D.checkDefined(d.get(ye));
          W && y.remove(ye, W), ce.refCount--, !ce.refCount && (d.delete(ye), Km(ce), ce.childWatches.forEach(Um));
        }
      };
    }
    function O(P, de, re) {
      let ye, ae;
      Ha(de) ? ye = de : ae = de, y.forEach((W, ce) => {
        if (!(ae && ae.get(ce) === !0) && (ce === P || xa(P, ce) && P[ce.length] === Ms))
          if (ae)
            if (re) {
              const me = ae.get(ce);
              me ? me.push(...re) : ae.set(ce, re.slice());
            } else
              ae.set(ce, !0);
          else
            W.forEach(({ callback: me }) => me(ye));
      });
    }
    function k(P, de, re, ye) {
      const ae = d.get(de);
      if (ae && o(P, 1)) {
        G(P, de, re, ye);
        return;
      }
      O(de, re), H(ae);
    }
    function G(P, de, re, ye) {
      const ae = h.get(de);
      ae ? ae.fileNames.push(re) : h.set(de, { dirName: P, options: ye, fileNames: [re] }), E && (f(E), E = void 0), E = c(V, 1e3);
    }
    function V() {
      E = void 0, CR(`sysLog:: onTimerToUpdateChildWatches:: ${h.size}`);
      const P = il(), de = /* @__PURE__ */ new Map();
      for (; !E && h.size; ) {
        const ye = h.entries().next();
        D.assert(!ye.done);
        const { value: [ae, { dirName: W, options: ce, fileNames: me }] } = ye;
        h.delete(ae);
        const ve = te(W, ae, ce);
        O(ae, de, ve ? void 0 : me);
      }
      CR(`sysLog:: invokingWatchers:: Elapsed:: ${il() - P}ms:: ${h.size}`), y.forEach((ye, ae) => {
        const W = de.get(ae);
        W && ye.forEach(({ callback: ce, dirName: me }) => {
          Va(W) ? W.forEach(ce) : ce(me);
        });
      });
      const re = il() - P;
      CR(`sysLog:: Elapsed:: ${re}ms:: onTimerToUpdateChildWatches:: ${h.size} ${E}`);
    }
    function H(P) {
      if (!P)
        return;
      const de = P.childWatches;
      P.childWatches = rt;
      for (const re of de)
        re.close(), H(d.get(L(re.dirName)));
    }
    function te(P, de, re) {
      const ye = d.get(de);
      if (!ye)
        return !1;
      let ae;
      const W = jse(o(P, 1) ? ia(i(P), (ve) => {
        const Te = Pa(ve, P);
        return !X(Te, re) && A(Te, Jo(s(Te))) === 0 ? Te : void 0;
      }) : rt, ye.childWatches, (ve, Te) => A(ve, Te.dirName), ce, Um, me);
      return ye.childWatches = ae || rt, W;
      function ce(ve) {
        const Te = I(ve, re);
        me(Te);
      }
      function me(ve) {
        (ae || (ae = [])).push(ve);
      }
    }
    function X(P, de) {
      return kt(wR, (re) => Y(P, re)) || yle(P, de, t, r);
    }
    function Y(P, de) {
      return pu(P, de) ? !0 : t ? !1 : pu(L(P), de);
    }
  }
  function mOe(e) {
    return (t, r, i) => e(r === 1 ? "change" : "rename", "", i);
  }
  function hOe(e, t, r) {
    return (i, o, s) => {
      i === "rename" ? (s || (s = r(e) || ng), t(e, s !== ng ? 0 : 2, s)) : t(e, 1, s);
    };
  }
  function yle(e, t, r, i) {
    return ((t == null ? void 0 : t.excludeDirectories) || (t == null ? void 0 : t.excludeFiles)) && (p5(e, t == null ? void 0 : t.excludeFiles, r, i()) || p5(e, t == null ? void 0 : t.excludeDirectories, r, i()));
  }
  function vle(e, t, r, i, o) {
    return (s, c) => {
      if (s === "rename") {
        const f = c ? Jo(Bi(e, c)) : e;
        (!c || !yle(f, r, i, o)) && t(f);
      }
    };
  }
  function ble({
    pollingWatchFileWorker: e,
    getModifiedTime: t,
    setTimeout: r,
    clearTimeout: i,
    fsWatchWorker: o,
    fileSystemEntryExists: s,
    useCaseSensitiveFileNames: c,
    getCurrentDirectory: f,
    fsSupportsRecursiveFsWatch: d,
    getAccessibleSortedChildDirectories: y,
    realpath: h,
    tscWatchFile: E,
    useNonPollingWatchers: A,
    tscWatchDirectory: L,
    inodeWatching: I,
    sysLog: O
  }) {
    const k = /* @__PURE__ */ new Map(), G = /* @__PURE__ */ new Map(), V = /* @__PURE__ */ new Map();
    let H, te, X, Y, P = !1;
    return {
      watchFile: de,
      watchDirectory: ce
    };
    function de(Ve, Be, qe, Oe) {
      Oe = ae(Oe, A);
      const Me = D.checkDefined(Oe.watchFile);
      switch (Me) {
        case 0:
          return Te(Ve, Be, 250, void 0);
        case 1:
          return Te(Ve, Be, qe, void 0);
        case 2:
          return re()(Ve, Be, qe, void 0);
        case 3:
          return ye()(Ve, Be, void 0, void 0);
        case 4:
          return ee(Ve, 0, hOe(Ve, Be, t), !1, qe, N8(Oe));
        case 5:
          return X || (X = dOe(ee, c)), X(Ve, Be, qe, N8(Oe));
        default:
          D.assertNever(Me);
      }
    }
    function re() {
      return H || (H = uOe({ getModifiedTime: t, setTimeout: r }));
    }
    function ye() {
      return te || (te = fOe({ getModifiedTime: t, setTimeout: r }));
    }
    function ae(Ve, Be) {
      if (Ve && Ve.watchFile !== void 0)
        return Ve;
      switch (E) {
        case "PriorityPollingInterval":
          return { watchFile: 1 };
        case "DynamicPriorityPolling":
          return { watchFile: 2 };
        case "UseFsEvents":
          return W(4, 1, Ve);
        case "UseFsEventsWithFallbackDynamicPolling":
          return W(4, 2, Ve);
        case "UseFsEventsOnParentDirectory":
          Be = !0;
        default:
          return Be ? W(5, 1, Ve) : { watchFile: 4 };
      }
    }
    function W(Ve, Be, qe) {
      const Oe = qe == null ? void 0 : qe.fallbackPolling;
      return {
        watchFile: Ve,
        fallbackPolling: Oe === void 0 ? Be : Oe
      };
    }
    function ce(Ve, Be, qe, Oe) {
      return d ? ee(Ve, 1, vle(Ve, Be, Oe, c, f), qe, 500, N8(Oe)) : (Y || (Y = pOe({
        useCaseSensitiveFileNames: c,
        getCurrentDirectory: f,
        fileSystemEntryExists: s,
        getAccessibleSortedChildDirectories: y,
        watchDirectory: me,
        realpath: h,
        setTimeout: r,
        clearTimeout: i
      })), Y(Ve, Be, qe, Oe));
    }
    function me(Ve, Be, qe, Oe) {
      D.assert(!qe);
      const Me = ve(Oe), Ye = D.checkDefined(Me.watchDirectory);
      switch (Ye) {
        case 1:
          return Te(Ve, () => Be(Ve), 500, void 0);
        case 2:
          return re()(Ve, () => Be(Ve), 500, void 0);
        case 3:
          return ye()(Ve, () => Be(Ve), void 0, void 0);
        case 0:
          return ee(Ve, 1, vle(Ve, Be, Oe, c, f), qe, 500, N8(Me));
        default:
          D.assertNever(Ye);
      }
    }
    function ve(Ve) {
      if (Ve && Ve.watchDirectory !== void 0)
        return Ve;
      switch (L) {
        case "RecursiveDirectoryUsingFsWatchFile":
          return { watchDirectory: 1 };
        case "RecursiveDirectoryUsingDynamicPriorityPolling":
          return { watchDirectory: 2 };
        default:
          const Be = Ve == null ? void 0 : Ve.fallbackPolling;
          return {
            watchDirectory: 0,
            fallbackPolling: Be !== void 0 ? Be : void 0
          };
      }
    }
    function Te(Ve, Be, qe, Oe) {
      return mle(k, c, Ve, Be, (Me) => e(Ve, Me, qe, Oe));
    }
    function ee(Ve, Be, qe, Oe, Me, Ye) {
      return mle(Oe ? V : G, c, Ve, qe, (We) => Qe(Ve, Be, We, Oe, Me, Ye));
    }
    function Qe(Ve, Be, qe, Oe, Me, Ye) {
      let We, Fe;
      I && (We = Ve.substring(Ve.lastIndexOf(Ms)), Fe = We.slice(Ms.length));
      let st = s(Ve, Be) ? Et() : at();
      return {
        close: () => {
          st && (st.close(), st = void 0);
        }
      };
      function Ct(sn) {
        st && (O(`sysLog:: ${Ve}:: Changing watcher to ${sn === Et ? "Present" : "Missing"}FileSystemEntryWatcher`), st.close(), st = sn());
      }
      function Et() {
        if (P)
          return O(`sysLog:: ${Ve}:: Defaulting to watchFile`), tt();
        try {
          const sn = o(Ve, Oe, I ? Vt : qe);
          return sn.on("error", () => {
            qe("rename", ""), Ct(at);
          }), sn;
        } catch (sn) {
          return P || (P = sn.code === "ENOSPC"), O(`sysLog:: ${Ve}:: Changing to watchFile`), tt();
        }
      }
      function Vt(sn, Qt) {
        let On;
        if (Qt && ic(Qt, "~") && (On = Qt, Qt = Qt.slice(0, Qt.length - 1)), sn === "rename" && (!Qt || Qt === Fe || ic(Qt, We))) {
          const jn = t(Ve) || ng;
          On && qe(sn, On, jn), qe(sn, Qt, jn), I ? Ct(jn === ng ? at : Et) : jn === ng && Ct(at);
        } else
          On && qe(sn, On), qe(sn, Qt);
      }
      function tt() {
        return de(Ve, mOe(qe), Me, Ye);
      }
      function at() {
        return de(Ve, (sn, Qt, On) => {
          Qt === 0 && (On || (On = t(Ve) || ng), On !== ng && (qe("rename", "", On), Ct(Et)));
        }, Me, Ye);
      }
    }
  }
  function Ele(e) {
    const t = e.writeFile;
    e.writeFile = (r, i, o) => Uz(r, i, !!o, (s, c, f) => t.call(e, s, c, f), (s) => e.createDirectory(s), (s) => e.directoryExists(s));
  }
  function gOe(e) {
    $c = e;
  }
  var jH, gM, ng, LR, IR, kR, wR, HH, WH, $c, yOe = C({
    "src/compiler/sys.ts"() {
      Oa(), jH = /* @__PURE__ */ ((e) => (e[e.Created = 0] = "Created", e[e.Changed = 1] = "Changed", e[e.Deleted = 2] = "Deleted", e))(jH || {}), gM = /* @__PURE__ */ ((e) => (e[e.High = 2e3] = "High", e[e.Medium = 500] = "Medium", e[e.Low = 250] = "Low", e))(gM || {}), ng = /* @__PURE__ */ new Date(0), LR = { Low: 32, Medium: 64, High: 256 }, IR = VH(LR), kR = VH(LR), wR = ["/node_modules/.", "/.git", "/.#"], HH = so, WH = /* @__PURE__ */ ((e) => (e[e.File = 0] = "File", e[e.Directory = 1] = "Directory", e))(WH || {}), $c = (() => {
        const e = "\uFEFF";
        function t() {
          const i = /^native |^\([^)]+\)$|^(internal[\\/]|[a-zA-Z0-9_\s]+(\.js)?$)/, o = Xb("fs"), s = Xb("path"), c = Xb("os");
          let f;
          try {
            f = Xb("crypto");
          } catch {
            f = void 0;
          }
          let d, y = "./profile.cpuprofile";
          const h = Xb("buffer").Buffer, E = process.platform === "linux" || process.platform === "darwin", A = c.platform(), L = ye(), I = o.realpathSync.native ? process.platform === "win32" ? Me : o.realpathSync.native : o.realpathSync, O = __filename.endsWith("sys.js") ? s.join(s.dirname(__dirname), "__fake__.js") : __filename, k = process.platform === "win32" || process.platform === "darwin", G = Ed(() => process.cwd()), { watchFile: V, watchDirectory: H } = ble({
            pollingWatchFileWorker: W,
            getModifiedTime: We,
            setTimeout,
            clearTimeout,
            fsWatchWorker: ce,
            useCaseSensitiveFileNames: L,
            getCurrentDirectory: G,
            fileSystemEntryExists: Ve,
            fsSupportsRecursiveFsWatch: k,
            getAccessibleSortedChildDirectories: (Et) => ee(Et).directories,
            realpath: Ye,
            tscWatchFile: process.env.TSC_WATCHFILE,
            useNonPollingWatchers: process.env.TSC_NONPOLLING_WATCHER,
            tscWatchDirectory: process.env.TSC_WATCHDIRECTORY,
            inodeWatching: E,
            sysLog: CR
          }), te = {
            args: process.argv.slice(2),
            newLine: c.EOL,
            useCaseSensitiveFileNames: L,
            write(Et) {
              process.stdout.write(Et);
            },
            getWidthOfTerminal() {
              return process.stdout.columns;
            },
            writeOutputIsTTY() {
              return process.stdout.isTTY;
            },
            readFile: ve,
            writeFile: Te,
            watchFile: V,
            watchDirectory: H,
            resolvePath: (Et) => s.resolve(Et),
            fileExists: Be,
            directoryExists: qe,
            createDirectory(Et) {
              if (!te.directoryExists(Et))
                try {
                  o.mkdirSync(Et);
                } catch (Vt) {
                  if (Vt.code !== "EEXIST")
                    throw Vt;
                }
            },
            getExecutingFilePath() {
              return O;
            },
            getCurrentDirectory: G,
            getDirectories: Oe,
            getEnvironmentVariable(Et) {
              return process.env[Et] || "";
            },
            readDirectory: Qe,
            getModifiedTime: We,
            setModifiedTime: Fe,
            deleteFile: st,
            createHash: f ? Ct : AR,
            createSHA256Hash: f ? Ct : void 0,
            getMemoryUsage() {
              return global.gc && global.gc(), process.memoryUsage().heapUsed;
            },
            getFileSize(Et) {
              try {
                const Vt = X(Et);
                if (Vt != null && Vt.isFile())
                  return Vt.size;
              } catch {
              }
              return 0;
            },
            exit(Et) {
              de(() => process.exit(Et));
            },
            enableCPUProfiler: Y,
            disableCPUProfiler: de,
            cpuProfilingEnabled: () => !!d || jr(process.execArgv, "--cpu-prof") || jr(process.execArgv, "--prof"),
            realpath: Ye,
            debugMode: !!process.env.NODE_INSPECTOR_IPC || !!process.env.VSCODE_INSPECTOR_OPTIONS || kt(process.execArgv, (Et) => /^--(inspect|debug)(-brk)?(=\d+)?$/i.test(Et)),
            tryEnableSourceMapsForHost() {
              try {
                Xb("source-map-support").install();
              } catch {
              }
            },
            setTimeout,
            clearTimeout,
            clearScreen: () => {
              process.stdout.write("\x1Bc");
            },
            setBlocking: () => {
              process.stdout && process.stdout._handle && process.stdout._handle.setBlocking && process.stdout._handle.setBlocking(!0);
            },
            bufferFrom: re,
            base64decode: (Et) => re(Et, "base64").toString("utf8"),
            base64encode: (Et) => re(Et).toString("base64"),
            require: (Et, Vt) => {
              try {
                const tt = Zpe(Vt, Et, te);
                return { module: Xb(tt), modulePath: tt, error: void 0 };
              } catch (tt) {
                return { module: void 0, modulePath: void 0, error: tt };
              }
            }
          };
          return te;
          function X(Et) {
            return o.statSync(Et, { throwIfNoEntry: !1 });
          }
          function Y(Et, Vt) {
            if (d)
              return Vt(), !1;
            const tt = Xb("inspector");
            if (!tt || !tt.Session)
              return Vt(), !1;
            const at = new tt.Session();
            return at.connect(), at.post("Profiler.enable", () => {
              at.post("Profiler.start", () => {
                d = at, y = Et, Vt();
              });
            }), !0;
          }
          function P(Et) {
            let Vt = 0;
            const tt = /* @__PURE__ */ new Map(), at = Qc(s.dirname(O)), sn = `file://${qp(at) === 1 ? "" : "/"}${at}`;
            for (const Qt of Et.nodes)
              if (Qt.callFrame.url) {
                const On = Qc(Qt.callFrame.url);
                Ev(sn, On, L) ? Qt.callFrame.url = zS(sn, On, sn, ru(L), !0) : i.test(On) || (Qt.callFrame.url = (tt.has(On) ? tt : tt.set(On, `external${Vt}.js`)).get(On), Vt++);
              }
            return Et;
          }
          function de(Et) {
            if (d && d !== "stopping") {
              const Vt = d;
              return d.post("Profiler.stop", (tt, { profile: at }) => {
                var sn;
                if (!tt) {
                  try {
                    (sn = X(y)) != null && sn.isDirectory() && (y = s.join(y, `${(/* @__PURE__ */ new Date()).toISOString().replace(/:/g, "-")}+P${process.pid}.cpuprofile`));
                  } catch {
                  }
                  try {
                    o.mkdirSync(s.dirname(y), { recursive: !0 });
                  } catch {
                  }
                  o.writeFileSync(y, JSON.stringify(P(at)));
                }
                d = void 0, Vt.disconnect(), Et();
              }), d = "stopping", !0;
            } else
              return Et(), !1;
          }
          function re(Et, Vt) {
            return h.from && h.from !== Int8Array.from ? h.from(Et, Vt) : new h(Et, Vt);
          }
          function ye() {
            return A === "win32" || A === "win64" ? !1 : !Be(ae(__filename));
          }
          function ae(Et) {
            return Et.replace(/\w/g, (Vt) => {
              const tt = Vt.toUpperCase();
              return Vt === tt ? Vt.toLowerCase() : tt;
            });
          }
          function W(Et, Vt, tt) {
            o.watchFile(Et, { persistent: !0, interval: tt }, sn);
            let at;
            return {
              close: () => o.unwatchFile(Et, sn)
            };
            function sn(Qt, On) {
              const jn = +On.mtime == 0 || at === 2;
              if (+Qt.mtime == 0) {
                if (jn)
                  return;
                at = 2;
              } else if (jn)
                at = 0;
              else {
                if (+Qt.mtime == +On.mtime)
                  return;
                at = 1;
              }
              Vt(Et, at, Qt.mtime);
            }
          }
          function ce(Et, Vt, tt) {
            return o.watch(Et, k ? { persistent: !0, recursive: !!Vt } : { persistent: !0 }, tt);
          }
          function me(Et, Vt) {
            let tt;
            try {
              tt = o.readFileSync(Et);
            } catch {
              return;
            }
            let at = tt.length;
            if (at >= 2 && tt[0] === 254 && tt[1] === 255) {
              at &= -2;
              for (let sn = 0; sn < at; sn += 2) {
                const Qt = tt[sn];
                tt[sn] = tt[sn + 1], tt[sn + 1] = Qt;
              }
              return tt.toString("utf16le", 2);
            }
            return at >= 2 && tt[0] === 255 && tt[1] === 254 ? tt.toString("utf16le", 2) : at >= 3 && tt[0] === 239 && tt[1] === 187 && tt[2] === 191 ? tt.toString("utf8", 3) : tt.toString("utf8");
          }
          function ve(Et, Vt) {
            zp.logStartReadFile(Et);
            const tt = me(Et);
            return zp.logStopReadFile(), tt;
          }
          function Te(Et, Vt, tt) {
            zp.logEvent("WriteFile: " + Et), tt && (Vt = e + Vt);
            let at;
            try {
              at = o.openSync(Et, "w"), o.writeSync(at, Vt, void 0, "utf8");
            } finally {
              at !== void 0 && o.closeSync(at);
            }
          }
          function ee(Et) {
            zp.logEvent("ReadDir: " + (Et || "."));
            try {
              const Vt = o.readdirSync(Et || ".", { withFileTypes: !0 }), tt = [], at = [];
              for (const sn of Vt) {
                const Qt = typeof sn == "string" ? sn : sn.name;
                if (Qt === "." || Qt === "..")
                  continue;
                let On;
                if (typeof sn == "string" || sn.isSymbolicLink()) {
                  const jn = Bi(Et, Qt);
                  try {
                    if (On = X(jn), !On)
                      continue;
                  } catch {
                    continue;
                  }
                } else
                  On = sn;
                On.isFile() ? tt.push(Qt) : On.isDirectory() && at.push(Qt);
              }
              return tt.sort(), at.sort(), { files: tt, directories: at };
            } catch {
              return o7;
            }
          }
          function Qe(Et, Vt, tt, at, sn) {
            return mq(Et, Vt, tt, at, L, process.cwd(), sn, ee, Ye);
          }
          function Ve(Et, Vt) {
            const tt = Error.stackTraceLimit;
            Error.stackTraceLimit = 0;
            try {
              const at = X(Et);
              if (!at)
                return !1;
              switch (Vt) {
                case 0:
                  return at.isFile();
                case 1:
                  return at.isDirectory();
                default:
                  return !1;
              }
            } catch {
              return !1;
            } finally {
              Error.stackTraceLimit = tt;
            }
          }
          function Be(Et) {
            return Ve(Et, 0);
          }
          function qe(Et) {
            return Ve(Et, 1);
          }
          function Oe(Et) {
            return ee(Et).directories.slice();
          }
          function Me(Et) {
            return Et.length < 260 ? o.realpathSync.native(Et) : o.realpathSync(Et);
          }
          function Ye(Et) {
            try {
              return I(Et);
            } catch {
              return Et;
            }
          }
          function We(Et) {
            var Vt;
            const tt = Error.stackTraceLimit;
            Error.stackTraceLimit = 0;
            try {
              return (Vt = X(Et)) == null ? void 0 : Vt.mtime;
            } catch {
              return;
            } finally {
              Error.stackTraceLimit = tt;
            }
          }
          function Fe(Et, Vt) {
            try {
              o.utimesSync(Et, Vt, Vt);
            } catch {
              return;
            }
          }
          function st(Et) {
            try {
              return o.unlinkSync(Et);
            } catch {
              return;
            }
          }
          function Ct(Et) {
            const Vt = f.createHash("sha256");
            return Vt.update(Et), Vt.digest("hex");
          }
        }
        let r;
        return Rj() && (r = t()), r && Ele(r), r;
      })(), $c && $c.getEnvironmentVariable && (cOe($c), D.setAssertionLevel(/^development$/i.test($c.getEnvironmentVariable("NODE_ENV")) ? 1 : 0)), $c && $c.debugMode && (D.isDebugging = !0);
    }
  });
  function zH(e) {
    return e === 47 || e === 92;
  }
  function Tle(e) {
    return DR(e) < 0;
  }
  function km(e) {
    return DR(e) > 0;
  }
  function vOe(e) {
    const t = DR(e);
    return t > 0 && t === e.length;
  }
  function fI(e) {
    return DR(e) !== 0;
  }
  function Sf(e) {
    return /^\.\.?($|[\\/])/.test(e);
  }
  function qH(e) {
    return !fI(e) && !Sf(e);
  }
  function bA(e) {
    return pu(mu(e), ".");
  }
  function cc(e, t) {
    return e.length > t.length && ic(e, t);
  }
  function Tc(e, t) {
    for (const r of t)
      if (cc(e, r))
        return !0;
    return !1;
  }
  function vv(e) {
    return e.length > 0 && zH(e.charCodeAt(e.length - 1));
  }
  function Sle(e) {
    return e >= 97 && e <= 122 || e >= 65 && e <= 90;
  }
  function bOe(e, t) {
    const r = e.charCodeAt(t);
    if (r === 58)
      return t + 1;
    if (r === 37 && e.charCodeAt(t + 1) === 51) {
      const i = e.charCodeAt(t + 2);
      if (i === 97 || i === 65)
        return t + 3;
    }
    return -1;
  }
  function DR(e) {
    if (!e)
      return 0;
    const t = e.charCodeAt(0);
    if (t === 47 || t === 92) {
      if (e.charCodeAt(1) !== t)
        return 1;
      const i = e.indexOf(t === 47 ? Ms : OR, 2);
      return i < 0 ? e.length : i + 1;
    }
    if (Sle(t) && e.charCodeAt(1) === 58) {
      const i = e.charCodeAt(2);
      if (i === 47 || i === 92)
        return 3;
      if (e.length === 2)
        return 2;
    }
    const r = e.indexOf(QH);
    if (r !== -1) {
      const i = r + QH.length, o = e.indexOf(Ms, i);
      if (o !== -1) {
        const s = e.slice(0, r), c = e.slice(i, o);
        if (s === "file" && (c === "" || c === "localhost") && Sle(e.charCodeAt(o + 1))) {
          const f = bOe(e, o + 2);
          if (f !== -1) {
            if (e.charCodeAt(f) === 47)
              return ~(f + 1);
            if (f === e.length)
              return ~f;
          }
        }
        return ~(o + 1);
      }
      return ~e.length;
    }
    return 0;
  }
  function qp(e) {
    const t = DR(e);
    return t < 0 ? ~t : t;
  }
  function mi(e) {
    e = Qc(e);
    const t = qp(e);
    return t === e.length ? e : (e = $E(e), e.slice(0, Math.max(t, e.lastIndexOf(Ms))));
  }
  function mu(e, t, r) {
    if (e = Qc(e), qp(e) === e.length)
      return "";
    e = $E(e);
    const o = e.slice(Math.max(qp(e), e.lastIndexOf(Ms) + 1)), s = t !== void 0 && r !== void 0 ? yM(o, t, r) : void 0;
    return s ? o.slice(0, o.length - s.length) : o;
  }
  function xle(e, t, r) {
    if (xa(t, ".") || (t = "." + t), e.length >= t.length && e.charCodeAt(e.length - t.length) === 46) {
      const i = e.slice(e.length - t.length);
      if (r(i, t))
        return i;
    }
  }
  function EOe(e, t, r) {
    if (typeof t == "string")
      return xle(e, t, r) || "";
    for (const i of t) {
      const o = xle(e, i, r);
      if (o)
        return o;
    }
    return "";
  }
  function yM(e, t, r) {
    if (t)
      return EOe($E(e), t, r ? FS : BS);
    const i = mu(e), o = i.lastIndexOf(".");
    return o >= 0 ? i.substring(o) : "";
  }
  function TOe(e, t) {
    const r = e.substring(0, t), i = e.substring(t).split(Ms);
    return i.length && !tl(i) && i.pop(), [r, ...i];
  }
  function ld(e, t = "") {
    return e = Bi(t, e), TOe(e, qp(e));
  }
  function l1(e) {
    return e.length === 0 ? "" : (e[0] && Ou(e[0])) + e.slice(1).join(Ms);
  }
  function Qc(e) {
    return e.indexOf("\\") !== -1 ? e.replace(Ale, Ms) : e;
  }
  function YE(e) {
    if (!kt(e))
      return [];
    const t = [e[0]];
    for (let r = 1; r < e.length; r++) {
      const i = e[r];
      if (i && i !== ".") {
        if (i === "..") {
          if (t.length > 1) {
            if (t[t.length - 1] !== "..") {
              t.pop();
              continue;
            }
          } else if (t[0])
            continue;
        }
        t.push(i);
      }
    }
    return t;
  }
  function Bi(e, ...t) {
    e && (e = Qc(e));
    for (let r of t)
      r && (r = Qc(r), !e || qp(r) !== 0 ? e = r : e = Ou(e) + r);
    return e;
  }
  function bv(e, ...t) {
    return Jo(kt(t) ? Bi(e, ...t) : Qc(e));
  }
  function RR(e, t) {
    return YE(ld(e, t));
  }
  function Pa(e, t) {
    return l1(RR(e, t));
  }
  function Jo(e) {
    if (e = Qc(e), !PR.test(e))
      return e;
    const t = e.replace(/\/\.\//g, "/").replace(/^\.\//, "");
    if (t !== e && (e = t, !PR.test(e)))
      return e;
    const r = l1(YE(ld(e)));
    return r && vv(e) ? Ou(r) : r;
  }
  function SOe(e) {
    return e.length === 0 ? "" : e.slice(1).join(Ms);
  }
  function JH(e, t) {
    return SOe(RR(e, t));
  }
  function zs(e, t, r) {
    const i = km(e) ? Jo(e) : Pa(e, t);
    return r(i);
  }
  function $E(e) {
    return vv(e) ? e.substr(0, e.length - 1) : e;
  }
  function Ou(e) {
    return vv(e) ? e : e + Ms;
  }
  function c1(e) {
    return !fI(e) && !Sf(e) ? "./" + e : e;
  }
  function KH(e, t, r, i) {
    const o = r !== void 0 && i !== void 0 ? yM(e, r, i) : yM(e);
    return o ? e.slice(0, e.length - o.length) + (xa(t, ".") ? t : "." + t) : e;
  }
  function XH(e, t, r) {
    if (e === t)
      return 0;
    if (e === void 0)
      return -1;
    if (t === void 0)
      return 1;
    const i = e.substring(0, qp(e)), o = t.substring(0, qp(t)), s = H4(i, o);
    if (s !== 0)
      return s;
    const c = e.substring(i.length), f = t.substring(o.length);
    if (!PR.test(c) && !PR.test(f))
      return r(c, f);
    const d = YE(ld(e)), y = YE(ld(t)), h = Math.min(d.length, y.length);
    for (let E = 1; E < h; E++) {
      const A = r(d[E], y[E]);
      if (A !== 0)
        return A;
    }
    return Ws(d.length, y.length);
  }
  function xOe(e, t) {
    return XH(e, t, Nu);
  }
  function AOe(e, t) {
    return XH(e, t, H4);
  }
  function QE(e, t, r, i) {
    return typeof r == "string" ? (e = Bi(r, e), t = Bi(r, t)) : typeof r == "boolean" && (i = r), XH(e, t, W4(i));
  }
  function Ev(e, t, r, i) {
    if (typeof r == "string" ? (e = Bi(r, e), t = Bi(r, t)) : typeof r == "boolean" && (i = r), e === void 0 || t === void 0)
      return !1;
    if (e === t)
      return !0;
    const o = YE(ld(e)), s = YE(ld(t));
    if (s.length < o.length)
      return !1;
    const c = i ? FS : BS;
    for (let f = 0; f < o.length; f++)
      if (!(f === 0 ? FS : c)(o[f], s[f]))
        return !1;
    return !0;
  }
  function YH(e, t, r) {
    const i = r(e), o = r(t);
    return xa(i, o + "/") || xa(i, o + "\\");
  }
  function $H(e, t, r, i) {
    const o = YE(ld(e)), s = YE(ld(t));
    let c;
    for (c = 0; c < o.length && c < s.length; c++) {
      const y = i(o[c]), h = i(s[c]);
      if (!(c === 0 ? FS : r)(y, h))
        break;
    }
    if (c === 0)
      return s;
    const f = s.slice(c), d = [];
    for (; c < o.length; c++)
      d.push("..");
    return ["", ...d, ...f];
  }
  function wm(e, t, r) {
    D.assert(qp(e) > 0 == qp(t) > 0, "Paths must either both be absolute or both be relative");
    const s = $H(e, t, (typeof r == "boolean" ? r : !1) ? FS : BS, typeof r == "function" ? r : ml);
    return l1(s);
  }
  function _I(e, t, r) {
    return km(e) ? zS(t, e, t, r, !1) : e;
  }
  function NR(e, t, r) {
    return c1(wm(mi(e), t, r));
  }
  function zS(e, t, r, i, o) {
    const s = $H(bv(r, e), bv(r, t), BS, i), c = s[0];
    if (o && km(c)) {
      const f = c.charAt(0) === Ms ? "file://" : "file:///";
      s[0] = f + c;
    }
    return l1(s);
  }
  function rg(e, t) {
    for (; ; ) {
      const r = t(e);
      if (r !== void 0)
        return r;
      const i = mi(e);
      if (i === e)
        return;
      e = i;
    }
  }
  function vM(e) {
    return ic(e, "/node_modules");
  }
  var Ms, OR, QH, Ale, PR, COe = C({
    "src/compiler/path.ts"() {
      Oa(), Ms = "/", OR = "\\", QH = "://", Ale = /\\/g, PR = /(?:\/\/)|(?:^|\/)\.\.?(?:$|\/)/;
    }
  });
  function T(e, t, r, i, o, s, c) {
    return { code: e, category: t, key: r, message: i, reportsUnnecessary: o, elidedInCompatabilityPyramid: s, reportsDeprecated: c };
  }
  var _, LOe = C({
    "src/compiler/diagnosticInformationMap.generated.ts"() {
      _le(), _ = {
        Unterminated_string_literal: T(1002, 1, "Unterminated_string_literal_1002", "Unterminated string literal."),
        Identifier_expected: T(1003, 1, "Identifier_expected_1003", "Identifier expected."),
        _0_expected: T(1005, 1, "_0_expected_1005", "'{0}' expected."),
        A_file_cannot_have_a_reference_to_itself: T(1006, 1, "A_file_cannot_have_a_reference_to_itself_1006", "A file cannot have a reference to itself."),
        The_parser_expected_to_find_a_1_to_match_the_0_token_here: T(1007, 1, "The_parser_expected_to_find_a_1_to_match_the_0_token_here_1007", "The parser expected to find a '{1}' to match the '{0}' token here."),
        Trailing_comma_not_allowed: T(1009, 1, "Trailing_comma_not_allowed_1009", "Trailing comma not allowed."),
        Asterisk_Slash_expected: T(1010, 1, "Asterisk_Slash_expected_1010", "'*/' expected."),
        An_element_access_expression_should_take_an_argument: T(1011, 1, "An_element_access_expression_should_take_an_argument_1011", "An element access expression should take an argument."),
        Unexpected_token: T(1012, 1, "Unexpected_token_1012", "Unexpected token."),
        A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma: T(1013, 1, "A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma_1013", "A rest parameter or binding pattern may not have a trailing comma."),
        A_rest_parameter_must_be_last_in_a_parameter_list: T(1014, 1, "A_rest_parameter_must_be_last_in_a_parameter_list_1014", "A rest parameter must be last in a parameter list."),
        Parameter_cannot_have_question_mark_and_initializer: T(1015, 1, "Parameter_cannot_have_question_mark_and_initializer_1015", "Parameter cannot have question mark and initializer."),
        A_required_parameter_cannot_follow_an_optional_parameter: T(1016, 1, "A_required_parameter_cannot_follow_an_optional_parameter_1016", "A required parameter cannot follow an optional parameter."),
        An_index_signature_cannot_have_a_rest_parameter: T(1017, 1, "An_index_signature_cannot_have_a_rest_parameter_1017", "An index signature cannot have a rest parameter."),
        An_index_signature_parameter_cannot_have_an_accessibility_modifier: T(1018, 1, "An_index_signature_parameter_cannot_have_an_accessibility_modifier_1018", "An index signature parameter cannot have an accessibility modifier."),
        An_index_signature_parameter_cannot_have_a_question_mark: T(1019, 1, "An_index_signature_parameter_cannot_have_a_question_mark_1019", "An index signature parameter cannot have a question mark."),
        An_index_signature_parameter_cannot_have_an_initializer: T(1020, 1, "An_index_signature_parameter_cannot_have_an_initializer_1020", "An index signature parameter cannot have an initializer."),
        An_index_signature_must_have_a_type_annotation: T(1021, 1, "An_index_signature_must_have_a_type_annotation_1021", "An index signature must have a type annotation."),
        An_index_signature_parameter_must_have_a_type_annotation: T(1022, 1, "An_index_signature_parameter_must_have_a_type_annotation_1022", "An index signature parameter must have a type annotation."),
        readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature: T(1024, 1, "readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature_1024", "'readonly' modifier can only appear on a property declaration or index signature."),
        An_index_signature_cannot_have_a_trailing_comma: T(1025, 1, "An_index_signature_cannot_have_a_trailing_comma_1025", "An index signature cannot have a trailing comma."),
        Accessibility_modifier_already_seen: T(1028, 1, "Accessibility_modifier_already_seen_1028", "Accessibility modifier already seen."),
        _0_modifier_must_precede_1_modifier: T(1029, 1, "_0_modifier_must_precede_1_modifier_1029", "'{0}' modifier must precede '{1}' modifier."),
        _0_modifier_already_seen: T(1030, 1, "_0_modifier_already_seen_1030", "'{0}' modifier already seen."),
        _0_modifier_cannot_appear_on_class_elements_of_this_kind: T(1031, 1, "_0_modifier_cannot_appear_on_class_elements_of_this_kind_1031", "'{0}' modifier cannot appear on class elements of this kind."),
        super_must_be_followed_by_an_argument_list_or_member_access: T(1034, 1, "super_must_be_followed_by_an_argument_list_or_member_access_1034", "'super' must be followed by an argument list or member access."),
        Only_ambient_modules_can_use_quoted_names: T(1035, 1, "Only_ambient_modules_can_use_quoted_names_1035", "Only ambient modules can use quoted names."),
        Statements_are_not_allowed_in_ambient_contexts: T(1036, 1, "Statements_are_not_allowed_in_ambient_contexts_1036", "Statements are not allowed in ambient contexts."),
        A_declare_modifier_cannot_be_used_in_an_already_ambient_context: T(1038, 1, "A_declare_modifier_cannot_be_used_in_an_already_ambient_context_1038", "A 'declare' modifier cannot be used in an already ambient context."),
        Initializers_are_not_allowed_in_ambient_contexts: T(1039, 1, "Initializers_are_not_allowed_in_ambient_contexts_1039", "Initializers are not allowed in ambient contexts."),
        _0_modifier_cannot_be_used_in_an_ambient_context: T(1040, 1, "_0_modifier_cannot_be_used_in_an_ambient_context_1040", "'{0}' modifier cannot be used in an ambient context."),
        _0_modifier_cannot_be_used_here: T(1042, 1, "_0_modifier_cannot_be_used_here_1042", "'{0}' modifier cannot be used here."),
        _0_modifier_cannot_appear_on_a_module_or_namespace_element: T(1044, 1, "_0_modifier_cannot_appear_on_a_module_or_namespace_element_1044", "'{0}' modifier cannot appear on a module or namespace element."),
        Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier: T(1046, 1, "Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046", "Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier."),
        A_rest_parameter_cannot_be_optional: T(1047, 1, "A_rest_parameter_cannot_be_optional_1047", "A rest parameter cannot be optional."),
        A_rest_parameter_cannot_have_an_initializer: T(1048, 1, "A_rest_parameter_cannot_have_an_initializer_1048", "A rest parameter cannot have an initializer."),
        A_set_accessor_must_have_exactly_one_parameter: T(1049, 1, "A_set_accessor_must_have_exactly_one_parameter_1049", "A 'set' accessor must have exactly one parameter."),
        A_set_accessor_cannot_have_an_optional_parameter: T(1051, 1, "A_set_accessor_cannot_have_an_optional_parameter_1051", "A 'set' accessor cannot have an optional parameter."),
        A_set_accessor_parameter_cannot_have_an_initializer: T(1052, 1, "A_set_accessor_parameter_cannot_have_an_initializer_1052", "A 'set' accessor parameter cannot have an initializer."),
        A_set_accessor_cannot_have_rest_parameter: T(1053, 1, "A_set_accessor_cannot_have_rest_parameter_1053", "A 'set' accessor cannot have rest parameter."),
        A_get_accessor_cannot_have_parameters: T(1054, 1, "A_get_accessor_cannot_have_parameters_1054", "A 'get' accessor cannot have parameters."),
        Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value: T(1055, 1, "Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Prom_1055", "Type '{0}' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value."),
        Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: T(1056, 1, "Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056", "Accessors are only available when targeting ECMAScript 5 and higher."),
        The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: T(1058, 1, "The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_t_1058", "The return type of an async function must either be a valid promise or must not contain a callable 'then' member."),
        A_promise_must_have_a_then_method: T(1059, 1, "A_promise_must_have_a_then_method_1059", "A promise must have a 'then' method."),
        The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback: T(1060, 1, "The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060", "The first parameter of the 'then' method of a promise must be a callback."),
        Enum_member_must_have_initializer: T(1061, 1, "Enum_member_must_have_initializer_1061", "Enum member must have initializer."),
        Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method: T(1062, 1, "Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062", "Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method."),
        An_export_assignment_cannot_be_used_in_a_namespace: T(1063, 1, "An_export_assignment_cannot_be_used_in_a_namespace_1063", "An export assignment cannot be used in a namespace."),
        The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0: T(1064, 1, "The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064", "The return type of an async function or method must be the global Promise<T> type. Did you mean to write 'Promise<{0}>'?"),
        In_ambient_enum_declarations_member_initializer_must_be_constant_expression: T(1066, 1, "In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066", "In ambient enum declarations member initializer must be constant expression."),
        Unexpected_token_A_constructor_method_accessor_or_property_was_expected: T(1068, 1, "Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068", "Unexpected token. A constructor, method, accessor, or property was expected."),
        Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces: T(1069, 1, "Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069", "Unexpected token. A type parameter name was expected without curly braces."),
        _0_modifier_cannot_appear_on_a_type_member: T(1070, 1, "_0_modifier_cannot_appear_on_a_type_member_1070", "'{0}' modifier cannot appear on a type member."),
        _0_modifier_cannot_appear_on_an_index_signature: T(1071, 1, "_0_modifier_cannot_appear_on_an_index_signature_1071", "'{0}' modifier cannot appear on an index signature."),
        A_0_modifier_cannot_be_used_with_an_import_declaration: T(1079, 1, "A_0_modifier_cannot_be_used_with_an_import_declaration_1079", "A '{0}' modifier cannot be used with an import declaration."),
        Invalid_reference_directive_syntax: T(1084, 1, "Invalid_reference_directive_syntax_1084", "Invalid 'reference' directive syntax."),
        Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0: T(1085, 1, "Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0_1085", "Octal literals are not available when targeting ECMAScript 5 and higher. Use the syntax '{0}'."),
        _0_modifier_cannot_appear_on_a_constructor_declaration: T(1089, 1, "_0_modifier_cannot_appear_on_a_constructor_declaration_1089", "'{0}' modifier cannot appear on a constructor declaration."),
        _0_modifier_cannot_appear_on_a_parameter: T(1090, 1, "_0_modifier_cannot_appear_on_a_parameter_1090", "'{0}' modifier cannot appear on a parameter."),
        Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: T(1091, 1, "Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement_1091", "Only a single variable declaration is allowed in a 'for...in' statement."),
        Type_parameters_cannot_appear_on_a_constructor_declaration: T(1092, 1, "Type_parameters_cannot_appear_on_a_constructor_declaration_1092", "Type parameters cannot appear on a constructor declaration."),
        Type_annotation_cannot_appear_on_a_constructor_declaration: T(1093, 1, "Type_annotation_cannot_appear_on_a_constructor_declaration_1093", "Type annotation cannot appear on a constructor declaration."),
        An_accessor_cannot_have_type_parameters: T(1094, 1, "An_accessor_cannot_have_type_parameters_1094", "An accessor cannot have type parameters."),
        A_set_accessor_cannot_have_a_return_type_annotation: T(1095, 1, "A_set_accessor_cannot_have_a_return_type_annotation_1095", "A 'set' accessor cannot have a return type annotation."),
        An_index_signature_must_have_exactly_one_parameter: T(1096, 1, "An_index_signature_must_have_exactly_one_parameter_1096", "An index signature must have exactly one parameter."),
        _0_list_cannot_be_empty: T(1097, 1, "_0_list_cannot_be_empty_1097", "'{0}' list cannot be empty."),
        Type_parameter_list_cannot_be_empty: T(1098, 1, "Type_parameter_list_cannot_be_empty_1098", "Type parameter list cannot be empty."),
        Type_argument_list_cannot_be_empty: T(1099, 1, "Type_argument_list_cannot_be_empty_1099", "Type argument list cannot be empty."),
        Invalid_use_of_0_in_strict_mode: T(1100, 1, "Invalid_use_of_0_in_strict_mode_1100", "Invalid use of '{0}' in strict mode."),
        with_statements_are_not_allowed_in_strict_mode: T(1101, 1, "with_statements_are_not_allowed_in_strict_mode_1101", "'with' statements are not allowed in strict mode."),
        delete_cannot_be_called_on_an_identifier_in_strict_mode: T(1102, 1, "delete_cannot_be_called_on_an_identifier_in_strict_mode_1102", "'delete' cannot be called on an identifier in strict mode."),
        for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules: T(1103, 1, "for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1103", "'for await' loops are only allowed within async functions and at the top levels of modules."),
        A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: T(1104, 1, "A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement_1104", "A 'continue' statement can only be used within an enclosing iteration statement."),
        A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: T(1105, 1, "A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement_1105", "A 'break' statement can only be used within an enclosing iteration or switch statement."),
        The_left_hand_side_of_a_for_of_statement_may_not_be_async: T(1106, 1, "The_left_hand_side_of_a_for_of_statement_may_not_be_async_1106", "The left-hand side of a 'for...of' statement may not be 'async'."),
        Jump_target_cannot_cross_function_boundary: T(1107, 1, "Jump_target_cannot_cross_function_boundary_1107", "Jump target cannot cross function boundary."),
        A_return_statement_can_only_be_used_within_a_function_body: T(1108, 1, "A_return_statement_can_only_be_used_within_a_function_body_1108", "A 'return' statement can only be used within a function body."),
        Expression_expected: T(1109, 1, "Expression_expected_1109", "Expression expected."),
        Type_expected: T(1110, 1, "Type_expected_1110", "Type expected."),
        A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: T(1113, 1, "A_default_clause_cannot_appear_more_than_once_in_a_switch_statement_1113", "A 'default' clause cannot appear more than once in a 'switch' statement."),
        Duplicate_label_0: T(1114, 1, "Duplicate_label_0_1114", "Duplicate label '{0}'."),
        A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: T(1115, 1, "A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement_1115", "A 'continue' statement can only jump to a label of an enclosing iteration statement."),
        A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: T(1116, 1, "A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement_1116", "A 'break' statement can only jump to a label of an enclosing statement."),
        An_object_literal_cannot_have_multiple_properties_with_the_same_name: T(1117, 1, "An_object_literal_cannot_have_multiple_properties_with_the_same_name_1117", "An object literal cannot have multiple properties with the same name."),
        An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: T(1118, 1, "An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name_1118", "An object literal cannot have multiple get/set accessors with the same name."),
        An_object_literal_cannot_have_property_and_accessor_with_the_same_name: T(1119, 1, "An_object_literal_cannot_have_property_and_accessor_with_the_same_name_1119", "An object literal cannot have property and accessor with the same name."),
        An_export_assignment_cannot_have_modifiers: T(1120, 1, "An_export_assignment_cannot_have_modifiers_1120", "An export assignment cannot have modifiers."),
        Octal_literals_are_not_allowed_in_strict_mode: T(1121, 1, "Octal_literals_are_not_allowed_in_strict_mode_1121", "Octal literals are not allowed in strict mode."),
        Variable_declaration_list_cannot_be_empty: T(1123, 1, "Variable_declaration_list_cannot_be_empty_1123", "Variable declaration list cannot be empty."),
        Digit_expected: T(1124, 1, "Digit_expected_1124", "Digit expected."),
        Hexadecimal_digit_expected: T(1125, 1, "Hexadecimal_digit_expected_1125", "Hexadecimal digit expected."),
        Unexpected_end_of_text: T(1126, 1, "Unexpected_end_of_text_1126", "Unexpected end of text."),
        Invalid_character: T(1127, 1, "Invalid_character_1127", "Invalid character."),
        Declaration_or_statement_expected: T(1128, 1, "Declaration_or_statement_expected_1128", "Declaration or statement expected."),
        Statement_expected: T(1129, 1, "Statement_expected_1129", "Statement expected."),
        case_or_default_expected: T(1130, 1, "case_or_default_expected_1130", "'case' or 'default' expected."),
        Property_or_signature_expected: T(1131, 1, "Property_or_signature_expected_1131", "Property or signature expected."),
        Enum_member_expected: T(1132, 1, "Enum_member_expected_1132", "Enum member expected."),
        Variable_declaration_expected: T(1134, 1, "Variable_declaration_expected_1134", "Variable declaration expected."),
        Argument_expression_expected: T(1135, 1, "Argument_expression_expected_1135", "Argument expression expected."),
        Property_assignment_expected: T(1136, 1, "Property_assignment_expected_1136", "Property assignment expected."),
        Expression_or_comma_expected: T(1137, 1, "Expression_or_comma_expected_1137", "Expression or comma expected."),
        Parameter_declaration_expected: T(1138, 1, "Parameter_declaration_expected_1138", "Parameter declaration expected."),
        Type_parameter_declaration_expected: T(1139, 1, "Type_parameter_declaration_expected_1139", "Type parameter declaration expected."),
        Type_argument_expected: T(1140, 1, "Type_argument_expected_1140", "Type argument expected."),
        String_literal_expected: T(1141, 1, "String_literal_expected_1141", "String literal expected."),
        Line_break_not_permitted_here: T(1142, 1, "Line_break_not_permitted_here_1142", "Line break not permitted here."),
        or_expected: T(1144, 1, "or_expected_1144", "'{' or ';' expected."),
        or_JSX_element_expected: T(1145, 1, "or_JSX_element_expected_1145", "'{' or JSX element expected."),
        Declaration_expected: T(1146, 1, "Declaration_expected_1146", "Declaration expected."),
        Import_declarations_in_a_namespace_cannot_reference_a_module: T(1147, 1, "Import_declarations_in_a_namespace_cannot_reference_a_module_1147", "Import declarations in a namespace cannot reference a module."),
        Cannot_use_imports_exports_or_module_augmentations_when_module_is_none: T(1148, 1, "Cannot_use_imports_exports_or_module_augmentations_when_module_is_none_1148", "Cannot use imports, exports, or module augmentations when '--module' is 'none'."),
        File_name_0_differs_from_already_included_file_name_1_only_in_casing: T(1149, 1, "File_name_0_differs_from_already_included_file_name_1_only_in_casing_1149", "File name '{0}' differs from already included file name '{1}' only in casing."),
        const_declarations_must_be_initialized: T(1155, 1, "const_declarations_must_be_initialized_1155", "'const' declarations must be initialized."),
        const_declarations_can_only_be_declared_inside_a_block: T(1156, 1, "const_declarations_can_only_be_declared_inside_a_block_1156", "'const' declarations can only be declared inside a block."),
        let_declarations_can_only_be_declared_inside_a_block: T(1157, 1, "let_declarations_can_only_be_declared_inside_a_block_1157", "'let' declarations can only be declared inside a block."),
        Unterminated_template_literal: T(1160, 1, "Unterminated_template_literal_1160", "Unterminated template literal."),
        Unterminated_regular_expression_literal: T(1161, 1, "Unterminated_regular_expression_literal_1161", "Unterminated regular expression literal."),
        An_object_member_cannot_be_declared_optional: T(1162, 1, "An_object_member_cannot_be_declared_optional_1162", "An object member cannot be declared optional."),
        A_yield_expression_is_only_allowed_in_a_generator_body: T(1163, 1, "A_yield_expression_is_only_allowed_in_a_generator_body_1163", "A 'yield' expression is only allowed in a generator body."),
        Computed_property_names_are_not_allowed_in_enums: T(1164, 1, "Computed_property_names_are_not_allowed_in_enums_1164", "Computed property names are not allowed in enums."),
        A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: T(1165, 1, "A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_t_1165", "A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type."),
        A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type: T(1166, 1, "A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_1166", "A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type."),
        A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: T(1168, 1, "A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168", "A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type."),
        A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: T(1169, 1, "A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_1169", "A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type."),
        A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: T(1170, 1, "A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type__1170", "A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type."),
        A_comma_expression_is_not_allowed_in_a_computed_property_name: T(1171, 1, "A_comma_expression_is_not_allowed_in_a_computed_property_name_1171", "A comma expression is not allowed in a computed property name."),
        extends_clause_already_seen: T(1172, 1, "extends_clause_already_seen_1172", "'extends' clause already seen."),
        extends_clause_must_precede_implements_clause: T(1173, 1, "extends_clause_must_precede_implements_clause_1173", "'extends' clause must precede 'implements' clause."),
        Classes_can_only_extend_a_single_class: T(1174, 1, "Classes_can_only_extend_a_single_class_1174", "Classes can only extend a single class."),
        implements_clause_already_seen: T(1175, 1, "implements_clause_already_seen_1175", "'implements' clause already seen."),
        Interface_declaration_cannot_have_implements_clause: T(1176, 1, "Interface_declaration_cannot_have_implements_clause_1176", "Interface declaration cannot have 'implements' clause."),
        Binary_digit_expected: T(1177, 1, "Binary_digit_expected_1177", "Binary digit expected."),
        Octal_digit_expected: T(1178, 1, "Octal_digit_expected_1178", "Octal digit expected."),
        Unexpected_token_expected: T(1179, 1, "Unexpected_token_expected_1179", "Unexpected token. '{' expected."),
        Property_destructuring_pattern_expected: T(1180, 1, "Property_destructuring_pattern_expected_1180", "Property destructuring pattern expected."),
        Array_element_destructuring_pattern_expected: T(1181, 1, "Array_element_destructuring_pattern_expected_1181", "Array element destructuring pattern expected."),
        A_destructuring_declaration_must_have_an_initializer: T(1182, 1, "A_destructuring_declaration_must_have_an_initializer_1182", "A destructuring declaration must have an initializer."),
        An_implementation_cannot_be_declared_in_ambient_contexts: T(1183, 1, "An_implementation_cannot_be_declared_in_ambient_contexts_1183", "An implementation cannot be declared in ambient contexts."),
        Modifiers_cannot_appear_here: T(1184, 1, "Modifiers_cannot_appear_here_1184", "Modifiers cannot appear here."),
        Merge_conflict_marker_encountered: T(1185, 1, "Merge_conflict_marker_encountered_1185", "Merge conflict marker encountered."),
        A_rest_element_cannot_have_an_initializer: T(1186, 1, "A_rest_element_cannot_have_an_initializer_1186", "A rest element cannot have an initializer."),
        A_parameter_property_may_not_be_declared_using_a_binding_pattern: T(1187, 1, "A_parameter_property_may_not_be_declared_using_a_binding_pattern_1187", "A parameter property may not be declared using a binding pattern."),
        Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement: T(1188, 1, "Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement_1188", "Only a single variable declaration is allowed in a 'for...of' statement."),
        The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer: T(1189, 1, "The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer_1189", "The variable declaration of a 'for...in' statement cannot have an initializer."),
        The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer: T(1190, 1, "The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer_1190", "The variable declaration of a 'for...of' statement cannot have an initializer."),
        An_import_declaration_cannot_have_modifiers: T(1191, 1, "An_import_declaration_cannot_have_modifiers_1191", "An import declaration cannot have modifiers."),
        Module_0_has_no_default_export: T(1192, 1, "Module_0_has_no_default_export_1192", "Module '{0}' has no default export."),
        An_export_declaration_cannot_have_modifiers: T(1193, 1, "An_export_declaration_cannot_have_modifiers_1193", "An export declaration cannot have modifiers."),
        Export_declarations_are_not_permitted_in_a_namespace: T(1194, 1, "Export_declarations_are_not_permitted_in_a_namespace_1194", "Export declarations are not permitted in a namespace."),
        export_Asterisk_does_not_re_export_a_default: T(1195, 1, "export_Asterisk_does_not_re_export_a_default_1195", "'export *' does not re-export a default."),
        Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified: T(1196, 1, "Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified_1196", "Catch clause variable type annotation must be 'any' or 'unknown' if specified."),
        Catch_clause_variable_cannot_have_an_initializer: T(1197, 1, "Catch_clause_variable_cannot_have_an_initializer_1197", "Catch clause variable cannot have an initializer."),
        An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive: T(1198, 1, "An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198", "An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive."),
        Unterminated_Unicode_escape_sequence: T(1199, 1, "Unterminated_Unicode_escape_sequence_1199", "Unterminated Unicode escape sequence."),
        Line_terminator_not_permitted_before_arrow: T(1200, 1, "Line_terminator_not_permitted_before_arrow_1200", "Line terminator not permitted before arrow."),
        Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead: T(1202, 1, "Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_1202", `Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.`),
        Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead: T(1203, 1, "Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or__1203", "Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead."),
        Re_exporting_a_type_when_0_is_enabled_requires_using_export_type: T(1205, 1, "Re_exporting_a_type_when_0_is_enabled_requires_using_export_type_1205", "Re-exporting a type when '{0}' is enabled requires using 'export type'."),
        Decorators_are_not_valid_here: T(1206, 1, "Decorators_are_not_valid_here_1206", "Decorators are not valid here."),
        Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name: T(1207, 1, "Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name_1207", "Decorators cannot be applied to multiple get/set accessors of the same name."),
        Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0: T(1209, 1, "Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0_1209", "Invalid optional chain from new expression. Did you mean to call '{0}()'?"),
        Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode: T(1210, 1, "Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of__1210", "Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of '{0}'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode."),
        A_class_declaration_without_the_default_modifier_must_have_a_name: T(1211, 1, "A_class_declaration_without_the_default_modifier_must_have_a_name_1211", "A class declaration without the 'default' modifier must have a name."),
        Identifier_expected_0_is_a_reserved_word_in_strict_mode: T(1212, 1, "Identifier_expected_0_is_a_reserved_word_in_strict_mode_1212", "Identifier expected. '{0}' is a reserved word in strict mode."),
        Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode: T(1213, 1, "Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_stric_1213", "Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode."),
        Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode: T(1214, 1, "Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode_1214", "Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode."),
        Invalid_use_of_0_Modules_are_automatically_in_strict_mode: T(1215, 1, "Invalid_use_of_0_Modules_are_automatically_in_strict_mode_1215", "Invalid use of '{0}'. Modules are automatically in strict mode."),
        Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules: T(1216, 1, "Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216", "Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules."),
        Export_assignment_is_not_supported_when_module_flag_is_system: T(1218, 1, "Export_assignment_is_not_supported_when_module_flag_is_system_1218", "Export assignment is not supported when '--module' flag is 'system'."),
        Generators_are_not_allowed_in_an_ambient_context: T(1221, 1, "Generators_are_not_allowed_in_an_ambient_context_1221", "Generators are not allowed in an ambient context."),
        An_overload_signature_cannot_be_declared_as_a_generator: T(1222, 1, "An_overload_signature_cannot_be_declared_as_a_generator_1222", "An overload signature cannot be declared as a generator."),
        _0_tag_already_specified: T(1223, 1, "_0_tag_already_specified_1223", "'{0}' tag already specified."),
        Signature_0_must_be_a_type_predicate: T(1224, 1, "Signature_0_must_be_a_type_predicate_1224", "Signature '{0}' must be a type predicate."),
        Cannot_find_parameter_0: T(1225, 1, "Cannot_find_parameter_0_1225", "Cannot find parameter '{0}'."),
        Type_predicate_0_is_not_assignable_to_1: T(1226, 1, "Type_predicate_0_is_not_assignable_to_1_1226", "Type predicate '{0}' is not assignable to '{1}'."),
        Parameter_0_is_not_in_the_same_position_as_parameter_1: T(1227, 1, "Parameter_0_is_not_in_the_same_position_as_parameter_1_1227", "Parameter '{0}' is not in the same position as parameter '{1}'."),
        A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods: T(1228, 1, "A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228", "A type predicate is only allowed in return type position for functions and methods."),
        A_type_predicate_cannot_reference_a_rest_parameter: T(1229, 1, "A_type_predicate_cannot_reference_a_rest_parameter_1229", "A type predicate cannot reference a rest parameter."),
        A_type_predicate_cannot_reference_element_0_in_a_binding_pattern: T(1230, 1, "A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230", "A type predicate cannot reference element '{0}' in a binding pattern."),
        An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration: T(1231, 1, "An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration_1231", "An export assignment must be at the top level of a file or module declaration."),
        An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module: T(1232, 1, "An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1232", "An import declaration can only be used at the top level of a namespace or module."),
        An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module: T(1233, 1, "An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1233", "An export declaration can only be used at the top level of a namespace or module."),
        An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file: T(1234, 1, "An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file_1234", "An ambient module declaration is only allowed at the top level in a file."),
        A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module: T(1235, 1, "A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module_1235", "A namespace declaration is only allowed at the top level of a namespace or module."),
        The_return_type_of_a_property_decorator_function_must_be_either_void_or_any: T(1236, 1, "The_return_type_of_a_property_decorator_function_must_be_either_void_or_any_1236", "The return type of a property decorator function must be either 'void' or 'any'."),
        The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any: T(1237, 1, "The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any_1237", "The return type of a parameter decorator function must be either 'void' or 'any'."),
        Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression: T(1238, 1, "Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression_1238", "Unable to resolve signature of class decorator when called as an expression."),
        Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression: T(1239, 1, "Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression_1239", "Unable to resolve signature of parameter decorator when called as an expression."),
        Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression: T(1240, 1, "Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression_1240", "Unable to resolve signature of property decorator when called as an expression."),
        Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression: T(1241, 1, "Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241", "Unable to resolve signature of method decorator when called as an expression."),
        abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration: T(1242, 1, "abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242", "'abstract' modifier can only appear on a class, method, or property declaration."),
        _0_modifier_cannot_be_used_with_1_modifier: T(1243, 1, "_0_modifier_cannot_be_used_with_1_modifier_1243", "'{0}' modifier cannot be used with '{1}' modifier."),
        Abstract_methods_can_only_appear_within_an_abstract_class: T(1244, 1, "Abstract_methods_can_only_appear_within_an_abstract_class_1244", "Abstract methods can only appear within an abstract class."),
        Method_0_cannot_have_an_implementation_because_it_is_marked_abstract: T(1245, 1, "Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245", "Method '{0}' cannot have an implementation because it is marked abstract."),
        An_interface_property_cannot_have_an_initializer: T(1246, 1, "An_interface_property_cannot_have_an_initializer_1246", "An interface property cannot have an initializer."),
        A_type_literal_property_cannot_have_an_initializer: T(1247, 1, "A_type_literal_property_cannot_have_an_initializer_1247", "A type literal property cannot have an initializer."),
        A_class_member_cannot_have_the_0_keyword: T(1248, 1, "A_class_member_cannot_have_the_0_keyword_1248", "A class member cannot have the '{0}' keyword."),
        A_decorator_can_only_decorate_a_method_implementation_not_an_overload: T(1249, 1, "A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249", "A decorator can only decorate a method implementation, not an overload."),
        Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5: T(1250, 1, "Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_1250", "Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'."),
        Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode: T(1251, 1, "Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_d_1251", "Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Class definitions are automatically in strict mode."),
        Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode: T(1252, 1, "Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_1252", "Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Modules are automatically in strict mode."),
        A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference: T(1254, 1, "A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_refere_1254", "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference."),
        A_definite_assignment_assertion_is_not_permitted_in_this_context: T(1255, 1, "A_definite_assignment_assertion_is_not_permitted_in_this_context_1255", "A definite assignment assertion '!' is not permitted in this context."),
        A_required_element_cannot_follow_an_optional_element: T(1257, 1, "A_required_element_cannot_follow_an_optional_element_1257", "A required element cannot follow an optional element."),
        A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration: T(1258, 1, "A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration_1258", "A default export must be at the top level of a file or module declaration."),
        Module_0_can_only_be_default_imported_using_the_1_flag: T(1259, 1, "Module_0_can_only_be_default_imported_using_the_1_flag_1259", "Module '{0}' can only be default-imported using the '{1}' flag"),
        Keywords_cannot_contain_escape_characters: T(1260, 1, "Keywords_cannot_contain_escape_characters_1260", "Keywords cannot contain escape characters."),
        Already_included_file_name_0_differs_from_file_name_1_only_in_casing: T(1261, 1, "Already_included_file_name_0_differs_from_file_name_1_only_in_casing_1261", "Already included file name '{0}' differs from file name '{1}' only in casing."),
        Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module: T(1262, 1, "Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module_1262", "Identifier expected. '{0}' is a reserved word at the top-level of a module."),
        Declarations_with_initializers_cannot_also_have_definite_assignment_assertions: T(1263, 1, "Declarations_with_initializers_cannot_also_have_definite_assignment_assertions_1263", "Declarations with initializers cannot also have definite assignment assertions."),
        Declarations_with_definite_assignment_assertions_must_also_have_type_annotations: T(1264, 1, "Declarations_with_definite_assignment_assertions_must_also_have_type_annotations_1264", "Declarations with definite assignment assertions must also have type annotations."),
        A_rest_element_cannot_follow_another_rest_element: T(1265, 1, "A_rest_element_cannot_follow_another_rest_element_1265", "A rest element cannot follow another rest element."),
        An_optional_element_cannot_follow_a_rest_element: T(1266, 1, "An_optional_element_cannot_follow_a_rest_element_1266", "An optional element cannot follow a rest element."),
        Property_0_cannot_have_an_initializer_because_it_is_marked_abstract: T(1267, 1, "Property_0_cannot_have_an_initializer_because_it_is_marked_abstract_1267", "Property '{0}' cannot have an initializer because it is marked abstract."),
        An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type: T(1268, 1, "An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type_1268", "An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type."),
        Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled: T(1269, 1, "Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled_1269", "Cannot use 'export import' on a type or type-only namespace when '{0}' is enabled."),
        Decorator_function_return_type_0_is_not_assignable_to_type_1: T(1270, 1, "Decorator_function_return_type_0_is_not_assignable_to_type_1_1270", "Decorator function return type '{0}' is not assignable to type '{1}'."),
        Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any: T(1271, 1, "Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271", "Decorator function return type is '{0}' but is expected to be 'void' or 'any'."),
        A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled: T(1272, 1, "A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_w_1272", "A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled."),
        _0_modifier_cannot_appear_on_a_type_parameter: T(1273, 1, "_0_modifier_cannot_appear_on_a_type_parameter_1273", "'{0}' modifier cannot appear on a type parameter"),
        _0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias: T(1274, 1, "_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias_1274", "'{0}' modifier can only appear on a type parameter of a class, interface or type alias"),
        accessor_modifier_can_only_appear_on_a_property_declaration: T(1275, 1, "accessor_modifier_can_only_appear_on_a_property_declaration_1275", "'accessor' modifier can only appear on a property declaration."),
        An_accessor_property_cannot_be_declared_optional: T(1276, 1, "An_accessor_property_cannot_be_declared_optional_1276", "An 'accessor' property cannot be declared optional."),
        _0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class: T(1277, 1, "_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class_1277", "'{0}' modifier can only appear on a type parameter of a function, method or class"),
        The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0: T(1278, 1, "The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0_1278", "The runtime will invoke the decorator with {1} arguments, but the decorator expects {0}."),
        The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0: T(1279, 1, "The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0_1279", "The runtime will invoke the decorator with {1} arguments, but the decorator expects at least {0}."),
        Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to_be_a_global_script_set_moduleDetection_to_force_or_add_an_empty_export_statement: T(1280, 1, "Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to__1280", "Namespaces are not allowed in global script files when '{0}' is enabled. If this file is not intended to be a global script, set 'moduleDetection' to 'force' or add an empty 'export {}' statement."),
        Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead: T(1281, 1, "Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead_1281", "Cannot access '{0}' from another file without qualification when '{1}' is enabled. Use '{2}' instead."),
        An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type: T(1282, 1, "An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers__1282", "An 'export =' declaration must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type."),
        An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration: T(1283, 1, "An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolve_1283", "An 'export =' declaration must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration."),
        An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type: T(1284, 1, "An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_1284", "An 'export default' must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type."),
        An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration: T(1285, 1, "An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_1285", "An 'export default' must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration."),
        ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled: T(1286, 1, "ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled_1286", "ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled."),
        A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled: T(1287, 1, "A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimM_1287", "A top-level 'export' modifier cannot be used on value declarations in a CommonJS module when 'verbatimModuleSyntax' is enabled."),
        An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabled: T(1288, 1, "An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabl_1288", "An import alias cannot resolve to a type or type-only declaration when 'verbatimModuleSyntax' is enabled."),
        with_statements_are_not_allowed_in_an_async_function_block: T(1300, 1, "with_statements_are_not_allowed_in_an_async_function_block_1300", "'with' statements are not allowed in an async function block."),
        await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules: T(1308, 1, "await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1308", "'await' expressions are only allowed within async functions and at the top levels of modules."),
        The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level: T(1309, 1, "The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level_1309", "The current file is a CommonJS module and cannot use 'await' at the top level."),
        Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern: T(1312, 1, "Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_1312", "Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern."),
        The_body_of_an_if_statement_cannot_be_the_empty_statement: T(1313, 1, "The_body_of_an_if_statement_cannot_be_the_empty_statement_1313", "The body of an 'if' statement cannot be the empty statement."),
        Global_module_exports_may_only_appear_in_module_files: T(1314, 1, "Global_module_exports_may_only_appear_in_module_files_1314", "Global module exports may only appear in module files."),
        Global_module_exports_may_only_appear_in_declaration_files: T(1315, 1, "Global_module_exports_may_only_appear_in_declaration_files_1315", "Global module exports may only appear in declaration files."),
        Global_module_exports_may_only_appear_at_top_level: T(1316, 1, "Global_module_exports_may_only_appear_at_top_level_1316", "Global module exports may only appear at top level."),
        A_parameter_property_cannot_be_declared_using_a_rest_parameter: T(1317, 1, "A_parameter_property_cannot_be_declared_using_a_rest_parameter_1317", "A parameter property cannot be declared using a rest parameter."),
        An_abstract_accessor_cannot_have_an_implementation: T(1318, 1, "An_abstract_accessor_cannot_have_an_implementation_1318", "An abstract accessor cannot have an implementation."),
        A_default_export_can_only_be_used_in_an_ECMAScript_style_module: T(1319, 1, "A_default_export_can_only_be_used_in_an_ECMAScript_style_module_1319", "A default export can only be used in an ECMAScript-style module."),
        Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: T(1320, 1, "Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member_1320", "Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member."),
        Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: T(1321, 1, "Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321", "Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member."),
        Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: T(1322, 1, "Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322", "Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member."),
        Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext: T(1323, 1, "Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd__1323", "Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', or 'nodenext'."),
        Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nodenext: T(1324, 1, "Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nod_1324", "Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', or 'nodenext'."),
        Argument_of_dynamic_import_cannot_be_spread_element: T(1325, 1, "Argument_of_dynamic_import_cannot_be_spread_element_1325", "Argument of dynamic import cannot be spread element."),
        This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments: T(1326, 1, "This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot__1326", "This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments."),
        String_literal_with_double_quotes_expected: T(1327, 1, "String_literal_with_double_quotes_expected_1327", "String literal with double quotes expected."),
        Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal: T(1328, 1, "Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_li_1328", "Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal."),
        _0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0: T(1329, 1, "_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329", "'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?"),
        A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly: T(1330, 1, "A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly_1330", "A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'."),
        A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly: T(1331, 1, "A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly_1331", "A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'."),
        A_variable_whose_type_is_a_unique_symbol_type_must_be_const: T(1332, 1, "A_variable_whose_type_is_a_unique_symbol_type_must_be_const_1332", "A variable whose type is a 'unique symbol' type must be 'const'."),
        unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name: T(1333, 1, "unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name_1333", "'unique symbol' types may not be used on a variable declaration with a binding name."),
        unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement: T(1334, 1, "unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement_1334", "'unique symbol' types are only allowed on variables in a variable statement."),
        unique_symbol_types_are_not_allowed_here: T(1335, 1, "unique_symbol_types_are_not_allowed_here_1335", "'unique symbol' types are not allowed here."),
        An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead: T(1337, 1, "An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_o_1337", "An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead."),
        infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type: T(1338, 1, "infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type_1338", "'infer' declarations are only permitted in the 'extends' clause of a conditional type."),
        Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here: T(1339, 1, "Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here_1339", "Module '{0}' does not refer to a value, but is used as a value here."),
        Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0: T(1340, 1, "Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0_1340", "Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?"),
        Class_constructor_may_not_be_an_accessor: T(1341, 1, "Class_constructor_may_not_be_an_accessor_1341", "Class constructor may not be an accessor."),
        The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_or_nodenext: T(1343, 1, "The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system__1343", "The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', or 'nodenext'."),
        A_label_is_not_allowed_here: T(1344, 1, "A_label_is_not_allowed_here_1344", "'A label is not allowed here."),
        An_expression_of_type_void_cannot_be_tested_for_truthiness: T(1345, 1, "An_expression_of_type_void_cannot_be_tested_for_truthiness_1345", "An expression of type 'void' cannot be tested for truthiness."),
        This_parameter_is_not_allowed_with_use_strict_directive: T(1346, 1, "This_parameter_is_not_allowed_with_use_strict_directive_1346", "This parameter is not allowed with 'use strict' directive."),
        use_strict_directive_cannot_be_used_with_non_simple_parameter_list: T(1347, 1, "use_strict_directive_cannot_be_used_with_non_simple_parameter_list_1347", "'use strict' directive cannot be used with non-simple parameter list."),
        Non_simple_parameter_declared_here: T(1348, 1, "Non_simple_parameter_declared_here_1348", "Non-simple parameter declared here."),
        use_strict_directive_used_here: T(1349, 1, "use_strict_directive_used_here_1349", "'use strict' directive used here."),
        Print_the_final_configuration_instead_of_building: T(1350, 3, "Print_the_final_configuration_instead_of_building_1350", "Print the final configuration instead of building."),
        An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal: T(1351, 1, "An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal_1351", "An identifier or keyword cannot immediately follow a numeric literal."),
        A_bigint_literal_cannot_use_exponential_notation: T(1352, 1, "A_bigint_literal_cannot_use_exponential_notation_1352", "A bigint literal cannot use exponential notation."),
        A_bigint_literal_must_be_an_integer: T(1353, 1, "A_bigint_literal_must_be_an_integer_1353", "A bigint literal must be an integer."),
        readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types: T(1354, 1, "readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354", "'readonly' type modifier is only permitted on array and tuple literal types."),
        A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals: T(1355, 1, "A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355", "A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals."),
        Did_you_mean_to_mark_this_function_as_async: T(1356, 1, "Did_you_mean_to_mark_this_function_as_async_1356", "Did you mean to mark this function as 'async'?"),
        An_enum_member_name_must_be_followed_by_a_or: T(1357, 1, "An_enum_member_name_must_be_followed_by_a_or_1357", "An enum member name must be followed by a ',', '=', or '}'."),
        Tagged_template_expressions_are_not_permitted_in_an_optional_chain: T(1358, 1, "Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358", "Tagged template expressions are not permitted in an optional chain."),
        Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here: T(1359, 1, "Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359", "Identifier expected. '{0}' is a reserved word that cannot be used here."),
        Type_0_does_not_satisfy_the_expected_type_1: T(1360, 1, "Type_0_does_not_satisfy_the_expected_type_1_1360", "Type '{0}' does not satisfy the expected type '{1}'."),
        _0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type: T(1361, 1, "_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type_1361", "'{0}' cannot be used as a value because it was imported using 'import type'."),
        _0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type: T(1362, 1, "_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type_1362", "'{0}' cannot be used as a value because it was exported using 'export type'."),
        A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both: T(1363, 1, "A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both_1363", "A type-only import can specify a default import or named bindings, but not both."),
        Convert_to_type_only_export: T(1364, 3, "Convert_to_type_only_export_1364", "Convert to type-only export"),
        Convert_all_re_exported_types_to_type_only_exports: T(1365, 3, "Convert_all_re_exported_types_to_type_only_exports_1365", "Convert all re-exported types to type-only exports"),
        Split_into_two_separate_import_declarations: T(1366, 3, "Split_into_two_separate_import_declarations_1366", "Split into two separate import declarations"),
        Split_all_invalid_type_only_imports: T(1367, 3, "Split_all_invalid_type_only_imports_1367", "Split all invalid type-only imports"),
        Class_constructor_may_not_be_a_generator: T(1368, 1, "Class_constructor_may_not_be_a_generator_1368", "Class constructor may not be a generator."),
        Did_you_mean_0: T(1369, 3, "Did_you_mean_0_1369", "Did you mean '{0}'?"),
        This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set_to_error: T(1371, 1, "This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set__1371", "This import is never used as a value and must use 'import type' because 'importsNotUsedAsValues' is set to 'error'."),
        Convert_to_type_only_import: T(1373, 3, "Convert_to_type_only_import_1373", "Convert to type-only import"),
        Convert_all_imports_not_used_as_a_value_to_type_only_imports: T(1374, 3, "Convert_all_imports_not_used_as_a_value_to_type_only_imports_1374", "Convert all imports not used as a value to type-only imports"),
        await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module: T(1375, 1, "await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_fi_1375", "'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),
        _0_was_imported_here: T(1376, 3, "_0_was_imported_here_1376", "'{0}' was imported here."),
        _0_was_exported_here: T(1377, 3, "_0_was_exported_here_1377", "'{0}' was exported here."),
        Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher: T(1378, 1, "Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_n_1378", "Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', or 'nodenext', and the 'target' option is set to 'es2017' or higher."),
        An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type: T(1379, 1, "An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type_1379", "An import alias cannot reference a declaration that was exported using 'export type'."),
        An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type: T(1380, 1, "An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type_1380", "An import alias cannot reference a declaration that was imported using 'import type'."),
        Unexpected_token_Did_you_mean_or_rbrace: T(1381, 1, "Unexpected_token_Did_you_mean_or_rbrace_1381", "Unexpected token. Did you mean `{'}'}` or `&rbrace;`?"),
        Unexpected_token_Did_you_mean_or_gt: T(1382, 1, "Unexpected_token_Did_you_mean_or_gt_1382", "Unexpected token. Did you mean `{'>'}` or `&gt;`?"),
        Function_type_notation_must_be_parenthesized_when_used_in_a_union_type: T(1385, 1, "Function_type_notation_must_be_parenthesized_when_used_in_a_union_type_1385", "Function type notation must be parenthesized when used in a union type."),
        Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type: T(1386, 1, "Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type_1386", "Constructor type notation must be parenthesized when used in a union type."),
        Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type: T(1387, 1, "Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1387", "Function type notation must be parenthesized when used in an intersection type."),
        Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type: T(1388, 1, "Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1388", "Constructor type notation must be parenthesized when used in an intersection type."),
        _0_is_not_allowed_as_a_variable_declaration_name: T(1389, 1, "_0_is_not_allowed_as_a_variable_declaration_name_1389", "'{0}' is not allowed as a variable declaration name."),
        _0_is_not_allowed_as_a_parameter_name: T(1390, 1, "_0_is_not_allowed_as_a_parameter_name_1390", "'{0}' is not allowed as a parameter name."),
        An_import_alias_cannot_use_import_type: T(1392, 1, "An_import_alias_cannot_use_import_type_1392", "An import alias cannot use 'import type'"),
        Imported_via_0_from_file_1: T(1393, 3, "Imported_via_0_from_file_1_1393", "Imported via {0} from file '{1}'"),
        Imported_via_0_from_file_1_with_packageId_2: T(1394, 3, "Imported_via_0_from_file_1_with_packageId_2_1394", "Imported via {0} from file '{1}' with packageId '{2}'"),
        Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions: T(1395, 3, "Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions_1395", "Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions"),
        Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions: T(1396, 3, "Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions_1396", "Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions"),
        Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions: T(1397, 3, "Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions_1397", "Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions"),
        Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions: T(1398, 3, "Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions_1398", "Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions"),
        File_is_included_via_import_here: T(1399, 3, "File_is_included_via_import_here_1399", "File is included via import here."),
        Referenced_via_0_from_file_1: T(1400, 3, "Referenced_via_0_from_file_1_1400", "Referenced via '{0}' from file '{1}'"),
        File_is_included_via_reference_here: T(1401, 3, "File_is_included_via_reference_here_1401", "File is included via reference here."),
        Type_library_referenced_via_0_from_file_1: T(1402, 3, "Type_library_referenced_via_0_from_file_1_1402", "Type library referenced via '{0}' from file '{1}'"),
        Type_library_referenced_via_0_from_file_1_with_packageId_2: T(1403, 3, "Type_library_referenced_via_0_from_file_1_with_packageId_2_1403", "Type library referenced via '{0}' from file '{1}' with packageId '{2}'"),
        File_is_included_via_type_library_reference_here: T(1404, 3, "File_is_included_via_type_library_reference_here_1404", "File is included via type library reference here."),
        Library_referenced_via_0_from_file_1: T(1405, 3, "Library_referenced_via_0_from_file_1_1405", "Library referenced via '{0}' from file '{1}'"),
        File_is_included_via_library_reference_here: T(1406, 3, "File_is_included_via_library_reference_here_1406", "File is included via library reference here."),
        Matched_by_include_pattern_0_in_1: T(1407, 3, "Matched_by_include_pattern_0_in_1_1407", "Matched by include pattern '{0}' in '{1}'"),
        File_is_matched_by_include_pattern_specified_here: T(1408, 3, "File_is_matched_by_include_pattern_specified_here_1408", "File is matched by include pattern specified here."),
        Part_of_files_list_in_tsconfig_json: T(1409, 3, "Part_of_files_list_in_tsconfig_json_1409", "Part of 'files' list in tsconfig.json"),
        File_is_matched_by_files_list_specified_here: T(1410, 3, "File_is_matched_by_files_list_specified_here_1410", "File is matched by 'files' list specified here."),
        Output_from_referenced_project_0_included_because_1_specified: T(1411, 3, "Output_from_referenced_project_0_included_because_1_specified_1411", "Output from referenced project '{0}' included because '{1}' specified"),
        Output_from_referenced_project_0_included_because_module_is_specified_as_none: T(1412, 3, "Output_from_referenced_project_0_included_because_module_is_specified_as_none_1412", "Output from referenced project '{0}' included because '--module' is specified as 'none'"),
        File_is_output_from_referenced_project_specified_here: T(1413, 3, "File_is_output_from_referenced_project_specified_here_1413", "File is output from referenced project specified here."),
        Source_from_referenced_project_0_included_because_1_specified: T(1414, 3, "Source_from_referenced_project_0_included_because_1_specified_1414", "Source from referenced project '{0}' included because '{1}' specified"),
        Source_from_referenced_project_0_included_because_module_is_specified_as_none: T(1415, 3, "Source_from_referenced_project_0_included_because_module_is_specified_as_none_1415", "Source from referenced project '{0}' included because '--module' is specified as 'none'"),
        File_is_source_from_referenced_project_specified_here: T(1416, 3, "File_is_source_from_referenced_project_specified_here_1416", "File is source from referenced project specified here."),
        Entry_point_of_type_library_0_specified_in_compilerOptions: T(1417, 3, "Entry_point_of_type_library_0_specified_in_compilerOptions_1417", "Entry point of type library '{0}' specified in compilerOptions"),
        Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1: T(1418, 3, "Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1_1418", "Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'"),
        File_is_entry_point_of_type_library_specified_here: T(1419, 3, "File_is_entry_point_of_type_library_specified_here_1419", "File is entry point of type library specified here."),
        Entry_point_for_implicit_type_library_0: T(1420, 3, "Entry_point_for_implicit_type_library_0_1420", "Entry point for implicit type library '{0}'"),
        Entry_point_for_implicit_type_library_0_with_packageId_1: T(1421, 3, "Entry_point_for_implicit_type_library_0_with_packageId_1_1421", "Entry point for implicit type library '{0}' with packageId '{1}'"),
        Library_0_specified_in_compilerOptions: T(1422, 3, "Library_0_specified_in_compilerOptions_1422", "Library '{0}' specified in compilerOptions"),
        File_is_library_specified_here: T(1423, 3, "File_is_library_specified_here_1423", "File is library specified here."),
        Default_library: T(1424, 3, "Default_library_1424", "Default library"),
        Default_library_for_target_0: T(1425, 3, "Default_library_for_target_0_1425", "Default library for target '{0}'"),
        File_is_default_library_for_target_specified_here: T(1426, 3, "File_is_default_library_for_target_specified_here_1426", "File is default library for target specified here."),
        Root_file_specified_for_compilation: T(1427, 3, "Root_file_specified_for_compilation_1427", "Root file specified for compilation"),
        File_is_output_of_project_reference_source_0: T(1428, 3, "File_is_output_of_project_reference_source_0_1428", "File is output of project reference source '{0}'"),
        File_redirects_to_file_0: T(1429, 3, "File_redirects_to_file_0_1429", "File redirects to file '{0}'"),
        The_file_is_in_the_program_because_Colon: T(1430, 3, "The_file_is_in_the_program_because_Colon_1430", "The file is in the program because:"),
        for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module: T(1431, 1, "for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_1431", "'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),
        Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher: T(1432, 1, "Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_nod_1432", "Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', or 'nodenext', and the 'target' option is set to 'es2017' or higher."),
        Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters: T(1433, 1, "Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters_1433", "Neither decorators nor modifiers may be applied to 'this' parameters."),
        Unexpected_keyword_or_identifier: T(1434, 1, "Unexpected_keyword_or_identifier_1434", "Unexpected keyword or identifier."),
        Unknown_keyword_or_identifier_Did_you_mean_0: T(1435, 1, "Unknown_keyword_or_identifier_Did_you_mean_0_1435", "Unknown keyword or identifier. Did you mean '{0}'?"),
        Decorators_must_precede_the_name_and_all_keywords_of_property_declarations: T(1436, 1, "Decorators_must_precede_the_name_and_all_keywords_of_property_declarations_1436", "Decorators must precede the name and all keywords of property declarations."),
        Namespace_must_be_given_a_name: T(1437, 1, "Namespace_must_be_given_a_name_1437", "Namespace must be given a name."),
        Interface_must_be_given_a_name: T(1438, 1, "Interface_must_be_given_a_name_1438", "Interface must be given a name."),
        Type_alias_must_be_given_a_name: T(1439, 1, "Type_alias_must_be_given_a_name_1439", "Type alias must be given a name."),
        Variable_declaration_not_allowed_at_this_location: T(1440, 1, "Variable_declaration_not_allowed_at_this_location_1440", "Variable declaration not allowed at this location."),
        Cannot_start_a_function_call_in_a_type_annotation: T(1441, 1, "Cannot_start_a_function_call_in_a_type_annotation_1441", "Cannot start a function call in a type annotation."),
        Expected_for_property_initializer: T(1442, 1, "Expected_for_property_initializer_1442", "Expected '=' for property initializer."),
        Module_declaration_names_may_only_use_or_quoted_strings: T(1443, 1, "Module_declaration_names_may_only_use_or_quoted_strings_1443", `Module declaration names may only use ' or " quoted strings.`),
        _0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled: T(1444, 1, "_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedMod_1444", "'{0}' is a type and must be imported using a type-only import when 'preserveValueImports' and 'isolatedModules' are both enabled."),
        _0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled: T(1446, 1, "_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_preserveVa_1446", "'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'preserveValueImports' and 'isolatedModules' are both enabled."),
        _0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_enabled: T(1448, 1, "_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_1448", "'{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when '{1}' is enabled."),
        Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed: T(1449, 3, "Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed_1449", "Preserve unused imported values in the JavaScript output that would otherwise be removed."),
        Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments: T(1450, 3, "Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments_1450", "Dynamic imports can only accept a module specifier and an optional assertion as arguments"),
        Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression: T(1451, 1, "Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member__1451", "Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression"),
        resolution_mode_assertions_are_only_supported_when_moduleResolution_is_node16_or_nodenext: T(1452, 1, "resolution_mode_assertions_are_only_supported_when_moduleResolution_is_node16_or_nodenext_1452", "'resolution-mode' assertions are only supported when `moduleResolution` is `node16` or `nodenext`."),
        resolution_mode_should_be_either_require_or_import: T(1453, 1, "resolution_mode_should_be_either_require_or_import_1453", "`resolution-mode` should be either `require` or `import`."),
        resolution_mode_can_only_be_set_for_type_only_imports: T(1454, 1, "resolution_mode_can_only_be_set_for_type_only_imports_1454", "`resolution-mode` can only be set for type-only imports."),
        resolution_mode_is_the_only_valid_key_for_type_import_assertions: T(1455, 1, "resolution_mode_is_the_only_valid_key_for_type_import_assertions_1455", "`resolution-mode` is the only valid key for type import assertions."),
        Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require: T(1456, 1, "Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1456", "Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`."),
        Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk: T(1457, 3, "Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk_1457", "Matched by default include pattern '**/*'"),
        File_is_ECMAScript_module_because_0_has_field_type_with_value_module: T(1458, 3, "File_is_ECMAScript_module_because_0_has_field_type_with_value_module_1458", `File is ECMAScript module because '{0}' has field "type" with value "module"`),
        File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module: T(1459, 3, "File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module_1459", `File is CommonJS module because '{0}' has field "type" whose value is not "module"`),
        File_is_CommonJS_module_because_0_does_not_have_field_type: T(1460, 3, "File_is_CommonJS_module_because_0_does_not_have_field_type_1460", `File is CommonJS module because '{0}' does not have field "type"`),
        File_is_CommonJS_module_because_package_json_was_not_found: T(1461, 3, "File_is_CommonJS_module_because_package_json_was_not_found_1461", "File is CommonJS module because 'package.json' was not found"),
        The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output: T(1470, 1, "The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output_1470", "The 'import.meta' meta-property is not allowed in files which will build into CommonJS output."),
        Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead: T(1471, 1, "Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_c_1471", "Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported with 'require'. Use an ECMAScript import instead."),
        catch_or_finally_expected: T(1472, 1, "catch_or_finally_expected_1472", "'catch' or 'finally' expected."),
        An_import_declaration_can_only_be_used_at_the_top_level_of_a_module: T(1473, 1, "An_import_declaration_can_only_be_used_at_the_top_level_of_a_module_1473", "An import declaration can only be used at the top level of a module."),
        An_export_declaration_can_only_be_used_at_the_top_level_of_a_module: T(1474, 1, "An_export_declaration_can_only_be_used_at_the_top_level_of_a_module_1474", "An export declaration can only be used at the top level of a module."),
        Control_what_method_is_used_to_detect_module_format_JS_files: T(1475, 3, "Control_what_method_is_used_to_detect_module_format_JS_files_1475", "Control what method is used to detect module-format JS files."),
        auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules: T(1476, 3, "auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_w_1476", '"auto": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.'),
        An_instantiation_expression_cannot_be_followed_by_a_property_access: T(1477, 1, "An_instantiation_expression_cannot_be_followed_by_a_property_access_1477", "An instantiation expression cannot be followed by a property access."),
        Identifier_or_string_literal_expected: T(1478, 1, "Identifier_or_string_literal_expected_1478", "Identifier or string literal expected."),
        The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_referenced_file_is_an_ECMAScript_module_and_cannot_be_imported_with_require_Consider_writing_a_dynamic_import_0_call_instead: T(1479, 1, "The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_reference_1479", `The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("{0}")' call instead.`),
        To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_package_json_file_with_type_Colon_module: T(1480, 3, "To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_packag_1480", 'To convert this file to an ECMAScript module, change its file extension to \'{0}\' or create a local package.json file with `{ "type": "module" }`.'),
        To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Colon_module_to_1: T(1481, 3, "To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Co_1481", `To convert this file to an ECMAScript module, change its file extension to '{0}', or add the field \`"type": "module"\` to '{1}'.`),
        To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0: T(1482, 3, "To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0_1482", 'To convert this file to an ECMAScript module, add the field `"type": "module"` to \'{0}\'.'),
        To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module: T(1483, 3, "To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module_1483", 'To convert this file to an ECMAScript module, create a local package.json file with `{ "type": "module" }`.'),
        _0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled: T(1484, 1, "_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled_1484", "'{0}' is a type and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled."),
        _0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled: T(1485, 1, "_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimMo_1485", "'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled."),
        Decorator_used_before_export_here: T(1486, 1, "Decorator_used_before_export_here_1486", "Decorator used before 'export' here."),
        The_types_of_0_are_incompatible_between_these_types: T(2200, 1, "The_types_of_0_are_incompatible_between_these_types_2200", "The types of '{0}' are incompatible between these types."),
        The_types_returned_by_0_are_incompatible_between_these_types: T(2201, 1, "The_types_returned_by_0_are_incompatible_between_these_types_2201", "The types returned by '{0}' are incompatible between these types."),
        Call_signature_return_types_0_and_1_are_incompatible: T(2202, 1, "Call_signature_return_types_0_and_1_are_incompatible_2202", "Call signature return types '{0}' and '{1}' are incompatible.", void 0, !0),
        Construct_signature_return_types_0_and_1_are_incompatible: T(2203, 1, "Construct_signature_return_types_0_and_1_are_incompatible_2203", "Construct signature return types '{0}' and '{1}' are incompatible.", void 0, !0),
        Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1: T(2204, 1, "Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2204", "Call signatures with no arguments have incompatible return types '{0}' and '{1}'.", void 0, !0),
        Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1: T(2205, 1, "Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2205", "Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.", void 0, !0),
        The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement: T(2206, 1, "The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement_2206", "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement."),
        The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement: T(2207, 1, "The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement_2207", "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement."),
        This_type_parameter_might_need_an_extends_0_constraint: T(2208, 1, "This_type_parameter_might_need_an_extends_0_constraint_2208", "This type parameter might need an `extends {0}` constraint."),
        The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate: T(2209, 1, "The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_roo_2209", "The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."),
        The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate: T(2210, 1, "The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_roo_2210", "The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."),
        Add_extends_constraint: T(2211, 3, "Add_extends_constraint_2211", "Add `extends` constraint."),
        Add_extends_constraint_to_all_type_parameters: T(2212, 3, "Add_extends_constraint_to_all_type_parameters_2212", "Add `extends` constraint to all type parameters"),
        Duplicate_identifier_0: T(2300, 1, "Duplicate_identifier_0_2300", "Duplicate identifier '{0}'."),
        Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: T(2301, 1, "Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301", "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."),
        Static_members_cannot_reference_class_type_parameters: T(2302, 1, "Static_members_cannot_reference_class_type_parameters_2302", "Static members cannot reference class type parameters."),
        Circular_definition_of_import_alias_0: T(2303, 1, "Circular_definition_of_import_alias_0_2303", "Circular definition of import alias '{0}'."),
        Cannot_find_name_0: T(2304, 1, "Cannot_find_name_0_2304", "Cannot find name '{0}'."),
        Module_0_has_no_exported_member_1: T(2305, 1, "Module_0_has_no_exported_member_1_2305", "Module '{0}' has no exported member '{1}'."),
        File_0_is_not_a_module: T(2306, 1, "File_0_is_not_a_module_2306", "File '{0}' is not a module."),
        Cannot_find_module_0_or_its_corresponding_type_declarations: T(2307, 1, "Cannot_find_module_0_or_its_corresponding_type_declarations_2307", "Cannot find module '{0}' or its corresponding type declarations."),
        Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity: T(2308, 1, "Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambig_2308", "Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity."),
        An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements: T(2309, 1, "An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements_2309", "An export assignment cannot be used in a module with other exported elements."),
        Type_0_recursively_references_itself_as_a_base_type: T(2310, 1, "Type_0_recursively_references_itself_as_a_base_type_2310", "Type '{0}' recursively references itself as a base type."),
        Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function: T(2311, 1, "Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function_2311", "Cannot find name '{0}'. Did you mean to write this in an async function?"),
        An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members: T(2312, 1, "An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_me_2312", "An interface can only extend an object type or intersection of object types with statically known members."),
        Type_parameter_0_has_a_circular_constraint: T(2313, 1, "Type_parameter_0_has_a_circular_constraint_2313", "Type parameter '{0}' has a circular constraint."),
        Generic_type_0_requires_1_type_argument_s: T(2314, 1, "Generic_type_0_requires_1_type_argument_s_2314", "Generic type '{0}' requires {1} type argument(s)."),
        Type_0_is_not_generic: T(2315, 1, "Type_0_is_not_generic_2315", "Type '{0}' is not generic."),
        Global_type_0_must_be_a_class_or_interface_type: T(2316, 1, "Global_type_0_must_be_a_class_or_interface_type_2316", "Global type '{0}' must be a class or interface type."),
        Global_type_0_must_have_1_type_parameter_s: T(2317, 1, "Global_type_0_must_have_1_type_parameter_s_2317", "Global type '{0}' must have {1} type parameter(s)."),
        Cannot_find_global_type_0: T(2318, 1, "Cannot_find_global_type_0_2318", "Cannot find global type '{0}'."),
        Named_property_0_of_types_1_and_2_are_not_identical: T(2319, 1, "Named_property_0_of_types_1_and_2_are_not_identical_2319", "Named property '{0}' of types '{1}' and '{2}' are not identical."),
        Interface_0_cannot_simultaneously_extend_types_1_and_2: T(2320, 1, "Interface_0_cannot_simultaneously_extend_types_1_and_2_2320", "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'."),
        Excessive_stack_depth_comparing_types_0_and_1: T(2321, 1, "Excessive_stack_depth_comparing_types_0_and_1_2321", "Excessive stack depth comparing types '{0}' and '{1}'."),
        Type_0_is_not_assignable_to_type_1: T(2322, 1, "Type_0_is_not_assignable_to_type_1_2322", "Type '{0}' is not assignable to type '{1}'."),
        Cannot_redeclare_exported_variable_0: T(2323, 1, "Cannot_redeclare_exported_variable_0_2323", "Cannot redeclare exported variable '{0}'."),
        Property_0_is_missing_in_type_1: T(2324, 1, "Property_0_is_missing_in_type_1_2324", "Property '{0}' is missing in type '{1}'."),
        Property_0_is_private_in_type_1_but_not_in_type_2: T(2325, 1, "Property_0_is_private_in_type_1_but_not_in_type_2_2325", "Property '{0}' is private in type '{1}' but not in type '{2}'."),
        Types_of_property_0_are_incompatible: T(2326, 1, "Types_of_property_0_are_incompatible_2326", "Types of property '{0}' are incompatible."),
        Property_0_is_optional_in_type_1_but_required_in_type_2: T(2327, 1, "Property_0_is_optional_in_type_1_but_required_in_type_2_2327", "Property '{0}' is optional in type '{1}' but required in type '{2}'."),
        Types_of_parameters_0_and_1_are_incompatible: T(2328, 1, "Types_of_parameters_0_and_1_are_incompatible_2328", "Types of parameters '{0}' and '{1}' are incompatible."),
        Index_signature_for_type_0_is_missing_in_type_1: T(2329, 1, "Index_signature_for_type_0_is_missing_in_type_1_2329", "Index signature for type '{0}' is missing in type '{1}'."),
        _0_and_1_index_signatures_are_incompatible: T(2330, 1, "_0_and_1_index_signatures_are_incompatible_2330", "'{0}' and '{1}' index signatures are incompatible."),
        this_cannot_be_referenced_in_a_module_or_namespace_body: T(2331, 1, "this_cannot_be_referenced_in_a_module_or_namespace_body_2331", "'this' cannot be referenced in a module or namespace body."),
        this_cannot_be_referenced_in_current_location: T(2332, 1, "this_cannot_be_referenced_in_current_location_2332", "'this' cannot be referenced in current location."),
        this_cannot_be_referenced_in_constructor_arguments: T(2333, 1, "this_cannot_be_referenced_in_constructor_arguments_2333", "'this' cannot be referenced in constructor arguments."),
        this_cannot_be_referenced_in_a_static_property_initializer: T(2334, 1, "this_cannot_be_referenced_in_a_static_property_initializer_2334", "'this' cannot be referenced in a static property initializer."),
        super_can_only_be_referenced_in_a_derived_class: T(2335, 1, "super_can_only_be_referenced_in_a_derived_class_2335", "'super' can only be referenced in a derived class."),
        super_cannot_be_referenced_in_constructor_arguments: T(2336, 1, "super_cannot_be_referenced_in_constructor_arguments_2336", "'super' cannot be referenced in constructor arguments."),
        Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: T(2337, 1, "Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors_2337", "Super calls are not permitted outside constructors or in nested functions inside constructors."),
        super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: T(2338, 1, "super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_der_2338", "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class."),
        Property_0_does_not_exist_on_type_1: T(2339, 1, "Property_0_does_not_exist_on_type_1_2339", "Property '{0}' does not exist on type '{1}'."),
        Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword: T(2340, 1, "Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340", "Only public and protected methods of the base class are accessible via the 'super' keyword."),
        Property_0_is_private_and_only_accessible_within_class_1: T(2341, 1, "Property_0_is_private_and_only_accessible_within_class_1_2341", "Property '{0}' is private and only accessible within class '{1}'."),
        This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0: T(2343, 1, "This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343", "This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'."),
        Type_0_does_not_satisfy_the_constraint_1: T(2344, 1, "Type_0_does_not_satisfy_the_constraint_1_2344", "Type '{0}' does not satisfy the constraint '{1}'."),
        Argument_of_type_0_is_not_assignable_to_parameter_of_type_1: T(2345, 1, "Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345", "Argument of type '{0}' is not assignable to parameter of type '{1}'."),
        Call_target_does_not_contain_any_signatures: T(2346, 1, "Call_target_does_not_contain_any_signatures_2346", "Call target does not contain any signatures."),
        Untyped_function_calls_may_not_accept_type_arguments: T(2347, 1, "Untyped_function_calls_may_not_accept_type_arguments_2347", "Untyped function calls may not accept type arguments."),
        Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: T(2348, 1, "Value_of_type_0_is_not_callable_Did_you_mean_to_include_new_2348", "Value of type '{0}' is not callable. Did you mean to include 'new'?"),
        This_expression_is_not_callable: T(2349, 1, "This_expression_is_not_callable_2349", "This expression is not callable."),
        Only_a_void_function_can_be_called_with_the_new_keyword: T(2350, 1, "Only_a_void_function_can_be_called_with_the_new_keyword_2350", "Only a void function can be called with the 'new' keyword."),
        This_expression_is_not_constructable: T(2351, 1, "This_expression_is_not_constructable_2351", "This expression is not constructable."),
        Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first: T(2352, 1, "Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the__2352", "Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first."),
        Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1: T(2353, 1, "Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1_2353", "Object literal may only specify known properties, and '{0}' does not exist in type '{1}'."),
        This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found: T(2354, 1, "This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354", "This syntax requires an imported helper but module '{0}' cannot be found."),
        A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value: T(2355, 1, "A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_2355", "A function whose declared type is neither 'void' nor 'any' must return a value."),
        An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type: T(2356, 1, "An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type_2356", "An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type."),
        The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access: T(2357, 1, "The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access_2357", "The operand of an increment or decrement operator must be a variable or a property access."),
        The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: T(2358, 1, "The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_paramete_2358", "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter."),
        The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type: T(2359, 1, "The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_F_2359", "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type."),
        The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type: T(2362, 1, "The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2362", "The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."),
        The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type: T(2363, 1, "The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2363", "The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."),
        The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access: T(2364, 1, "The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access_2364", "The left-hand side of an assignment expression must be a variable or a property access."),
        Operator_0_cannot_be_applied_to_types_1_and_2: T(2365, 1, "Operator_0_cannot_be_applied_to_types_1_and_2_2365", "Operator '{0}' cannot be applied to types '{1}' and '{2}'."),
        Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined: T(2366, 1, "Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined_2366", "Function lacks ending return statement and return type does not include 'undefined'."),
        This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap: T(2367, 1, "This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap_2367", "This comparison appears to be unintentional because the types '{0}' and '{1}' have no overlap."),
        Type_parameter_name_cannot_be_0: T(2368, 1, "Type_parameter_name_cannot_be_0_2368", "Type parameter name cannot be '{0}'."),
        A_parameter_property_is_only_allowed_in_a_constructor_implementation: T(2369, 1, "A_parameter_property_is_only_allowed_in_a_constructor_implementation_2369", "A parameter property is only allowed in a constructor implementation."),
        A_rest_parameter_must_be_of_an_array_type: T(2370, 1, "A_rest_parameter_must_be_of_an_array_type_2370", "A rest parameter must be of an array type."),
        A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: T(2371, 1, "A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation_2371", "A parameter initializer is only allowed in a function or constructor implementation."),
        Parameter_0_cannot_reference_itself: T(2372, 1, "Parameter_0_cannot_reference_itself_2372", "Parameter '{0}' cannot reference itself."),
        Parameter_0_cannot_reference_identifier_1_declared_after_it: T(2373, 1, "Parameter_0_cannot_reference_identifier_1_declared_after_it_2373", "Parameter '{0}' cannot reference identifier '{1}' declared after it."),
        Duplicate_index_signature_for_type_0: T(2374, 1, "Duplicate_index_signature_for_type_0_2374", "Duplicate index signature for type '{0}'."),
        Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties: T(2375, 1, "Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2375", "Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."),
        A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers: T(2376, 1, "A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_2376", "A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers."),
        Constructors_for_derived_classes_must_contain_a_super_call: T(2377, 1, "Constructors_for_derived_classes_must_contain_a_super_call_2377", "Constructors for derived classes must contain a 'super' call."),
        A_get_accessor_must_return_a_value: T(2378, 1, "A_get_accessor_must_return_a_value_2378", "A 'get' accessor must return a value."),
        Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties: T(2379, 1, "Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_tr_2379", "Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."),
        The_return_type_of_a_get_accessor_must_be_assignable_to_its_set_accessor_type: T(2380, 1, "The_return_type_of_a_get_accessor_must_be_assignable_to_its_set_accessor_type_2380", "The return type of a 'get' accessor must be assignable to its 'set' accessor type"),
        Overload_signatures_must_all_be_exported_or_non_exported: T(2383, 1, "Overload_signatures_must_all_be_exported_or_non_exported_2383", "Overload signatures must all be exported or non-exported."),
        Overload_signatures_must_all_be_ambient_or_non_ambient: T(2384, 1, "Overload_signatures_must_all_be_ambient_or_non_ambient_2384", "Overload signatures must all be ambient or non-ambient."),
        Overload_signatures_must_all_be_public_private_or_protected: T(2385, 1, "Overload_signatures_must_all_be_public_private_or_protected_2385", "Overload signatures must all be public, private or protected."),
        Overload_signatures_must_all_be_optional_or_required: T(2386, 1, "Overload_signatures_must_all_be_optional_or_required_2386", "Overload signatures must all be optional or required."),
        Function_overload_must_be_static: T(2387, 1, "Function_overload_must_be_static_2387", "Function overload must be static."),
        Function_overload_must_not_be_static: T(2388, 1, "Function_overload_must_not_be_static_2388", "Function overload must not be static."),
        Function_implementation_name_must_be_0: T(2389, 1, "Function_implementation_name_must_be_0_2389", "Function implementation name must be '{0}'."),
        Constructor_implementation_is_missing: T(2390, 1, "Constructor_implementation_is_missing_2390", "Constructor implementation is missing."),
        Function_implementation_is_missing_or_not_immediately_following_the_declaration: T(2391, 1, "Function_implementation_is_missing_or_not_immediately_following_the_declaration_2391", "Function implementation is missing or not immediately following the declaration."),
        Multiple_constructor_implementations_are_not_allowed: T(2392, 1, "Multiple_constructor_implementations_are_not_allowed_2392", "Multiple constructor implementations are not allowed."),
        Duplicate_function_implementation: T(2393, 1, "Duplicate_function_implementation_2393", "Duplicate function implementation."),
        This_overload_signature_is_not_compatible_with_its_implementation_signature: T(2394, 1, "This_overload_signature_is_not_compatible_with_its_implementation_signature_2394", "This overload signature is not compatible with its implementation signature."),
        Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local: T(2395, 1, "Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395", "Individual declarations in merged declaration '{0}' must be all exported or all local."),
        Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: T(2396, 1, "Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters_2396", "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters."),
        Declaration_name_conflicts_with_built_in_global_identifier_0: T(2397, 1, "Declaration_name_conflicts_with_built_in_global_identifier_0_2397", "Declaration name conflicts with built-in global identifier '{0}'."),
        constructor_cannot_be_used_as_a_parameter_property_name: T(2398, 1, "constructor_cannot_be_used_as_a_parameter_property_name_2398", "'constructor' cannot be used as a parameter property name."),
        Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: T(2399, 1, "Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference_2399", "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference."),
        Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: T(2400, 1, "Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference_2400", "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference."),
        A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers: T(2401, 1, "A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_in_2401", "A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers."),
        Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: T(2402, 1, "Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference_2402", "Expression resolves to '_super' that compiler uses to capture base class reference."),
        Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: T(2403, 1, "Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_t_2403", "Subsequent variable declarations must have the same type.  Variable '{0}' must be of type '{1}', but here has type '{2}'."),
        The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation: T(2404, 1, "The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation_2404", "The left-hand side of a 'for...in' statement cannot use a type annotation."),
        The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any: T(2405, 1, "The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any_2405", "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'."),
        The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access: T(2406, 1, "The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access_2406", "The left-hand side of a 'for...in' statement must be a variable or a property access."),
        The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0: T(2407, 1, "The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_2407", "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'."),
        Setters_cannot_return_a_value: T(2408, 1, "Setters_cannot_return_a_value_2408", "Setters cannot return a value."),
        Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: T(2409, 1, "Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class_2409", "Return type of constructor signature must be assignable to the instance type of the class."),
        The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any: T(2410, 1, "The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any_2410", "The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'."),
        Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target: T(2412, 1, "Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2412", "Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target."),
        Property_0_of_type_1_is_not_assignable_to_2_index_type_3: T(2411, 1, "Property_0_of_type_1_is_not_assignable_to_2_index_type_3_2411", "Property '{0}' of type '{1}' is not assignable to '{2}' index type '{3}'."),
        _0_index_type_1_is_not_assignable_to_2_index_type_3: T(2413, 1, "_0_index_type_1_is_not_assignable_to_2_index_type_3_2413", "'{0}' index type '{1}' is not assignable to '{2}' index type '{3}'."),
        Class_name_cannot_be_0: T(2414, 1, "Class_name_cannot_be_0_2414", "Class name cannot be '{0}'."),
        Class_0_incorrectly_extends_base_class_1: T(2415, 1, "Class_0_incorrectly_extends_base_class_1_2415", "Class '{0}' incorrectly extends base class '{1}'."),
        Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2: T(2416, 1, "Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2_2416", "Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'."),
        Class_static_side_0_incorrectly_extends_base_class_static_side_1: T(2417, 1, "Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417", "Class static side '{0}' incorrectly extends base class static side '{1}'."),
        Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1: T(2418, 1, "Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1_2418", "Type of computed property's value is '{0}', which is not assignable to type '{1}'."),
        Types_of_construct_signatures_are_incompatible: T(2419, 1, "Types_of_construct_signatures_are_incompatible_2419", "Types of construct signatures are incompatible."),
        Class_0_incorrectly_implements_interface_1: T(2420, 1, "Class_0_incorrectly_implements_interface_1_2420", "Class '{0}' incorrectly implements interface '{1}'."),
        A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members: T(2422, 1, "A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_memb_2422", "A class can only implement an object type or intersection of object types with statically known members."),
        Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor: T(2423, 1, "Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_access_2423", "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor."),
        Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: T(2425, 1, "Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_functi_2425", "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function."),
        Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function: T(2426, 1, "Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_functi_2426", "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function."),
        Interface_name_cannot_be_0: T(2427, 1, "Interface_name_cannot_be_0_2427", "Interface name cannot be '{0}'."),
        All_declarations_of_0_must_have_identical_type_parameters: T(2428, 1, "All_declarations_of_0_must_have_identical_type_parameters_2428", "All declarations of '{0}' must have identical type parameters."),
        Interface_0_incorrectly_extends_interface_1: T(2430, 1, "Interface_0_incorrectly_extends_interface_1_2430", "Interface '{0}' incorrectly extends interface '{1}'."),
        Enum_name_cannot_be_0: T(2431, 1, "Enum_name_cannot_be_0_2431", "Enum name cannot be '{0}'."),
        In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element: T(2432, 1, "In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enu_2432", "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element."),
        A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged: T(2433, 1, "A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merg_2433", "A namespace declaration cannot be in a different file from a class or function with which it is merged."),
        A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged: T(2434, 1, "A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged_2434", "A namespace declaration cannot be located prior to a class or function with which it is merged."),
        Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces: T(2435, 1, "Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces_2435", "Ambient modules cannot be nested in other modules or namespaces."),
        Ambient_module_declaration_cannot_specify_relative_module_name: T(2436, 1, "Ambient_module_declaration_cannot_specify_relative_module_name_2436", "Ambient module declaration cannot specify relative module name."),
        Module_0_is_hidden_by_a_local_declaration_with_the_same_name: T(2437, 1, "Module_0_is_hidden_by_a_local_declaration_with_the_same_name_2437", "Module '{0}' is hidden by a local declaration with the same name."),
        Import_name_cannot_be_0: T(2438, 1, "Import_name_cannot_be_0_2438", "Import name cannot be '{0}'."),
        Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name: T(2439, 1, "Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relati_2439", "Import or export declaration in an ambient module declaration cannot reference module through relative module name."),
        Import_declaration_conflicts_with_local_declaration_of_0: T(2440, 1, "Import_declaration_conflicts_with_local_declaration_of_0_2440", "Import declaration conflicts with local declaration of '{0}'."),
        Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module: T(2441, 1, "Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_2441", "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module."),
        Types_have_separate_declarations_of_a_private_property_0: T(2442, 1, "Types_have_separate_declarations_of_a_private_property_0_2442", "Types have separate declarations of a private property '{0}'."),
        Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2: T(2443, 1, "Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2_2443", "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'."),
        Property_0_is_protected_in_type_1_but_public_in_type_2: T(2444, 1, "Property_0_is_protected_in_type_1_but_public_in_type_2_2444", "Property '{0}' is protected in type '{1}' but public in type '{2}'."),
        Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: T(2445, 1, "Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses_2445", "Property '{0}' is protected and only accessible within class '{1}' and its subclasses."),
        Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2: T(2446, 1, "Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_cl_2446", "Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'."),
        The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: T(2447, 1, "The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead_2447", "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead."),
        Block_scoped_variable_0_used_before_its_declaration: T(2448, 1, "Block_scoped_variable_0_used_before_its_declaration_2448", "Block-scoped variable '{0}' used before its declaration."),
        Class_0_used_before_its_declaration: T(2449, 1, "Class_0_used_before_its_declaration_2449", "Class '{0}' used before its declaration."),
        Enum_0_used_before_its_declaration: T(2450, 1, "Enum_0_used_before_its_declaration_2450", "Enum '{0}' used before its declaration."),
        Cannot_redeclare_block_scoped_variable_0: T(2451, 1, "Cannot_redeclare_block_scoped_variable_0_2451", "Cannot redeclare block-scoped variable '{0}'."),
        An_enum_member_cannot_have_a_numeric_name: T(2452, 1, "An_enum_member_cannot_have_a_numeric_name_2452", "An enum member cannot have a numeric name."),
        Variable_0_is_used_before_being_assigned: T(2454, 1, "Variable_0_is_used_before_being_assigned_2454", "Variable '{0}' is used before being assigned."),
        Type_alias_0_circularly_references_itself: T(2456, 1, "Type_alias_0_circularly_references_itself_2456", "Type alias '{0}' circularly references itself."),
        Type_alias_name_cannot_be_0: T(2457, 1, "Type_alias_name_cannot_be_0_2457", "Type alias name cannot be '{0}'."),
        An_AMD_module_cannot_have_multiple_name_assignments: T(2458, 1, "An_AMD_module_cannot_have_multiple_name_assignments_2458", "An AMD module cannot have multiple name assignments."),
        Module_0_declares_1_locally_but_it_is_not_exported: T(2459, 1, "Module_0_declares_1_locally_but_it_is_not_exported_2459", "Module '{0}' declares '{1}' locally, but it is not exported."),
        Module_0_declares_1_locally_but_it_is_exported_as_2: T(2460, 1, "Module_0_declares_1_locally_but_it_is_exported_as_2_2460", "Module '{0}' declares '{1}' locally, but it is exported as '{2}'."),
        Type_0_is_not_an_array_type: T(2461, 1, "Type_0_is_not_an_array_type_2461", "Type '{0}' is not an array type."),
        A_rest_element_must_be_last_in_a_destructuring_pattern: T(2462, 1, "A_rest_element_must_be_last_in_a_destructuring_pattern_2462", "A rest element must be last in a destructuring pattern."),
        A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: T(2463, 1, "A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature_2463", "A binding pattern parameter cannot be optional in an implementation signature."),
        A_computed_property_name_must_be_of_type_string_number_symbol_or_any: T(2464, 1, "A_computed_property_name_must_be_of_type_string_number_symbol_or_any_2464", "A computed property name must be of type 'string', 'number', 'symbol', or 'any'."),
        this_cannot_be_referenced_in_a_computed_property_name: T(2465, 1, "this_cannot_be_referenced_in_a_computed_property_name_2465", "'this' cannot be referenced in a computed property name."),
        super_cannot_be_referenced_in_a_computed_property_name: T(2466, 1, "super_cannot_be_referenced_in_a_computed_property_name_2466", "'super' cannot be referenced in a computed property name."),
        A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: T(2467, 1, "A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type_2467", "A computed property name cannot reference a type parameter from its containing type."),
        Cannot_find_global_value_0: T(2468, 1, "Cannot_find_global_value_0_2468", "Cannot find global value '{0}'."),
        The_0_operator_cannot_be_applied_to_type_symbol: T(2469, 1, "The_0_operator_cannot_be_applied_to_type_symbol_2469", "The '{0}' operator cannot be applied to type 'symbol'."),
        Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher: T(2472, 1, "Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher_2472", "Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher."),
        Enum_declarations_must_all_be_const_or_non_const: T(2473, 1, "Enum_declarations_must_all_be_const_or_non_const_2473", "Enum declarations must all be const or non-const."),
        const_enum_member_initializers_must_be_constant_expressions: T(2474, 1, "const_enum_member_initializers_must_be_constant_expressions_2474", "const enum member initializers must be constant expressions."),
        const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query: T(2475, 1, "const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_im_2475", "'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query."),
        A_const_enum_member_can_only_be_accessed_using_a_string_literal: T(2476, 1, "A_const_enum_member_can_only_be_accessed_using_a_string_literal_2476", "A const enum member can only be accessed using a string literal."),
        const_enum_member_initializer_was_evaluated_to_a_non_finite_value: T(2477, 1, "const_enum_member_initializer_was_evaluated_to_a_non_finite_value_2477", "'const' enum member initializer was evaluated to a non-finite value."),
        const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: T(2478, 1, "const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN_2478", "'const' enum member initializer was evaluated to disallowed value 'NaN'."),
        let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations: T(2480, 1, "let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations_2480", "'let' is not allowed to be used as a name in 'let' or 'const' declarations."),
        Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1: T(2481, 1, "Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1_2481", "Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'."),
        The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation: T(2483, 1, "The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation_2483", "The left-hand side of a 'for...of' statement cannot use a type annotation."),
        Export_declaration_conflicts_with_exported_declaration_of_0: T(2484, 1, "Export_declaration_conflicts_with_exported_declaration_of_0_2484", "Export declaration conflicts with exported declaration of '{0}'."),
        The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access: T(2487, 1, "The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access_2487", "The left-hand side of a 'for...of' statement must be a variable or a property access."),
        Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator: T(2488, 1, "Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488", "Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator."),
        An_iterator_must_have_a_next_method: T(2489, 1, "An_iterator_must_have_a_next_method_2489", "An iterator must have a 'next()' method."),
        The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property: T(2490, 1, "The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490", "The type returned by the '{0}()' method of an iterator must have a 'value' property."),
        The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern: T(2491, 1, "The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern_2491", "The left-hand side of a 'for...in' statement cannot be a destructuring pattern."),
        Cannot_redeclare_identifier_0_in_catch_clause: T(2492, 1, "Cannot_redeclare_identifier_0_in_catch_clause_2492", "Cannot redeclare identifier '{0}' in catch clause."),
        Tuple_type_0_of_length_1_has_no_element_at_index_2: T(2493, 1, "Tuple_type_0_of_length_1_has_no_element_at_index_2_2493", "Tuple type '{0}' of length '{1}' has no element at index '{2}'."),
        Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher: T(2494, 1, "Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher_2494", "Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher."),
        Type_0_is_not_an_array_type_or_a_string_type: T(2495, 1, "Type_0_is_not_an_array_type_or_a_string_type_2495", "Type '{0}' is not an array type or a string type."),
        The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression: T(2496, 1, "The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_stand_2496", "The 'arguments' object cannot be referenced in an arrow function in ES3 and ES5. Consider using a standard function expression."),
        This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export: T(2497, 1, "This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_2497", "This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export."),
        Module_0_uses_export_and_cannot_be_used_with_export_Asterisk: T(2498, 1, "Module_0_uses_export_and_cannot_be_used_with_export_Asterisk_2498", "Module '{0}' uses 'export =' and cannot be used with 'export *'."),
        An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments: T(2499, 1, "An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments_2499", "An interface can only extend an identifier/qualified-name with optional type arguments."),
        A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments: T(2500, 1, "A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments_2500", "A class can only implement an identifier/qualified-name with optional type arguments."),
        A_rest_element_cannot_contain_a_binding_pattern: T(2501, 1, "A_rest_element_cannot_contain_a_binding_pattern_2501", "A rest element cannot contain a binding pattern."),
        _0_is_referenced_directly_or_indirectly_in_its_own_type_annotation: T(2502, 1, "_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation_2502", "'{0}' is referenced directly or indirectly in its own type annotation."),
        Cannot_find_namespace_0: T(2503, 1, "Cannot_find_namespace_0_2503", "Cannot find namespace '{0}'."),
        Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator: T(2504, 1, "Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504", "Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator."),
        A_generator_cannot_have_a_void_type_annotation: T(2505, 1, "A_generator_cannot_have_a_void_type_annotation_2505", "A generator cannot have a 'void' type annotation."),
        _0_is_referenced_directly_or_indirectly_in_its_own_base_expression: T(2506, 1, "_0_is_referenced_directly_or_indirectly_in_its_own_base_expression_2506", "'{0}' is referenced directly or indirectly in its own base expression."),
        Type_0_is_not_a_constructor_function_type: T(2507, 1, "Type_0_is_not_a_constructor_function_type_2507", "Type '{0}' is not a constructor function type."),
        No_base_constructor_has_the_specified_number_of_type_arguments: T(2508, 1, "No_base_constructor_has_the_specified_number_of_type_arguments_2508", "No base constructor has the specified number of type arguments."),
        Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members: T(2509, 1, "Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_2509", "Base constructor return type '{0}' is not an object type or intersection of object types with statically known members."),
        Base_constructors_must_all_have_the_same_return_type: T(2510, 1, "Base_constructors_must_all_have_the_same_return_type_2510", "Base constructors must all have the same return type."),
        Cannot_create_an_instance_of_an_abstract_class: T(2511, 1, "Cannot_create_an_instance_of_an_abstract_class_2511", "Cannot create an instance of an abstract class."),
        Overload_signatures_must_all_be_abstract_or_non_abstract: T(2512, 1, "Overload_signatures_must_all_be_abstract_or_non_abstract_2512", "Overload signatures must all be abstract or non-abstract."),
        Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression: T(2513, 1, "Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513", "Abstract method '{0}' in class '{1}' cannot be accessed via super expression."),
        A_tuple_type_cannot_be_indexed_with_a_negative_value: T(2514, 1, "A_tuple_type_cannot_be_indexed_with_a_negative_value_2514", "A tuple type cannot be indexed with a negative value."),
        Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2: T(2515, 1, "Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2_2515", "Non-abstract class '{0}' does not implement inherited abstract member '{1}' from class '{2}'."),
        All_declarations_of_an_abstract_method_must_be_consecutive: T(2516, 1, "All_declarations_of_an_abstract_method_must_be_consecutive_2516", "All declarations of an abstract method must be consecutive."),
        Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type: T(2517, 1, "Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517", "Cannot assign an abstract constructor type to a non-abstract constructor type."),
        A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard: T(2518, 1, "A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518", "A 'this'-based type guard is not compatible with a parameter-based type guard."),
        An_async_iterator_must_have_a_next_method: T(2519, 1, "An_async_iterator_must_have_a_next_method_2519", "An async iterator must have a 'next()' method."),
        Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions: T(2520, 1, "Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520", "Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions."),
        The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method: T(2522, 1, "The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_usi_2522", "The 'arguments' object cannot be referenced in an async function or method in ES3 and ES5. Consider using a standard function or method."),
        yield_expressions_cannot_be_used_in_a_parameter_initializer: T(2523, 1, "yield_expressions_cannot_be_used_in_a_parameter_initializer_2523", "'yield' expressions cannot be used in a parameter initializer."),
        await_expressions_cannot_be_used_in_a_parameter_initializer: T(2524, 1, "await_expressions_cannot_be_used_in_a_parameter_initializer_2524", "'await' expressions cannot be used in a parameter initializer."),
        Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value: T(2525, 1, "Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value_2525", "Initializer provides no value for this binding element and the binding element has no default value."),
        A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface: T(2526, 1, "A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface_2526", "A 'this' type is available only in a non-static member of a class or interface."),
        The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary: T(2527, 1, "The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary_2527", "The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary."),
        A_module_cannot_have_multiple_default_exports: T(2528, 1, "A_module_cannot_have_multiple_default_exports_2528", "A module cannot have multiple default exports."),
        Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions: T(2529, 1, "Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_func_2529", "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions."),
        Property_0_is_incompatible_with_index_signature: T(2530, 1, "Property_0_is_incompatible_with_index_signature_2530", "Property '{0}' is incompatible with index signature."),
        Object_is_possibly_null: T(2531, 1, "Object_is_possibly_null_2531", "Object is possibly 'null'."),
        Object_is_possibly_undefined: T(2532, 1, "Object_is_possibly_undefined_2532", "Object is possibly 'undefined'."),
        Object_is_possibly_null_or_undefined: T(2533, 1, "Object_is_possibly_null_or_undefined_2533", "Object is possibly 'null' or 'undefined'."),
        A_function_returning_never_cannot_have_a_reachable_end_point: T(2534, 1, "A_function_returning_never_cannot_have_a_reachable_end_point_2534", "A function returning 'never' cannot have a reachable end point."),
        Type_0_cannot_be_used_to_index_type_1: T(2536, 1, "Type_0_cannot_be_used_to_index_type_1_2536", "Type '{0}' cannot be used to index type '{1}'."),
        Type_0_has_no_matching_index_signature_for_type_1: T(2537, 1, "Type_0_has_no_matching_index_signature_for_type_1_2537", "Type '{0}' has no matching index signature for type '{1}'."),
        Type_0_cannot_be_used_as_an_index_type: T(2538, 1, "Type_0_cannot_be_used_as_an_index_type_2538", "Type '{0}' cannot be used as an index type."),
        Cannot_assign_to_0_because_it_is_not_a_variable: T(2539, 1, "Cannot_assign_to_0_because_it_is_not_a_variable_2539", "Cannot assign to '{0}' because it is not a variable."),
        Cannot_assign_to_0_because_it_is_a_read_only_property: T(2540, 1, "Cannot_assign_to_0_because_it_is_a_read_only_property_2540", "Cannot assign to '{0}' because it is a read-only property."),
        Index_signature_in_type_0_only_permits_reading: T(2542, 1, "Index_signature_in_type_0_only_permits_reading_2542", "Index signature in type '{0}' only permits reading."),
        Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference: T(2543, 1, "Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_me_2543", "Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference."),
        Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference: T(2544, 1, "Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta__2544", "Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference."),
        A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any: T(2545, 1, "A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any_2545", "A mixin class must have a constructor with a single rest parameter of type 'any[]'."),
        The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property: T(2547, 1, "The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547", "The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property."),
        Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator: T(2548, 1, "Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548", "Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator."),
        Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator: T(2549, 1, "Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549", "Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator."),
        Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later: T(2550, 1, "Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550", "Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later."),
        Property_0_does_not_exist_on_type_1_Did_you_mean_2: T(2551, 1, "Property_0_does_not_exist_on_type_1_Did_you_mean_2_2551", "Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?"),
        Cannot_find_name_0_Did_you_mean_1: T(2552, 1, "Cannot_find_name_0_Did_you_mean_1_2552", "Cannot find name '{0}'. Did you mean '{1}'?"),
        Computed_values_are_not_permitted_in_an_enum_with_string_valued_members: T(2553, 1, "Computed_values_are_not_permitted_in_an_enum_with_string_valued_members_2553", "Computed values are not permitted in an enum with string valued members."),
        Expected_0_arguments_but_got_1: T(2554, 1, "Expected_0_arguments_but_got_1_2554", "Expected {0} arguments, but got {1}."),
        Expected_at_least_0_arguments_but_got_1: T(2555, 1, "Expected_at_least_0_arguments_but_got_1_2555", "Expected at least {0} arguments, but got {1}."),
        A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter: T(2556, 1, "A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter_2556", "A spread argument must either have a tuple type or be passed to a rest parameter."),
        Expected_0_type_arguments_but_got_1: T(2558, 1, "Expected_0_type_arguments_but_got_1_2558", "Expected {0} type arguments, but got {1}."),
        Type_0_has_no_properties_in_common_with_type_1: T(2559, 1, "Type_0_has_no_properties_in_common_with_type_1_2559", "Type '{0}' has no properties in common with type '{1}'."),
        Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it: T(2560, 1, "Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it_2560", "Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?"),
        Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2: T(2561, 1, "Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_writ_2561", "Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?"),
        Base_class_expressions_cannot_reference_class_type_parameters: T(2562, 1, "Base_class_expressions_cannot_reference_class_type_parameters_2562", "Base class expressions cannot reference class type parameters."),
        The_containing_function_or_module_body_is_too_large_for_control_flow_analysis: T(2563, 1, "The_containing_function_or_module_body_is_too_large_for_control_flow_analysis_2563", "The containing function or module body is too large for control flow analysis."),
        Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor: T(2564, 1, "Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor_2564", "Property '{0}' has no initializer and is not definitely assigned in the constructor."),
        Property_0_is_used_before_being_assigned: T(2565, 1, "Property_0_is_used_before_being_assigned_2565", "Property '{0}' is used before being assigned."),
        A_rest_element_cannot_have_a_property_name: T(2566, 1, "A_rest_element_cannot_have_a_property_name_2566", "A rest element cannot have a property name."),
        Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations: T(2567, 1, "Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations_2567", "Enum declarations can only merge with namespace or other enum declarations."),
        Property_0_may_not_exist_on_type_1_Did_you_mean_2: T(2568, 1, "Property_0_may_not_exist_on_type_1_Did_you_mean_2_2568", "Property '{0}' may not exist on type '{1}'. Did you mean '{2}'?"),
        Could_not_find_name_0_Did_you_mean_1: T(2570, 1, "Could_not_find_name_0_Did_you_mean_1_2570", "Could not find name '{0}'. Did you mean '{1}'?"),
        Object_is_of_type_unknown: T(2571, 1, "Object_is_of_type_unknown_2571", "Object is of type 'unknown'."),
        A_rest_element_type_must_be_an_array_type: T(2574, 1, "A_rest_element_type_must_be_an_array_type_2574", "A rest element type must be an array type."),
        No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments: T(2575, 1, "No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments_2575", "No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments."),
        Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead: T(2576, 1, "Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead_2576", "Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?"),
        Return_type_annotation_circularly_references_itself: T(2577, 1, "Return_type_annotation_circularly_references_itself_2577", "Return type annotation circularly references itself."),
        Unused_ts_expect_error_directive: T(2578, 1, "Unused_ts_expect_error_directive_2578", "Unused '@ts-expect-error' directive."),
        Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode: T(2580, 1, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2580", "Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`."),
        Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery: T(2581, 1, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2581", "Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`."),
        Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha: T(2582, 1, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2582", "Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`."),
        Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later: T(2583, 1, "Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2583", "Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later."),
        Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom: T(2584, 1, "Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584", "Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'."),
        _0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later: T(2585, 1, "_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585", "'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later."),
        Cannot_assign_to_0_because_it_is_a_constant: T(2588, 1, "Cannot_assign_to_0_because_it_is_a_constant_2588", "Cannot assign to '{0}' because it is a constant."),
        Type_instantiation_is_excessively_deep_and_possibly_infinite: T(2589, 1, "Type_instantiation_is_excessively_deep_and_possibly_infinite_2589", "Type instantiation is excessively deep and possibly infinite."),
        Expression_produces_a_union_type_that_is_too_complex_to_represent: T(2590, 1, "Expression_produces_a_union_type_that_is_too_complex_to_represent_2590", "Expression produces a union type that is too complex to represent."),
        Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig: T(2591, 1, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2591", "Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig."),
        Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig: T(2592, 1, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2592", "Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig."),
        Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig: T(2593, 1, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2593", "Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig."),
        This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag: T(2594, 1, "This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag_2594", "This module is declared with 'export =', and can only be used with a default import when using the '{0}' flag."),
        _0_can_only_be_imported_by_using_a_default_import: T(2595, 1, "_0_can_only_be_imported_by_using_a_default_import_2595", "'{0}' can only be imported by using a default import."),
        _0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import: T(2596, 1, "_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import_2596", "'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import."),
        _0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import: T(2597, 1, "_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import_2597", "'{0}' can only be imported by using a 'require' call or by using a default import."),
        _0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import: T(2598, 1, "_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using__2598", "'{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import."),
        JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist: T(2602, 1, "JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602", "JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist."),
        Property_0_in_type_1_is_not_assignable_to_type_2: T(2603, 1, "Property_0_in_type_1_is_not_assignable_to_type_2_2603", "Property '{0}' in type '{1}' is not assignable to type '{2}'."),
        JSX_element_type_0_does_not_have_any_construct_or_call_signatures: T(2604, 1, "JSX_element_type_0_does_not_have_any_construct_or_call_signatures_2604", "JSX element type '{0}' does not have any construct or call signatures."),
        Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property: T(2606, 1, "Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property_2606", "Property '{0}' of JSX spread attribute is not assignable to target property."),
        JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property: T(2607, 1, "JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607", "JSX element class does not support attributes because it does not have a '{0}' property."),
        The_global_type_JSX_0_may_not_have_more_than_one_property: T(2608, 1, "The_global_type_JSX_0_may_not_have_more_than_one_property_2608", "The global type 'JSX.{0}' may not have more than one property."),
        JSX_spread_child_must_be_an_array_type: T(2609, 1, "JSX_spread_child_must_be_an_array_type_2609", "JSX spread child must be an array type."),
        _0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property: T(2610, 1, "_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property_2610", "'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property."),
        _0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor: T(2611, 1, "_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor_2611", "'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor."),
        Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration: T(2612, 1, "Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_2612", "Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration."),
        Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead: T(2613, 1, "Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead_2613", "Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?"),
        Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead: T(2614, 1, "Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead_2614", "Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?"),
        Type_of_property_0_circularly_references_itself_in_mapped_type_1: T(2615, 1, "Type_of_property_0_circularly_references_itself_in_mapped_type_1_2615", "Type of property '{0}' circularly references itself in mapped type '{1}'."),
        _0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import: T(2616, 1, "_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import_2616", "'{0}' can only be imported by using 'import {1} = require({2})' or a default import."),
        _0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import: T(2617, 1, "_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_us_2617", "'{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import."),
        Source_has_0_element_s_but_target_requires_1: T(2618, 1, "Source_has_0_element_s_but_target_requires_1_2618", "Source has {0} element(s) but target requires {1}."),
        Source_has_0_element_s_but_target_allows_only_1: T(2619, 1, "Source_has_0_element_s_but_target_allows_only_1_2619", "Source has {0} element(s) but target allows only {1}."),
        Target_requires_0_element_s_but_source_may_have_fewer: T(2620, 1, "Target_requires_0_element_s_but_source_may_have_fewer_2620", "Target requires {0} element(s) but source may have fewer."),
        Target_allows_only_0_element_s_but_source_may_have_more: T(2621, 1, "Target_allows_only_0_element_s_but_source_may_have_more_2621", "Target allows only {0} element(s) but source may have more."),
        Source_provides_no_match_for_required_element_at_position_0_in_target: T(2623, 1, "Source_provides_no_match_for_required_element_at_position_0_in_target_2623", "Source provides no match for required element at position {0} in target."),
        Source_provides_no_match_for_variadic_element_at_position_0_in_target: T(2624, 1, "Source_provides_no_match_for_variadic_element_at_position_0_in_target_2624", "Source provides no match for variadic element at position {0} in target."),
        Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target: T(2625, 1, "Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target_2625", "Variadic element at position {0} in source does not match element at position {1} in target."),
        Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target: T(2626, 1, "Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target_2626", "Type at position {0} in source is not compatible with type at position {1} in target."),
        Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target: T(2627, 1, "Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target_2627", "Type at positions {0} through {1} in source is not compatible with type at position {2} in target."),
        Cannot_assign_to_0_because_it_is_an_enum: T(2628, 1, "Cannot_assign_to_0_because_it_is_an_enum_2628", "Cannot assign to '{0}' because it is an enum."),
        Cannot_assign_to_0_because_it_is_a_class: T(2629, 1, "Cannot_assign_to_0_because_it_is_a_class_2629", "Cannot assign to '{0}' because it is a class."),
        Cannot_assign_to_0_because_it_is_a_function: T(2630, 1, "Cannot_assign_to_0_because_it_is_a_function_2630", "Cannot assign to '{0}' because it is a function."),
        Cannot_assign_to_0_because_it_is_a_namespace: T(2631, 1, "Cannot_assign_to_0_because_it_is_a_namespace_2631", "Cannot assign to '{0}' because it is a namespace."),
        Cannot_assign_to_0_because_it_is_an_import: T(2632, 1, "Cannot_assign_to_0_because_it_is_an_import_2632", "Cannot assign to '{0}' because it is an import."),
        JSX_property_access_expressions_cannot_include_JSX_namespace_names: T(2633, 1, "JSX_property_access_expressions_cannot_include_JSX_namespace_names_2633", "JSX property access expressions cannot include JSX namespace names"),
        _0_index_signatures_are_incompatible: T(2634, 1, "_0_index_signatures_are_incompatible_2634", "'{0}' index signatures are incompatible."),
        Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable: T(2635, 1, "Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635", "Type '{0}' has no signatures for which the type argument list is applicable."),
        Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation: T(2636, 1, "Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation_2636", "Type '{0}' is not assignable to type '{1}' as implied by variance annotation."),
        Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types: T(2637, 1, "Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_t_2637", "Variance annotations are only supported in type aliases for object, function, constructor, and mapped types."),
        Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator: T(2638, 1, "Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operato_2638", "Type '{0}' may represent a primitive value, which is not permitted as the right operand of the 'in' operator."),
        Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity: T(2649, 1, "Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649", "Cannot augment module '{0}' with value exports because it resolves to a non-module entity."),
        A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums: T(2651, 1, "A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651", "A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums."),
        Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead: T(2652, 1, "Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652", "Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead."),
        Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1: T(2653, 1, "Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1_2653", "Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'."),
        JSX_expressions_must_have_one_parent_element: T(2657, 1, "JSX_expressions_must_have_one_parent_element_2657", "JSX expressions must have one parent element."),
        Type_0_provides_no_match_for_the_signature_1: T(2658, 1, "Type_0_provides_no_match_for_the_signature_1_2658", "Type '{0}' provides no match for the signature '{1}'."),
        super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher: T(2659, 1, "super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659", "'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher."),
        super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions: T(2660, 1, "super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660", "'super' can only be referenced in members of derived classes or object literal expressions."),
        Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module: T(2661, 1, "Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module_2661", "Cannot export '{0}'. Only local declarations can be exported from a module."),
        Cannot_find_name_0_Did_you_mean_the_static_member_1_0: T(2662, 1, "Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662", "Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?"),
        Cannot_find_name_0_Did_you_mean_the_instance_member_this_0: T(2663, 1, "Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663", "Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?"),
        Invalid_module_name_in_augmentation_module_0_cannot_be_found: T(2664, 1, "Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664", "Invalid module name in augmentation, module '{0}' cannot be found."),
        Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented: T(2665, 1, "Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augm_2665", "Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented."),
        Exports_and_export_assignments_are_not_permitted_in_module_augmentations: T(2666, 1, "Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666", "Exports and export assignments are not permitted in module augmentations."),
        Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module: T(2667, 1, "Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667", "Imports are not permitted in module augmentations. Consider moving them to the enclosing external module."),
        export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible: T(2668, 1, "export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668", "'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible."),
        Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations: T(2669, 1, "Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669", "Augmentations for the global scope can only be directly nested in external modules or ambient module declarations."),
        Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context: T(2670, 1, "Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670", "Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context."),
        Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity: T(2671, 1, "Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity_2671", "Cannot augment module '{0}' because it resolves to a non-module entity."),
        Cannot_assign_a_0_constructor_type_to_a_1_constructor_type: T(2672, 1, "Cannot_assign_a_0_constructor_type_to_a_1_constructor_type_2672", "Cannot assign a '{0}' constructor type to a '{1}' constructor type."),
        Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration: T(2673, 1, "Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration_2673", "Constructor of class '{0}' is private and only accessible within the class declaration."),
        Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration: T(2674, 1, "Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration_2674", "Constructor of class '{0}' is protected and only accessible within the class declaration."),
        Cannot_extend_a_class_0_Class_constructor_is_marked_as_private: T(2675, 1, "Cannot_extend_a_class_0_Class_constructor_is_marked_as_private_2675", "Cannot extend a class '{0}'. Class constructor is marked as private."),
        Accessors_must_both_be_abstract_or_non_abstract: T(2676, 1, "Accessors_must_both_be_abstract_or_non_abstract_2676", "Accessors must both be abstract or non-abstract."),
        A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type: T(2677, 1, "A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type_2677", "A type predicate's type must be assignable to its parameter's type."),
        Type_0_is_not_comparable_to_type_1: T(2678, 1, "Type_0_is_not_comparable_to_type_1_2678", "Type '{0}' is not comparable to type '{1}'."),
        A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void: T(2679, 1, "A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void_2679", "A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'."),
        A_0_parameter_must_be_the_first_parameter: T(2680, 1, "A_0_parameter_must_be_the_first_parameter_2680", "A '{0}' parameter must be the first parameter."),
        A_constructor_cannot_have_a_this_parameter: T(2681, 1, "A_constructor_cannot_have_a_this_parameter_2681", "A constructor cannot have a 'this' parameter."),
        this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation: T(2683, 1, "this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_2683", "'this' implicitly has type 'any' because it does not have a type annotation."),
        The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1: T(2684, 1, "The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684", "The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'."),
        The_this_types_of_each_signature_are_incompatible: T(2685, 1, "The_this_types_of_each_signature_are_incompatible_2685", "The 'this' types of each signature are incompatible."),
        _0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead: T(2686, 1, "_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead_2686", "'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead."),
        All_declarations_of_0_must_have_identical_modifiers: T(2687, 1, "All_declarations_of_0_must_have_identical_modifiers_2687", "All declarations of '{0}' must have identical modifiers."),
        Cannot_find_type_definition_file_for_0: T(2688, 1, "Cannot_find_type_definition_file_for_0_2688", "Cannot find type definition file for '{0}'."),
        Cannot_extend_an_interface_0_Did_you_mean_implements: T(2689, 1, "Cannot_extend_an_interface_0_Did_you_mean_implements_2689", "Cannot extend an interface '{0}'. Did you mean 'implements'?"),
        _0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0: T(2690, 1, "_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0_2690", "'{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?"),
        _0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible: T(2692, 1, "_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692", "'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible."),
        _0_only_refers_to_a_type_but_is_being_used_as_a_value_here: T(2693, 1, "_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_2693", "'{0}' only refers to a type, but is being used as a value here."),
        Namespace_0_has_no_exported_member_1: T(2694, 1, "Namespace_0_has_no_exported_member_1_2694", "Namespace '{0}' has no exported member '{1}'."),
        Left_side_of_comma_operator_is_unused_and_has_no_side_effects: T(2695, 1, "Left_side_of_comma_operator_is_unused_and_has_no_side_effects_2695", "Left side of comma operator is unused and has no side effects.", !0),
        The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead: T(2696, 1, "The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead_2696", "The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?"),
        An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option: T(2697, 1, "An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697", "An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."),
        Spread_types_may_only_be_created_from_object_types: T(2698, 1, "Spread_types_may_only_be_created_from_object_types_2698", "Spread types may only be created from object types."),
        Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1: T(2699, 1, "Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1_2699", "Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'."),
        Rest_types_may_only_be_created_from_object_types: T(2700, 1, "Rest_types_may_only_be_created_from_object_types_2700", "Rest types may only be created from object types."),
        The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access: T(2701, 1, "The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access_2701", "The target of an object rest assignment must be a variable or a property access."),
        _0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here: T(2702, 1, "_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here_2702", "'{0}' only refers to a type, but is being used as a namespace here."),
        The_operand_of_a_delete_operator_must_be_a_property_reference: T(2703, 1, "The_operand_of_a_delete_operator_must_be_a_property_reference_2703", "The operand of a 'delete' operator must be a property reference."),
        The_operand_of_a_delete_operator_cannot_be_a_read_only_property: T(2704, 1, "The_operand_of_a_delete_operator_cannot_be_a_read_only_property_2704", "The operand of a 'delete' operator cannot be a read-only property."),
        An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option: T(2705, 1, "An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_de_2705", "An async function or method in ES5/ES3 requires the 'Promise' constructor.  Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."),
        Required_type_parameters_may_not_follow_optional_type_parameters: T(2706, 1, "Required_type_parameters_may_not_follow_optional_type_parameters_2706", "Required type parameters may not follow optional type parameters."),
        Generic_type_0_requires_between_1_and_2_type_arguments: T(2707, 1, "Generic_type_0_requires_between_1_and_2_type_arguments_2707", "Generic type '{0}' requires between {1} and {2} type arguments."),
        Cannot_use_namespace_0_as_a_value: T(2708, 1, "Cannot_use_namespace_0_as_a_value_2708", "Cannot use namespace '{0}' as a value."),
        Cannot_use_namespace_0_as_a_type: T(2709, 1, "Cannot_use_namespace_0_as_a_type_2709", "Cannot use namespace '{0}' as a type."),
        _0_are_specified_twice_The_attribute_named_0_will_be_overwritten: T(2710, 1, "_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710", "'{0}' are specified twice. The attribute named '{0}' will be overwritten."),
        A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option: T(2711, 1, "A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES20_2711", "A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."),
        A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option: T(2712, 1, "A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declarat_2712", "A dynamic import call in ES5/ES3 requires the 'Promise' constructor.  Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."),
        Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1: T(2713, 1, "Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713", `Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}["{1}"]'?`),
        The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context: T(2714, 1, "The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context_2714", "The expression of an export assignment must be an identifier or qualified name in an ambient context."),
        Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor: T(2715, 1, "Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715", "Abstract property '{0}' in class '{1}' cannot be accessed in the constructor."),
        Type_parameter_0_has_a_circular_default: T(2716, 1, "Type_parameter_0_has_a_circular_default_2716", "Type parameter '{0}' has a circular default."),
        Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2: T(2717, 1, "Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_t_2717", "Subsequent property declarations must have the same type.  Property '{0}' must be of type '{1}', but here has type '{2}'."),
        Duplicate_property_0: T(2718, 1, "Duplicate_property_0_2718", "Duplicate property '{0}'."),
        Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated: T(2719, 1, "Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719", "Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated."),
        Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass: T(2720, 1, "Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclas_2720", "Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?"),
        Cannot_invoke_an_object_which_is_possibly_null: T(2721, 1, "Cannot_invoke_an_object_which_is_possibly_null_2721", "Cannot invoke an object which is possibly 'null'."),
        Cannot_invoke_an_object_which_is_possibly_undefined: T(2722, 1, "Cannot_invoke_an_object_which_is_possibly_undefined_2722", "Cannot invoke an object which is possibly 'undefined'."),
        Cannot_invoke_an_object_which_is_possibly_null_or_undefined: T(2723, 1, "Cannot_invoke_an_object_which_is_possibly_null_or_undefined_2723", "Cannot invoke an object which is possibly 'null' or 'undefined'."),
        _0_has_no_exported_member_named_1_Did_you_mean_2: T(2724, 1, "_0_has_no_exported_member_named_1_Did_you_mean_2_2724", "'{0}' has no exported member named '{1}'. Did you mean '{2}'?"),
        Class_name_cannot_be_Object_when_targeting_ES5_with_module_0: T(2725, 1, "Class_name_cannot_be_Object_when_targeting_ES5_with_module_0_2725", "Class name cannot be 'Object' when targeting ES5 with module {0}."),
        Cannot_find_lib_definition_for_0: T(2726, 1, "Cannot_find_lib_definition_for_0_2726", "Cannot find lib definition for '{0}'."),
        Cannot_find_lib_definition_for_0_Did_you_mean_1: T(2727, 1, "Cannot_find_lib_definition_for_0_Did_you_mean_1_2727", "Cannot find lib definition for '{0}'. Did you mean '{1}'?"),
        _0_is_declared_here: T(2728, 3, "_0_is_declared_here_2728", "'{0}' is declared here."),
        Property_0_is_used_before_its_initialization: T(2729, 1, "Property_0_is_used_before_its_initialization_2729", "Property '{0}' is used before its initialization."),
        An_arrow_function_cannot_have_a_this_parameter: T(2730, 1, "An_arrow_function_cannot_have_a_this_parameter_2730", "An arrow function cannot have a 'this' parameter."),
        Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String: T(2731, 1, "Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_i_2731", "Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'."),
        Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension: T(2732, 1, "Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension_2732", "Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension."),
        Property_0_was_also_declared_here: T(2733, 1, "Property_0_was_also_declared_here_2733", "Property '{0}' was also declared here."),
        Are_you_missing_a_semicolon: T(2734, 1, "Are_you_missing_a_semicolon_2734", "Are you missing a semicolon?"),
        Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1: T(2735, 1, "Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1_2735", "Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?"),
        Operator_0_cannot_be_applied_to_type_1: T(2736, 1, "Operator_0_cannot_be_applied_to_type_1_2736", "Operator '{0}' cannot be applied to type '{1}'."),
        BigInt_literals_are_not_available_when_targeting_lower_than_ES2020: T(2737, 1, "BigInt_literals_are_not_available_when_targeting_lower_than_ES2020_2737", "BigInt literals are not available when targeting lower than ES2020."),
        An_outer_value_of_this_is_shadowed_by_this_container: T(2738, 3, "An_outer_value_of_this_is_shadowed_by_this_container_2738", "An outer value of 'this' is shadowed by this container."),
        Type_0_is_missing_the_following_properties_from_type_1_Colon_2: T(2739, 1, "Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739", "Type '{0}' is missing the following properties from type '{1}': {2}"),
        Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more: T(2740, 1, "Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more_2740", "Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more."),
        Property_0_is_missing_in_type_1_but_required_in_type_2: T(2741, 1, "Property_0_is_missing_in_type_1_but_required_in_type_2_2741", "Property '{0}' is missing in type '{1}' but required in type '{2}'."),
        The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary: T(2742, 1, "The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_a_2742", "The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary."),
        No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments: T(2743, 1, "No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments_2743", "No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments."),
        Type_parameter_defaults_can_only_reference_previously_declared_type_parameters: T(2744, 1, "Type_parameter_defaults_can_only_reference_previously_declared_type_parameters_2744", "Type parameter defaults can only reference previously declared type parameters."),
        This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided: T(2745, 1, "This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_pr_2745", "This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided."),
        This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided: T(2746, 1, "This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided_2746", "This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided."),
        _0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2: T(2747, 1, "_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_t_2747", "'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'."),
        Cannot_access_ambient_const_enums_when_0_is_enabled: T(2748, 1, "Cannot_access_ambient_const_enums_when_0_is_enabled_2748", "Cannot access ambient const enums when '{0}' is enabled."),
        _0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0: T(2749, 1, "_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0_2749", "'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?"),
        The_implementation_signature_is_declared_here: T(2750, 1, "The_implementation_signature_is_declared_here_2750", "The implementation signature is declared here."),
        Circularity_originates_in_type_at_this_location: T(2751, 1, "Circularity_originates_in_type_at_this_location_2751", "Circularity originates in type at this location."),
        The_first_export_default_is_here: T(2752, 1, "The_first_export_default_is_here_2752", "The first export default is here."),
        Another_export_default_is_here: T(2753, 1, "Another_export_default_is_here_2753", "Another export default is here."),
        super_may_not_use_type_arguments: T(2754, 1, "super_may_not_use_type_arguments_2754", "'super' may not use type arguments."),
        No_constituent_of_type_0_is_callable: T(2755, 1, "No_constituent_of_type_0_is_callable_2755", "No constituent of type '{0}' is callable."),
        Not_all_constituents_of_type_0_are_callable: T(2756, 1, "Not_all_constituents_of_type_0_are_callable_2756", "Not all constituents of type '{0}' are callable."),
        Type_0_has_no_call_signatures: T(2757, 1, "Type_0_has_no_call_signatures_2757", "Type '{0}' has no call signatures."),
        Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other: T(2758, 1, "Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_2758", "Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other."),
        No_constituent_of_type_0_is_constructable: T(2759, 1, "No_constituent_of_type_0_is_constructable_2759", "No constituent of type '{0}' is constructable."),
        Not_all_constituents_of_type_0_are_constructable: T(2760, 1, "Not_all_constituents_of_type_0_are_constructable_2760", "Not all constituents of type '{0}' are constructable."),
        Type_0_has_no_construct_signatures: T(2761, 1, "Type_0_has_no_construct_signatures_2761", "Type '{0}' has no construct signatures."),
        Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other: T(2762, 1, "Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_2762", "Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other."),
        Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0: T(2763, 1, "Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763", "Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'."),
        Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0: T(2764, 1, "Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764", "Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'."),
        Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0: T(2765, 1, "Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765", "Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'."),
        Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0: T(2766, 1, "Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766", "Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'."),
        The_0_property_of_an_iterator_must_be_a_method: T(2767, 1, "The_0_property_of_an_iterator_must_be_a_method_2767", "The '{0}' property of an iterator must be a method."),
        The_0_property_of_an_async_iterator_must_be_a_method: T(2768, 1, "The_0_property_of_an_async_iterator_must_be_a_method_2768", "The '{0}' property of an async iterator must be a method."),
        No_overload_matches_this_call: T(2769, 1, "No_overload_matches_this_call_2769", "No overload matches this call."),
        The_last_overload_gave_the_following_error: T(2770, 1, "The_last_overload_gave_the_following_error_2770", "The last overload gave the following error."),
        The_last_overload_is_declared_here: T(2771, 1, "The_last_overload_is_declared_here_2771", "The last overload is declared here."),
        Overload_0_of_1_2_gave_the_following_error: T(2772, 1, "Overload_0_of_1_2_gave_the_following_error_2772", "Overload {0} of {1}, '{2}', gave the following error."),
        Did_you_forget_to_use_await: T(2773, 1, "Did_you_forget_to_use_await_2773", "Did you forget to use 'await'?"),
        This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead: T(2774, 1, "This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_2774", "This condition will always return true since this function is always defined. Did you mean to call it instead?"),
        Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation: T(2775, 1, "Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775", "Assertions require every name in the call target to be declared with an explicit type annotation."),
        Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name: T(2776, 1, "Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name_2776", "Assertions require the call target to be an identifier or qualified name."),
        The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access: T(2777, 1, "The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access_2777", "The operand of an increment or decrement operator may not be an optional property access."),
        The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access: T(2778, 1, "The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access_2778", "The target of an object rest assignment may not be an optional property access."),
        The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access: T(2779, 1, "The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access_2779", "The left-hand side of an assignment expression may not be an optional property access."),
        The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access: T(2780, 1, "The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access_2780", "The left-hand side of a 'for...in' statement may not be an optional property access."),
        The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access: T(2781, 1, "The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access_2781", "The left-hand side of a 'for...of' statement may not be an optional property access."),
        _0_needs_an_explicit_type_annotation: T(2782, 3, "_0_needs_an_explicit_type_annotation_2782", "'{0}' needs an explicit type annotation."),
        _0_is_specified_more_than_once_so_this_usage_will_be_overwritten: T(2783, 1, "_0_is_specified_more_than_once_so_this_usage_will_be_overwritten_2783", "'{0}' is specified more than once, so this usage will be overwritten."),
        get_and_set_accessors_cannot_declare_this_parameters: T(2784, 1, "get_and_set_accessors_cannot_declare_this_parameters_2784", "'get' and 'set' accessors cannot declare 'this' parameters."),
        This_spread_always_overwrites_this_property: T(2785, 1, "This_spread_always_overwrites_this_property_2785", "This spread always overwrites this property."),
        _0_cannot_be_used_as_a_JSX_component: T(2786, 1, "_0_cannot_be_used_as_a_JSX_component_2786", "'{0}' cannot be used as a JSX component."),
        Its_return_type_0_is_not_a_valid_JSX_element: T(2787, 1, "Its_return_type_0_is_not_a_valid_JSX_element_2787", "Its return type '{0}' is not a valid JSX element."),
        Its_instance_type_0_is_not_a_valid_JSX_element: T(2788, 1, "Its_instance_type_0_is_not_a_valid_JSX_element_2788", "Its instance type '{0}' is not a valid JSX element."),
        Its_element_type_0_is_not_a_valid_JSX_element: T(2789, 1, "Its_element_type_0_is_not_a_valid_JSX_element_2789", "Its element type '{0}' is not a valid JSX element."),
        The_operand_of_a_delete_operator_must_be_optional: T(2790, 1, "The_operand_of_a_delete_operator_must_be_optional_2790", "The operand of a 'delete' operator must be optional."),
        Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later: T(2791, 1, "Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_lat_2791", "Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later."),
        Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option: T(2792, 1, "Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_t_2792", "Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?"),
        The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible: T(2793, 1, "The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_2793", "The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible."),
        Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise: T(2794, 1, "Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise_2794", "Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?"),
        The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types: T(2795, 1, "The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types_2795", "The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types."),
        It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked: T(2796, 1, "It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tag_2796", "It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked."),
        A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract: T(2797, 1, "A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_2797", "A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'."),
        The_declaration_was_marked_as_deprecated_here: T(2798, 1, "The_declaration_was_marked_as_deprecated_here_2798", "The declaration was marked as deprecated here."),
        Type_produces_a_tuple_type_that_is_too_large_to_represent: T(2799, 1, "Type_produces_a_tuple_type_that_is_too_large_to_represent_2799", "Type produces a tuple type that is too large to represent."),
        Expression_produces_a_tuple_type_that_is_too_large_to_represent: T(2800, 1, "Expression_produces_a_tuple_type_that_is_too_large_to_represent_2800", "Expression produces a tuple type that is too large to represent."),
        This_condition_will_always_return_true_since_this_0_is_always_defined: T(2801, 1, "This_condition_will_always_return_true_since_this_0_is_always_defined_2801", "This condition will always return true since this '{0}' is always defined."),
        Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher: T(2802, 1, "Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es201_2802", "Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher."),
        Cannot_assign_to_private_method_0_Private_methods_are_not_writable: T(2803, 1, "Cannot_assign_to_private_method_0_Private_methods_are_not_writable_2803", "Cannot assign to private method '{0}'. Private methods are not writable."),
        Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name: T(2804, 1, "Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name_2804", "Duplicate identifier '{0}'. Static and instance elements cannot share the same private name."),
        Private_accessor_was_defined_without_a_getter: T(2806, 1, "Private_accessor_was_defined_without_a_getter_2806", "Private accessor was defined without a getter."),
        This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0: T(2807, 1, "This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_o_2807", "This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'."),
        A_get_accessor_must_be_at_least_as_accessible_as_the_setter: T(2808, 1, "A_get_accessor_must_be_at_least_as_accessible_as_the_setter_2808", "A get accessor must be at least as accessible as the setter"),
        Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses: T(2809, 1, "Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_d_2809", "Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the whole assignment in parentheses."),
        Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments: T(2810, 1, "Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_2810", "Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments."),
        Initializer_for_property_0: T(2811, 1, "Initializer_for_property_0_2811", "Initializer for property '{0}'"),
        Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom: T(2812, 1, "Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom_2812", "Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'."),
        Class_declaration_cannot_implement_overload_list_for_0: T(2813, 1, "Class_declaration_cannot_implement_overload_list_for_0_2813", "Class declaration cannot implement overload list for '{0}'."),
        Function_with_bodies_can_only_merge_with_classes_that_are_ambient: T(2814, 1, "Function_with_bodies_can_only_merge_with_classes_that_are_ambient_2814", "Function with bodies can only merge with classes that are ambient."),
        arguments_cannot_be_referenced_in_property_initializers: T(2815, 1, "arguments_cannot_be_referenced_in_property_initializers_2815", "'arguments' cannot be referenced in property initializers."),
        Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class: T(2816, 1, "Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class_2816", "Cannot use 'this' in a static property initializer of a decorated class."),
        Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block: T(2817, 1, "Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block_2817", "Property '{0}' has no initializer and is not definitely assigned in a class static block."),
        Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers: T(2818, 1, "Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializer_2818", "Duplicate identifier '{0}'. Compiler reserves name '{1}' when emitting 'super' references in static initializers."),
        Namespace_name_cannot_be_0: T(2819, 1, "Namespace_name_cannot_be_0_2819", "Namespace name cannot be '{0}'."),
        Type_0_is_not_assignable_to_type_1_Did_you_mean_2: T(2820, 1, "Type_0_is_not_assignable_to_type_1_Did_you_mean_2_2820", "Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?"),
        Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_or_nodenext: T(2821, 1, "Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_or_nodenext_2821", "Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'."),
        Import_assertions_cannot_be_used_with_type_only_imports_or_exports: T(2822, 1, "Import_assertions_cannot_be_used_with_type_only_imports_or_exports_2822", "Import assertions cannot be used with type-only imports or exports."),
        Cannot_find_namespace_0_Did_you_mean_1: T(2833, 1, "Cannot_find_namespace_0_Did_you_mean_1_2833", "Cannot find namespace '{0}'. Did you mean '{1}'?"),
        Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path: T(2834, 1, "Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_n_2834", "Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path."),
        Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0: T(2835, 1, "Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_n_2835", "Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?"),
        Import_assertions_are_not_allowed_on_statements_that_transpile_to_commonjs_require_calls: T(2836, 1, "Import_assertions_are_not_allowed_on_statements_that_transpile_to_commonjs_require_calls_2836", "Import assertions are not allowed on statements that transpile to commonjs 'require' calls."),
        Import_assertion_values_must_be_string_literal_expressions: T(2837, 1, "Import_assertion_values_must_be_string_literal_expressions_2837", "Import assertion values must be string literal expressions."),
        All_declarations_of_0_must_have_identical_constraints: T(2838, 1, "All_declarations_of_0_must_have_identical_constraints_2838", "All declarations of '{0}' must have identical constraints."),
        This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value: T(2839, 1, "This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value_2839", "This condition will always return '{0}' since JavaScript compares objects by reference, not value."),
        An_interface_cannot_extend_a_primitive_type_like_0_an_interface_can_only_extend_named_types_and_classes: T(2840, 1, "An_interface_cannot_extend_a_primitive_type_like_0_an_interface_can_only_extend_named_types_and_clas_2840", "An interface cannot extend a primitive type like '{0}'; an interface can only extend named types and classes"),
        The_type_of_this_expression_cannot_be_named_without_a_resolution_mode_assertion_which_is_an_unstable_feature_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next: T(2841, 1, "The_type_of_this_expression_cannot_be_named_without_a_resolution_mode_assertion_which_is_an_unstable_2841", "The type of this expression cannot be named without a 'resolution-mode' assertion, which is an unstable feature. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."),
        _0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation: T(2842, 1, "_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation_2842", "'{0}' is an unused renaming of '{1}'. Did you intend to use it as a type annotation?"),
        We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here: T(2843, 1, "We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here_2843", "We can only write a type for '{0}' by adding a type for the entire parameter here."),
        Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: T(2844, 1, "Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2844", "Type of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."),
        This_condition_will_always_return_0: T(2845, 1, "This_condition_will_always_return_0_2845", "This condition will always return '{0}'."),
        A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead: T(2846, 1, "A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_f_2846", "A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file '{0}' instead?"),
        Import_declaration_0_is_using_private_name_1: T(4e3, 1, "Import_declaration_0_is_using_private_name_1_4000", "Import declaration '{0}' is using private name '{1}'."),
        Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: T(4002, 1, "Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002", "Type parameter '{0}' of exported class has or is using private name '{1}'."),
        Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: T(4004, 1, "Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004", "Type parameter '{0}' of exported interface has or is using private name '{1}'."),
        Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: T(4006, 1, "Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006", "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."),
        Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: T(4008, 1, "Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008", "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'."),
        Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: T(4010, 1, "Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010", "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'."),
        Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: T(4012, 1, "Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012", "Type parameter '{0}' of public method from exported class has or is using private name '{1}'."),
        Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: T(4014, 1, "Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014", "Type parameter '{0}' of method from exported interface has or is using private name '{1}'."),
        Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: T(4016, 1, "Type_parameter_0_of_exported_function_has_or_is_using_private_name_1_4016", "Type parameter '{0}' of exported function has or is using private name '{1}'."),
        Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: T(4019, 1, "Implements_clause_of_exported_class_0_has_or_is_using_private_name_1_4019", "Implements clause of exported class '{0}' has or is using private name '{1}'."),
        extends_clause_of_exported_class_0_has_or_is_using_private_name_1: T(4020, 1, "extends_clause_of_exported_class_0_has_or_is_using_private_name_1_4020", "'extends' clause of exported class '{0}' has or is using private name '{1}'."),
        extends_clause_of_exported_class_has_or_is_using_private_name_0: T(4021, 1, "extends_clause_of_exported_class_has_or_is_using_private_name_0_4021", "'extends' clause of exported class has or is using private name '{0}'."),
        extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: T(4022, 1, "extends_clause_of_exported_interface_0_has_or_is_using_private_name_1_4022", "'extends' clause of exported interface '{0}' has or is using private name '{1}'."),
        Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: T(4023, 1, "Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4023", "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named."),
        Exported_variable_0_has_or_is_using_name_1_from_private_module_2: T(4024, 1, "Exported_variable_0_has_or_is_using_name_1_from_private_module_2_4024", "Exported variable '{0}' has or is using name '{1}' from private module '{2}'."),
        Exported_variable_0_has_or_is_using_private_name_1: T(4025, 1, "Exported_variable_0_has_or_is_using_private_name_1_4025", "Exported variable '{0}' has or is using private name '{1}'."),
        Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: T(4026, 1, "Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot__4026", "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),
        Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: T(4027, 1, "Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4027", "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'."),
        Public_static_property_0_of_exported_class_has_or_is_using_private_name_1: T(4028, 1, "Public_static_property_0_of_exported_class_has_or_is_using_private_name_1_4028", "Public static property '{0}' of exported class has or is using private name '{1}'."),
        Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: T(4029, 1, "Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_name_4029", "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),
        Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: T(4030, 1, "Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4030", "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'."),
        Public_property_0_of_exported_class_has_or_is_using_private_name_1: T(4031, 1, "Public_property_0_of_exported_class_has_or_is_using_private_name_1_4031", "Public property '{0}' of exported class has or is using private name '{1}'."),
        Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: T(4032, 1, "Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4032", "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'."),
        Property_0_of_exported_interface_has_or_is_using_private_name_1: T(4033, 1, "Property_0_of_exported_interface_has_or_is_using_private_name_1_4033", "Property '{0}' of exported interface has or is using private name '{1}'."),
        Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: T(4034, 1, "Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_mod_4034", "Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),
        Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1: T(4035, 1, "Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1_4035", "Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'."),
        Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: T(4036, 1, "Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4036", "Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),
        Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1: T(4037, 1, "Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1_4037", "Parameter type of public setter '{0}' from exported class has or is using private name '{1}'."),
        Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: T(4038, 1, "Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_modul_4038", "Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."),
        Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: T(4039, 1, "Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_4039", "Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),
        Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1: T(4040, 1, "Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1_4040", "Return type of public static getter '{0}' from exported class has or is using private name '{1}'."),
        Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: T(4041, 1, "Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_4041", "Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."),
        Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: T(4042, 1, "Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4042", "Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),
        Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1: T(4043, 1, "Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1_4043", "Return type of public getter '{0}' from exported class has or is using private name '{1}'."),
        Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: T(4044, 1, "Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_mod_4044", "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'."),
        Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: T(4045, 1, "Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0_4045", "Return type of constructor signature from exported interface has or is using private name '{0}'."),
        Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: T(4046, 1, "Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4046", "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'."),
        Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: T(4047, 1, "Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0_4047", "Return type of call signature from exported interface has or is using private name '{0}'."),
        Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: T(4048, 1, "Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4048", "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'."),
        Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: T(4049, 1, "Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0_4049", "Return type of index signature from exported interface has or is using private name '{0}'."),
        Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: T(4050, 1, "Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050", "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named."),
        Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: T(4051, 1, "Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051", "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'."),
        Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: T(4052, 1, "Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052", "Return type of public static method from exported class has or is using private name '{0}'."),
        Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: T(4053, 1, "Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053", "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named."),
        Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: T(4054, 1, "Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054", "Return type of public method from exported class has or is using name '{0}' from private module '{1}'."),
        Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: T(4055, 1, "Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055", "Return type of public method from exported class has or is using private name '{0}'."),
        Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: T(4056, 1, "Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056", "Return type of method from exported interface has or is using name '{0}' from private module '{1}'."),
        Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: T(4057, 1, "Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057", "Return type of method from exported interface has or is using private name '{0}'."),
        Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: T(4058, 1, "Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named_4058", "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named."),
        Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: T(4059, 1, "Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1_4059", "Return type of exported function has or is using name '{0}' from private module '{1}'."),
        Return_type_of_exported_function_has_or_is_using_private_name_0: T(4060, 1, "Return_type_of_exported_function_has_or_is_using_private_name_0_4060", "Return type of exported function has or is using private name '{0}'."),
        Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: T(4061, 1, "Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_can_4061", "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named."),
        Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: T(4062, 1, "Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2_4062", "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'."),
        Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: T(4063, 1, "Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1_4063", "Parameter '{0}' of constructor from exported class has or is using private name '{1}'."),
        Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: T(4064, 1, "Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_mod_4064", "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'."),
        Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: T(4065, 1, "Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4065", "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."),
        Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: T(4066, 1, "Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4066", "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'."),
        Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: T(4067, 1, "Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4067", "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'."),
        Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: T(4068, 1, "Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068", "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named."),
        Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: T(4069, 1, "Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069", "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'."),
        Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: T(4070, 1, "Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070", "Parameter '{0}' of public static method from exported class has or is using private name '{1}'."),
        Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: T(4071, 1, "Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071", "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named."),
        Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: T(4072, 1, "Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072", "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'."),
        Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: T(4073, 1, "Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073", "Parameter '{0}' of public method from exported class has or is using private name '{1}'."),
        Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: T(4074, 1, "Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074", "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'."),
        Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: T(4075, 1, "Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075", "Parameter '{0}' of method from exported interface has or is using private name '{1}'."),
        Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: T(4076, 1, "Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4076", "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named."),
        Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: T(4077, 1, "Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2_4077", "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'."),
        Parameter_0_of_exported_function_has_or_is_using_private_name_1: T(4078, 1, "Parameter_0_of_exported_function_has_or_is_using_private_name_1_4078", "Parameter '{0}' of exported function has or is using private name '{1}'."),
        Exported_type_alias_0_has_or_is_using_private_name_1: T(4081, 1, "Exported_type_alias_0_has_or_is_using_private_name_1_4081", "Exported type alias '{0}' has or is using private name '{1}'."),
        Default_export_of_the_module_has_or_is_using_private_name_0: T(4082, 1, "Default_export_of_the_module_has_or_is_using_private_name_0_4082", "Default export of the module has or is using private name '{0}'."),
        Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1: T(4083, 1, "Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1_4083", "Type parameter '{0}' of exported type alias has or is using private name '{1}'."),
        Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2: T(4084, 1, "Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2_4084", "Exported type alias '{0}' has or is using private name '{1}' from module {2}."),
        Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1: T(4085, 1, "Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1_4085", "Extends clause for inferred type '{0}' has or is using private name '{1}'."),
        Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict: T(4090, 1, "Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_librar_4090", "Conflicting definitions for '{0}' found at '{1}' and '{2}'. Consider installing a specific version of this library to resolve the conflict."),
        Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: T(4091, 1, "Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4091", "Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'."),
        Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1: T(4092, 1, "Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1_4092", "Parameter '{0}' of index signature from exported interface has or is using private name '{1}'."),
        Property_0_of_exported_class_expression_may_not_be_private_or_protected: T(4094, 1, "Property_0_of_exported_class_expression_may_not_be_private_or_protected_4094", "Property '{0}' of exported class expression may not be private or protected."),
        Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: T(4095, 1, "Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095", "Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),
        Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: T(4096, 1, "Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096", "Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'."),
        Public_static_method_0_of_exported_class_has_or_is_using_private_name_1: T(4097, 1, "Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097", "Public static method '{0}' of exported class has or is using private name '{1}'."),
        Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: T(4098, 1, "Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098", "Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),
        Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: T(4099, 1, "Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099", "Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'."),
        Public_method_0_of_exported_class_has_or_is_using_private_name_1: T(4100, 1, "Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100", "Public method '{0}' of exported class has or is using private name '{1}'."),
        Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: T(4101, 1, "Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101", "Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'."),
        Method_0_of_exported_interface_has_or_is_using_private_name_1: T(4102, 1, "Method_0_of_exported_interface_has_or_is_using_private_name_1_4102", "Method '{0}' of exported interface has or is using private name '{1}'."),
        Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1: T(4103, 1, "Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1_4103", "Type parameter '{0}' of exported mapped object type is using private name '{1}'."),
        The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1: T(4104, 1, "The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1_4104", "The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'."),
        Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter: T(4105, 1, "Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter_4105", "Private or protected member '{0}' cannot be accessed on a type parameter."),
        Parameter_0_of_accessor_has_or_is_using_private_name_1: T(4106, 1, "Parameter_0_of_accessor_has_or_is_using_private_name_1_4106", "Parameter '{0}' of accessor has or is using private name '{1}'."),
        Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2: T(4107, 1, "Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2_4107", "Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'."),
        Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: T(4108, 1, "Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4108", "Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named."),
        Type_arguments_for_0_circularly_reference_themselves: T(4109, 1, "Type_arguments_for_0_circularly_reference_themselves_4109", "Type arguments for '{0}' circularly reference themselves."),
        Tuple_type_arguments_circularly_reference_themselves: T(4110, 1, "Tuple_type_arguments_circularly_reference_themselves_4110", "Tuple type arguments circularly reference themselves."),
        Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0: T(4111, 1, "Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0_4111", "Property '{0}' comes from an index signature, so it must be accessed with ['{0}']."),
        This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class: T(4112, 1, "This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another__4112", "This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class."),
        This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0: T(4113, 1, "This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_4113", "This member cannot have an 'override' modifier because it is not declared in the base class '{0}'."),
        This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0: T(4114, 1, "This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0_4114", "This member must have an 'override' modifier because it overrides a member in the base class '{0}'."),
        This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0: T(4115, 1, "This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0_4115", "This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'."),
        This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0: T(4116, 1, "This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared__4116", "This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'."),
        This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1: T(4117, 1, "This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you__4117", "This member cannot have an 'override' modifier because it is not declared in the base class '{0}'. Did you mean '{1}'?"),
        The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized: T(4118, 1, "The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized_4118", "The type of this node cannot be serialized because its property '{0}' cannot be serialized."),
        This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0: T(4119, 1, "This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_4119", "This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."),
        This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0: T(4120, 1, "This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_4120", "This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."),
        This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class: T(4121, 1, "This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_4121", "This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class."),
        This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0: T(4122, 1, "This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4122", "This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'."),
        This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1: T(4123, 1, "This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4123", "This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?"),
        Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next: T(4124, 1, "Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_w_4124", "Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."),
        resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next: T(4125, 1, "resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_wi_4125", "'resolution-mode' assertions are unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."),
        The_current_host_does_not_support_the_0_option: T(5001, 1, "The_current_host_does_not_support_the_0_option_5001", "The current host does not support the '{0}' option."),
        Cannot_find_the_common_subdirectory_path_for_the_input_files: T(5009, 1, "Cannot_find_the_common_subdirectory_path_for_the_input_files_5009", "Cannot find the common subdirectory path for the input files."),
        File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0: T(5010, 1, "File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010", "File specification cannot end in a recursive directory wildcard ('**'): '{0}'."),
        Cannot_read_file_0_Colon_1: T(5012, 1, "Cannot_read_file_0_Colon_1_5012", "Cannot read file '{0}': {1}."),
        Failed_to_parse_file_0_Colon_1: T(5014, 1, "Failed_to_parse_file_0_Colon_1_5014", "Failed to parse file '{0}': {1}."),
        Unknown_compiler_option_0: T(5023, 1, "Unknown_compiler_option_0_5023", "Unknown compiler option '{0}'."),
        Compiler_option_0_requires_a_value_of_type_1: T(5024, 1, "Compiler_option_0_requires_a_value_of_type_1_5024", "Compiler option '{0}' requires a value of type {1}."),
        Unknown_compiler_option_0_Did_you_mean_1: T(5025, 1, "Unknown_compiler_option_0_Did_you_mean_1_5025", "Unknown compiler option '{0}'. Did you mean '{1}'?"),
        Could_not_write_file_0_Colon_1: T(5033, 1, "Could_not_write_file_0_Colon_1_5033", "Could not write file '{0}': {1}."),
        Option_project_cannot_be_mixed_with_source_files_on_a_command_line: T(5042, 1, "Option_project_cannot_be_mixed_with_source_files_on_a_command_line_5042", "Option 'project' cannot be mixed with source files on a command line."),
        Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher: T(5047, 1, "Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES_5047", "Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher."),
        Option_0_cannot_be_specified_when_option_target_is_ES3: T(5048, 1, "Option_0_cannot_be_specified_when_option_target_is_ES3_5048", "Option '{0}' cannot be specified when option 'target' is 'ES3'."),
        Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided: T(5051, 1, "Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided_5051", "Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided."),
        Option_0_cannot_be_specified_without_specifying_option_1: T(5052, 1, "Option_0_cannot_be_specified_without_specifying_option_1_5052", "Option '{0}' cannot be specified without specifying option '{1}'."),
        Option_0_cannot_be_specified_with_option_1: T(5053, 1, "Option_0_cannot_be_specified_with_option_1_5053", "Option '{0}' cannot be specified with option '{1}'."),
        A_tsconfig_json_file_is_already_defined_at_Colon_0: T(5054, 1, "A_tsconfig_json_file_is_already_defined_at_Colon_0_5054", "A 'tsconfig.json' file is already defined at: '{0}'."),
        Cannot_write_file_0_because_it_would_overwrite_input_file: T(5055, 1, "Cannot_write_file_0_because_it_would_overwrite_input_file_5055", "Cannot write file '{0}' because it would overwrite input file."),
        Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files: T(5056, 1, "Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files_5056", "Cannot write file '{0}' because it would be overwritten by multiple input files."),
        Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0: T(5057, 1, "Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0_5057", "Cannot find a tsconfig.json file at the specified directory: '{0}'."),
        The_specified_path_does_not_exist_Colon_0: T(5058, 1, "The_specified_path_does_not_exist_Colon_0_5058", "The specified path does not exist: '{0}'."),
        Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier: T(5059, 1, "Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059", "Invalid value for '--reactNamespace'. '{0}' is not a valid identifier."),
        Pattern_0_can_have_at_most_one_Asterisk_character: T(5061, 1, "Pattern_0_can_have_at_most_one_Asterisk_character_5061", "Pattern '{0}' can have at most one '*' character."),
        Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character: T(5062, 1, "Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character_5062", "Substitution '{0}' in pattern '{1}' can have at most one '*' character."),
        Substitutions_for_pattern_0_should_be_an_array: T(5063, 1, "Substitutions_for_pattern_0_should_be_an_array_5063", "Substitutions for pattern '{0}' should be an array."),
        Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2: T(5064, 1, "Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2_5064", "Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'."),
        File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0: T(5065, 1, "File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildca_5065", "File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'."),
        Substitutions_for_pattern_0_shouldn_t_be_an_empty_array: T(5066, 1, "Substitutions_for_pattern_0_shouldn_t_be_an_empty_array_5066", "Substitutions for pattern '{0}' shouldn't be an empty array."),
        Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name: T(5067, 1, "Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067", "Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name."),
        Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig: T(5068, 1, "Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068", "Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig."),
        Option_0_cannot_be_specified_without_specifying_option_1_or_option_2: T(5069, 1, "Option_0_cannot_be_specified_without_specifying_option_1_or_option_2_5069", "Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'."),
        Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic: T(5070, 1, "Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic_5070", "Option '--resolveJsonModule' cannot be specified when 'moduleResolution' is set to 'classic'."),
        Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_esNext: T(5071, 1, "Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_5071", "Option '--resolveJsonModule' can only be specified when module code generation is 'commonjs', 'amd', 'es2015' or 'esNext'."),
        Unknown_build_option_0: T(5072, 1, "Unknown_build_option_0_5072", "Unknown build option '{0}'."),
        Build_option_0_requires_a_value_of_type_1: T(5073, 1, "Build_option_0_requires_a_value_of_type_1_5073", "Build option '{0}' requires a value of type {1}."),
        Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified: T(5074, 1, "Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBui_5074", "Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified."),
        _0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2: T(5075, 1, "_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075", "'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'."),
        _0_and_1_operations_cannot_be_mixed_without_parentheses: T(5076, 1, "_0_and_1_operations_cannot_be_mixed_without_parentheses_5076", "'{0}' and '{1}' operations cannot be mixed without parentheses."),
        Unknown_build_option_0_Did_you_mean_1: T(5077, 1, "Unknown_build_option_0_Did_you_mean_1_5077", "Unknown build option '{0}'. Did you mean '{1}'?"),
        Unknown_watch_option_0: T(5078, 1, "Unknown_watch_option_0_5078", "Unknown watch option '{0}'."),
        Unknown_watch_option_0_Did_you_mean_1: T(5079, 1, "Unknown_watch_option_0_Did_you_mean_1_5079", "Unknown watch option '{0}'. Did you mean '{1}'?"),
        Watch_option_0_requires_a_value_of_type_1: T(5080, 1, "Watch_option_0_requires_a_value_of_type_1_5080", "Watch option '{0}' requires a value of type {1}."),
        Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0: T(5081, 1, "Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0_5081", "Cannot find a tsconfig.json file at the current directory: {0}."),
        _0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1: T(5082, 1, "_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1_5082", "'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'."),
        Cannot_read_file_0: T(5083, 1, "Cannot_read_file_0_5083", "Cannot read file '{0}'."),
        Tuple_members_must_all_have_names_or_all_not_have_names: T(5084, 1, "Tuple_members_must_all_have_names_or_all_not_have_names_5084", "Tuple members must all have names or all not have names."),
        A_tuple_member_cannot_be_both_optional_and_rest: T(5085, 1, "A_tuple_member_cannot_be_both_optional_and_rest_5085", "A tuple member cannot be both optional and rest."),
        A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type: T(5086, 1, "A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_c_5086", "A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type."),
        A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type: T(5087, 1, "A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type_5087", "A labeled tuple element is declared as rest with a '...' before the name, rather than before the type."),
        The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary: T(5088, 1, "The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialize_5088", "The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary."),
        Option_0_cannot_be_specified_when_option_jsx_is_1: T(5089, 1, "Option_0_cannot_be_specified_when_option_jsx_is_1_5089", "Option '{0}' cannot be specified when option 'jsx' is '{1}'."),
        Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash: T(5090, 1, "Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash_5090", "Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?"),
        Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled: T(5091, 1, "Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled_5091", "Option 'preserveConstEnums' cannot be disabled when '{0}' is enabled."),
        The_root_value_of_a_0_file_must_be_an_object: T(5092, 1, "The_root_value_of_a_0_file_must_be_an_object_5092", "The root value of a '{0}' file must be an object."),
        Compiler_option_0_may_only_be_used_with_build: T(5093, 1, "Compiler_option_0_may_only_be_used_with_build_5093", "Compiler option '--{0}' may only be used with '--build'."),
        Compiler_option_0_may_not_be_used_with_build: T(5094, 1, "Compiler_option_0_may_not_be_used_with_build_5094", "Compiler option '--{0}' may not be used with '--build'."),
        Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later: T(5095, 1, "Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later_5095", "Option '{0}' can only be used when 'module' is set to 'es2015' or later."),
        Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set: T(5096, 1, "Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set_5096", "Option 'allowImportingTsExtensions' can only be used when either 'noEmit' or 'emitDeclarationOnly' is set."),
        An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled: T(5097, 1, "An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled_5097", "An import path can only end with a '{0}' extension when 'allowImportingTsExtensions' is enabled."),
        Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler: T(5098, 1, "Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler_5098", "Option '{0}' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'."),
        Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error: T(5101, 1, "Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprec_5101", `Option '{0}' is deprecated and will stop functioning in TypeScript {1}. Specify compilerOption '"ignoreDeprecations": "{2}"' to silence this error.`),
        Option_0_has_been_removed_Please_remove_it_from_your_configuration: T(5102, 1, "Option_0_has_been_removed_Please_remove_it_from_your_configuration_5102", "Option '{0}' has been removed. Please remove it from your configuration."),
        Invalid_value_for_ignoreDeprecations: T(5103, 1, "Invalid_value_for_ignoreDeprecations_5103", "Invalid value for '--ignoreDeprecations'."),
        Option_0_is_redundant_and_cannot_be_specified_with_option_1: T(5104, 1, "Option_0_is_redundant_and_cannot_be_specified_with_option_1_5104", "Option '{0}' is redundant and cannot be specified with option '{1}'."),
        Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System: T(5105, 1, "Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System_5105", "Option 'verbatimModuleSyntax' cannot be used when 'module' is set to 'UMD', 'AMD', or 'System'."),
        Use_0_instead: T(5106, 3, "Use_0_instead_5106", "Use '{0}' instead."),
        Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error: T(5107, 1, "Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDepr_5107", `Option '{0}={1}' is deprecated and will stop functioning in TypeScript {2}. Specify compilerOption '"ignoreDeprecations": "{3}"' to silence this error.`),
        Option_0_1_has_been_removed_Please_remove_it_from_your_configuration: T(5108, 1, "Option_0_1_has_been_removed_Please_remove_it_from_your_configuration_5108", "Option '{0}={1}' has been removed. Please remove it from your configuration."),
        Generates_a_sourcemap_for_each_corresponding_d_ts_file: T(6e3, 3, "Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000", "Generates a sourcemap for each corresponding '.d.ts' file."),
        Concatenate_and_emit_output_to_single_file: T(6001, 3, "Concatenate_and_emit_output_to_single_file_6001", "Concatenate and emit output to single file."),
        Generates_corresponding_d_ts_file: T(6002, 3, "Generates_corresponding_d_ts_file_6002", "Generates corresponding '.d.ts' file."),
        Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: T(6004, 3, "Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations_6004", "Specify the location where debugger should locate TypeScript files instead of source locations."),
        Watch_input_files: T(6005, 3, "Watch_input_files_6005", "Watch input files."),
        Redirect_output_structure_to_the_directory: T(6006, 3, "Redirect_output_structure_to_the_directory_6006", "Redirect output structure to the directory."),
        Do_not_erase_const_enum_declarations_in_generated_code: T(6007, 3, "Do_not_erase_const_enum_declarations_in_generated_code_6007", "Do not erase const enum declarations in generated code."),
        Do_not_emit_outputs_if_any_errors_were_reported: T(6008, 3, "Do_not_emit_outputs_if_any_errors_were_reported_6008", "Do not emit outputs if any errors were reported."),
        Do_not_emit_comments_to_output: T(6009, 3, "Do_not_emit_comments_to_output_6009", "Do not emit comments to output."),
        Do_not_emit_outputs: T(6010, 3, "Do_not_emit_outputs_6010", "Do not emit outputs."),
        Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking: T(6011, 3, "Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typech_6011", "Allow default imports from modules with no default export. This does not affect code emit, just typechecking."),
        Skip_type_checking_of_declaration_files: T(6012, 3, "Skip_type_checking_of_declaration_files_6012", "Skip type checking of declaration files."),
        Do_not_resolve_the_real_path_of_symlinks: T(6013, 3, "Do_not_resolve_the_real_path_of_symlinks_6013", "Do not resolve the real path of symlinks."),
        Only_emit_d_ts_declaration_files: T(6014, 3, "Only_emit_d_ts_declaration_files_6014", "Only emit '.d.ts' declaration files."),
        Specify_ECMAScript_target_version: T(6015, 3, "Specify_ECMAScript_target_version_6015", "Specify ECMAScript target version."),
        Specify_module_code_generation: T(6016, 3, "Specify_module_code_generation_6016", "Specify module code generation."),
        Print_this_message: T(6017, 3, "Print_this_message_6017", "Print this message."),
        Print_the_compiler_s_version: T(6019, 3, "Print_the_compiler_s_version_6019", "Print the compiler's version."),
        Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json: T(6020, 3, "Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json_6020", "Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'."),
        Syntax_Colon_0: T(6023, 3, "Syntax_Colon_0_6023", "Syntax: {0}"),
        options: T(6024, 3, "options_6024", "options"),
        file: T(6025, 3, "file_6025", "file"),
        Examples_Colon_0: T(6026, 3, "Examples_Colon_0_6026", "Examples: {0}"),
        Options_Colon: T(6027, 3, "Options_Colon_6027", "Options:"),
        Version_0: T(6029, 3, "Version_0_6029", "Version {0}"),
        Insert_command_line_options_and_files_from_a_file: T(6030, 3, "Insert_command_line_options_and_files_from_a_file_6030", "Insert command line options and files from a file."),
        Starting_compilation_in_watch_mode: T(6031, 3, "Starting_compilation_in_watch_mode_6031", "Starting compilation in watch mode..."),
        File_change_detected_Starting_incremental_compilation: T(6032, 3, "File_change_detected_Starting_incremental_compilation_6032", "File change detected. Starting incremental compilation..."),
        KIND: T(6034, 3, "KIND_6034", "KIND"),
        FILE: T(6035, 3, "FILE_6035", "FILE"),
        VERSION: T(6036, 3, "VERSION_6036", "VERSION"),
        LOCATION: T(6037, 3, "LOCATION_6037", "LOCATION"),
        DIRECTORY: T(6038, 3, "DIRECTORY_6038", "DIRECTORY"),
        STRATEGY: T(6039, 3, "STRATEGY_6039", "STRATEGY"),
        FILE_OR_DIRECTORY: T(6040, 3, "FILE_OR_DIRECTORY_6040", "FILE OR DIRECTORY"),
        Errors_Files: T(6041, 3, "Errors_Files_6041", "Errors  Files"),
        Generates_corresponding_map_file: T(6043, 3, "Generates_corresponding_map_file_6043", "Generates corresponding '.map' file."),
        Compiler_option_0_expects_an_argument: T(6044, 1, "Compiler_option_0_expects_an_argument_6044", "Compiler option '{0}' expects an argument."),
        Unterminated_quoted_string_in_response_file_0: T(6045, 1, "Unterminated_quoted_string_in_response_file_0_6045", "Unterminated quoted string in response file '{0}'."),
        Argument_for_0_option_must_be_Colon_1: T(6046, 1, "Argument_for_0_option_must_be_Colon_1_6046", "Argument for '{0}' option must be: {1}."),
        Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: T(6048, 1, "Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1_6048", "Locale must be of the form <language> or <language>-<territory>. For example '{0}' or '{1}'."),
        Unable_to_open_file_0: T(6050, 1, "Unable_to_open_file_0_6050", "Unable to open file '{0}'."),
        Corrupted_locale_file_0: T(6051, 1, "Corrupted_locale_file_0_6051", "Corrupted locale file {0}."),
        Raise_error_on_expressions_and_declarations_with_an_implied_any_type: T(6052, 3, "Raise_error_on_expressions_and_declarations_with_an_implied_any_type_6052", "Raise error on expressions and declarations with an implied 'any' type."),
        File_0_not_found: T(6053, 1, "File_0_not_found_6053", "File '{0}' not found."),
        File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1: T(6054, 1, "File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1_6054", "File '{0}' has an unsupported extension. The only supported extensions are {1}."),
        Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: T(6055, 3, "Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures_6055", "Suppress noImplicitAny errors for indexing objects lacking index signatures."),
        Do_not_emit_declarations_for_code_that_has_an_internal_annotation: T(6056, 3, "Do_not_emit_declarations_for_code_that_has_an_internal_annotation_6056", "Do not emit declarations for code that has an '@internal' annotation."),
        Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir: T(6058, 3, "Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir_6058", "Specify the root directory of input files. Use to control the output directory structure with --outDir."),
        File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files: T(6059, 1, "File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059", "File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files."),
        Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix: T(6060, 3, "Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix_6060", "Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix)."),
        NEWLINE: T(6061, 3, "NEWLINE_6061", "NEWLINE"),
        Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line: T(6064, 1, "Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line_6064", "Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line."),
        Enables_experimental_support_for_ES7_decorators: T(6065, 3, "Enables_experimental_support_for_ES7_decorators_6065", "Enables experimental support for ES7 decorators."),
        Enables_experimental_support_for_emitting_type_metadata_for_decorators: T(6066, 3, "Enables_experimental_support_for_emitting_type_metadata_for_decorators_6066", "Enables experimental support for emitting type metadata for decorators."),
        Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file: T(6070, 3, "Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file_6070", "Initializes a TypeScript project and creates a tsconfig.json file."),
        Successfully_created_a_tsconfig_json_file: T(6071, 3, "Successfully_created_a_tsconfig_json_file_6071", "Successfully created a tsconfig.json file."),
        Suppress_excess_property_checks_for_object_literals: T(6072, 3, "Suppress_excess_property_checks_for_object_literals_6072", "Suppress excess property checks for object literals."),
        Stylize_errors_and_messages_using_color_and_context_experimental: T(6073, 3, "Stylize_errors_and_messages_using_color_and_context_experimental_6073", "Stylize errors and messages using color and context (experimental)."),
        Do_not_report_errors_on_unused_labels: T(6074, 3, "Do_not_report_errors_on_unused_labels_6074", "Do not report errors on unused labels."),
        Report_error_when_not_all_code_paths_in_function_return_a_value: T(6075, 3, "Report_error_when_not_all_code_paths_in_function_return_a_value_6075", "Report error when not all code paths in function return a value."),
        Report_errors_for_fallthrough_cases_in_switch_statement: T(6076, 3, "Report_errors_for_fallthrough_cases_in_switch_statement_6076", "Report errors for fallthrough cases in switch statement."),
        Do_not_report_errors_on_unreachable_code: T(6077, 3, "Do_not_report_errors_on_unreachable_code_6077", "Do not report errors on unreachable code."),
        Disallow_inconsistently_cased_references_to_the_same_file: T(6078, 3, "Disallow_inconsistently_cased_references_to_the_same_file_6078", "Disallow inconsistently-cased references to the same file."),
        Specify_library_files_to_be_included_in_the_compilation: T(6079, 3, "Specify_library_files_to_be_included_in_the_compilation_6079", "Specify library files to be included in the compilation."),
        Specify_JSX_code_generation: T(6080, 3, "Specify_JSX_code_generation_6080", "Specify JSX code generation."),
        File_0_has_an_unsupported_extension_so_skipping_it: T(6081, 3, "File_0_has_an_unsupported_extension_so_skipping_it_6081", "File '{0}' has an unsupported extension, so skipping it."),
        Only_amd_and_system_modules_are_supported_alongside_0: T(6082, 1, "Only_amd_and_system_modules_are_supported_alongside_0_6082", "Only 'amd' and 'system' modules are supported alongside --{0}."),
        Base_directory_to_resolve_non_absolute_module_names: T(6083, 3, "Base_directory_to_resolve_non_absolute_module_names_6083", "Base directory to resolve non-absolute module names."),
        Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit: T(6084, 3, "Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react__6084", "[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit"),
        Enable_tracing_of_the_name_resolution_process: T(6085, 3, "Enable_tracing_of_the_name_resolution_process_6085", "Enable tracing of the name resolution process."),
        Resolving_module_0_from_1: T(6086, 3, "Resolving_module_0_from_1_6086", "======== Resolving module '{0}' from '{1}'. ========"),
        Explicitly_specified_module_resolution_kind_Colon_0: T(6087, 3, "Explicitly_specified_module_resolution_kind_Colon_0_6087", "Explicitly specified module resolution kind: '{0}'."),
        Module_resolution_kind_is_not_specified_using_0: T(6088, 3, "Module_resolution_kind_is_not_specified_using_0_6088", "Module resolution kind is not specified, using '{0}'."),
        Module_name_0_was_successfully_resolved_to_1: T(6089, 3, "Module_name_0_was_successfully_resolved_to_1_6089", "======== Module name '{0}' was successfully resolved to '{1}'. ========"),
        Module_name_0_was_not_resolved: T(6090, 3, "Module_name_0_was_not_resolved_6090", "======== Module name '{0}' was not resolved. ========"),
        paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0: T(6091, 3, "paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0_6091", "'paths' option is specified, looking for a pattern to match module name '{0}'."),
        Module_name_0_matched_pattern_1: T(6092, 3, "Module_name_0_matched_pattern_1_6092", "Module name '{0}', matched pattern '{1}'."),
        Trying_substitution_0_candidate_module_location_Colon_1: T(6093, 3, "Trying_substitution_0_candidate_module_location_Colon_1_6093", "Trying substitution '{0}', candidate module location: '{1}'."),
        Resolving_module_name_0_relative_to_base_url_1_2: T(6094, 3, "Resolving_module_name_0_relative_to_base_url_1_2_6094", "Resolving module name '{0}' relative to base url '{1}' - '{2}'."),
        Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1: T(6095, 3, "Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1_6095", "Loading module as file / folder, candidate module location '{0}', target file types: {1}."),
        File_0_does_not_exist: T(6096, 3, "File_0_does_not_exist_6096", "File '{0}' does not exist."),
        File_0_exists_use_it_as_a_name_resolution_result: T(6097, 3, "File_0_exists_use_it_as_a_name_resolution_result_6097", "File '{0}' exists - use it as a name resolution result."),
        Loading_module_0_from_node_modules_folder_target_file_types_Colon_1: T(6098, 3, "Loading_module_0_from_node_modules_folder_target_file_types_Colon_1_6098", "Loading module '{0}' from 'node_modules' folder, target file types: {1}."),
        Found_package_json_at_0: T(6099, 3, "Found_package_json_at_0_6099", "Found 'package.json' at '{0}'."),
        package_json_does_not_have_a_0_field: T(6100, 3, "package_json_does_not_have_a_0_field_6100", "'package.json' does not have a '{0}' field."),
        package_json_has_0_field_1_that_references_2: T(6101, 3, "package_json_has_0_field_1_that_references_2_6101", "'package.json' has '{0}' field '{1}' that references '{2}'."),
        Allow_javascript_files_to_be_compiled: T(6102, 3, "Allow_javascript_files_to_be_compiled_6102", "Allow javascript files to be compiled."),
        Checking_if_0_is_the_longest_matching_prefix_for_1_2: T(6104, 3, "Checking_if_0_is_the_longest_matching_prefix_for_1_2_6104", "Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'."),
        Expected_type_of_0_field_in_package_json_to_be_1_got_2: T(6105, 3, "Expected_type_of_0_field_in_package_json_to_be_1_got_2_6105", "Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'."),
        baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1: T(6106, 3, "baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1_6106", "'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'."),
        rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0: T(6107, 3, "rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107", "'rootDirs' option is set, using it to resolve relative module name '{0}'."),
        Longest_matching_prefix_for_0_is_1: T(6108, 3, "Longest_matching_prefix_for_0_is_1_6108", "Longest matching prefix for '{0}' is '{1}'."),
        Loading_0_from_the_root_dir_1_candidate_location_2: T(6109, 3, "Loading_0_from_the_root_dir_1_candidate_location_2_6109", "Loading '{0}' from the root dir '{1}', candidate location '{2}'."),
        Trying_other_entries_in_rootDirs: T(6110, 3, "Trying_other_entries_in_rootDirs_6110", "Trying other entries in 'rootDirs'."),
        Module_resolution_using_rootDirs_has_failed: T(6111, 3, "Module_resolution_using_rootDirs_has_failed_6111", "Module resolution using 'rootDirs' has failed."),
        Do_not_emit_use_strict_directives_in_module_output: T(6112, 3, "Do_not_emit_use_strict_directives_in_module_output_6112", "Do not emit 'use strict' directives in module output."),
        Enable_strict_null_checks: T(6113, 3, "Enable_strict_null_checks_6113", "Enable strict null checks."),
        Unknown_option_excludes_Did_you_mean_exclude: T(6114, 1, "Unknown_option_excludes_Did_you_mean_exclude_6114", "Unknown option 'excludes'. Did you mean 'exclude'?"),
        Raise_error_on_this_expressions_with_an_implied_any_type: T(6115, 3, "Raise_error_on_this_expressions_with_an_implied_any_type_6115", "Raise error on 'this' expressions with an implied 'any' type."),
        Resolving_type_reference_directive_0_containing_file_1_root_directory_2: T(6116, 3, "Resolving_type_reference_directive_0_containing_file_1_root_directory_2_6116", "======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========"),
        Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2: T(6119, 3, "Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2_6119", "======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========"),
        Type_reference_directive_0_was_not_resolved: T(6120, 3, "Type_reference_directive_0_was_not_resolved_6120", "======== Type reference directive '{0}' was not resolved. ========"),
        Resolving_with_primary_search_path_0: T(6121, 3, "Resolving_with_primary_search_path_0_6121", "Resolving with primary search path '{0}'."),
        Root_directory_cannot_be_determined_skipping_primary_search_paths: T(6122, 3, "Root_directory_cannot_be_determined_skipping_primary_search_paths_6122", "Root directory cannot be determined, skipping primary search paths."),
        Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set: T(6123, 3, "Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set_6123", "======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========"),
        Type_declaration_files_to_be_included_in_compilation: T(6124, 3, "Type_declaration_files_to_be_included_in_compilation_6124", "Type declaration files to be included in compilation."),
        Looking_up_in_node_modules_folder_initial_location_0: T(6125, 3, "Looking_up_in_node_modules_folder_initial_location_0_6125", "Looking up in 'node_modules' folder, initial location '{0}'."),
        Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder: T(6126, 3, "Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_mod_6126", "Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder."),
        Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1: T(6127, 3, "Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1_6127", "======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========"),
        Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set: T(6128, 3, "Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set_6128", "======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========"),
        Resolving_real_path_for_0_result_1: T(6130, 3, "Resolving_real_path_for_0_result_1_6130", "Resolving real path for '{0}', result '{1}'."),
        Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system: T(6131, 1, "Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system_6131", "Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'."),
        File_name_0_has_a_1_extension_stripping_it: T(6132, 3, "File_name_0_has_a_1_extension_stripping_it_6132", "File name '{0}' has a '{1}' extension - stripping it."),
        _0_is_declared_but_its_value_is_never_read: T(6133, 1, "_0_is_declared_but_its_value_is_never_read_6133", "'{0}' is declared but its value is never read.", !0),
        Report_errors_on_unused_locals: T(6134, 3, "Report_errors_on_unused_locals_6134", "Report errors on unused locals."),
        Report_errors_on_unused_parameters: T(6135, 3, "Report_errors_on_unused_parameters_6135", "Report errors on unused parameters."),
        The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files: T(6136, 3, "The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files_6136", "The maximum dependency depth to search under node_modules and load JavaScript files."),
        Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1: T(6137, 1, "Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1_6137", "Cannot import type declaration files. Consider importing '{0}' instead of '{1}'."),
        Property_0_is_declared_but_its_value_is_never_read: T(6138, 1, "Property_0_is_declared_but_its_value_is_never_read_6138", "Property '{0}' is declared but its value is never read.", !0),
        Import_emit_helpers_from_tslib: T(6139, 3, "Import_emit_helpers_from_tslib_6139", "Import emit helpers from 'tslib'."),
        Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2: T(6140, 1, "Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using__6140", "Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'."),
        Parse_in_strict_mode_and_emit_use_strict_for_each_source_file: T(6141, 3, "Parse_in_strict_mode_and_emit_use_strict_for_each_source_file_6141", 'Parse in strict mode and emit "use strict" for each source file.'),
        Module_0_was_resolved_to_1_but_jsx_is_not_set: T(6142, 1, "Module_0_was_resolved_to_1_but_jsx_is_not_set_6142", "Module '{0}' was resolved to '{1}', but '--jsx' is not set."),
        Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1: T(6144, 3, "Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1_6144", "Module '{0}' was resolved as locally declared ambient module in file '{1}'."),
        Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified: T(6145, 3, "Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified_6145", "Module '{0}' was resolved as ambient module declared in '{1}' since this file was not modified."),
        Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h: T(6146, 3, "Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h_6146", "Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'."),
        Resolution_for_module_0_was_found_in_cache_from_location_1: T(6147, 3, "Resolution_for_module_0_was_found_in_cache_from_location_1_6147", "Resolution for module '{0}' was found in cache from location '{1}'."),
        Directory_0_does_not_exist_skipping_all_lookups_in_it: T(6148, 3, "Directory_0_does_not_exist_skipping_all_lookups_in_it_6148", "Directory '{0}' does not exist, skipping all lookups in it."),
        Show_diagnostic_information: T(6149, 3, "Show_diagnostic_information_6149", "Show diagnostic information."),
        Show_verbose_diagnostic_information: T(6150, 3, "Show_verbose_diagnostic_information_6150", "Show verbose diagnostic information."),
        Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file: T(6151, 3, "Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file_6151", "Emit a single file with source maps instead of having a separate file."),
        Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set: T(6152, 3, "Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap__6152", "Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set."),
        Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule: T(6153, 3, "Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule_6153", "Transpile each file as a separate module (similar to 'ts.transpileModule')."),
        Print_names_of_generated_files_part_of_the_compilation: T(6154, 3, "Print_names_of_generated_files_part_of_the_compilation_6154", "Print names of generated files part of the compilation."),
        Print_names_of_files_part_of_the_compilation: T(6155, 3, "Print_names_of_files_part_of_the_compilation_6155", "Print names of files part of the compilation."),
        The_locale_used_when_displaying_messages_to_the_user_e_g_en_us: T(6156, 3, "The_locale_used_when_displaying_messages_to_the_user_e_g_en_us_6156", "The locale used when displaying messages to the user (e.g. 'en-us')"),
        Do_not_generate_custom_helper_functions_like_extends_in_compiled_output: T(6157, 3, "Do_not_generate_custom_helper_functions_like_extends_in_compiled_output_6157", "Do not generate custom helper functions like '__extends' in compiled output."),
        Do_not_include_the_default_library_file_lib_d_ts: T(6158, 3, "Do_not_include_the_default_library_file_lib_d_ts_6158", "Do not include the default library file (lib.d.ts)."),
        Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files: T(6159, 3, "Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files_6159", "Do not add triple-slash references or imported modules to the list of compiled files."),
        Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files: T(6160, 3, "Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files_6160", "[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files."),
        List_of_folders_to_include_type_definitions_from: T(6161, 3, "List_of_folders_to_include_type_definitions_from_6161", "List of folders to include type definitions from."),
        Disable_size_limitations_on_JavaScript_projects: T(6162, 3, "Disable_size_limitations_on_JavaScript_projects_6162", "Disable size limitations on JavaScript projects."),
        The_character_set_of_the_input_files: T(6163, 3, "The_character_set_of_the_input_files_6163", "The character set of the input files."),
        Do_not_truncate_error_messages: T(6165, 3, "Do_not_truncate_error_messages_6165", "Do not truncate error messages."),
        Output_directory_for_generated_declaration_files: T(6166, 3, "Output_directory_for_generated_declaration_files_6166", "Output directory for generated declaration files."),
        A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl: T(6167, 3, "A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl_6167", "A series of entries which re-map imports to lookup locations relative to the 'baseUrl'."),
        List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime: T(6168, 3, "List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime_6168", "List of root folders whose combined content represents the structure of the project at runtime."),
        Show_all_compiler_options: T(6169, 3, "Show_all_compiler_options_6169", "Show all compiler options."),
        Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file: T(6170, 3, "Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file_6170", "[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file"),
        Command_line_Options: T(6171, 3, "Command_line_Options_6171", "Command-line Options"),
        Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3: T(6179, 3, "Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3_6179", "Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'."),
        Enable_all_strict_type_checking_options: T(6180, 3, "Enable_all_strict_type_checking_options_6180", "Enable all strict type-checking options."),
        Scoped_package_detected_looking_in_0: T(6182, 3, "Scoped_package_detected_looking_in_0_6182", "Scoped package detected, looking in '{0}'"),
        Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2: T(6183, 3, "Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_6183", "Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."),
        Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3: T(6184, 3, "Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package__6184", "Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."),
        Enable_strict_checking_of_function_types: T(6186, 3, "Enable_strict_checking_of_function_types_6186", "Enable strict checking of function types."),
        Enable_strict_checking_of_property_initialization_in_classes: T(6187, 3, "Enable_strict_checking_of_property_initialization_in_classes_6187", "Enable strict checking of property initialization in classes."),
        Numeric_separators_are_not_allowed_here: T(6188, 1, "Numeric_separators_are_not_allowed_here_6188", "Numeric separators are not allowed here."),
        Multiple_consecutive_numeric_separators_are_not_permitted: T(6189, 1, "Multiple_consecutive_numeric_separators_are_not_permitted_6189", "Multiple consecutive numeric separators are not permitted."),
        Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen: T(6191, 3, "Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191", "Whether to keep outdated console output in watch mode instead of clearing the screen."),
        All_imports_in_import_declaration_are_unused: T(6192, 1, "All_imports_in_import_declaration_are_unused_6192", "All imports in import declaration are unused.", !0),
        Found_1_error_Watching_for_file_changes: T(6193, 3, "Found_1_error_Watching_for_file_changes_6193", "Found 1 error. Watching for file changes."),
        Found_0_errors_Watching_for_file_changes: T(6194, 3, "Found_0_errors_Watching_for_file_changes_6194", "Found {0} errors. Watching for file changes."),
        Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols: T(6195, 3, "Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195", "Resolve 'keyof' to string valued property names only (no numbers or symbols)."),
        _0_is_declared_but_never_used: T(6196, 1, "_0_is_declared_but_never_used_6196", "'{0}' is declared but never used.", !0),
        Include_modules_imported_with_json_extension: T(6197, 3, "Include_modules_imported_with_json_extension_6197", "Include modules imported with '.json' extension"),
        All_destructured_elements_are_unused: T(6198, 1, "All_destructured_elements_are_unused_6198", "All destructured elements are unused.", !0),
        All_variables_are_unused: T(6199, 1, "All_variables_are_unused_6199", "All variables are unused.", !0),
        Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0: T(6200, 1, "Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0_6200", "Definitions of the following identifiers conflict with those in another file: {0}"),
        Conflicts_are_in_this_file: T(6201, 3, "Conflicts_are_in_this_file_6201", "Conflicts are in this file."),
        Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0: T(6202, 1, "Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0_6202", "Project references may not form a circular graph. Cycle detected: {0}"),
        _0_was_also_declared_here: T(6203, 3, "_0_was_also_declared_here_6203", "'{0}' was also declared here."),
        and_here: T(6204, 3, "and_here_6204", "and here."),
        All_type_parameters_are_unused: T(6205, 1, "All_type_parameters_are_unused_6205", "All type parameters are unused."),
        package_json_has_a_typesVersions_field_with_version_specific_path_mappings: T(6206, 3, "package_json_has_a_typesVersions_field_with_version_specific_path_mappings_6206", "'package.json' has a 'typesVersions' field with version-specific path mappings."),
        package_json_does_not_have_a_typesVersions_entry_that_matches_version_0: T(6207, 3, "package_json_does_not_have_a_typesVersions_entry_that_matches_version_0_6207", "'package.json' does not have a 'typesVersions' entry that matches version '{0}'."),
        package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2: T(6208, 3, "package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_ma_6208", "'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'."),
        package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range: T(6209, 3, "package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range_6209", "'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range."),
        An_argument_for_0_was_not_provided: T(6210, 3, "An_argument_for_0_was_not_provided_6210", "An argument for '{0}' was not provided."),
        An_argument_matching_this_binding_pattern_was_not_provided: T(6211, 3, "An_argument_matching_this_binding_pattern_was_not_provided_6211", "An argument matching this binding pattern was not provided."),
        Did_you_mean_to_call_this_expression: T(6212, 3, "Did_you_mean_to_call_this_expression_6212", "Did you mean to call this expression?"),
        Did_you_mean_to_use_new_with_this_expression: T(6213, 3, "Did_you_mean_to_use_new_with_this_expression_6213", "Did you mean to use 'new' with this expression?"),
        Enable_strict_bind_call_and_apply_methods_on_functions: T(6214, 3, "Enable_strict_bind_call_and_apply_methods_on_functions_6214", "Enable strict 'bind', 'call', and 'apply' methods on functions."),
        Using_compiler_options_of_project_reference_redirect_0: T(6215, 3, "Using_compiler_options_of_project_reference_redirect_0_6215", "Using compiler options of project reference redirect '{0}'."),
        Found_1_error: T(6216, 3, "Found_1_error_6216", "Found 1 error."),
        Found_0_errors: T(6217, 3, "Found_0_errors_6217", "Found {0} errors."),
        Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2: T(6218, 3, "Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2_6218", "======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========"),
        Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3: T(6219, 3, "Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3_6219", "======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========"),
        package_json_had_a_falsy_0_field: T(6220, 3, "package_json_had_a_falsy_0_field_6220", "'package.json' had a falsy '{0}' field."),
        Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects: T(6221, 3, "Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects_6221", "Disable use of source files instead of declaration files from referenced projects."),
        Emit_class_fields_with_Define_instead_of_Set: T(6222, 3, "Emit_class_fields_with_Define_instead_of_Set_6222", "Emit class fields with Define instead of Set."),
        Generates_a_CPU_profile: T(6223, 3, "Generates_a_CPU_profile_6223", "Generates a CPU profile."),
        Disable_solution_searching_for_this_project: T(6224, 3, "Disable_solution_searching_for_this_project_6224", "Disable solution searching for this project."),
        Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling_UseFsEvents_UseFsEventsOnParentDirectory: T(6225, 3, "Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_Dynami_6225", "Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'."),
        Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively_Colon_UseFsEvents_default_FixedPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling: T(6226, 3, "Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively__6226", "Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'."),
        Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_FixedInterval_default_PriorityInterval_DynamicPriority_FixedChunkSize: T(6227, 3, "Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_6227", "Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'."),
        Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3: T(6229, 1, "Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3_6229", "Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'."),
        Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line: T(6230, 1, "Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line_6230", "Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line."),
        Could_not_resolve_the_path_0_with_the_extensions_Colon_1: T(6231, 1, "Could_not_resolve_the_path_0_with_the_extensions_Colon_1_6231", "Could not resolve the path '{0}' with the extensions: {1}."),
        Declaration_augments_declaration_in_another_file_This_cannot_be_serialized: T(6232, 1, "Declaration_augments_declaration_in_another_file_This_cannot_be_serialized_6232", "Declaration augments declaration in another file. This cannot be serialized."),
        This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file: T(6233, 1, "This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_fil_6233", "This is the declaration being augmented. Consider moving the augmenting declaration into the same file."),
        This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without: T(6234, 1, "This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without_6234", "This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?"),
        Disable_loading_referenced_projects: T(6235, 3, "Disable_loading_referenced_projects_6235", "Disable loading referenced projects."),
        Arguments_for_the_rest_parameter_0_were_not_provided: T(6236, 1, "Arguments_for_the_rest_parameter_0_were_not_provided_6236", "Arguments for the rest parameter '{0}' were not provided."),
        Generates_an_event_trace_and_a_list_of_types: T(6237, 3, "Generates_an_event_trace_and_a_list_of_types_6237", "Generates an event trace and a list of types."),
        Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react: T(6238, 1, "Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react_6238", "Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react"),
        File_0_exists_according_to_earlier_cached_lookups: T(6239, 3, "File_0_exists_according_to_earlier_cached_lookups_6239", "File '{0}' exists according to earlier cached lookups."),
        File_0_does_not_exist_according_to_earlier_cached_lookups: T(6240, 3, "File_0_does_not_exist_according_to_earlier_cached_lookups_6240", "File '{0}' does not exist according to earlier cached lookups."),
        Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1: T(6241, 3, "Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1_6241", "Resolution for type reference directive '{0}' was found in cache from location '{1}'."),
        Resolving_type_reference_directive_0_containing_file_1: T(6242, 3, "Resolving_type_reference_directive_0_containing_file_1_6242", "======== Resolving type reference directive '{0}', containing file '{1}'. ========"),
        Interpret_optional_property_types_as_written_rather_than_adding_undefined: T(6243, 3, "Interpret_optional_property_types_as_written_rather_than_adding_undefined_6243", "Interpret optional property types as written, rather than adding 'undefined'."),
        Modules: T(6244, 3, "Modules_6244", "Modules"),
        File_Management: T(6245, 3, "File_Management_6245", "File Management"),
        Emit: T(6246, 3, "Emit_6246", "Emit"),
        JavaScript_Support: T(6247, 3, "JavaScript_Support_6247", "JavaScript Support"),
        Type_Checking: T(6248, 3, "Type_Checking_6248", "Type Checking"),
        Editor_Support: T(6249, 3, "Editor_Support_6249", "Editor Support"),
        Watch_and_Build_Modes: T(6250, 3, "Watch_and_Build_Modes_6250", "Watch and Build Modes"),
        Compiler_Diagnostics: T(6251, 3, "Compiler_Diagnostics_6251", "Compiler Diagnostics"),
        Interop_Constraints: T(6252, 3, "Interop_Constraints_6252", "Interop Constraints"),
        Backwards_Compatibility: T(6253, 3, "Backwards_Compatibility_6253", "Backwards Compatibility"),
        Language_and_Environment: T(6254, 3, "Language_and_Environment_6254", "Language and Environment"),
        Projects: T(6255, 3, "Projects_6255", "Projects"),
        Output_Formatting: T(6256, 3, "Output_Formatting_6256", "Output Formatting"),
        Completeness: T(6257, 3, "Completeness_6257", "Completeness"),
        _0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file: T(6258, 1, "_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file_6258", "'{0}' should be set inside the 'compilerOptions' object of the config json file"),
        Found_1_error_in_1: T(6259, 3, "Found_1_error_in_1_6259", "Found 1 error in {1}"),
        Found_0_errors_in_the_same_file_starting_at_Colon_1: T(6260, 3, "Found_0_errors_in_the_same_file_starting_at_Colon_1_6260", "Found {0} errors in the same file, starting at: {1}"),
        Found_0_errors_in_1_files: T(6261, 3, "Found_0_errors_in_1_files_6261", "Found {0} errors in {1} files."),
        File_name_0_has_a_1_extension_looking_up_2_instead: T(6262, 3, "File_name_0_has_a_1_extension_looking_up_2_instead_6262", "File name '{0}' has a '{1}' extension - looking up '{2}' instead."),
        Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set: T(6263, 1, "Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set_6263", "Module '{0}' was resolved to '{1}', but '--allowArbitraryExtensions' is not set."),
        Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present: T(6264, 3, "Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present_6264", "Enable importing files with any extension, provided a declaration file is present."),
        Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve: T(6270, 3, "Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve_6270", "Directory '{0}' has no containing package.json scope. Imports will not resolve."),
        Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1: T(6271, 3, "Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6271", "Import specifier '{0}' does not exist in package.json scope at path '{1}'."),
        Invalid_import_specifier_0_has_no_possible_resolutions: T(6272, 3, "Invalid_import_specifier_0_has_no_possible_resolutions_6272", "Invalid import specifier '{0}' has no possible resolutions."),
        package_json_scope_0_has_no_imports_defined: T(6273, 3, "package_json_scope_0_has_no_imports_defined_6273", "package.json scope '{0}' has no imports defined."),
        package_json_scope_0_explicitly_maps_specifier_1_to_null: T(6274, 3, "package_json_scope_0_explicitly_maps_specifier_1_to_null_6274", "package.json scope '{0}' explicitly maps specifier '{1}' to null."),
        package_json_scope_0_has_invalid_type_for_target_of_specifier_1: T(6275, 3, "package_json_scope_0_has_invalid_type_for_target_of_specifier_1_6275", "package.json scope '{0}' has invalid type for target of specifier '{1}'"),
        Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1: T(6276, 3, "Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6276", "Export specifier '{0}' does not exist in package.json scope at path '{1}'."),
        Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_if_npm_library_needs_configuration_update: T(6277, 3, "Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_i_6277", "Resolution of non-relative name failed; trying with modern Node resolution features disabled to see if npm library needs configuration update."),
        There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings: T(6278, 3, "There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The__6278", `There are types at '{0}', but this result could not be resolved when respecting package.json "exports". The '{1}' library may need to update its package.json or typings.`),
        Enable_project_compilation: T(6302, 3, "Enable_project_compilation_6302", "Enable project compilation"),
        Composite_projects_may_not_disable_declaration_emit: T(6304, 1, "Composite_projects_may_not_disable_declaration_emit_6304", "Composite projects may not disable declaration emit."),
        Output_file_0_has_not_been_built_from_source_file_1: T(6305, 1, "Output_file_0_has_not_been_built_from_source_file_1_6305", "Output file '{0}' has not been built from source file '{1}'."),
        Referenced_project_0_must_have_setting_composite_Colon_true: T(6306, 1, "Referenced_project_0_must_have_setting_composite_Colon_true_6306", `Referenced project '{0}' must have setting "composite": true.`),
        File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern: T(6307, 1, "File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307", "File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern."),
        Cannot_prepend_project_0_because_it_does_not_have_outFile_set: T(6308, 1, "Cannot_prepend_project_0_because_it_does_not_have_outFile_set_6308", "Cannot prepend project '{0}' because it does not have 'outFile' set"),
        Output_file_0_from_project_1_does_not_exist: T(6309, 1, "Output_file_0_from_project_1_does_not_exist_6309", "Output file '{0}' from project '{1}' does not exist"),
        Referenced_project_0_may_not_disable_emit: T(6310, 1, "Referenced_project_0_may_not_disable_emit_6310", "Referenced project '{0}' may not disable emit."),
        Project_0_is_out_of_date_because_output_1_is_older_than_input_2: T(6350, 3, "Project_0_is_out_of_date_because_output_1_is_older_than_input_2_6350", "Project '{0}' is out of date because output '{1}' is older than input '{2}'"),
        Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2: T(6351, 3, "Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2_6351", "Project '{0}' is up to date because newest input '{1}' is older than output '{2}'"),
        Project_0_is_out_of_date_because_output_file_1_does_not_exist: T(6352, 3, "Project_0_is_out_of_date_because_output_file_1_does_not_exist_6352", "Project '{0}' is out of date because output file '{1}' does not exist"),
        Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date: T(6353, 3, "Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date_6353", "Project '{0}' is out of date because its dependency '{1}' is out of date"),
        Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies: T(6354, 3, "Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies_6354", "Project '{0}' is up to date with .d.ts files from its dependencies"),
        Projects_in_this_build_Colon_0: T(6355, 3, "Projects_in_this_build_Colon_0_6355", "Projects in this build: {0}"),
        A_non_dry_build_would_delete_the_following_files_Colon_0: T(6356, 3, "A_non_dry_build_would_delete_the_following_files_Colon_0_6356", "A non-dry build would delete the following files: {0}"),
        A_non_dry_build_would_build_project_0: T(6357, 3, "A_non_dry_build_would_build_project_0_6357", "A non-dry build would build project '{0}'"),
        Building_project_0: T(6358, 3, "Building_project_0_6358", "Building project '{0}'..."),
        Updating_output_timestamps_of_project_0: T(6359, 3, "Updating_output_timestamps_of_project_0_6359", "Updating output timestamps of project '{0}'..."),
        Project_0_is_up_to_date: T(6361, 3, "Project_0_is_up_to_date_6361", "Project '{0}' is up to date"),
        Skipping_build_of_project_0_because_its_dependency_1_has_errors: T(6362, 3, "Skipping_build_of_project_0_because_its_dependency_1_has_errors_6362", "Skipping build of project '{0}' because its dependency '{1}' has errors"),
        Project_0_can_t_be_built_because_its_dependency_1_has_errors: T(6363, 3, "Project_0_can_t_be_built_because_its_dependency_1_has_errors_6363", "Project '{0}' can't be built because its dependency '{1}' has errors"),
        Build_one_or_more_projects_and_their_dependencies_if_out_of_date: T(6364, 3, "Build_one_or_more_projects_and_their_dependencies_if_out_of_date_6364", "Build one or more projects and their dependencies, if out of date"),
        Delete_the_outputs_of_all_projects: T(6365, 3, "Delete_the_outputs_of_all_projects_6365", "Delete the outputs of all projects."),
        Show_what_would_be_built_or_deleted_if_specified_with_clean: T(6367, 3, "Show_what_would_be_built_or_deleted_if_specified_with_clean_6367", "Show what would be built (or deleted, if specified with '--clean')"),
        Option_build_must_be_the_first_command_line_argument: T(6369, 1, "Option_build_must_be_the_first_command_line_argument_6369", "Option '--build' must be the first command line argument."),
        Options_0_and_1_cannot_be_combined: T(6370, 1, "Options_0_and_1_cannot_be_combined_6370", "Options '{0}' and '{1}' cannot be combined."),
        Updating_unchanged_output_timestamps_of_project_0: T(6371, 3, "Updating_unchanged_output_timestamps_of_project_0_6371", "Updating unchanged output timestamps of project '{0}'..."),
        Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed: T(6372, 3, "Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed_6372", "Project '{0}' is out of date because output of its dependency '{1}' has changed"),
        Updating_output_of_project_0: T(6373, 3, "Updating_output_of_project_0_6373", "Updating output of project '{0}'..."),
        A_non_dry_build_would_update_timestamps_for_output_of_project_0: T(6374, 3, "A_non_dry_build_would_update_timestamps_for_output_of_project_0_6374", "A non-dry build would update timestamps for output of project '{0}'"),
        A_non_dry_build_would_update_output_of_project_0: T(6375, 3, "A_non_dry_build_would_update_output_of_project_0_6375", "A non-dry build would update output of project '{0}'"),
        Cannot_update_output_of_project_0_because_there_was_error_reading_file_1: T(6376, 3, "Cannot_update_output_of_project_0_because_there_was_error_reading_file_1_6376", "Cannot update output of project '{0}' because there was error reading file '{1}'"),
        Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1: T(6377, 1, "Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1_6377", "Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'"),
        Composite_projects_may_not_disable_incremental_compilation: T(6379, 1, "Composite_projects_may_not_disable_incremental_compilation_6379", "Composite projects may not disable incremental compilation."),
        Specify_file_to_store_incremental_compilation_information: T(6380, 3, "Specify_file_to_store_incremental_compilation_information_6380", "Specify file to store incremental compilation information"),
        Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2: T(6381, 3, "Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_curren_6381", "Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'"),
        Skipping_build_of_project_0_because_its_dependency_1_was_not_built: T(6382, 3, "Skipping_build_of_project_0_because_its_dependency_1_was_not_built_6382", "Skipping build of project '{0}' because its dependency '{1}' was not built"),
        Project_0_can_t_be_built_because_its_dependency_1_was_not_built: T(6383, 3, "Project_0_can_t_be_built_because_its_dependency_1_was_not_built_6383", "Project '{0}' can't be built because its dependency '{1}' was not built"),
        Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it: T(6384, 3, "Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_di_6384", "Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it."),
        _0_is_deprecated: T(6385, 2, "_0_is_deprecated_6385", "'{0}' is deprecated.", void 0, void 0, !0),
        Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found: T(6386, 3, "Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_nativ_6386", "Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found."),
        The_signature_0_of_1_is_deprecated: T(6387, 2, "The_signature_0_of_1_is_deprecated_6387", "The signature '{0}' of '{1}' is deprecated.", void 0, void 0, !0),
        Project_0_is_being_forcibly_rebuilt: T(6388, 3, "Project_0_is_being_forcibly_rebuilt_6388", "Project '{0}' is being forcibly rebuilt"),
        Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved: T(6389, 3, "Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved_6389", "Reusing resolution of module '{0}' from '{1}' of old program, it was not resolved."),
        Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2: T(6390, 3, "Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6390", "Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."),
        Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3: T(6391, 3, "Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6391", "Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."),
        Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved: T(6392, 3, "Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved_6392", "Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was not resolved."),
        Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3: T(6393, 3, "Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6393", "Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."),
        Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4: T(6394, 3, "Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6394", "Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."),
        Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved: T(6395, 3, "Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved_6395", "Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was not resolved."),
        Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3: T(6396, 3, "Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6396", "Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."),
        Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4: T(6397, 3, "Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6397", "Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."),
        Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_resolved: T(6398, 3, "Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_re_6398", "Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved."),
        Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted: T(6399, 3, "Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitte_6399", "Project '{0}' is out of date because buildinfo file '{1}' indicates that some of the changes were not emitted"),
        Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files: T(6400, 3, "Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_fil_6400", "Project '{0}' is up to date but needs to update timestamps of output files that are older than input files"),
        Project_0_is_out_of_date_because_there_was_error_reading_file_1: T(6401, 3, "Project_0_is_out_of_date_because_there_was_error_reading_file_1_6401", "Project '{0}' is out of date because there was error reading file '{1}'"),
        Resolving_in_0_mode_with_conditions_1: T(6402, 3, "Resolving_in_0_mode_with_conditions_1_6402", "Resolving in {0} mode with conditions {1}."),
        Matched_0_condition_1: T(6403, 3, "Matched_0_condition_1_6403", "Matched '{0}' condition '{1}'."),
        Using_0_subpath_1_with_target_2: T(6404, 3, "Using_0_subpath_1_with_target_2_6404", "Using '{0}' subpath '{1}' with target '{2}'."),
        Saw_non_matching_condition_0: T(6405, 3, "Saw_non_matching_condition_0_6405", "Saw non-matching condition '{0}'."),
        Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions: T(6406, 3, "Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions_6406", "Project '{0}' is out of date because buildinfo file '{1}' indicates there is change in compilerOptions"),
        Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set: T(6407, 3, "Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noE_6407", "Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set."),
        Use_the_package_json_exports_field_when_resolving_package_imports: T(6408, 3, "Use_the_package_json_exports_field_when_resolving_package_imports_6408", "Use the package.json 'exports' field when resolving package imports."),
        Use_the_package_json_imports_field_when_resolving_imports: T(6409, 3, "Use_the_package_json_imports_field_when_resolving_imports_6409", "Use the package.json 'imports' field when resolving imports."),
        Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports: T(6410, 3, "Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports_6410", "Conditions to set in addition to the resolver-specific defaults when resolving imports."),
        true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false: T(6411, 3, "true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false_6411", "`true` when 'moduleResolution' is 'node16', 'nodenext', or 'bundler'; otherwise `false`."),
        Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more: T(6412, 3, "Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_6412", "Project '{0}' is out of date because buildinfo file '{1}' indicates that file '{2}' was root file of compilation but not any more."),
        Entering_conditional_exports: T(6413, 3, "Entering_conditional_exports_6413", "Entering conditional exports."),
        Resolved_under_condition_0: T(6414, 3, "Resolved_under_condition_0_6414", "Resolved under condition '{0}'."),
        Failed_to_resolve_under_condition_0: T(6415, 3, "Failed_to_resolve_under_condition_0_6415", "Failed to resolve under condition '{0}'."),
        Exiting_conditional_exports: T(6416, 3, "Exiting_conditional_exports_6416", "Exiting conditional exports."),
        The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1: T(6500, 3, "The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500", "The expected type comes from property '{0}' which is declared here on type '{1}'"),
        The_expected_type_comes_from_this_index_signature: T(6501, 3, "The_expected_type_comes_from_this_index_signature_6501", "The expected type comes from this index signature."),
        The_expected_type_comes_from_the_return_type_of_this_signature: T(6502, 3, "The_expected_type_comes_from_the_return_type_of_this_signature_6502", "The expected type comes from the return type of this signature."),
        Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing: T(6503, 3, "Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing_6503", "Print names of files that are part of the compilation and then stop processing."),
        File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option: T(6504, 1, "File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option_6504", "File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?"),
        Print_names_of_files_and_the_reason_they_are_part_of_the_compilation: T(6505, 3, "Print_names_of_files_and_the_reason_they_are_part_of_the_compilation_6505", "Print names of files and the reason they are part of the compilation."),
        Consider_adding_a_declare_modifier_to_this_class: T(6506, 3, "Consider_adding_a_declare_modifier_to_this_class_6506", "Consider adding a 'declare' modifier to this class."),
        Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these_files: T(6600, 3, "Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these__6600", "Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files."),
        Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export: T(6601, 3, "Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export_6601", "Allow 'import x from y' when a module doesn't have a default export."),
        Allow_accessing_UMD_globals_from_modules: T(6602, 3, "Allow_accessing_UMD_globals_from_modules_6602", "Allow accessing UMD globals from modules."),
        Disable_error_reporting_for_unreachable_code: T(6603, 3, "Disable_error_reporting_for_unreachable_code_6603", "Disable error reporting for unreachable code."),
        Disable_error_reporting_for_unused_labels: T(6604, 3, "Disable_error_reporting_for_unused_labels_6604", "Disable error reporting for unused labels."),
        Ensure_use_strict_is_always_emitted: T(6605, 3, "Ensure_use_strict_is_always_emitted_6605", "Ensure 'use strict' is always emitted."),
        Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it: T(6606, 3, "Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_wi_6606", "Have recompiles in projects that use 'incremental' and 'watch' mode assume that changes within a file will only affect files directly depending on it."),
        Specify_the_base_directory_to_resolve_non_relative_module_names: T(6607, 3, "Specify_the_base_directory_to_resolve_non_relative_module_names_6607", "Specify the base directory to resolve non-relative module names."),
        No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files: T(6608, 3, "No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files_6608", "No longer supported. In early versions, manually set the text encoding for reading files."),
        Enable_error_reporting_in_type_checked_JavaScript_files: T(6609, 3, "Enable_error_reporting_in_type_checked_JavaScript_files_6609", "Enable error reporting in type-checked JavaScript files."),
        Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references: T(6611, 3, "Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references_6611", "Enable constraints that allow a TypeScript project to be used with project references."),
        Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project: T(6612, 3, "Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project_6612", "Generate .d.ts files from TypeScript and JavaScript files in your project."),
        Specify_the_output_directory_for_generated_declaration_files: T(6613, 3, "Specify_the_output_directory_for_generated_declaration_files_6613", "Specify the output directory for generated declaration files."),
        Create_sourcemaps_for_d_ts_files: T(6614, 3, "Create_sourcemaps_for_d_ts_files_6614", "Create sourcemaps for d.ts files."),
        Output_compiler_performance_information_after_building: T(6615, 3, "Output_compiler_performance_information_after_building_6615", "Output compiler performance information after building."),
        Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project: T(6616, 3, "Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project_6616", "Disables inference for type acquisition by looking at filenames in a project."),
        Reduce_the_number_of_projects_loaded_automatically_by_TypeScript: T(6617, 3, "Reduce_the_number_of_projects_loaded_automatically_by_TypeScript_6617", "Reduce the number of projects loaded automatically by TypeScript."),
        Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server: T(6618, 3, "Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server_6618", "Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server."),
        Opt_a_project_out_of_multi_project_reference_checking_when_editing: T(6619, 3, "Opt_a_project_out_of_multi_project_reference_checking_when_editing_6619", "Opt a project out of multi-project reference checking when editing."),
        Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects: T(6620, 3, "Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects_6620", "Disable preferring source files instead of declaration files when referencing composite projects."),
        Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration: T(6621, 3, "Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration_6621", "Emit more compliant, but verbose and less performant JavaScript for iteration."),
        Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files: T(6622, 3, "Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files_6622", "Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files."),
        Only_output_d_ts_files_and_not_JavaScript_files: T(6623, 3, "Only_output_d_ts_files_and_not_JavaScript_files_6623", "Only output d.ts files and not JavaScript files."),
        Emit_design_type_metadata_for_decorated_declarations_in_source_files: T(6624, 3, "Emit_design_type_metadata_for_decorated_declarations_in_source_files_6624", "Emit design-type metadata for decorated declarations in source files."),
        Disable_the_type_acquisition_for_JavaScript_projects: T(6625, 3, "Disable_the_type_acquisition_for_JavaScript_projects_6625", "Disable the type acquisition for JavaScript projects"),
        Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility: T(6626, 3, "Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheti_6626", "Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility."),
        Filters_results_from_the_include_option: T(6627, 3, "Filters_results_from_the_include_option_6627", "Filters results from the `include` option."),
        Remove_a_list_of_directories_from_the_watch_process: T(6628, 3, "Remove_a_list_of_directories_from_the_watch_process_6628", "Remove a list of directories from the watch process."),
        Remove_a_list_of_files_from_the_watch_mode_s_processing: T(6629, 3, "Remove_a_list_of_files_from_the_watch_mode_s_processing_6629", "Remove a list of files from the watch mode's processing."),
        Enable_experimental_support_for_legacy_experimental_decorators: T(6630, 3, "Enable_experimental_support_for_legacy_experimental_decorators_6630", "Enable experimental support for legacy experimental decorators."),
        Print_files_read_during_the_compilation_including_why_it_was_included: T(6631, 3, "Print_files_read_during_the_compilation_including_why_it_was_included_6631", "Print files read during the compilation including why it was included."),
        Output_more_detailed_compiler_performance_information_after_building: T(6632, 3, "Output_more_detailed_compiler_performance_information_after_building_6632", "Output more detailed compiler performance information after building."),
        Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_are_inherited: T(6633, 3, "Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_a_6633", "Specify one or more path or node module references to base configuration files from which settings are inherited."),
        Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers: T(6634, 3, "Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers_6634", "Specify what approach the watcher should use if the system runs out of native file watchers."),
        Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include: T(6635, 3, "Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include_6635", "Include a list of files. This does not support glob patterns, as opposed to `include`."),
        Build_all_projects_including_those_that_appear_to_be_up_to_date: T(6636, 3, "Build_all_projects_including_those_that_appear_to_be_up_to_date_6636", "Build all projects, including those that appear to be up to date."),
        Ensure_that_casing_is_correct_in_imports: T(6637, 3, "Ensure_that_casing_is_correct_in_imports_6637", "Ensure that casing is correct in imports."),
        Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging: T(6638, 3, "Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging_6638", "Emit a v8 CPU profile of the compiler run for debugging."),
        Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file: T(6639, 3, "Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file_6639", "Allow importing helper functions from tslib once per project, instead of including them per-file."),
        Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation: T(6641, 3, "Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation_6641", "Specify a list of glob patterns that match files to be included in compilation."),
        Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects: T(6642, 3, "Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects_6642", "Save .tsbuildinfo files to allow for incremental compilation of projects."),
        Include_sourcemap_files_inside_the_emitted_JavaScript: T(6643, 3, "Include_sourcemap_files_inside_the_emitted_JavaScript_6643", "Include sourcemap files inside the emitted JavaScript."),
        Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript: T(6644, 3, "Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript_6644", "Include source code in the sourcemaps inside the emitted JavaScript."),
        Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports: T(6645, 3, "Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports_6645", "Ensure that each file can be safely transpiled without relying on other imports."),
        Specify_what_JSX_code_is_generated: T(6646, 3, "Specify_what_JSX_code_is_generated_6646", "Specify what JSX code is generated."),
        Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h: T(6647, 3, "Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h_6647", "Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'."),
        Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment: T(6648, 3, "Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragme_6648", "Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'."),
        Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk: T(6649, 3, "Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Ast_6649", "Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'."),
        Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option: T(6650, 3, "Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option_6650", "Make keyof only return strings instead of string, numbers or symbols. Legacy option."),
        Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment: T(6651, 3, "Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment_6651", "Specify a set of bundled library declaration files that describe the target runtime environment."),
        Print_the_names_of_emitted_files_after_a_compilation: T(6652, 3, "Print_the_names_of_emitted_files_after_a_compilation_6652", "Print the names of emitted files after a compilation."),
        Print_all_of_the_files_read_during_the_compilation: T(6653, 3, "Print_all_of_the_files_read_during_the_compilation_6653", "Print all of the files read during the compilation."),
        Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit: T(6654, 3, "Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit_6654", "Set the language of the messaging from TypeScript. This does not affect emit."),
        Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: T(6655, 3, "Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations_6655", "Specify the location where debugger should locate map files instead of generated locations."),
        Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs: T(6656, 3, "Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicabl_6656", "Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'."),
        Specify_what_module_code_is_generated: T(6657, 3, "Specify_what_module_code_is_generated_6657", "Specify what module code is generated."),
        Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier: T(6658, 3, "Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier_6658", "Specify how TypeScript looks up a file from a given module specifier."),
        Set_the_newline_character_for_emitting_files: T(6659, 3, "Set_the_newline_character_for_emitting_files_6659", "Set the newline character for emitting files."),
        Disable_emitting_files_from_a_compilation: T(6660, 3, "Disable_emitting_files_from_a_compilation_6660", "Disable emitting files from a compilation."),
        Disable_generating_custom_helper_functions_like_extends_in_compiled_output: T(6661, 3, "Disable_generating_custom_helper_functions_like_extends_in_compiled_output_6661", "Disable generating custom helper functions like '__extends' in compiled output."),
        Disable_emitting_files_if_any_type_checking_errors_are_reported: T(6662, 3, "Disable_emitting_files_if_any_type_checking_errors_are_reported_6662", "Disable emitting files if any type checking errors are reported."),
        Disable_truncating_types_in_error_messages: T(6663, 3, "Disable_truncating_types_in_error_messages_6663", "Disable truncating types in error messages."),
        Enable_error_reporting_for_fallthrough_cases_in_switch_statements: T(6664, 3, "Enable_error_reporting_for_fallthrough_cases_in_switch_statements_6664", "Enable error reporting for fallthrough cases in switch statements."),
        Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type: T(6665, 3, "Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type_6665", "Enable error reporting for expressions and declarations with an implied 'any' type."),
        Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier: T(6666, 3, "Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier_6666", "Ensure overriding members in derived classes are marked with an override modifier."),
        Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function: T(6667, 3, "Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function_6667", "Enable error reporting for codepaths that do not explicitly return in a function."),
        Enable_error_reporting_when_this_is_given_the_type_any: T(6668, 3, "Enable_error_reporting_when_this_is_given_the_type_any_6668", "Enable error reporting when 'this' is given the type 'any'."),
        Disable_adding_use_strict_directives_in_emitted_JavaScript_files: T(6669, 3, "Disable_adding_use_strict_directives_in_emitted_JavaScript_files_6669", "Disable adding 'use strict' directives in emitted JavaScript files."),
        Disable_including_any_library_files_including_the_default_lib_d_ts: T(6670, 3, "Disable_including_any_library_files_including_the_default_lib_d_ts_6670", "Disable including any library files, including the default lib.d.ts."),
        Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type: T(6671, 3, "Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type_6671", "Enforces using indexed accessors for keys declared using an indexed type."),
        Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project: T(6672, 3, "Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add__6672", "Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project."),
        Disable_strict_checking_of_generic_signatures_in_function_types: T(6673, 3, "Disable_strict_checking_of_generic_signatures_in_function_types_6673", "Disable strict checking of generic signatures in function types."),
        Add_undefined_to_a_type_when_accessed_using_an_index: T(6674, 3, "Add_undefined_to_a_type_when_accessed_using_an_index_6674", "Add 'undefined' to a type when accessed using an index."),
        Enable_error_reporting_when_local_variables_aren_t_read: T(6675, 3, "Enable_error_reporting_when_local_variables_aren_t_read_6675", "Enable error reporting when local variables aren't read."),
        Raise_an_error_when_a_function_parameter_isn_t_read: T(6676, 3, "Raise_an_error_when_a_function_parameter_isn_t_read_6676", "Raise an error when a function parameter isn't read."),
        Deprecated_setting_Use_outFile_instead: T(6677, 3, "Deprecated_setting_Use_outFile_instead_6677", "Deprecated setting. Use 'outFile' instead."),
        Specify_an_output_folder_for_all_emitted_files: T(6678, 3, "Specify_an_output_folder_for_all_emitted_files_6678", "Specify an output folder for all emitted files."),
        Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output: T(6679, 3, "Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designa_6679", "Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output."),
        Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations: T(6680, 3, "Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations_6680", "Specify a set of entries that re-map imports to additional lookup locations."),
        Specify_a_list_of_language_service_plugins_to_include: T(6681, 3, "Specify_a_list_of_language_service_plugins_to_include_6681", "Specify a list of language service plugins to include."),
        Disable_erasing_const_enum_declarations_in_generated_code: T(6682, 3, "Disable_erasing_const_enum_declarations_in_generated_code_6682", "Disable erasing 'const enum' declarations in generated code."),
        Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node: T(6683, 3, "Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node_6683", "Disable resolving symlinks to their realpath. This correlates to the same flag in node."),
        Disable_wiping_the_console_in_watch_mode: T(6684, 3, "Disable_wiping_the_console_in_watch_mode_6684", "Disable wiping the console in watch mode."),
        Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read: T(6685, 3, "Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read_6685", "Enable color and formatting in TypeScript's output to make compiler errors easier to read."),
        Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit: T(6686, 3, "Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit_6686", "Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit."),
        Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references: T(6687, 3, "Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references_6687", "Specify an array of objects that specify paths for projects. Used in project references."),
        Disable_emitting_comments: T(6688, 3, "Disable_emitting_comments_6688", "Disable emitting comments."),
        Enable_importing_json_files: T(6689, 3, "Enable_importing_json_files_6689", "Enable importing .json files."),
        Specify_the_root_folder_within_your_source_files: T(6690, 3, "Specify_the_root_folder_within_your_source_files_6690", "Specify the root folder within your source files."),
        Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules: T(6691, 3, "Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules_6691", "Allow multiple folders to be treated as one when resolving modules."),
        Skip_type_checking_d_ts_files_that_are_included_with_TypeScript: T(6692, 3, "Skip_type_checking_d_ts_files_that_are_included_with_TypeScript_6692", "Skip type checking .d.ts files that are included with TypeScript."),
        Skip_type_checking_all_d_ts_files: T(6693, 3, "Skip_type_checking_all_d_ts_files_6693", "Skip type checking all .d.ts files."),
        Create_source_map_files_for_emitted_JavaScript_files: T(6694, 3, "Create_source_map_files_for_emitted_JavaScript_files_6694", "Create source map files for emitted JavaScript files."),
        Specify_the_root_path_for_debuggers_to_find_the_reference_source_code: T(6695, 3, "Specify_the_root_path_for_debuggers_to_find_the_reference_source_code_6695", "Specify the root path for debuggers to find the reference source code."),
        Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function: T(6697, 3, "Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function_6697", "Check that the arguments for 'bind', 'call', and 'apply' methods match the original function."),
        When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible: T(6698, 3, "When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible_6698", "When assigning functions, check to ensure parameters and the return values are subtype-compatible."),
        When_type_checking_take_into_account_null_and_undefined: T(6699, 3, "When_type_checking_take_into_account_null_and_undefined_6699", "When type checking, take into account 'null' and 'undefined'."),
        Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor: T(6700, 3, "Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor_6700", "Check for class properties that are declared but not set in the constructor."),
        Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments: T(6701, 3, "Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments_6701", "Disable emitting declarations that have '@internal' in their JSDoc comments."),
        Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals: T(6702, 3, "Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals_6702", "Disable reporting of excess property errors during the creation of object literals."),
        Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures: T(6703, 3, "Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures_6703", "Suppress 'noImplicitAny' errors when indexing objects that lack index signatures."),
        Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively: T(6704, 3, "Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_supp_6704", "Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively."),
        Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations: T(6705, 3, "Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declaratio_6705", "Set the JavaScript language version for emitted JavaScript and include compatible library declarations."),
        Log_paths_used_during_the_moduleResolution_process: T(6706, 3, "Log_paths_used_during_the_moduleResolution_process_6706", "Log paths used during the 'moduleResolution' process."),
        Specify_the_path_to_tsbuildinfo_incremental_compilation_file: T(6707, 3, "Specify_the_path_to_tsbuildinfo_incremental_compilation_file_6707", "Specify the path to .tsbuildinfo incremental compilation file."),
        Specify_options_for_automatic_acquisition_of_declaration_files: T(6709, 3, "Specify_options_for_automatic_acquisition_of_declaration_files_6709", "Specify options for automatic acquisition of declaration files."),
        Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types: T(6710, 3, "Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types_6710", "Specify multiple folders that act like './node_modules/@types'."),
        Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file: T(6711, 3, "Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file_6711", "Specify type package names to be included without being referenced in a source file."),
        Emit_ECMAScript_standard_compliant_class_fields: T(6712, 3, "Emit_ECMAScript_standard_compliant_class_fields_6712", "Emit ECMAScript-standard-compliant class fields."),
        Enable_verbose_logging: T(6713, 3, "Enable_verbose_logging_6713", "Enable verbose logging."),
        Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality: T(6714, 3, "Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality_6714", "Specify how directories are watched on systems that lack recursive file-watching functionality."),
        Specify_how_the_TypeScript_watch_mode_works: T(6715, 3, "Specify_how_the_TypeScript_watch_mode_works_6715", "Specify how the TypeScript watch mode works."),
        Require_undeclared_properties_from_index_signatures_to_use_element_accesses: T(6717, 3, "Require_undeclared_properties_from_index_signatures_to_use_element_accesses_6717", "Require undeclared properties from index signatures to use element accesses."),
        Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types: T(6718, 3, "Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types_6718", "Specify emit/checking behavior for imports that are only used for types."),
        Default_catch_clause_variables_as_unknown_instead_of_any: T(6803, 3, "Default_catch_clause_variables_as_unknown_instead_of_any_6803", "Default catch clause variables as 'unknown' instead of 'any'."),
        Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting: T(6804, 3, "Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_i_6804", "Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting."),
        one_of_Colon: T(6900, 3, "one_of_Colon_6900", "one of:"),
        one_or_more_Colon: T(6901, 3, "one_or_more_Colon_6901", "one or more:"),
        type_Colon: T(6902, 3, "type_Colon_6902", "type:"),
        default_Colon: T(6903, 3, "default_Colon_6903", "default:"),
        module_system_or_esModuleInterop: T(6904, 3, "module_system_or_esModuleInterop_6904", 'module === "system" or esModuleInterop'),
        false_unless_strict_is_set: T(6905, 3, "false_unless_strict_is_set_6905", "`false`, unless `strict` is set"),
        false_unless_composite_is_set: T(6906, 3, "false_unless_composite_is_set_6906", "`false`, unless `composite` is set"),
        node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified: T(6907, 3, "node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified_6907", '`["node_modules", "bower_components", "jspm_packages"]`, plus the value of `outDir` if one is specified.'),
        if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk: T(6908, 3, "if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk_6908", '`[]` if `files` is specified, otherwise `["**/*"]`'),
        true_if_composite_false_otherwise: T(6909, 3, "true_if_composite_false_otherwise_6909", "`true` if `composite`, `false` otherwise"),
        module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node: T(69010, 3, "module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node_69010", "module === `AMD` or `UMD` or `System` or `ES6`, then `Classic`, Otherwise `Node`"),
        Computed_from_the_list_of_input_files: T(6911, 3, "Computed_from_the_list_of_input_files_6911", "Computed from the list of input files"),
        Platform_specific: T(6912, 3, "Platform_specific_6912", "Platform specific"),
        You_can_learn_about_all_of_the_compiler_options_at_0: T(6913, 3, "You_can_learn_about_all_of_the_compiler_options_at_0_6913", "You can learn about all of the compiler options at {0}"),
        Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon: T(6914, 3, "Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_conf_6914", "Including --watch, -w will start watching the current project for the file changes. Once set, you can config watch mode with:"),
        Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0: T(6915, 3, "Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_tr_6915", "Using --build, -b will make tsc behave more like a build orchestrator than a compiler. This is used to trigger building composite projects which you can learn more about at {0}"),
        COMMON_COMMANDS: T(6916, 3, "COMMON_COMMANDS_6916", "COMMON COMMANDS"),
        ALL_COMPILER_OPTIONS: T(6917, 3, "ALL_COMPILER_OPTIONS_6917", "ALL COMPILER OPTIONS"),
        WATCH_OPTIONS: T(6918, 3, "WATCH_OPTIONS_6918", "WATCH OPTIONS"),
        BUILD_OPTIONS: T(6919, 3, "BUILD_OPTIONS_6919", "BUILD OPTIONS"),
        COMMON_COMPILER_OPTIONS: T(6920, 3, "COMMON_COMPILER_OPTIONS_6920", "COMMON COMPILER OPTIONS"),
        COMMAND_LINE_FLAGS: T(6921, 3, "COMMAND_LINE_FLAGS_6921", "COMMAND LINE FLAGS"),
        tsc_Colon_The_TypeScript_Compiler: T(6922, 3, "tsc_Colon_The_TypeScript_Compiler_6922", "tsc: The TypeScript Compiler"),
        Compiles_the_current_project_tsconfig_json_in_the_working_directory: T(6923, 3, "Compiles_the_current_project_tsconfig_json_in_the_working_directory_6923", "Compiles the current project (tsconfig.json in the working directory.)"),
        Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options: T(6924, 3, "Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options_6924", "Ignoring tsconfig.json, compiles the specified files with default compiler options."),
        Build_a_composite_project_in_the_working_directory: T(6925, 3, "Build_a_composite_project_in_the_working_directory_6925", "Build a composite project in the working directory."),
        Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory: T(6926, 3, "Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory_6926", "Creates a tsconfig.json with the recommended settings in the working directory."),
        Compiles_the_TypeScript_project_located_at_the_specified_path: T(6927, 3, "Compiles_the_TypeScript_project_located_at_the_specified_path_6927", "Compiles the TypeScript project located at the specified path."),
        An_expanded_version_of_this_information_showing_all_possible_compiler_options: T(6928, 3, "An_expanded_version_of_this_information_showing_all_possible_compiler_options_6928", "An expanded version of this information, showing all possible compiler options"),
        Compiles_the_current_project_with_additional_settings: T(6929, 3, "Compiles_the_current_project_with_additional_settings_6929", "Compiles the current project, with additional settings."),
        true_for_ES2022_and_above_including_ESNext: T(6930, 3, "true_for_ES2022_and_above_including_ESNext_6930", "`true` for ES2022 and above, including ESNext."),
        List_of_file_name_suffixes_to_search_when_resolving_a_module: T(6931, 1, "List_of_file_name_suffixes_to_search_when_resolving_a_module_6931", "List of file name suffixes to search when resolving a module."),
        Variable_0_implicitly_has_an_1_type: T(7005, 1, "Variable_0_implicitly_has_an_1_type_7005", "Variable '{0}' implicitly has an '{1}' type."),
        Parameter_0_implicitly_has_an_1_type: T(7006, 1, "Parameter_0_implicitly_has_an_1_type_7006", "Parameter '{0}' implicitly has an '{1}' type."),
        Member_0_implicitly_has_an_1_type: T(7008, 1, "Member_0_implicitly_has_an_1_type_7008", "Member '{0}' implicitly has an '{1}' type."),
        new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type: T(7009, 1, "new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type_7009", "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type."),
        _0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: T(7010, 1, "_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010", "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type."),
        Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: T(7011, 1, "Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011", "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type."),
        This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation: T(7012, 1, "This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation_7012", "This overload implicitly returns the type '{0}' because it lacks a return type annotation."),
        Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: T(7013, 1, "Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013", "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type."),
        Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: T(7014, 1, "Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7014", "Function type, which lacks return-type annotation, implicitly has an '{0}' return type."),
        Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number: T(7015, 1, "Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015", "Element implicitly has an 'any' type because index expression is not of type 'number'."),
        Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type: T(7016, 1, "Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type_7016", "Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type."),
        Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature: T(7017, 1, "Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_7017", "Element implicitly has an 'any' type because type '{0}' has no index signature."),
        Object_literal_s_property_0_implicitly_has_an_1_type: T(7018, 1, "Object_literal_s_property_0_implicitly_has_an_1_type_7018", "Object literal's property '{0}' implicitly has an '{1}' type."),
        Rest_parameter_0_implicitly_has_an_any_type: T(7019, 1, "Rest_parameter_0_implicitly_has_an_any_type_7019", "Rest parameter '{0}' implicitly has an 'any[]' type."),
        Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: T(7020, 1, "Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020", "Call signature, which lacks return-type annotation, implicitly has an 'any' return type."),
        _0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer: T(7022, 1, "_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or__7022", "'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer."),
        _0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: T(7023, 1, "_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_reference_7023", "'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."),
        Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: T(7024, 1, "Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_ref_7024", "Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."),
        Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation: T(7025, 1, "Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_retu_7025", "Generator implicitly has yield type '{0}' because it does not yield any values. Consider supplying a return type annotation."),
        JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists: T(7026, 1, "JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists_7026", "JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists."),
        Unreachable_code_detected: T(7027, 1, "Unreachable_code_detected_7027", "Unreachable code detected.", !0),
        Unused_label: T(7028, 1, "Unused_label_7028", "Unused label.", !0),
        Fallthrough_case_in_switch: T(7029, 1, "Fallthrough_case_in_switch_7029", "Fallthrough case in switch."),
        Not_all_code_paths_return_a_value: T(7030, 1, "Not_all_code_paths_return_a_value_7030", "Not all code paths return a value."),
        Binding_element_0_implicitly_has_an_1_type: T(7031, 1, "Binding_element_0_implicitly_has_an_1_type_7031", "Binding element '{0}' implicitly has an '{1}' type."),
        Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation: T(7032, 1, "Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation_7032", "Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation."),
        Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation: T(7033, 1, "Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation_7033", "Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation."),
        Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined: T(7034, 1, "Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined_7034", "Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined."),
        Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0: T(7035, 1, "Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare__7035", "Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`"),
        Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0: T(7036, 1, "Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0_7036", "Dynamic import's specifier must be of type 'string', but here has type '{0}'."),
        Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports: T(7037, 3, "Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for__7037", "Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'."),
        Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead: T(7038, 3, "Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cau_7038", "Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead."),
        Mapped_object_type_implicitly_has_an_any_template_type: T(7039, 1, "Mapped_object_type_implicitly_has_an_any_template_type_7039", "Mapped object type implicitly has an 'any' template type."),
        If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1: T(7040, 1, "If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040", "If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'"),
        The_containing_arrow_function_captures_the_global_value_of_this: T(7041, 1, "The_containing_arrow_function_captures_the_global_value_of_this_7041", "The containing arrow function captures the global value of 'this'."),
        Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used: T(7042, 1, "Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used_7042", "Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used."),
        Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage: T(7043, 2, "Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7043", "Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),
        Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage: T(7044, 2, "Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7044", "Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),
        Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage: T(7045, 2, "Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7045", "Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),
        Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage: T(7046, 2, "Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage_7046", "Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage."),
        Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage: T(7047, 2, "Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage_7047", "Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage."),
        Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage: T(7048, 2, "Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage_7048", "Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage."),
        Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage: T(7049, 2, "Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage_7049", "Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage."),
        _0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage: T(7050, 2, "_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage_7050", "'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage."),
        Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1: T(7051, 1, "Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1_7051", "Parameter has a name but no type. Did you mean '{0}: {1}'?"),
        Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1: T(7052, 1, "Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1_7052", "Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?"),
        Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1: T(7053, 1, "Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1_7053", "Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'."),
        No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1: T(7054, 1, "No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1_7054", "No index signature with a parameter of type '{0}' was found on type '{1}'."),
        _0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type: T(7055, 1, "_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type_7055", "'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type."),
        The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed: T(7056, 1, "The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_ty_7056", "The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed."),
        yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation: T(7057, 1, "yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_t_7057", "'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation."),
        If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1: T(7058, 1, "If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058", "If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`"),
        This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead: T(7059, 1, "This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead_7059", "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead."),
        This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint: T(7060, 1, "This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_cons_7060", "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint."),
        A_mapped_type_may_not_declare_properties_or_methods: T(7061, 1, "A_mapped_type_may_not_declare_properties_or_methods_7061", "A mapped type may not declare properties or methods."),
        You_cannot_rename_this_element: T(8e3, 1, "You_cannot_rename_this_element_8000", "You cannot rename this element."),
        You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: T(8001, 1, "You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001", "You cannot rename elements that are defined in the standard TypeScript library."),
        import_can_only_be_used_in_TypeScript_files: T(8002, 1, "import_can_only_be_used_in_TypeScript_files_8002", "'import ... =' can only be used in TypeScript files."),
        export_can_only_be_used_in_TypeScript_files: T(8003, 1, "export_can_only_be_used_in_TypeScript_files_8003", "'export =' can only be used in TypeScript files."),
        Type_parameter_declarations_can_only_be_used_in_TypeScript_files: T(8004, 1, "Type_parameter_declarations_can_only_be_used_in_TypeScript_files_8004", "Type parameter declarations can only be used in TypeScript files."),
        implements_clauses_can_only_be_used_in_TypeScript_files: T(8005, 1, "implements_clauses_can_only_be_used_in_TypeScript_files_8005", "'implements' clauses can only be used in TypeScript files."),
        _0_declarations_can_only_be_used_in_TypeScript_files: T(8006, 1, "_0_declarations_can_only_be_used_in_TypeScript_files_8006", "'{0}' declarations can only be used in TypeScript files."),
        Type_aliases_can_only_be_used_in_TypeScript_files: T(8008, 1, "Type_aliases_can_only_be_used_in_TypeScript_files_8008", "Type aliases can only be used in TypeScript files."),
        The_0_modifier_can_only_be_used_in_TypeScript_files: T(8009, 1, "The_0_modifier_can_only_be_used_in_TypeScript_files_8009", "The '{0}' modifier can only be used in TypeScript files."),
        Type_annotations_can_only_be_used_in_TypeScript_files: T(8010, 1, "Type_annotations_can_only_be_used_in_TypeScript_files_8010", "Type annotations can only be used in TypeScript files."),
        Type_arguments_can_only_be_used_in_TypeScript_files: T(8011, 1, "Type_arguments_can_only_be_used_in_TypeScript_files_8011", "Type arguments can only be used in TypeScript files."),
        Parameter_modifiers_can_only_be_used_in_TypeScript_files: T(8012, 1, "Parameter_modifiers_can_only_be_used_in_TypeScript_files_8012", "Parameter modifiers can only be used in TypeScript files."),
        Non_null_assertions_can_only_be_used_in_TypeScript_files: T(8013, 1, "Non_null_assertions_can_only_be_used_in_TypeScript_files_8013", "Non-null assertions can only be used in TypeScript files."),
        Type_assertion_expressions_can_only_be_used_in_TypeScript_files: T(8016, 1, "Type_assertion_expressions_can_only_be_used_in_TypeScript_files_8016", "Type assertion expressions can only be used in TypeScript files."),
        Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0: T(8017, 1, "Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0_8017", "Octal literal types must use ES2015 syntax. Use the syntax '{0}'."),
        Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0: T(8018, 1, "Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0_8018", "Octal literals are not allowed in enums members initializer. Use the syntax '{0}'."),
        Report_errors_in_js_files: T(8019, 3, "Report_errors_in_js_files_8019", "Report errors in .js files."),
        JSDoc_types_can_only_be_used_inside_documentation_comments: T(8020, 1, "JSDoc_types_can_only_be_used_inside_documentation_comments_8020", "JSDoc types can only be used inside documentation comments."),
        JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags: T(8021, 1, "JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021", "JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags."),
        JSDoc_0_is_not_attached_to_a_class: T(8022, 1, "JSDoc_0_is_not_attached_to_a_class_8022", "JSDoc '@{0}' is not attached to a class."),
        JSDoc_0_1_does_not_match_the_extends_2_clause: T(8023, 1, "JSDoc_0_1_does_not_match_the_extends_2_clause_8023", "JSDoc '@{0} {1}' does not match the 'extends {2}' clause."),
        JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name: T(8024, 1, "JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024", "JSDoc '@param' tag has name '{0}', but there is no parameter with that name."),
        Class_declarations_cannot_have_more_than_one_augments_or_extends_tag: T(8025, 1, "Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025", "Class declarations cannot have more than one '@augments' or '@extends' tag."),
        Expected_0_type_arguments_provide_these_with_an_extends_tag: T(8026, 1, "Expected_0_type_arguments_provide_these_with_an_extends_tag_8026", "Expected {0} type arguments; provide these with an '@extends' tag."),
        Expected_0_1_type_arguments_provide_these_with_an_extends_tag: T(8027, 1, "Expected_0_1_type_arguments_provide_these_with_an_extends_tag_8027", "Expected {0}-{1} type arguments; provide these with an '@extends' tag."),
        JSDoc_may_only_appear_in_the_last_parameter_of_a_signature: T(8028, 1, "JSDoc_may_only_appear_in_the_last_parameter_of_a_signature_8028", "JSDoc '...' may only appear in the last parameter of a signature."),
        JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type: T(8029, 1, "JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_h_8029", "JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type."),
        The_type_of_a_function_declaration_must_match_the_function_s_signature: T(8030, 1, "The_type_of_a_function_declaration_must_match_the_function_s_signature_8030", "The type of a function declaration must match the function's signature."),
        You_cannot_rename_a_module_via_a_global_import: T(8031, 1, "You_cannot_rename_a_module_via_a_global_import_8031", "You cannot rename a module via a global import."),
        Qualified_name_0_is_not_allowed_without_a_leading_param_object_1: T(8032, 1, "Qualified_name_0_is_not_allowed_without_a_leading_param_object_1_8032", "Qualified name '{0}' is not allowed without a leading '@param {object} {1}'."),
        A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags: T(8033, 1, "A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags_8033", "A JSDoc '@typedef' comment may not contain multiple '@type' tags."),
        The_tag_was_first_specified_here: T(8034, 1, "The_tag_was_first_specified_here_8034", "The tag was first specified here."),
        You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder: T(8035, 1, "You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder_8035", "You cannot rename elements that are defined in a 'node_modules' folder."),
        You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder: T(8036, 1, "You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder_8036", "You cannot rename elements that are defined in another 'node_modules' folder."),
        Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files: T(8037, 1, "Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files_8037", "Type satisfaction expressions can only be used in TypeScript files."),
        Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export: T(8038, 1, "Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export_8038", "Decorators may not appear after 'export' or 'export default' if they also appear before 'export'."),
        Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit: T(9005, 1, "Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005", "Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit."),
        Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit: T(9006, 1, "Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006", "Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit."),
        JSX_attributes_must_only_be_assigned_a_non_empty_expression: T(17e3, 1, "JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000", "JSX attributes must only be assigned a non-empty 'expression'."),
        JSX_elements_cannot_have_multiple_attributes_with_the_same_name: T(17001, 1, "JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001", "JSX elements cannot have multiple attributes with the same name."),
        Expected_corresponding_JSX_closing_tag_for_0: T(17002, 1, "Expected_corresponding_JSX_closing_tag_for_0_17002", "Expected corresponding JSX closing tag for '{0}'."),
        Cannot_use_JSX_unless_the_jsx_flag_is_provided: T(17004, 1, "Cannot_use_JSX_unless_the_jsx_flag_is_provided_17004", "Cannot use JSX unless the '--jsx' flag is provided."),
        A_constructor_cannot_contain_a_super_call_when_its_class_extends_null: T(17005, 1, "A_constructor_cannot_contain_a_super_call_when_its_class_extends_null_17005", "A constructor cannot contain a 'super' call when its class extends 'null'."),
        An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses: T(17006, 1, "An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006", "An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."),
        A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses: T(17007, 1, "A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Con_17007", "A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."),
        JSX_element_0_has_no_corresponding_closing_tag: T(17008, 1, "JSX_element_0_has_no_corresponding_closing_tag_17008", "JSX element '{0}' has no corresponding closing tag."),
        super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class: T(17009, 1, "super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class_17009", "'super' must be called before accessing 'this' in the constructor of a derived class."),
        Unknown_type_acquisition_option_0: T(17010, 1, "Unknown_type_acquisition_option_0_17010", "Unknown type acquisition option '{0}'."),
        super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class: T(17011, 1, "super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class_17011", "'super' must be called before accessing a property of 'super' in the constructor of a derived class."),
        _0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2: T(17012, 1, "_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2_17012", "'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?"),
        Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor: T(17013, 1, "Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constru_17013", "Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor."),
        JSX_fragment_has_no_corresponding_closing_tag: T(17014, 1, "JSX_fragment_has_no_corresponding_closing_tag_17014", "JSX fragment has no corresponding closing tag."),
        Expected_corresponding_closing_tag_for_JSX_fragment: T(17015, 1, "Expected_corresponding_closing_tag_for_JSX_fragment_17015", "Expected corresponding closing tag for JSX fragment."),
        The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option: T(17016, 1, "The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_com_17016", "The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option."),
        An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments: T(17017, 1, "An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments_17017", "An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments."),
        Unknown_type_acquisition_option_0_Did_you_mean_1: T(17018, 1, "Unknown_type_acquisition_option_0_Did_you_mean_1_17018", "Unknown type acquisition option '{0}'. Did you mean '{1}'?"),
        _0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1: T(17019, 1, "_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17019", "'{0}' at the end of a type is not valid TypeScript syntax. Did you mean to write '{1}'?"),
        _0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1: T(17020, 1, "_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17020", "'{0}' at the start of a type is not valid TypeScript syntax. Did you mean to write '{1}'?"),
        Circularity_detected_while_resolving_configuration_Colon_0: T(18e3, 1, "Circularity_detected_while_resolving_configuration_Colon_0_18000", "Circularity detected while resolving configuration: {0}"),
        The_files_list_in_config_file_0_is_empty: T(18002, 1, "The_files_list_in_config_file_0_is_empty_18002", "The 'files' list in config file '{0}' is empty."),
        No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2: T(18003, 1, "No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2_18003", "No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'."),
        File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module: T(80001, 2, "File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module_80001", "File is a CommonJS module; it may be converted to an ES module."),
        This_constructor_function_may_be_converted_to_a_class_declaration: T(80002, 2, "This_constructor_function_may_be_converted_to_a_class_declaration_80002", "This constructor function may be converted to a class declaration."),
        Import_may_be_converted_to_a_default_import: T(80003, 2, "Import_may_be_converted_to_a_default_import_80003", "Import may be converted to a default import."),
        JSDoc_types_may_be_moved_to_TypeScript_types: T(80004, 2, "JSDoc_types_may_be_moved_to_TypeScript_types_80004", "JSDoc types may be moved to TypeScript types."),
        require_call_may_be_converted_to_an_import: T(80005, 2, "require_call_may_be_converted_to_an_import_80005", "'require' call may be converted to an import."),
        This_may_be_converted_to_an_async_function: T(80006, 2, "This_may_be_converted_to_an_async_function_80006", "This may be converted to an async function."),
        await_has_no_effect_on_the_type_of_this_expression: T(80007, 2, "await_has_no_effect_on_the_type_of_this_expression_80007", "'await' has no effect on the type of this expression."),
        Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers: T(80008, 2, "Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accur_80008", "Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers."),
        Add_missing_super_call: T(90001, 3, "Add_missing_super_call_90001", "Add missing 'super()' call"),
        Make_super_call_the_first_statement_in_the_constructor: T(90002, 3, "Make_super_call_the_first_statement_in_the_constructor_90002", "Make 'super()' call the first statement in the constructor"),
        Change_extends_to_implements: T(90003, 3, "Change_extends_to_implements_90003", "Change 'extends' to 'implements'"),
        Remove_unused_declaration_for_Colon_0: T(90004, 3, "Remove_unused_declaration_for_Colon_0_90004", "Remove unused declaration for: '{0}'"),
        Remove_import_from_0: T(90005, 3, "Remove_import_from_0_90005", "Remove import from '{0}'"),
        Implement_interface_0: T(90006, 3, "Implement_interface_0_90006", "Implement interface '{0}'"),
        Implement_inherited_abstract_class: T(90007, 3, "Implement_inherited_abstract_class_90007", "Implement inherited abstract class"),
        Add_0_to_unresolved_variable: T(90008, 3, "Add_0_to_unresolved_variable_90008", "Add '{0}.' to unresolved variable"),
        Remove_variable_statement: T(90010, 3, "Remove_variable_statement_90010", "Remove variable statement"),
        Remove_template_tag: T(90011, 3, "Remove_template_tag_90011", "Remove template tag"),
        Remove_type_parameters: T(90012, 3, "Remove_type_parameters_90012", "Remove type parameters"),
        Import_0_from_1: T(90013, 3, "Import_0_from_1_90013", `Import '{0}' from "{1}"`),
        Change_0_to_1: T(90014, 3, "Change_0_to_1_90014", "Change '{0}' to '{1}'"),
        Declare_property_0: T(90016, 3, "Declare_property_0_90016", "Declare property '{0}'"),
        Add_index_signature_for_property_0: T(90017, 3, "Add_index_signature_for_property_0_90017", "Add index signature for property '{0}'"),
        Disable_checking_for_this_file: T(90018, 3, "Disable_checking_for_this_file_90018", "Disable checking for this file"),
        Ignore_this_error_message: T(90019, 3, "Ignore_this_error_message_90019", "Ignore this error message"),
        Initialize_property_0_in_the_constructor: T(90020, 3, "Initialize_property_0_in_the_constructor_90020", "Initialize property '{0}' in the constructor"),
        Initialize_static_property_0: T(90021, 3, "Initialize_static_property_0_90021", "Initialize static property '{0}'"),
        Change_spelling_to_0: T(90022, 3, "Change_spelling_to_0_90022", "Change spelling to '{0}'"),
        Declare_method_0: T(90023, 3, "Declare_method_0_90023", "Declare method '{0}'"),
        Declare_static_method_0: T(90024, 3, "Declare_static_method_0_90024", "Declare static method '{0}'"),
        Prefix_0_with_an_underscore: T(90025, 3, "Prefix_0_with_an_underscore_90025", "Prefix '{0}' with an underscore"),
        Rewrite_as_the_indexed_access_type_0: T(90026, 3, "Rewrite_as_the_indexed_access_type_0_90026", "Rewrite as the indexed access type '{0}'"),
        Declare_static_property_0: T(90027, 3, "Declare_static_property_0_90027", "Declare static property '{0}'"),
        Call_decorator_expression: T(90028, 3, "Call_decorator_expression_90028", "Call decorator expression"),
        Add_async_modifier_to_containing_function: T(90029, 3, "Add_async_modifier_to_containing_function_90029", "Add async modifier to containing function"),
        Replace_infer_0_with_unknown: T(90030, 3, "Replace_infer_0_with_unknown_90030", "Replace 'infer {0}' with 'unknown'"),
        Replace_all_unused_infer_with_unknown: T(90031, 3, "Replace_all_unused_infer_with_unknown_90031", "Replace all unused 'infer' with 'unknown'"),
        Add_parameter_name: T(90034, 3, "Add_parameter_name_90034", "Add parameter name"),
        Declare_private_property_0: T(90035, 3, "Declare_private_property_0_90035", "Declare private property '{0}'"),
        Replace_0_with_Promise_1: T(90036, 3, "Replace_0_with_Promise_1_90036", "Replace '{0}' with 'Promise<{1}>'"),
        Fix_all_incorrect_return_type_of_an_async_functions: T(90037, 3, "Fix_all_incorrect_return_type_of_an_async_functions_90037", "Fix all incorrect return type of an async functions"),
        Declare_private_method_0: T(90038, 3, "Declare_private_method_0_90038", "Declare private method '{0}'"),
        Remove_unused_destructuring_declaration: T(90039, 3, "Remove_unused_destructuring_declaration_90039", "Remove unused destructuring declaration"),
        Remove_unused_declarations_for_Colon_0: T(90041, 3, "Remove_unused_declarations_for_Colon_0_90041", "Remove unused declarations for: '{0}'"),
        Declare_a_private_field_named_0: T(90053, 3, "Declare_a_private_field_named_0_90053", "Declare a private field named '{0}'."),
        Includes_imports_of_types_referenced_by_0: T(90054, 3, "Includes_imports_of_types_referenced_by_0_90054", "Includes imports of types referenced by '{0}'"),
        Remove_type_from_import_declaration_from_0: T(90055, 3, "Remove_type_from_import_declaration_from_0_90055", `Remove 'type' from import declaration from "{0}"`),
        Remove_type_from_import_of_0_from_1: T(90056, 3, "Remove_type_from_import_of_0_from_1_90056", `Remove 'type' from import of '{0}' from "{1}"`),
        Add_import_from_0: T(90057, 3, "Add_import_from_0_90057", 'Add import from "{0}"'),
        Update_import_from_0: T(90058, 3, "Update_import_from_0_90058", 'Update import from "{0}"'),
        Export_0_from_module_1: T(90059, 3, "Export_0_from_module_1_90059", "Export '{0}' from module '{1}'"),
        Export_all_referenced_locals: T(90060, 3, "Export_all_referenced_locals_90060", "Export all referenced locals"),
        Convert_function_to_an_ES2015_class: T(95001, 3, "Convert_function_to_an_ES2015_class_95001", "Convert function to an ES2015 class"),
        Convert_0_to_1_in_0: T(95003, 3, "Convert_0_to_1_in_0_95003", "Convert '{0}' to '{1} in {0}'"),
        Extract_to_0_in_1: T(95004, 3, "Extract_to_0_in_1_95004", "Extract to {0} in {1}"),
        Extract_function: T(95005, 3, "Extract_function_95005", "Extract function"),
        Extract_constant: T(95006, 3, "Extract_constant_95006", "Extract constant"),
        Extract_to_0_in_enclosing_scope: T(95007, 3, "Extract_to_0_in_enclosing_scope_95007", "Extract to {0} in enclosing scope"),
        Extract_to_0_in_1_scope: T(95008, 3, "Extract_to_0_in_1_scope_95008", "Extract to {0} in {1} scope"),
        Annotate_with_type_from_JSDoc: T(95009, 3, "Annotate_with_type_from_JSDoc_95009", "Annotate with type from JSDoc"),
        Infer_type_of_0_from_usage: T(95011, 3, "Infer_type_of_0_from_usage_95011", "Infer type of '{0}' from usage"),
        Infer_parameter_types_from_usage: T(95012, 3, "Infer_parameter_types_from_usage_95012", "Infer parameter types from usage"),
        Convert_to_default_import: T(95013, 3, "Convert_to_default_import_95013", "Convert to default import"),
        Install_0: T(95014, 3, "Install_0_95014", "Install '{0}'"),
        Replace_import_with_0: T(95015, 3, "Replace_import_with_0_95015", "Replace import with '{0}'."),
        Use_synthetic_default_member: T(95016, 3, "Use_synthetic_default_member_95016", "Use synthetic 'default' member."),
        Convert_to_ES_module: T(95017, 3, "Convert_to_ES_module_95017", "Convert to ES module"),
        Add_undefined_type_to_property_0: T(95018, 3, "Add_undefined_type_to_property_0_95018", "Add 'undefined' type to property '{0}'"),
        Add_initializer_to_property_0: T(95019, 3, "Add_initializer_to_property_0_95019", "Add initializer to property '{0}'"),
        Add_definite_assignment_assertion_to_property_0: T(95020, 3, "Add_definite_assignment_assertion_to_property_0_95020", "Add definite assignment assertion to property '{0}'"),
        Convert_all_type_literals_to_mapped_type: T(95021, 3, "Convert_all_type_literals_to_mapped_type_95021", "Convert all type literals to mapped type"),
        Add_all_missing_members: T(95022, 3, "Add_all_missing_members_95022", "Add all missing members"),
        Infer_all_types_from_usage: T(95023, 3, "Infer_all_types_from_usage_95023", "Infer all types from usage"),
        Delete_all_unused_declarations: T(95024, 3, "Delete_all_unused_declarations_95024", "Delete all unused declarations"),
        Prefix_all_unused_declarations_with_where_possible: T(95025, 3, "Prefix_all_unused_declarations_with_where_possible_95025", "Prefix all unused declarations with '_' where possible"),
        Fix_all_detected_spelling_errors: T(95026, 3, "Fix_all_detected_spelling_errors_95026", "Fix all detected spelling errors"),
        Add_initializers_to_all_uninitialized_properties: T(95027, 3, "Add_initializers_to_all_uninitialized_properties_95027", "Add initializers to all uninitialized properties"),
        Add_definite_assignment_assertions_to_all_uninitialized_properties: T(95028, 3, "Add_definite_assignment_assertions_to_all_uninitialized_properties_95028", "Add definite assignment assertions to all uninitialized properties"),
        Add_undefined_type_to_all_uninitialized_properties: T(95029, 3, "Add_undefined_type_to_all_uninitialized_properties_95029", "Add undefined type to all uninitialized properties"),
        Change_all_jsdoc_style_types_to_TypeScript: T(95030, 3, "Change_all_jsdoc_style_types_to_TypeScript_95030", "Change all jsdoc-style types to TypeScript"),
        Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types: T(95031, 3, "Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031", "Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)"),
        Implement_all_unimplemented_interfaces: T(95032, 3, "Implement_all_unimplemented_interfaces_95032", "Implement all unimplemented interfaces"),
        Install_all_missing_types_packages: T(95033, 3, "Install_all_missing_types_packages_95033", "Install all missing types packages"),
        Rewrite_all_as_indexed_access_types: T(95034, 3, "Rewrite_all_as_indexed_access_types_95034", "Rewrite all as indexed access types"),
        Convert_all_to_default_imports: T(95035, 3, "Convert_all_to_default_imports_95035", "Convert all to default imports"),
        Make_all_super_calls_the_first_statement_in_their_constructor: T(95036, 3, "Make_all_super_calls_the_first_statement_in_their_constructor_95036", "Make all 'super()' calls the first statement in their constructor"),
        Add_qualifier_to_all_unresolved_variables_matching_a_member_name: T(95037, 3, "Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037", "Add qualifier to all unresolved variables matching a member name"),
        Change_all_extended_interfaces_to_implements: T(95038, 3, "Change_all_extended_interfaces_to_implements_95038", "Change all extended interfaces to 'implements'"),
        Add_all_missing_super_calls: T(95039, 3, "Add_all_missing_super_calls_95039", "Add all missing super calls"),
        Implement_all_inherited_abstract_classes: T(95040, 3, "Implement_all_inherited_abstract_classes_95040", "Implement all inherited abstract classes"),
        Add_all_missing_async_modifiers: T(95041, 3, "Add_all_missing_async_modifiers_95041", "Add all missing 'async' modifiers"),
        Add_ts_ignore_to_all_error_messages: T(95042, 3, "Add_ts_ignore_to_all_error_messages_95042", "Add '@ts-ignore' to all error messages"),
        Annotate_everything_with_types_from_JSDoc: T(95043, 3, "Annotate_everything_with_types_from_JSDoc_95043", "Annotate everything with types from JSDoc"),
        Add_to_all_uncalled_decorators: T(95044, 3, "Add_to_all_uncalled_decorators_95044", "Add '()' to all uncalled decorators"),
        Convert_all_constructor_functions_to_classes: T(95045, 3, "Convert_all_constructor_functions_to_classes_95045", "Convert all constructor functions to classes"),
        Generate_get_and_set_accessors: T(95046, 3, "Generate_get_and_set_accessors_95046", "Generate 'get' and 'set' accessors"),
        Convert_require_to_import: T(95047, 3, "Convert_require_to_import_95047", "Convert 'require' to 'import'"),
        Convert_all_require_to_import: T(95048, 3, "Convert_all_require_to_import_95048", "Convert all 'require' to 'import'"),
        Move_to_a_new_file: T(95049, 3, "Move_to_a_new_file_95049", "Move to a new file"),
        Remove_unreachable_code: T(95050, 3, "Remove_unreachable_code_95050", "Remove unreachable code"),
        Remove_all_unreachable_code: T(95051, 3, "Remove_all_unreachable_code_95051", "Remove all unreachable code"),
        Add_missing_typeof: T(95052, 3, "Add_missing_typeof_95052", "Add missing 'typeof'"),
        Remove_unused_label: T(95053, 3, "Remove_unused_label_95053", "Remove unused label"),
        Remove_all_unused_labels: T(95054, 3, "Remove_all_unused_labels_95054", "Remove all unused labels"),
        Convert_0_to_mapped_object_type: T(95055, 3, "Convert_0_to_mapped_object_type_95055", "Convert '{0}' to mapped object type"),
        Convert_namespace_import_to_named_imports: T(95056, 3, "Convert_namespace_import_to_named_imports_95056", "Convert namespace import to named imports"),
        Convert_named_imports_to_namespace_import: T(95057, 3, "Convert_named_imports_to_namespace_import_95057", "Convert named imports to namespace import"),
        Add_or_remove_braces_in_an_arrow_function: T(95058, 3, "Add_or_remove_braces_in_an_arrow_function_95058", "Add or remove braces in an arrow function"),
        Add_braces_to_arrow_function: T(95059, 3, "Add_braces_to_arrow_function_95059", "Add braces to arrow function"),
        Remove_braces_from_arrow_function: T(95060, 3, "Remove_braces_from_arrow_function_95060", "Remove braces from arrow function"),
        Convert_default_export_to_named_export: T(95061, 3, "Convert_default_export_to_named_export_95061", "Convert default export to named export"),
        Convert_named_export_to_default_export: T(95062, 3, "Convert_named_export_to_default_export_95062", "Convert named export to default export"),
        Add_missing_enum_member_0: T(95063, 3, "Add_missing_enum_member_0_95063", "Add missing enum member '{0}'"),
        Add_all_missing_imports: T(95064, 3, "Add_all_missing_imports_95064", "Add all missing imports"),
        Convert_to_async_function: T(95065, 3, "Convert_to_async_function_95065", "Convert to async function"),
        Convert_all_to_async_functions: T(95066, 3, "Convert_all_to_async_functions_95066", "Convert all to async functions"),
        Add_missing_call_parentheses: T(95067, 3, "Add_missing_call_parentheses_95067", "Add missing call parentheses"),
        Add_all_missing_call_parentheses: T(95068, 3, "Add_all_missing_call_parentheses_95068", "Add all missing call parentheses"),
        Add_unknown_conversion_for_non_overlapping_types: T(95069, 3, "Add_unknown_conversion_for_non_overlapping_types_95069", "Add 'unknown' conversion for non-overlapping types"),
        Add_unknown_to_all_conversions_of_non_overlapping_types: T(95070, 3, "Add_unknown_to_all_conversions_of_non_overlapping_types_95070", "Add 'unknown' to all conversions of non-overlapping types"),
        Add_missing_new_operator_to_call: T(95071, 3, "Add_missing_new_operator_to_call_95071", "Add missing 'new' operator to call"),
        Add_missing_new_operator_to_all_calls: T(95072, 3, "Add_missing_new_operator_to_all_calls_95072", "Add missing 'new' operator to all calls"),
        Add_names_to_all_parameters_without_names: T(95073, 3, "Add_names_to_all_parameters_without_names_95073", "Add names to all parameters without names"),
        Enable_the_experimentalDecorators_option_in_your_configuration_file: T(95074, 3, "Enable_the_experimentalDecorators_option_in_your_configuration_file_95074", "Enable the 'experimentalDecorators' option in your configuration file"),
        Convert_parameters_to_destructured_object: T(95075, 3, "Convert_parameters_to_destructured_object_95075", "Convert parameters to destructured object"),
        Extract_type: T(95077, 3, "Extract_type_95077", "Extract type"),
        Extract_to_type_alias: T(95078, 3, "Extract_to_type_alias_95078", "Extract to type alias"),
        Extract_to_typedef: T(95079, 3, "Extract_to_typedef_95079", "Extract to typedef"),
        Infer_this_type_of_0_from_usage: T(95080, 3, "Infer_this_type_of_0_from_usage_95080", "Infer 'this' type of '{0}' from usage"),
        Add_const_to_unresolved_variable: T(95081, 3, "Add_const_to_unresolved_variable_95081", "Add 'const' to unresolved variable"),
        Add_const_to_all_unresolved_variables: T(95082, 3, "Add_const_to_all_unresolved_variables_95082", "Add 'const' to all unresolved variables"),
        Add_await: T(95083, 3, "Add_await_95083", "Add 'await'"),
        Add_await_to_initializer_for_0: T(95084, 3, "Add_await_to_initializer_for_0_95084", "Add 'await' to initializer for '{0}'"),
        Fix_all_expressions_possibly_missing_await: T(95085, 3, "Fix_all_expressions_possibly_missing_await_95085", "Fix all expressions possibly missing 'await'"),
        Remove_unnecessary_await: T(95086, 3, "Remove_unnecessary_await_95086", "Remove unnecessary 'await'"),
        Remove_all_unnecessary_uses_of_await: T(95087, 3, "Remove_all_unnecessary_uses_of_await_95087", "Remove all unnecessary uses of 'await'"),
        Enable_the_jsx_flag_in_your_configuration_file: T(95088, 3, "Enable_the_jsx_flag_in_your_configuration_file_95088", "Enable the '--jsx' flag in your configuration file"),
        Add_await_to_initializers: T(95089, 3, "Add_await_to_initializers_95089", "Add 'await' to initializers"),
        Extract_to_interface: T(95090, 3, "Extract_to_interface_95090", "Extract to interface"),
        Convert_to_a_bigint_numeric_literal: T(95091, 3, "Convert_to_a_bigint_numeric_literal_95091", "Convert to a bigint numeric literal"),
        Convert_all_to_bigint_numeric_literals: T(95092, 3, "Convert_all_to_bigint_numeric_literals_95092", "Convert all to bigint numeric literals"),
        Convert_const_to_let: T(95093, 3, "Convert_const_to_let_95093", "Convert 'const' to 'let'"),
        Prefix_with_declare: T(95094, 3, "Prefix_with_declare_95094", "Prefix with 'declare'"),
        Prefix_all_incorrect_property_declarations_with_declare: T(95095, 3, "Prefix_all_incorrect_property_declarations_with_declare_95095", "Prefix all incorrect property declarations with 'declare'"),
        Convert_to_template_string: T(95096, 3, "Convert_to_template_string_95096", "Convert to template string"),
        Add_export_to_make_this_file_into_a_module: T(95097, 3, "Add_export_to_make_this_file_into_a_module_95097", "Add 'export {}' to make this file into a module"),
        Set_the_target_option_in_your_configuration_file_to_0: T(95098, 3, "Set_the_target_option_in_your_configuration_file_to_0_95098", "Set the 'target' option in your configuration file to '{0}'"),
        Set_the_module_option_in_your_configuration_file_to_0: T(95099, 3, "Set_the_module_option_in_your_configuration_file_to_0_95099", "Set the 'module' option in your configuration file to '{0}'"),
        Convert_invalid_character_to_its_html_entity_code: T(95100, 3, "Convert_invalid_character_to_its_html_entity_code_95100", "Convert invalid character to its html entity code"),
        Convert_all_invalid_characters_to_HTML_entity_code: T(95101, 3, "Convert_all_invalid_characters_to_HTML_entity_code_95101", "Convert all invalid characters to HTML entity code"),
        Convert_all_const_to_let: T(95102, 3, "Convert_all_const_to_let_95102", "Convert all 'const' to 'let'"),
        Convert_function_expression_0_to_arrow_function: T(95105, 3, "Convert_function_expression_0_to_arrow_function_95105", "Convert function expression '{0}' to arrow function"),
        Convert_function_declaration_0_to_arrow_function: T(95106, 3, "Convert_function_declaration_0_to_arrow_function_95106", "Convert function declaration '{0}' to arrow function"),
        Fix_all_implicit_this_errors: T(95107, 3, "Fix_all_implicit_this_errors_95107", "Fix all implicit-'this' errors"),
        Wrap_invalid_character_in_an_expression_container: T(95108, 3, "Wrap_invalid_character_in_an_expression_container_95108", "Wrap invalid character in an expression container"),
        Wrap_all_invalid_characters_in_an_expression_container: T(95109, 3, "Wrap_all_invalid_characters_in_an_expression_container_95109", "Wrap all invalid characters in an expression container"),
        Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file: T(95110, 3, "Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file_95110", "Visit https://aka.ms/tsconfig to read more about this file"),
        Add_a_return_statement: T(95111, 3, "Add_a_return_statement_95111", "Add a return statement"),
        Remove_braces_from_arrow_function_body: T(95112, 3, "Remove_braces_from_arrow_function_body_95112", "Remove braces from arrow function body"),
        Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal: T(95113, 3, "Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal_95113", "Wrap the following body with parentheses which should be an object literal"),
        Add_all_missing_return_statement: T(95114, 3, "Add_all_missing_return_statement_95114", "Add all missing return statement"),
        Remove_braces_from_all_arrow_function_bodies_with_relevant_issues: T(95115, 3, "Remove_braces_from_all_arrow_function_bodies_with_relevant_issues_95115", "Remove braces from all arrow function bodies with relevant issues"),
        Wrap_all_object_literal_with_parentheses: T(95116, 3, "Wrap_all_object_literal_with_parentheses_95116", "Wrap all object literal with parentheses"),
        Move_labeled_tuple_element_modifiers_to_labels: T(95117, 3, "Move_labeled_tuple_element_modifiers_to_labels_95117", "Move labeled tuple element modifiers to labels"),
        Convert_overload_list_to_single_signature: T(95118, 3, "Convert_overload_list_to_single_signature_95118", "Convert overload list to single signature"),
        Generate_get_and_set_accessors_for_all_overriding_properties: T(95119, 3, "Generate_get_and_set_accessors_for_all_overriding_properties_95119", "Generate 'get' and 'set' accessors for all overriding properties"),
        Wrap_in_JSX_fragment: T(95120, 3, "Wrap_in_JSX_fragment_95120", "Wrap in JSX fragment"),
        Wrap_all_unparented_JSX_in_JSX_fragment: T(95121, 3, "Wrap_all_unparented_JSX_in_JSX_fragment_95121", "Wrap all unparented JSX in JSX fragment"),
        Convert_arrow_function_or_function_expression: T(95122, 3, "Convert_arrow_function_or_function_expression_95122", "Convert arrow function or function expression"),
        Convert_to_anonymous_function: T(95123, 3, "Convert_to_anonymous_function_95123", "Convert to anonymous function"),
        Convert_to_named_function: T(95124, 3, "Convert_to_named_function_95124", "Convert to named function"),
        Convert_to_arrow_function: T(95125, 3, "Convert_to_arrow_function_95125", "Convert to arrow function"),
        Remove_parentheses: T(95126, 3, "Remove_parentheses_95126", "Remove parentheses"),
        Could_not_find_a_containing_arrow_function: T(95127, 3, "Could_not_find_a_containing_arrow_function_95127", "Could not find a containing arrow function"),
        Containing_function_is_not_an_arrow_function: T(95128, 3, "Containing_function_is_not_an_arrow_function_95128", "Containing function is not an arrow function"),
        Could_not_find_export_statement: T(95129, 3, "Could_not_find_export_statement_95129", "Could not find export statement"),
        This_file_already_has_a_default_export: T(95130, 3, "This_file_already_has_a_default_export_95130", "This file already has a default export"),
        Could_not_find_import_clause: T(95131, 3, "Could_not_find_import_clause_95131", "Could not find import clause"),
        Could_not_find_namespace_import_or_named_imports: T(95132, 3, "Could_not_find_namespace_import_or_named_imports_95132", "Could not find namespace import or named imports"),
        Selection_is_not_a_valid_type_node: T(95133, 3, "Selection_is_not_a_valid_type_node_95133", "Selection is not a valid type node"),
        No_type_could_be_extracted_from_this_type_node: T(95134, 3, "No_type_could_be_extracted_from_this_type_node_95134", "No type could be extracted from this type node"),
        Could_not_find_property_for_which_to_generate_accessor: T(95135, 3, "Could_not_find_property_for_which_to_generate_accessor_95135", "Could not find property for which to generate accessor"),
        Name_is_not_valid: T(95136, 3, "Name_is_not_valid_95136", "Name is not valid"),
        Can_only_convert_property_with_modifier: T(95137, 3, "Can_only_convert_property_with_modifier_95137", "Can only convert property with modifier"),
        Switch_each_misused_0_to_1: T(95138, 3, "Switch_each_misused_0_to_1_95138", "Switch each misused '{0}' to '{1}'"),
        Convert_to_optional_chain_expression: T(95139, 3, "Convert_to_optional_chain_expression_95139", "Convert to optional chain expression"),
        Could_not_find_convertible_access_expression: T(95140, 3, "Could_not_find_convertible_access_expression_95140", "Could not find convertible access expression"),
        Could_not_find_matching_access_expressions: T(95141, 3, "Could_not_find_matching_access_expressions_95141", "Could not find matching access expressions"),
        Can_only_convert_logical_AND_access_chains: T(95142, 3, "Can_only_convert_logical_AND_access_chains_95142", "Can only convert logical AND access chains"),
        Add_void_to_Promise_resolved_without_a_value: T(95143, 3, "Add_void_to_Promise_resolved_without_a_value_95143", "Add 'void' to Promise resolved without a value"),
        Add_void_to_all_Promises_resolved_without_a_value: T(95144, 3, "Add_void_to_all_Promises_resolved_without_a_value_95144", "Add 'void' to all Promises resolved without a value"),
        Use_element_access_for_0: T(95145, 3, "Use_element_access_for_0_95145", "Use element access for '{0}'"),
        Use_element_access_for_all_undeclared_properties: T(95146, 3, "Use_element_access_for_all_undeclared_properties_95146", "Use element access for all undeclared properties."),
        Delete_all_unused_imports: T(95147, 3, "Delete_all_unused_imports_95147", "Delete all unused imports"),
        Infer_function_return_type: T(95148, 3, "Infer_function_return_type_95148", "Infer function return type"),
        Return_type_must_be_inferred_from_a_function: T(95149, 3, "Return_type_must_be_inferred_from_a_function_95149", "Return type must be inferred from a function"),
        Could_not_determine_function_return_type: T(95150, 3, "Could_not_determine_function_return_type_95150", "Could not determine function return type"),
        Could_not_convert_to_arrow_function: T(95151, 3, "Could_not_convert_to_arrow_function_95151", "Could not convert to arrow function"),
        Could_not_convert_to_named_function: T(95152, 3, "Could_not_convert_to_named_function_95152", "Could not convert to named function"),
        Could_not_convert_to_anonymous_function: T(95153, 3, "Could_not_convert_to_anonymous_function_95153", "Could not convert to anonymous function"),
        Can_only_convert_string_concatenation: T(95154, 3, "Can_only_convert_string_concatenation_95154", "Can only convert string concatenation"),
        Selection_is_not_a_valid_statement_or_statements: T(95155, 3, "Selection_is_not_a_valid_statement_or_statements_95155", "Selection is not a valid statement or statements"),
        Add_missing_function_declaration_0: T(95156, 3, "Add_missing_function_declaration_0_95156", "Add missing function declaration '{0}'"),
        Add_all_missing_function_declarations: T(95157, 3, "Add_all_missing_function_declarations_95157", "Add all missing function declarations"),
        Method_not_implemented: T(95158, 3, "Method_not_implemented_95158", "Method not implemented."),
        Function_not_implemented: T(95159, 3, "Function_not_implemented_95159", "Function not implemented."),
        Add_override_modifier: T(95160, 3, "Add_override_modifier_95160", "Add 'override' modifier"),
        Remove_override_modifier: T(95161, 3, "Remove_override_modifier_95161", "Remove 'override' modifier"),
        Add_all_missing_override_modifiers: T(95162, 3, "Add_all_missing_override_modifiers_95162", "Add all missing 'override' modifiers"),
        Remove_all_unnecessary_override_modifiers: T(95163, 3, "Remove_all_unnecessary_override_modifiers_95163", "Remove all unnecessary 'override' modifiers"),
        Can_only_convert_named_export: T(95164, 3, "Can_only_convert_named_export_95164", "Can only convert named export"),
        Add_missing_properties: T(95165, 3, "Add_missing_properties_95165", "Add missing properties"),
        Add_all_missing_properties: T(95166, 3, "Add_all_missing_properties_95166", "Add all missing properties"),
        Add_missing_attributes: T(95167, 3, "Add_missing_attributes_95167", "Add missing attributes"),
        Add_all_missing_attributes: T(95168, 3, "Add_all_missing_attributes_95168", "Add all missing attributes"),
        Add_undefined_to_optional_property_type: T(95169, 3, "Add_undefined_to_optional_property_type_95169", "Add 'undefined' to optional property type"),
        Convert_named_imports_to_default_import: T(95170, 3, "Convert_named_imports_to_default_import_95170", "Convert named imports to default import"),
        Delete_unused_param_tag_0: T(95171, 3, "Delete_unused_param_tag_0_95171", "Delete unused '@param' tag '{0}'"),
        Delete_all_unused_param_tags: T(95172, 3, "Delete_all_unused_param_tags_95172", "Delete all unused '@param' tags"),
        Rename_param_tag_name_0_to_1: T(95173, 3, "Rename_param_tag_name_0_to_1_95173", "Rename '@param' tag name '{0}' to '{1}'"),
        Use_0: T(95174, 3, "Use_0_95174", "Use `{0}`."),
        Use_Number_isNaN_in_all_conditions: T(95175, 3, "Use_Number_isNaN_in_all_conditions_95175", "Use `Number.isNaN` in all conditions."),
        No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer: T(18004, 1, "No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004", "No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer."),
        Classes_may_not_have_a_field_named_constructor: T(18006, 1, "Classes_may_not_have_a_field_named_constructor_18006", "Classes may not have a field named 'constructor'."),
        JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array: T(18007, 1, "JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007", "JSX expressions may not use the comma operator. Did you mean to write an array?"),
        Private_identifiers_cannot_be_used_as_parameters: T(18009, 1, "Private_identifiers_cannot_be_used_as_parameters_18009", "Private identifiers cannot be used as parameters."),
        An_accessibility_modifier_cannot_be_used_with_a_private_identifier: T(18010, 1, "An_accessibility_modifier_cannot_be_used_with_a_private_identifier_18010", "An accessibility modifier cannot be used with a private identifier."),
        The_operand_of_a_delete_operator_cannot_be_a_private_identifier: T(18011, 1, "The_operand_of_a_delete_operator_cannot_be_a_private_identifier_18011", "The operand of a 'delete' operator cannot be a private identifier."),
        constructor_is_a_reserved_word: T(18012, 1, "constructor_is_a_reserved_word_18012", "'#constructor' is a reserved word."),
        Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier: T(18013, 1, "Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier_18013", "Property '{0}' is not accessible outside class '{1}' because it has a private identifier."),
        The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling: T(18014, 1, "The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_priv_18014", "The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling."),
        Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2: T(18015, 1, "Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2_18015", "Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'."),
        Private_identifiers_are_not_allowed_outside_class_bodies: T(18016, 1, "Private_identifiers_are_not_allowed_outside_class_bodies_18016", "Private identifiers are not allowed outside class bodies."),
        The_shadowing_declaration_of_0_is_defined_here: T(18017, 1, "The_shadowing_declaration_of_0_is_defined_here_18017", "The shadowing declaration of '{0}' is defined here"),
        The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here: T(18018, 1, "The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here_18018", "The declaration of '{0}' that you probably intended to use is defined here"),
        _0_modifier_cannot_be_used_with_a_private_identifier: T(18019, 1, "_0_modifier_cannot_be_used_with_a_private_identifier_18019", "'{0}' modifier cannot be used with a private identifier."),
        An_enum_member_cannot_be_named_with_a_private_identifier: T(18024, 1, "An_enum_member_cannot_be_named_with_a_private_identifier_18024", "An enum member cannot be named with a private identifier."),
        can_only_be_used_at_the_start_of_a_file: T(18026, 1, "can_only_be_used_at_the_start_of_a_file_18026", "'#!' can only be used at the start of a file."),
        Compiler_reserves_name_0_when_emitting_private_identifier_downlevel: T(18027, 1, "Compiler_reserves_name_0_when_emitting_private_identifier_downlevel_18027", "Compiler reserves name '{0}' when emitting private identifier downlevel."),
        Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher: T(18028, 1, "Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher_18028", "Private identifiers are only available when targeting ECMAScript 2015 and higher."),
        Private_identifiers_are_not_allowed_in_variable_declarations: T(18029, 1, "Private_identifiers_are_not_allowed_in_variable_declarations_18029", "Private identifiers are not allowed in variable declarations."),
        An_optional_chain_cannot_contain_private_identifiers: T(18030, 1, "An_optional_chain_cannot_contain_private_identifiers_18030", "An optional chain cannot contain private identifiers."),
        The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents: T(18031, 1, "The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituent_18031", "The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents."),
        The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some: T(18032, 1, "The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_pr_18032", "The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some."),
        Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values: T(18033, 1, "Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values_18033", "Type '{0}' is not assignable to type '{1}' as required for computed enum member values."),
        Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compiler_option_is_specified_e_g_Fragment: T(18034, 3, "Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compi_18034", "Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'."),
        Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name: T(18035, 1, "Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name_18035", "Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name."),
        Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator: T(18036, 1, "Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_dec_18036", "Class decorators can't be used with static private identifier. Consider removing the experimental decorator."),
        Await_expression_cannot_be_used_inside_a_class_static_block: T(18037, 1, "Await_expression_cannot_be_used_inside_a_class_static_block_18037", "Await expression cannot be used inside a class static block."),
        For_await_loops_cannot_be_used_inside_a_class_static_block: T(18038, 1, "For_await_loops_cannot_be_used_inside_a_class_static_block_18038", "'For await' loops cannot be used inside a class static block."),
        Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block: T(18039, 1, "Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block_18039", "Invalid use of '{0}'. It cannot be used inside a class static block."),
        A_return_statement_cannot_be_used_inside_a_class_static_block: T(18041, 1, "A_return_statement_cannot_be_used_inside_a_class_static_block_18041", "A 'return' statement cannot be used inside a class static block."),
        _0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation: T(18042, 1, "_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation_18042", "'{0}' is a type and cannot be imported in JavaScript files. Use '{1}' in a JSDoc type annotation."),
        Types_cannot_appear_in_export_declarations_in_JavaScript_files: T(18043, 1, "Types_cannot_appear_in_export_declarations_in_JavaScript_files_18043", "Types cannot appear in export declarations in JavaScript files."),
        _0_is_automatically_exported_here: T(18044, 3, "_0_is_automatically_exported_here_18044", "'{0}' is automatically exported here."),
        Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher: T(18045, 1, "Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher_18045", "Properties with the 'accessor' modifier are only available when targeting ECMAScript 2015 and higher."),
        _0_is_of_type_unknown: T(18046, 1, "_0_is_of_type_unknown_18046", "'{0}' is of type 'unknown'."),
        _0_is_possibly_null: T(18047, 1, "_0_is_possibly_null_18047", "'{0}' is possibly 'null'."),
        _0_is_possibly_undefined: T(18048, 1, "_0_is_possibly_undefined_18048", "'{0}' is possibly 'undefined'."),
        _0_is_possibly_null_or_undefined: T(18049, 1, "_0_is_possibly_null_or_undefined_18049", "'{0}' is possibly 'null' or 'undefined'."),
        The_value_0_cannot_be_used_here: T(18050, 1, "The_value_0_cannot_be_used_here_18050", "The value '{0}' cannot be used here."),
        Compiler_option_0_cannot_be_given_an_empty_string: T(18051, 1, "Compiler_option_0_cannot_be_given_an_empty_string_18051", "Compiler option '{0}' cannot be given an empty string.")
      };
    }
  });
  function Yu(e) {
    return e >= 79;
  }
  function Cle(e) {
    return e === 31 || Yu(e);
  }
  function pI(e, t) {
    if (e < t[0])
      return !1;
    let r = 0, i = t.length, o;
    for (; r + 1 < i; ) {
      if (o = r + (i - r) / 2, o -= o % 2, t[o] <= e && e <= t[o + 1])
        return !0;
      e < t[o] ? i = o : r = o + 2;
    }
    return !1;
  }
  function bM(e, t) {
    return t >= 2 ? pI(e, Mle) : t === 1 ? pI(e, Ole) : pI(e, Rle);
  }
  function IOe(e, t) {
    return t >= 2 ? pI(e, Fle) : t === 1 ? pI(e, Ple) : pI(e, Nle);
  }
  function kOe(e) {
    const t = [];
    return e.forEach((r, i) => {
      t[r] = i;
    }), t;
  }
  function yo(e) {
    return Ule[e];
  }
  function ZE(e) {
    return rW.get(e);
  }
  function MR(e) {
    const t = [];
    let r = 0, i = 0;
    for (; r < e.length; ) {
      const o = e.charCodeAt(r);
      switch (r++, o) {
        case 13:
          e.charCodeAt(r) === 10 && r++;
        case 10:
          t.push(i), i = r;
          break;
        default:
          o > 127 && hu(o) && (t.push(i), i = r);
          break;
      }
    }
    return t.push(i), t;
  }
  function FR(e, t, r, i) {
    return e.getPositionOfLineAndCharacter ? e.getPositionOfLineAndCharacter(t, r, i) : ZH(ig(e), t, r, e.text, i);
  }
  function ZH(e, t, r, i, o) {
    (t < 0 || t >= e.length) && (o ? t = t < 0 ? 0 : t >= e.length ? e.length - 1 : t : D.fail(`Bad line number. Line: ${t}, lineStarts.length: ${e.length} , line map is correct? ${i !== void 0 ? es(e, MR(i)) : "unknown"}`));
    const s = e[t] + r;
    return o ? s > e[t + 1] ? e[t + 1] : typeof i == "string" && s > i.length ? i.length : s : (t < e.length - 1 ? D.assert(s < e[t + 1]) : i !== void 0 && D.assert(s <= i.length), s);
  }
  function ig(e) {
    return e.lineMap || (e.lineMap = MR(e.text));
  }
  function BR(e, t) {
    const r = mI(e, t);
    return {
      line: r,
      character: t - e[r]
    };
  }
  function mI(e, t, r) {
    let i = yv(e, t, ml, Ws, r);
    return i < 0 && (i = ~i - 1, D.assert(i !== -1, "position cannot precede the beginning of the file")), i;
  }
  function hI(e, t, r) {
    if (t === r)
      return 0;
    const i = ig(e), o = Math.min(t, r), s = o === r, c = s ? t : r, f = mI(i, o), d = mI(i, c, f);
    return s ? f - d : d - f;
  }
  function ol(e, t) {
    return BR(ig(e), t);
  }
  function ag(e) {
    return Dm(e) || hu(e);
  }
  function Dm(e) {
    return e === 32 || e === 9 || e === 11 || e === 12 || e === 160 || e === 133 || e === 5760 || e >= 8192 && e <= 8203 || e === 8239 || e === 8287 || e === 12288 || e === 65279;
  }
  function hu(e) {
    return e === 10 || e === 13 || e === 8232 || e === 8233;
  }
  function gI(e) {
    return e >= 48 && e <= 57;
  }
  function EM(e) {
    return gI(e) || e >= 65 && e <= 70 || e >= 97 && e <= 102;
  }
  function wOe(e) {
    return e <= 1114111;
  }
  function eW(e) {
    return e >= 48 && e <= 55;
  }
  function Lle(e, t) {
    const r = e.charCodeAt(t);
    switch (r) {
      case 13:
      case 10:
      case 9:
      case 11:
      case 12:
      case 32:
      case 47:
      case 60:
      case 124:
      case 61:
      case 62:
        return !0;
      case 35:
        return t === 0;
      default:
        return r > 127;
    }
  }
  function Ko(e, t, r, i, o) {
    if (Qp(t))
      return t;
    let s = !1;
    for (; ; ) {
      const c = e.charCodeAt(t);
      switch (c) {
        case 13:
          e.charCodeAt(t + 1) === 10 && t++;
        case 10:
          if (t++, r)
            return t;
          s = !!o;
          continue;
        case 9:
        case 11:
        case 12:
        case 32:
          t++;
          continue;
        case 47:
          if (i)
            break;
          if (e.charCodeAt(t + 1) === 47) {
            for (t += 2; t < e.length && !hu(e.charCodeAt(t)); )
              t++;
            s = !1;
            continue;
          }
          if (e.charCodeAt(t + 1) === 42) {
            for (t += 2; t < e.length; ) {
              if (e.charCodeAt(t) === 42 && e.charCodeAt(t + 1) === 47) {
                t += 2;
                break;
              }
              t++;
            }
            s = !1;
            continue;
          }
          break;
        case 60:
        case 124:
        case 61:
        case 62:
          if (EA(e, t)) {
            t = yI(e, t), s = !1;
            continue;
          }
          break;
        case 35:
          if (t === 0 && tW(e, t)) {
            t = nW(e, t), s = !1;
            continue;
          }
          break;
        case 42:
          if (s) {
            t++, s = !1;
            continue;
          }
          break;
        default:
          if (c > 127 && ag(c)) {
            t++;
            continue;
          }
          break;
      }
      return t;
    }
  }
  function EA(e, t) {
    if (D.assert(t >= 0), t === 0 || hu(e.charCodeAt(t - 1))) {
      const r = e.charCodeAt(t);
      if (t + jR < e.length) {
        for (let i = 0; i < jR; i++)
          if (e.charCodeAt(t + i) !== r)
            return !1;
        return r === 61 || e.charCodeAt(t + jR) === 32;
      }
    }
    return !1;
  }
  function yI(e, t, r) {
    r && r(_.Merge_conflict_marker_encountered, t, jR);
    const i = e.charCodeAt(t), o = e.length;
    if (i === 60 || i === 62)
      for (; t < o && !hu(e.charCodeAt(t)); )
        t++;
    else
      for (D.assert(i === 124 || i === 61); t < o; ) {
        const s = e.charCodeAt(t);
        if ((s === 61 || s === 62) && s !== i && EA(e, t))
          break;
        t++;
      }
    return t;
  }
  function tW(e, t) {
    return D.assert(t === 0), xM.test(e);
  }
  function nW(e, t) {
    const r = xM.exec(e)[0];
    return t = t + r.length, t;
  }
  function TM(e, t, r, i, o, s, c) {
    let f, d, y, h, E = !1, A = i, L = c;
    if (r === 0) {
      A = !0;
      const I = SM(t);
      I && (r = I.length);
    }
    e:
      for (; r >= 0 && r < t.length; ) {
        const I = t.charCodeAt(r);
        switch (I) {
          case 13:
            t.charCodeAt(r + 1) === 10 && r++;
          case 10:
            if (r++, i)
              break e;
            A = !0, E && (h = !0);
            continue;
          case 9:
          case 11:
          case 12:
          case 32:
            r++;
            continue;
          case 47:
            const O = t.charCodeAt(r + 1);
            let k = !1;
            if (O === 47 || O === 42) {
              const G = O === 47 ? 2 : 3, V = r;
              if (r += 2, O === 47)
                for (; r < t.length; ) {
                  if (hu(t.charCodeAt(r))) {
                    k = !0;
                    break;
                  }
                  r++;
                }
              else
                for (; r < t.length; ) {
                  if (t.charCodeAt(r) === 42 && t.charCodeAt(r + 1) === 47) {
                    r += 2;
                    break;
                  }
                  r++;
                }
              if (A) {
                if (E && (L = o(f, d, y, h, s, L), !e && L))
                  return L;
                f = V, d = r, y = G, h = k, E = !0;
              }
              continue;
            }
            break e;
          default:
            if (I > 127 && ag(I)) {
              E && hu(I) && (h = !0), r++;
              continue;
            }
            break e;
        }
      }
    return E && (L = o(f, d, y, h, s, L)), L;
  }
  function GR(e, t, r, i) {
    return TM(!1, e, t, !1, r, i);
  }
  function UR(e, t, r, i) {
    return TM(!1, e, t, !0, r, i);
  }
  function Ile(e, t, r, i, o) {
    return TM(!0, e, t, !1, r, i, o);
  }
  function kle(e, t, r, i, o) {
    return TM(!0, e, t, !0, r, i, o);
  }
  function wle(e, t, r, i, o, s = []) {
    return s.push({ kind: r, pos: e, end: t, hasTrailingNewLine: i }), s;
  }
  function ph(e, t) {
    return Ile(e, t, wle, void 0, void 0);
  }
  function B0(e, t) {
    return kle(e, t, wle, void 0, void 0);
  }
  function SM(e) {
    const t = xM.exec(e);
    if (t)
      return t[0];
  }
  function mh(e, t) {
    return e >= 65 && e <= 90 || e >= 97 && e <= 122 || e === 36 || e === 95 || e > 127 && bM(e, t);
  }
  function G0(e, t, r) {
    return e >= 65 && e <= 90 || e >= 97 && e <= 122 || e >= 48 && e <= 57 || e === 36 || e === 95 || (r === 1 ? e === 45 || e === 58 : !1) || e > 127 && IOe(e, t);
  }
  function P_(e, t, r) {
    let i = fy(e, 0);
    if (!mh(i, t))
      return !1;
    for (let o = Tv(i); o < e.length; o += Tv(i))
      if (!G0(i = fy(e, o), t, r))
        return !1;
    return !0;
  }
  function dy(e, t, r = 0, i, o, s, c) {
    var f = i, d, y, h, E, A, L, I, O, k = 0;
    Wt(f, s, c);
    var G = {
      getStartPos: () => h,
      getTextPos: () => d,
      getToken: () => A,
      getTokenPos: () => E,
      getTokenText: () => f.substring(E, d),
      getTokenValue: () => L,
      hasUnicodeEscape: () => (I & 1024) !== 0,
      hasExtendedUnicodeEscape: () => (I & 8) !== 0,
      hasPrecedingLineBreak: () => (I & 1) !== 0,
      hasPrecedingJSDocComment: () => (I & 2) !== 0,
      isIdentifier: () => A === 79 || A > 116,
      isReservedWord: () => A >= 81 && A <= 116,
      isUnterminated: () => (I & 4) !== 0,
      getCommentDirectives: () => O,
      getNumericLiteralFlags: () => I & 1008,
      getTokenFlags: () => I,
      reScanGreaterToken: Ye,
      reScanAsteriskEqualsToken: We,
      reScanSlashToken: Fe,
      reScanTemplateToken: Et,
      reScanTemplateHeadOrNoSubstitutionTemplate: Vt,
      scanJsxIdentifier: jn,
      scanJsxAttributeValue: In,
      reScanJsxAttributeValue: Zt,
      reScanJsxToken: tt,
      reScanLessThanToken: at,
      reScanHashToken: sn,
      reScanQuestionToken: Qt,
      reScanInvalidIdentifier: Oe,
      scanJsxToken: On,
      scanJsDocToken: _r,
      scan: qe,
      getText: At,
      clearCommentDirectives: vn,
      setText: Wt,
      setScriptTarget: rr,
      setLanguageVariant: cr,
      setOnError: fn,
      setTextPos: Pi,
      setInJSDocType: hi,
      tryScan: Or,
      lookAhead: Qi,
      scanRange: $i
    };
    return D.isDebugging && Object.defineProperty(G, "__debugShowCurrentPositionInText", {
      get: () => {
        const Rn = G.getText();
        return Rn.slice(0, G.getStartPos()) + "║" + Rn.slice(G.getStartPos());
      }
    }), G;
    function V(Rn, an = d, Pn) {
      if (o) {
        const Ar = d;
        d = an, o(Rn, Pn || 0), d = Ar;
      }
    }
    function H() {
      let Rn = d, an = !1, Pn = !1, Ar = "";
      for (; ; ) {
        const Hr = f.charCodeAt(d);
        if (Hr === 95) {
          I |= 512, an ? (an = !1, Pn = !0, Ar += f.substring(Rn, d)) : V(Pn ? _.Multiple_consecutive_numeric_separators_are_not_permitted : _.Numeric_separators_are_not_allowed_here, d, 1), d++, Rn = d;
          continue;
        }
        if (gI(Hr)) {
          an = !0, Pn = !1, d++;
          continue;
        }
        break;
      }
      return f.charCodeAt(d - 1) === 95 && V(_.Numeric_separators_are_not_allowed_here, d - 1, 1), Ar + f.substring(Rn, d);
    }
    function te() {
      const Rn = d, an = H();
      let Pn, Ar;
      f.charCodeAt(d) === 46 && (d++, Pn = H());
      let Hr = d;
      if (f.charCodeAt(d) === 69 || f.charCodeAt(d) === 101) {
        d++, I |= 16, (f.charCodeAt(d) === 43 || f.charCodeAt(d) === 45) && d++;
        const yt = d, Nt = H();
        Nt ? (Ar = f.substring(Hr, yt) + Nt, Hr = d) : V(_.Digit_expected);
      }
      let we;
      if (I & 512 ? (we = an, Pn && (we += "." + Pn), Ar && (we += Ar)) : we = f.substring(Rn, Hr), Pn !== void 0 || I & 16)
        return X(Rn, Pn === void 0 && !!(I & 16)), {
          type: 8,
          value: "" + +we
        };
      {
        L = we;
        const yt = Be();
        return X(Rn), { type: yt, value: L };
      }
    }
    function X(Rn, an) {
      if (!mh(fy(f, d), e))
        return;
      const Pn = d, { length: Ar } = ee();
      Ar === 1 && f[Pn] === "n" ? V(an ? _.A_bigint_literal_cannot_use_exponential_notation : _.A_bigint_literal_must_be_an_integer, Rn, Pn - Rn + 1) : (V(_.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal, Pn, Ar), d = Pn);
    }
    function Y() {
      const Rn = d;
      for (; eW(f.charCodeAt(d)); )
        d++;
      return +f.substring(Rn, d);
    }
    function P(Rn, an) {
      const Pn = re(Rn, !1, an);
      return Pn ? parseInt(Pn, 16) : -1;
    }
    function de(Rn, an) {
      return re(Rn, !0, an);
    }
    function re(Rn, an, Pn) {
      let Ar = [], Hr = !1, we = !1;
      for (; Ar.length < Rn || an; ) {
        let yt = f.charCodeAt(d);
        if (Pn && yt === 95) {
          I |= 512, Hr ? (Hr = !1, we = !0) : V(we ? _.Multiple_consecutive_numeric_separators_are_not_permitted : _.Numeric_separators_are_not_allowed_here, d, 1), d++;
          continue;
        }
        if (Hr = Pn, yt >= 65 && yt <= 70)
          yt += 32;
        else if (!(yt >= 48 && yt <= 57 || yt >= 97 && yt <= 102))
          break;
        Ar.push(yt), d++, we = !1;
      }
      return Ar.length < Rn && (Ar = []), f.charCodeAt(d - 1) === 95 && V(_.Numeric_separators_are_not_allowed_here, d - 1, 1), String.fromCharCode(...Ar);
    }
    function ye(Rn = !1) {
      const an = f.charCodeAt(d);
      d++;
      let Pn = "", Ar = d;
      for (; ; ) {
        if (d >= y) {
          Pn += f.substring(Ar, d), I |= 4, V(_.Unterminated_string_literal);
          break;
        }
        const Hr = f.charCodeAt(d);
        if (Hr === an) {
          Pn += f.substring(Ar, d), d++;
          break;
        }
        if (Hr === 92 && !Rn) {
          Pn += f.substring(Ar, d), Pn += W(), Ar = d;
          continue;
        }
        if (hu(Hr) && !Rn) {
          Pn += f.substring(Ar, d), I |= 4, V(_.Unterminated_string_literal);
          break;
        }
        d++;
      }
      return Pn;
    }
    function ae(Rn) {
      const an = f.charCodeAt(d) === 96;
      d++;
      let Pn = d, Ar = "", Hr;
      for (; ; ) {
        if (d >= y) {
          Ar += f.substring(Pn, d), I |= 4, V(_.Unterminated_template_literal), Hr = an ? 14 : 17;
          break;
        }
        const we = f.charCodeAt(d);
        if (we === 96) {
          Ar += f.substring(Pn, d), d++, Hr = an ? 14 : 17;
          break;
        }
        if (we === 36 && d + 1 < y && f.charCodeAt(d + 1) === 123) {
          Ar += f.substring(Pn, d), d += 2, Hr = an ? 15 : 16;
          break;
        }
        if (we === 92) {
          Ar += f.substring(Pn, d), Ar += W(Rn), Pn = d;
          continue;
        }
        if (we === 13) {
          Ar += f.substring(Pn, d), d++, d < y && f.charCodeAt(d) === 10 && d++, Ar += `
`, Pn = d;
          continue;
        }
        d++;
      }
      return D.assert(Hr !== void 0), L = Ar, Hr;
    }
    function W(Rn) {
      const an = d;
      if (d++, d >= y)
        return V(_.Unexpected_end_of_text), "";
      const Pn = f.charCodeAt(d);
      switch (d++, Pn) {
        case 48:
          return Rn && d < y && gI(f.charCodeAt(d)) ? (d++, I |= 2048, f.substring(an, d)) : "\0";
        case 98:
          return "\b";
        case 116:
          return "	";
        case 110:
          return `
`;
        case 118:
          return "\v";
        case 102:
          return "\f";
        case 114:
          return "\r";
        case 39:
          return "'";
        case 34:
          return '"';
        case 117:
          if (Rn) {
            for (let Ar = d; Ar < d + 4; Ar++)
              if (Ar < y && !EM(f.charCodeAt(Ar)) && f.charCodeAt(Ar) !== 123)
                return d = Ar, I |= 2048, f.substring(an, d);
          }
          if (d < y && f.charCodeAt(d) === 123) {
            if (d++, Rn && !EM(f.charCodeAt(d)))
              return I |= 2048, f.substring(an, d);
            if (Rn) {
              const Ar = d, Hr = de(1, !1), we = Hr ? parseInt(Hr, 16) : -1;
              if (!wOe(we) || f.charCodeAt(d) !== 125)
                return I |= 2048, f.substring(an, d);
              d = Ar;
            }
            return I |= 8, me();
          }
          return I |= 1024, ce(4);
        case 120:
          if (Rn)
            if (EM(f.charCodeAt(d))) {
              if (!EM(f.charCodeAt(d + 1)))
                return d++, I |= 2048, f.substring(an, d);
            } else
              return I |= 2048, f.substring(an, d);
          return ce(2);
        case 13:
          d < y && f.charCodeAt(d) === 10 && d++;
        case 10:
        case 8232:
        case 8233:
          return "";
        default:
          return String.fromCharCode(Pn);
      }
    }
    function ce(Rn) {
      const an = P(Rn, !1);
      return an >= 0 ? String.fromCharCode(an) : (V(_.Hexadecimal_digit_expected), "");
    }
    function me() {
      const Rn = de(1, !1), an = Rn ? parseInt(Rn, 16) : -1;
      let Pn = !1;
      return an < 0 ? (V(_.Hexadecimal_digit_expected), Pn = !0) : an > 1114111 && (V(_.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive), Pn = !0), d >= y ? (V(_.Unexpected_end_of_text), Pn = !0) : f.charCodeAt(d) === 125 ? d++ : (V(_.Unterminated_Unicode_escape_sequence), Pn = !0), Pn ? "" : vI(an);
    }
    function ve() {
      if (d + 5 < y && f.charCodeAt(d + 1) === 117) {
        const Rn = d;
        d += 2;
        const an = P(4, !1);
        return d = Rn, an;
      }
      return -1;
    }
    function Te() {
      if (fy(f, d + 1) === 117 && fy(f, d + 2) === 123) {
        const Rn = d;
        d += 3;
        const an = de(1, !1), Pn = an ? parseInt(an, 16) : -1;
        return d = Rn, Pn;
      }
      return -1;
    }
    function ee() {
      let Rn = "", an = d;
      for (; d < y; ) {
        let Pn = fy(f, d);
        if (G0(Pn, e))
          d += Tv(Pn);
        else if (Pn === 92) {
          if (Pn = Te(), Pn >= 0 && G0(Pn, e)) {
            d += 3, I |= 8, Rn += me(), an = d;
            continue;
          }
          if (Pn = ve(), !(Pn >= 0 && G0(Pn, e)))
            break;
          I |= 1024, Rn += f.substring(an, d), Rn += vI(Pn), d += 6, an = d;
        } else
          break;
      }
      return Rn += f.substring(an, d), Rn;
    }
    function Qe() {
      const Rn = L.length;
      if (Rn >= 2 && Rn <= 12) {
        const an = L.charCodeAt(0);
        if (an >= 97 && an <= 122) {
          const Pn = Dle.get(L);
          if (Pn !== void 0)
            return A = Pn;
        }
      }
      return A = 79;
    }
    function Ve(Rn) {
      let an = "", Pn = !1, Ar = !1;
      for (; ; ) {
        const Hr = f.charCodeAt(d);
        if (Hr === 95) {
          I |= 512, Pn ? (Pn = !1, Ar = !0) : V(Ar ? _.Multiple_consecutive_numeric_separators_are_not_permitted : _.Numeric_separators_are_not_allowed_here, d, 1), d++;
          continue;
        }
        if (Pn = !0, !gI(Hr) || Hr - 48 >= Rn)
          break;
        an += f[d], d++, Ar = !1;
      }
      return f.charCodeAt(d - 1) === 95 && V(_.Numeric_separators_are_not_allowed_here, d - 1, 1), an;
    }
    function Be() {
      return f.charCodeAt(d) === 110 ? (L += "n", I & 384 && (L = pk(L) + "n"), d++, 9) : (L = "" + (I & 128 ? parseInt(L.slice(2), 2) : I & 256 ? parseInt(L.slice(2), 8) : +L), 8);
    }
    function qe() {
      h = d, I = 0;
      let Rn = !1;
      for (; ; ) {
        if (E = d, d >= y)
          return A = 1;
        const an = fy(f, d);
        if (an === 35 && d === 0 && tW(f, d)) {
          if (d = nW(f, d), t)
            continue;
          return A = 6;
        }
        switch (an) {
          case 10:
          case 13:
            if (I |= 1, t) {
              d++;
              continue;
            } else
              return an === 13 && d + 1 < y && f.charCodeAt(d + 1) === 10 ? d += 2 : d++, A = 4;
          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 8203:
          case 8239:
          case 8287:
          case 12288:
          case 65279:
            if (t) {
              d++;
              continue;
            } else {
              for (; d < y && Dm(f.charCodeAt(d)); )
                d++;
              return A = 5;
            }
          case 33:
            return f.charCodeAt(d + 1) === 61 ? f.charCodeAt(d + 2) === 61 ? (d += 3, A = 37) : (d += 2, A = 35) : (d++, A = 53);
          case 34:
          case 39:
            return L = ye(), A = 10;
          case 96:
            return A = ae(!1);
          case 37:
            return f.charCodeAt(d + 1) === 61 ? (d += 2, A = 69) : (d++, A = 44);
          case 38:
            return f.charCodeAt(d + 1) === 38 ? f.charCodeAt(d + 2) === 61 ? (d += 3, A = 76) : (d += 2, A = 55) : f.charCodeAt(d + 1) === 61 ? (d += 2, A = 73) : (d++, A = 50);
          case 40:
            return d++, A = 20;
          case 41:
            return d++, A = 21;
          case 42:
            if (f.charCodeAt(d + 1) === 61)
              return d += 2, A = 66;
            if (f.charCodeAt(d + 1) === 42)
              return f.charCodeAt(d + 2) === 61 ? (d += 3, A = 67) : (d += 2, A = 42);
            if (d++, k && !Rn && I & 1) {
              Rn = !0;
              continue;
            }
            return A = 41;
          case 43:
            return f.charCodeAt(d + 1) === 43 ? (d += 2, A = 45) : f.charCodeAt(d + 1) === 61 ? (d += 2, A = 64) : (d++, A = 39);
          case 44:
            return d++, A = 27;
          case 45:
            return f.charCodeAt(d + 1) === 45 ? (d += 2, A = 46) : f.charCodeAt(d + 1) === 61 ? (d += 2, A = 65) : (d++, A = 40);
          case 46:
            return gI(f.charCodeAt(d + 1)) ? (L = te().value, A = 8) : f.charCodeAt(d + 1) === 46 && f.charCodeAt(d + 2) === 46 ? (d += 3, A = 25) : (d++, A = 24);
          case 47:
            if (f.charCodeAt(d + 1) === 47) {
              for (d += 2; d < y && !hu(f.charCodeAt(d)); )
                d++;
              if (O = st(O, f.slice(E, d), Ble, E), t)
                continue;
              return A = 2;
            }
            if (f.charCodeAt(d + 1) === 42) {
              d += 2, f.charCodeAt(d) === 42 && f.charCodeAt(d + 1) !== 47 && (I |= 2);
              let Nt = !1, Ce = E;
              for (; d < y; ) {
                const pt = f.charCodeAt(d);
                if (pt === 42 && f.charCodeAt(d + 1) === 47) {
                  d += 2, Nt = !0;
                  break;
                }
                d++, hu(pt) && (Ce = d, I |= 1);
              }
              if (O = st(O, f.slice(Ce, d), Gle, Ce), Nt || V(_.Asterisk_Slash_expected), t)
                continue;
              return Nt || (I |= 4), A = 3;
            }
            return f.charCodeAt(d + 1) === 61 ? (d += 2, A = 68) : (d++, A = 43);
          case 48:
            if (d + 2 < y && (f.charCodeAt(d + 1) === 88 || f.charCodeAt(d + 1) === 120))
              return d += 2, L = de(1, !0), L || (V(_.Hexadecimal_digit_expected), L = "0"), L = "0x" + L, I |= 64, A = Be();
            if (d + 2 < y && (f.charCodeAt(d + 1) === 66 || f.charCodeAt(d + 1) === 98))
              return d += 2, L = Ve(2), L || (V(_.Binary_digit_expected), L = "0"), L = "0b" + L, I |= 128, A = Be();
            if (d + 2 < y && (f.charCodeAt(d + 1) === 79 || f.charCodeAt(d + 1) === 111))
              return d += 2, L = Ve(8), L || (V(_.Octal_digit_expected), L = "0"), L = "0o" + L, I |= 256, A = Be();
            if (d + 1 < y && eW(f.charCodeAt(d + 1)))
              return L = "" + Y(), I |= 32, A = 8;
          case 49:
          case 50:
          case 51:
          case 52:
          case 53:
          case 54:
          case 55:
          case 56:
          case 57:
            return { type: A, value: L } = te(), A;
          case 58:
            return d++, A = 58;
          case 59:
            return d++, A = 26;
          case 60:
            if (EA(f, d)) {
              if (d = yI(f, d, V), t)
                continue;
              return A = 7;
            }
            return f.charCodeAt(d + 1) === 60 ? f.charCodeAt(d + 2) === 61 ? (d += 3, A = 70) : (d += 2, A = 47) : f.charCodeAt(d + 1) === 61 ? (d += 2, A = 32) : r === 1 && f.charCodeAt(d + 1) === 47 && f.charCodeAt(d + 2) !== 42 ? (d += 2, A = 30) : (d++, A = 29);
          case 61:
            if (EA(f, d)) {
              if (d = yI(f, d, V), t)
                continue;
              return A = 7;
            }
            return f.charCodeAt(d + 1) === 61 ? f.charCodeAt(d + 2) === 61 ? (d += 3, A = 36) : (d += 2, A = 34) : f.charCodeAt(d + 1) === 62 ? (d += 2, A = 38) : (d++, A = 63);
          case 62:
            if (EA(f, d)) {
              if (d = yI(f, d, V), t)
                continue;
              return A = 7;
            }
            return d++, A = 31;
          case 63:
            return f.charCodeAt(d + 1) === 46 && !gI(f.charCodeAt(d + 2)) ? (d += 2, A = 28) : f.charCodeAt(d + 1) === 63 ? f.charCodeAt(d + 2) === 61 ? (d += 3, A = 77) : (d += 2, A = 60) : (d++, A = 57);
          case 91:
            return d++, A = 22;
          case 93:
            return d++, A = 23;
          case 94:
            return f.charCodeAt(d + 1) === 61 ? (d += 2, A = 78) : (d++, A = 52);
          case 123:
            return d++, A = 18;
          case 124:
            if (EA(f, d)) {
              if (d = yI(f, d, V), t)
                continue;
              return A = 7;
            }
            return f.charCodeAt(d + 1) === 124 ? f.charCodeAt(d + 2) === 61 ? (d += 3, A = 75) : (d += 2, A = 56) : f.charCodeAt(d + 1) === 61 ? (d += 2, A = 74) : (d++, A = 51);
          case 125:
            return d++, A = 19;
          case 126:
            return d++, A = 54;
          case 64:
            return d++, A = 59;
          case 92:
            const Pn = Te();
            if (Pn >= 0 && mh(Pn, e))
              return d += 3, I |= 8, L = me() + ee(), A = Qe();
            const Ar = ve();
            return Ar >= 0 && mh(Ar, e) ? (d += 6, I |= 1024, L = String.fromCharCode(Ar) + ee(), A = Qe()) : (V(_.Invalid_character), d++, A = 0);
          case 35:
            if (d !== 0 && f[d + 1] === "!")
              return V(_.can_only_be_used_at_the_start_of_a_file), d++, A = 0;
            const Hr = fy(f, d + 1);
            if (Hr === 92) {
              d++;
              const Nt = Te();
              if (Nt >= 0 && mh(Nt, e))
                return d += 3, I |= 8, L = "#" + me() + ee(), A = 80;
              const Ce = ve();
              if (Ce >= 0 && mh(Ce, e))
                return d += 6, I |= 1024, L = "#" + String.fromCharCode(Ce) + ee(), A = 80;
              d--;
            }
            return mh(Hr, e) ? (d++, Me(Hr, e)) : (L = "#", V(_.Invalid_character, d++, Tv(an))), A = 80;
          default:
            const we = Me(an, e);
            if (we)
              return A = we;
            if (Dm(an)) {
              d += Tv(an);
              continue;
            } else if (hu(an)) {
              I |= 1, d += Tv(an);
              continue;
            }
            const yt = Tv(an);
            return V(_.Invalid_character, d, yt), d += yt, A = 0;
        }
      }
    }
    function Oe() {
      D.assert(A === 0, "'reScanInvalidIdentifier' should only be called when the current token is 'SyntaxKind.Unknown'."), d = E = h, I = 0;
      const Rn = fy(f, d), an = Me(Rn, 99);
      return an ? A = an : (d += Tv(Rn), A);
    }
    function Me(Rn, an) {
      let Pn = Rn;
      if (mh(Pn, an)) {
        for (d += Tv(Pn); d < y && G0(Pn = fy(f, d), an); )
          d += Tv(Pn);
        return L = f.substring(E, d), Pn === 92 && (L += ee()), Qe();
      }
    }
    function Ye() {
      if (A === 31) {
        if (f.charCodeAt(d) === 62)
          return f.charCodeAt(d + 1) === 62 ? f.charCodeAt(d + 2) === 61 ? (d += 3, A = 72) : (d += 2, A = 49) : f.charCodeAt(d + 1) === 61 ? (d += 2, A = 71) : (d++, A = 48);
        if (f.charCodeAt(d) === 61)
          return d++, A = 33;
      }
      return A;
    }
    function We() {
      return D.assert(A === 66, "'reScanAsteriskEqualsToken' should only be called on a '*='"), d = E + 1, A = 63;
    }
    function Fe() {
      if (A === 43 || A === 68) {
        let Rn = E + 1, an = !1, Pn = !1;
        for (; ; ) {
          if (Rn >= y) {
            I |= 4, V(_.Unterminated_regular_expression_literal);
            break;
          }
          const Ar = f.charCodeAt(Rn);
          if (hu(Ar)) {
            I |= 4, V(_.Unterminated_regular_expression_literal);
            break;
          }
          if (an)
            an = !1;
          else if (Ar === 47 && !Pn) {
            Rn++;
            break;
          } else
            Ar === 91 ? Pn = !0 : Ar === 92 ? an = !0 : Ar === 93 && (Pn = !1);
          Rn++;
        }
        for (; Rn < y && G0(f.charCodeAt(Rn), e); )
          Rn++;
        d = Rn, L = f.substring(E, d), A = 13;
      }
      return A;
    }
    function st(Rn, an, Pn, Ar) {
      const Hr = Ct(cI(an), Pn);
      return Hr === void 0 ? Rn : Fn(Rn, {
        range: { pos: Ar, end: d },
        type: Hr
      });
    }
    function Ct(Rn, an) {
      const Pn = an.exec(Rn);
      if (Pn)
        switch (Pn[1]) {
          case "ts-expect-error":
            return 0;
          case "ts-ignore":
            return 1;
        }
    }
    function Et(Rn) {
      return D.assert(A === 19, "'reScanTemplateToken' should only be called on a '}'"), d = E, A = ae(Rn);
    }
    function Vt() {
      return d = E, A = ae(!0);
    }
    function tt(Rn = !0) {
      return d = E = h, A = On(Rn);
    }
    function at() {
      return A === 47 ? (d = E + 1, A = 29) : A;
    }
    function sn() {
      return A === 80 ? (d = E + 1, A = 62) : A;
    }
    function Qt() {
      return D.assert(A === 60, "'reScanQuestionToken' should only be called on a '??'"), d = E + 1, A = 57;
    }
    function On(Rn = !0) {
      if (h = E = d, d >= y)
        return A = 1;
      let an = f.charCodeAt(d);
      if (an === 60)
        return f.charCodeAt(d + 1) === 47 ? (d += 2, A = 30) : (d++, A = 29);
      if (an === 123)
        return d++, A = 18;
      let Pn = 0;
      for (; d < y && (an = f.charCodeAt(d), an !== 123); ) {
        if (an === 60) {
          if (EA(f, d))
            return d = yI(f, d, V), A = 7;
          break;
        }
        if (an === 62 && V(_.Unexpected_token_Did_you_mean_or_gt, d, 1), an === 125 && V(_.Unexpected_token_Did_you_mean_or_rbrace, d, 1), hu(an) && Pn === 0)
          Pn = -1;
        else {
          if (!Rn && hu(an) && Pn > 0)
            break;
          ag(an) || (Pn = d);
        }
        d++;
      }
      return L = f.substring(h, d), Pn === -1 ? 12 : 11;
    }
    function jn() {
      if (Yu(A)) {
        let Rn = !1;
        for (; d < y; ) {
          const an = f.charCodeAt(d);
          if (an === 45) {
            L += "-", d++;
            continue;
          } else if (an === 58 && !Rn) {
            L += ":", d++, Rn = !0, A = 79;
            continue;
          }
          const Pn = d;
          if (L += ee(), d === Pn)
            break;
        }
        return L.slice(-1) === ":" && (L = L.slice(0, -1), d--), Qe();
      }
      return A;
    }
    function In() {
      switch (h = d, f.charCodeAt(d)) {
        case 34:
        case 39:
          return L = ye(!0), A = 10;
        default:
          return qe();
      }
    }
    function Zt() {
      return d = E = h, In();
    }
    function _r() {
      if (h = E = d, I = 0, d >= y)
        return A = 1;
      const Rn = fy(f, d);
      switch (d += Tv(Rn), Rn) {
        case 9:
        case 11:
        case 12:
        case 32:
          for (; d < y && Dm(f.charCodeAt(d)); )
            d++;
          return A = 5;
        case 64:
          return A = 59;
        case 13:
          f.charCodeAt(d) === 10 && d++;
        case 10:
          return I |= 1, A = 4;
        case 42:
          return A = 41;
        case 123:
          return A = 18;
        case 125:
          return A = 19;
        case 91:
          return A = 22;
        case 93:
          return A = 23;
        case 60:
          return A = 29;
        case 62:
          return A = 31;
        case 61:
          return A = 63;
        case 44:
          return A = 27;
        case 46:
          return A = 24;
        case 96:
          return A = 61;
        case 35:
          return A = 62;
        case 92:
          d--;
          const an = Te();
          if (an >= 0 && mh(an, e))
            return d += 3, I |= 8, L = me() + ee(), A = Qe();
          const Pn = ve();
          return Pn >= 0 && mh(Pn, e) ? (d += 6, I |= 1024, L = String.fromCharCode(Pn) + ee(), A = Qe()) : (d++, A = 0);
      }
      if (mh(Rn, e)) {
        let an = Rn;
        for (; d < y && G0(an = fy(f, d), e) || f.charCodeAt(d) === 45; )
          d += Tv(an);
        return L = f.substring(E, d), an === 92 && (L += ee()), A = Qe();
      } else
        return A = 0;
    }
    function Ii(Rn, an) {
      const Pn = d, Ar = h, Hr = E, we = A, yt = L, Nt = I, Ce = Rn();
      return (!Ce || an) && (d = Pn, h = Ar, E = Hr, A = we, L = yt, I = Nt), Ce;
    }
    function $i(Rn, an, Pn) {
      const Ar = y, Hr = d, we = h, yt = E, Nt = A, Ce = L, pt = I, _e = O;
      Wt(f, Rn, an);
      const ie = Pn();
      return y = Ar, d = Hr, h = we, E = yt, A = Nt, L = Ce, I = pt, O = _e, ie;
    }
    function Qi(Rn) {
      return Ii(Rn, !0);
    }
    function Or(Rn) {
      return Ii(Rn, !1);
    }
    function At() {
      return f;
    }
    function vn() {
      O = void 0;
    }
    function Wt(Rn, an, Pn) {
      f = Rn || "", y = Pn === void 0 ? f.length : an + Pn, Pi(an || 0);
    }
    function fn(Rn) {
      o = Rn;
    }
    function rr(Rn) {
      e = Rn;
    }
    function cr(Rn) {
      r = Rn;
    }
    function Pi(Rn) {
      D.assert(Rn >= 0), d = Rn, h = Rn, E = Rn, A = 0, L = void 0, I = 0;
    }
    function hi(Rn) {
      k += Rn ? 1 : -1;
    }
  }
  function Tv(e) {
    return e >= 65536 ? 2 : 1;
  }
  function DOe(e) {
    if (D.assert(0 <= e && e <= 1114111), e <= 65535)
      return String.fromCharCode(e);
    const t = Math.floor((e - 65536) / 1024) + 55296, r = (e - 65536) % 1024 + 56320;
    return String.fromCharCode(t, r);
  }
  function vI(e) {
    return Vle(e);
  }
  var VR, Dle, rW, Rle, Nle, Ole, Ple, Mle, Fle, Ble, Gle, Ule, jR, xM, fy, Vle, ROe = C({
    "src/compiler/scanner.ts"() {
      Oa(), VR = {
        abstract: 126,
        accessor: 127,
        any: 131,
        as: 128,
        asserts: 129,
        assert: 130,
        bigint: 160,
        boolean: 134,
        break: 81,
        case: 82,
        catch: 83,
        class: 84,
        continue: 86,
        const: 85,
        constructor: 135,
        debugger: 87,
        declare: 136,
        default: 88,
        delete: 89,
        do: 90,
        else: 91,
        enum: 92,
        export: 93,
        extends: 94,
        false: 95,
        finally: 96,
        for: 97,
        from: 158,
        function: 98,
        get: 137,
        if: 99,
        implements: 117,
        import: 100,
        in: 101,
        infer: 138,
        instanceof: 102,
        interface: 118,
        intrinsic: 139,
        is: 140,
        keyof: 141,
        let: 119,
        module: 142,
        namespace: 143,
        never: 144,
        new: 103,
        null: 104,
        number: 148,
        object: 149,
        package: 120,
        private: 121,
        protected: 122,
        public: 123,
        override: 161,
        out: 145,
        readonly: 146,
        require: 147,
        global: 159,
        return: 105,
        satisfies: 150,
        set: 151,
        static: 124,
        string: 152,
        super: 106,
        switch: 107,
        symbol: 153,
        this: 108,
        throw: 109,
        true: 110,
        try: 111,
        type: 154,
        typeof: 112,
        undefined: 155,
        unique: 156,
        unknown: 157,
        var: 113,
        void: 114,
        while: 115,
        with: 116,
        yield: 125,
        async: 132,
        await: 133,
        of: 162
      }, Dle = new Map(Object.entries(VR)), rW = new Map(Object.entries({
        ...VR,
        "{": 18,
        "}": 19,
        "(": 20,
        ")": 21,
        "[": 22,
        "]": 23,
        ".": 24,
        "...": 25,
        ";": 26,
        ",": 27,
        "<": 29,
        ">": 31,
        "<=": 32,
        ">=": 33,
        "==": 34,
        "!=": 35,
        "===": 36,
        "!==": 37,
        "=>": 38,
        "+": 39,
        "-": 40,
        "**": 42,
        "*": 41,
        "/": 43,
        "%": 44,
        "++": 45,
        "--": 46,
        "<<": 47,
        "</": 30,
        ">>": 48,
        ">>>": 49,
        "&": 50,
        "|": 51,
        "^": 52,
        "!": 53,
        "~": 54,
        "&&": 55,
        "||": 56,
        "?": 57,
        "??": 60,
        "?.": 28,
        ":": 58,
        "=": 63,
        "+=": 64,
        "-=": 65,
        "*=": 66,
        "**=": 67,
        "/=": 68,
        "%=": 69,
        "<<=": 70,
        ">>=": 71,
        ">>>=": 72,
        "&=": 73,
        "|=": 74,
        "^=": 78,
        "||=": 75,
        "&&=": 76,
        "??=": 77,
        "@": 59,
        "#": 62,
        "`": 61
      })), Rle = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1610, 1649, 1747, 1749, 1749, 1765, 1766, 1786, 1788, 1808, 1808, 1810, 1836, 1920, 1957, 2309, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2784, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3294, 3294, 3296, 3297, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3424, 3425, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805, 3840, 3840, 3904, 3911, 3913, 3946, 3976, 3979, 4096, 4129, 4131, 4135, 4137, 4138, 4176, 4181, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6067, 6176, 6263, 6272, 6312, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8319, 8319, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12346, 12353, 12436, 12445, 12446, 12449, 12538, 12540, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65138, 65140, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500], Nle = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 768, 846, 864, 866, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1155, 1158, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1441, 1443, 1465, 1467, 1469, 1471, 1471, 1473, 1474, 1476, 1476, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1621, 1632, 1641, 1648, 1747, 1749, 1756, 1759, 1768, 1770, 1773, 1776, 1788, 1808, 1836, 1840, 1866, 1920, 1968, 2305, 2307, 2309, 2361, 2364, 2381, 2384, 2388, 2392, 2403, 2406, 2415, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2492, 2494, 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2562, 2562, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2649, 2652, 2654, 2654, 2662, 2676, 2689, 2691, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2784, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2876, 2883, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2913, 2918, 2927, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3031, 3031, 3047, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3168, 3169, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3297, 3302, 3311, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3390, 3395, 3398, 3400, 3402, 3405, 3415, 3415, 3424, 3425, 3430, 3439, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3805, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3946, 3953, 3972, 3974, 3979, 3984, 3991, 3993, 4028, 4038, 4038, 4096, 4129, 4131, 4135, 4137, 4138, 4140, 4146, 4150, 4153, 4160, 4169, 4176, 4185, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 4969, 4977, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6099, 6112, 6121, 6160, 6169, 6176, 6263, 6272, 6313, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8319, 8319, 8400, 8412, 8417, 8417, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12346, 12353, 12436, 12441, 12442, 12445, 12446, 12449, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65056, 65059, 65075, 65076, 65101, 65103, 65136, 65138, 65140, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500], Ole = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208, 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6e3, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43e3, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500], Ple = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1520, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2048, 2093, 2112, 2139, 2208, 2208, 2210, 2220, 2276, 2302, 2304, 2403, 2406, 2415, 2417, 2423, 2425, 2431, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3161, 3168, 3171, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3396, 3398, 3400, 3402, 3406, 3415, 3415, 3424, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6e3, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6428, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6617, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7376, 7378, 7380, 7414, 7424, 7654, 7676, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 11823, 11823, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12442, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42647, 42655, 42737, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43e3, 43047, 43072, 43123, 43136, 43204, 43216, 43225, 43232, 43255, 43259, 43259, 43264, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43643, 43648, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65062, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500], Mle = [65, 90, 97, 122, 170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 895, 895, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1488, 1514, 1519, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2144, 2154, 2208, 2228, 2230, 2237, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2432, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2556, 2556, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2809, 2809, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3133, 3133, 3160, 3162, 3168, 3169, 3200, 3200, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3412, 3414, 3423, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6e3, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6264, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6430, 6480, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7401, 7404, 7406, 7411, 7413, 7414, 7418, 7418, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12443, 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40943, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42653, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42943, 42946, 42950, 42999, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43261, 43262, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43488, 43492, 43494, 43503, 43514, 43518, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43646, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43879, 43888, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66176, 66204, 66208, 66256, 66304, 66335, 66349, 66378, 66384, 66421, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68096, 68112, 68115, 68117, 68119, 68121, 68149, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68324, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68899, 69376, 69404, 69415, 69415, 69424, 69445, 69600, 69622, 69635, 69687, 69763, 69807, 69840, 69864, 69891, 69926, 69956, 69956, 69968, 70002, 70006, 70006, 70019, 70066, 70081, 70084, 70106, 70106, 70108, 70108, 70144, 70161, 70163, 70187, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70366, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70461, 70461, 70480, 70480, 70493, 70497, 70656, 70708, 70727, 70730, 70751, 70751, 70784, 70831, 70852, 70853, 70855, 70855, 71040, 71086, 71128, 71131, 71168, 71215, 71236, 71236, 71296, 71338, 71352, 71352, 71424, 71450, 71680, 71723, 71840, 71903, 71935, 71935, 72096, 72103, 72106, 72144, 72161, 72161, 72163, 72163, 72192, 72192, 72203, 72242, 72250, 72250, 72272, 72272, 72284, 72329, 72349, 72349, 72384, 72440, 72704, 72712, 72714, 72750, 72768, 72768, 72818, 72847, 72960, 72966, 72968, 72969, 72971, 73008, 73030, 73030, 73056, 73061, 73063, 73064, 73066, 73097, 73112, 73112, 73440, 73458, 73728, 74649, 74752, 74862, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92766, 92880, 92909, 92928, 92975, 92992, 92995, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94032, 94032, 94099, 94111, 94176, 94177, 94179, 94179, 94208, 100343, 100352, 101106, 110592, 110878, 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 123136, 123180, 123191, 123197, 123214, 123214, 123584, 123627, 124928, 125124, 125184, 125251, 125259, 125259, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101], Fle = [48, 57, 65, 90, 95, 95, 97, 122, 170, 170, 181, 181, 183, 183, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 895, 895, 902, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1519, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2045, 2045, 2048, 2093, 2112, 2139, 2144, 2154, 2208, 2228, 2230, 2237, 2259, 2273, 2275, 2403, 2406, 2415, 2417, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2556, 2556, 2558, 2558, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2809, 2815, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3072, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3162, 3168, 3171, 3174, 3183, 3200, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3328, 3331, 3333, 3340, 3342, 3344, 3346, 3396, 3398, 3400, 3402, 3406, 3412, 3415, 3423, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3558, 3567, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4969, 4977, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6e3, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6264, 6272, 6314, 6320, 6389, 6400, 6430, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6832, 6845, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7376, 7378, 7380, 7418, 7424, 7673, 7675, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40943, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42737, 42775, 42783, 42786, 42888, 42891, 42943, 42946, 42950, 42999, 43047, 43072, 43123, 43136, 43205, 43216, 43225, 43232, 43255, 43259, 43259, 43261, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43488, 43518, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43879, 43888, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65071, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66045, 66045, 66176, 66204, 66208, 66256, 66272, 66272, 66304, 66335, 66349, 66378, 66384, 66426, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68099, 68101, 68102, 68108, 68115, 68117, 68119, 68121, 68149, 68152, 68154, 68159, 68159, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68326, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68903, 68912, 68921, 69376, 69404, 69415, 69415, 69424, 69456, 69600, 69622, 69632, 69702, 69734, 69743, 69759, 69818, 69840, 69864, 69872, 69881, 69888, 69940, 69942, 69951, 69956, 69958, 69968, 70003, 70006, 70006, 70016, 70084, 70089, 70092, 70096, 70106, 70108, 70108, 70144, 70161, 70163, 70199, 70206, 70206, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70378, 70384, 70393, 70400, 70403, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70459, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70730, 70736, 70745, 70750, 70751, 70784, 70853, 70855, 70855, 70864, 70873, 71040, 71093, 71096, 71104, 71128, 71133, 71168, 71232, 71236, 71236, 71248, 71257, 71296, 71352, 71360, 71369, 71424, 71450, 71453, 71467, 71472, 71481, 71680, 71738, 71840, 71913, 71935, 71935, 72096, 72103, 72106, 72151, 72154, 72161, 72163, 72164, 72192, 72254, 72263, 72263, 72272, 72345, 72349, 72349, 72384, 72440, 72704, 72712, 72714, 72758, 72760, 72768, 72784, 72793, 72818, 72847, 72850, 72871, 72873, 72886, 72960, 72966, 72968, 72969, 72971, 73014, 73018, 73018, 73020, 73021, 73023, 73031, 73040, 73049, 73056, 73061, 73063, 73064, 73066, 73102, 73104, 73105, 73107, 73112, 73120, 73129, 73440, 73462, 73728, 74649, 74752, 74862, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92766, 92768, 92777, 92880, 92909, 92912, 92916, 92928, 92982, 92992, 92995, 93008, 93017, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94031, 94087, 94095, 94111, 94176, 94177, 94179, 94179, 94208, 100343, 100352, 101106, 110592, 110878, 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113821, 113822, 119141, 119145, 119149, 119154, 119163, 119170, 119173, 119179, 119210, 119213, 119362, 119364, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 120782, 120831, 121344, 121398, 121403, 121452, 121461, 121461, 121476, 121476, 121499, 121503, 121505, 121519, 122880, 122886, 122888, 122904, 122907, 122913, 122915, 122916, 122918, 122922, 123136, 123180, 123184, 123197, 123200, 123209, 123214, 123214, 123584, 123641, 124928, 125124, 125136, 125142, 125184, 125259, 125264, 125273, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 917760, 917999], Ble = /^\/\/\/?\s*@(ts-expect-error|ts-ignore)/, Gle = /^(?:\/|\*)*\s*@(ts-expect-error|ts-ignore)/, Ule = kOe(rW), jR = 7, xM = /^#!.*/, fy = String.prototype.codePointAt ? (e, t) => e.codePointAt(t) : function(t, r) {
        const i = t.length;
        if (r < 0 || r >= i)
          return;
        const o = t.charCodeAt(r);
        if (o >= 55296 && o <= 56319 && i > r + 1) {
          const s = t.charCodeAt(r + 1);
          if (s >= 56320 && s <= 57343)
            return (o - 55296) * 1024 + s - 56320 + 65536;
        }
        return o;
      }, Vle = String.fromCodePoint ? (e) => String.fromCodePoint(e) : DOe;
    }
  });
  function Gc(e) {
    return Sf(e) || km(e);
  }
  function TA(e) {
    return cR(e, ck);
  }
  function AM(e) {
    switch (ts(e)) {
      case 99:
        return "lib.esnext.full.d.ts";
      case 9:
        return "lib.es2022.full.d.ts";
      case 8:
        return "lib.es2021.full.d.ts";
      case 7:
        return "lib.es2020.full.d.ts";
      case 6:
        return "lib.es2019.full.d.ts";
      case 5:
        return "lib.es2018.full.d.ts";
      case 4:
        return "lib.es2017.full.d.ts";
      case 3:
        return "lib.es2016.full.d.ts";
      case 2:
        return "lib.es6.d.ts";
      default:
        return "lib.d.ts";
    }
  }
  function iu(e) {
    return e.start + e.length;
  }
  function jle(e) {
    return e.length === 0;
  }
  function iW(e, t) {
    return t >= e.start && t < iu(e);
  }
  function CM(e, t) {
    return t >= e.pos && t <= e.end;
  }
  function Hle(e, t) {
    return t.start >= e.start && iu(t) <= iu(e);
  }
  function NOe(e, t) {
    return Wle(e, t) !== void 0;
  }
  function Wle(e, t) {
    const r = qle(e, t);
    return r && r.length === 0 ? void 0 : r;
  }
  function OOe(e, t) {
    return IM(e.start, e.length, t.start, t.length);
  }
  function LM(e, t, r) {
    return IM(e.start, e.length, t, r);
  }
  function IM(e, t, r, i) {
    const o = e + t, s = r + i;
    return r <= o && s >= e;
  }
  function zle(e, t) {
    return t <= iu(e) && t >= e.start;
  }
  function qle(e, t) {
    const r = Math.max(e.start, t.start), i = Math.min(iu(e), iu(t));
    return r <= i ? hc(r, i) : void 0;
  }
  function wc(e, t) {
    if (e < 0)
      throw new Error("start < 0");
    if (t < 0)
      throw new Error("length < 0");
    return { start: e, length: t };
  }
  function hc(e, t) {
    return wc(e, t - e);
  }
  function bI(e) {
    return wc(e.span.start, e.newLength);
  }
  function Jle(e) {
    return jle(e.span) && e.newLength === 0;
  }
  function HR(e, t) {
    if (t < 0)
      throw new Error("newLength < 0");
    return { span: e, newLength: t };
  }
  function POe(e) {
    if (e.length === 0)
      return PW;
    if (e.length === 1)
      return e[0];
    const t = e[0];
    let r = t.span.start, i = iu(t.span), o = r + t.newLength;
    for (let s = 1; s < e.length; s++) {
      const c = e[s], f = r, d = i, y = o, h = c.span.start, E = iu(c.span), A = h + c.newLength;
      r = Math.min(f, h), i = Math.max(d, d + (E - y)), o = Math.max(A, A + (y - E));
    }
    return HR(hc(r, i), o - r);
  }
  function MOe(e) {
    if (e && e.kind === 165) {
      for (let t = e; t; t = t.parent)
        if (Ka(t) || di(t) || t.kind === 261)
          return t;
    }
  }
  function nf(e, t) {
    return Ba(e) && Yr(e, 16476) && t.kind === 173;
  }
  function Kle(e) {
    return Xa(e) ? Yn(e.elements, Xle) : !1;
  }
  function Xle(e) {
    return Rc(e) ? !0 : Kle(e.name);
  }
  function SA(e) {
    let t = e.parent;
    for (; _s(t.parent); )
      t = t.parent.parent;
    return t.parent;
  }
  function aW(e, t) {
    _s(e) && (e = SA(e));
    let r = t(e);
    return e.kind === 257 && (e = e.parent), e && e.kind === 258 && (r |= t(e), e = e.parent), e && e.kind === 240 && (r |= t(e)), r;
  }
  function _y(e) {
    return aW(e, Mu);
  }
  function oW(e) {
    return aW(e, rde);
  }
  function hp(e) {
    return aW(e, (t) => t.flags);
  }
  function FOe(e, t, r) {
    const i = e.toLowerCase(), o = /^([a-z]+)([_\-]([a-z]+))?$/.exec(i);
    if (!o) {
      r && r.push(Fs(_.Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1, "en", "ja-jp"));
      return;
    }
    const s = o[1], c = o[3];
    jr(MW, i) && !f(s, c, r) && f(s, void 0, r), Mse(e);
    function f(d, y, h) {
      const E = Jo(t.getExecutingFilePath()), A = mi(E);
      let L = Bi(A, d);
      if (y && (L = L + "-" + y), L = t.resolvePath(Bi(L, "diagnosticMessages.generated.json")), !t.fileExists(L))
        return !1;
      let I = "";
      try {
        I = t.readFile(L);
      } catch {
        return h && h.push(Fs(_.Unable_to_open_file_0, L)), !1;
      }
      try {
        Ade(JSON.parse(I));
      } catch {
        return h && h.push(Fs(_.Corrupted_locale_file_0, L)), !1;
      }
      return !0;
    }
  }
  function Tl(e, t) {
    if (e)
      for (; e.original !== void 0; )
        e = e.original;
    return !e || !t || t(e) ? e : void 0;
  }
  function nr(e, t) {
    for (; e; ) {
      const r = t(e);
      if (r === "quit")
        return;
      if (r)
        return e;
      e = e.parent;
    }
  }
  function EI(e) {
    return (e.flags & 8) === 0;
  }
  function Ea(e, t) {
    if (e === void 0 || EI(e))
      return e;
    for (e = e.original; e; ) {
      if (EI(e))
        return !t || t(e) ? e : void 0;
      e = e.original;
    }
  }
  function sl(e) {
    return e.length >= 2 && e.charCodeAt(0) === 95 && e.charCodeAt(1) === 95 ? "_" + e : e;
  }
  function ta(e) {
    const t = e;
    return t.length >= 3 && t.charCodeAt(0) === 95 && t.charCodeAt(1) === 95 && t.charCodeAt(2) === 95 ? t.substr(1) : t;
  }
  function Mr(e) {
    return ta(e.escapedText);
  }
  function U0(e) {
    const t = ZE(e.escapedText);
    return t ? ai(t, Ad) : void 0;
  }
  function Ml(e) {
    return e.valueDeclaration && $u(e.valueDeclaration) ? Mr(e.valueDeclaration.name) : ta(e.escapedName);
  }
  function Yle(e) {
    const t = e.parent.parent;
    if (t) {
      if (vu(t))
        return kM(t);
      switch (t.kind) {
        case 240:
          if (t.declarationList && t.declarationList.declarations[0])
            return kM(t.declarationList.declarations[0]);
          break;
        case 241:
          let r = t.expression;
          switch (r.kind === 223 && r.operatorToken.kind === 63 && (r = r.left), r.kind) {
            case 208:
              return r.name;
            case 209:
              const i = r.argumentExpression;
              if (je(i))
                return i;
          }
          break;
        case 214:
          return kM(t.expression);
        case 253: {
          if (vu(t.statement) || vt(t.statement))
            return kM(t.statement);
          break;
        }
      }
    }
  }
  function kM(e) {
    const t = ka(e);
    return t && je(t) ? t : void 0;
  }
  function WR(e, t) {
    return !!(gu(e) && je(e.name) && Mr(e.name) === Mr(t) || uc(e) && kt(e.declarationList.declarations, (r) => WR(r, t)));
  }
  function $le(e) {
    return e.name || Yle(e);
  }
  function gu(e) {
    return !!e.name;
  }
  function sW(e) {
    switch (e.kind) {
      case 79:
        return e;
      case 351:
      case 344: {
        const { name: r } = e;
        if (r.kind === 163)
          return r.right;
        break;
      }
      case 210:
      case 223: {
        const r = e;
        switch (Cl(r)) {
          case 1:
          case 4:
          case 5:
          case 3:
            return b3(r.left);
          case 7:
          case 8:
          case 9:
            return r.arguments[1];
          default:
            return;
        }
      }
      case 349:
        return $le(e);
      case 343:
        return Yle(e);
      case 274: {
        const { expression: r } = e;
        return je(r) ? r : void 0;
      }
      case 209:
        const t = e;
        if (v3(t))
          return t.argumentExpression;
    }
    return e.name;
  }
  function ka(e) {
    if (e !== void 0)
      return sW(e) || (Bs(e) || Js(e) || Gu(e) ? lW(e) : void 0);
  }
  function lW(e) {
    if (e.parent) {
      if (zc(e.parent) || _s(e.parent))
        return e.parent.name;
      if (br(e.parent) && e === e.parent.right) {
        if (je(e.parent.left))
          return e.parent.left;
        if (ll(e.parent.left))
          return b3(e.parent.left);
      } else if (Ki(e.parent) && je(e.parent.name))
        return e.parent.name;
    } else
      return;
  }
  function Sv(e) {
    if ($f(e))
      return lr(e.modifiers, Fu);
  }
  function eT(e) {
    if (Yr(e, 126975))
      return lr(e.modifiers, fo);
  }
  function Qle(e, t) {
    if (e.name)
      if (je(e.name)) {
        const r = e.name.escapedText;
        return SI(e.parent, t).filter((i) => rm(i) && je(i.name) && i.name.escapedText === r);
      } else {
        const r = e.parent.parameters.indexOf(e);
        D.assert(r > -1, "Parameters should always be in their parents' parameter list");
        const i = SI(e.parent, t).filter(rm);
        if (r < i.length)
          return [i[r]];
      }
    return rt;
  }
  function TI(e) {
    return Qle(e, !1);
  }
  function Zle(e) {
    return Qle(e, !0);
  }
  function ece(e, t) {
    const r = e.name.escapedText;
    return SI(e.parent, t).filter((i) => Ep(i) && i.typeParameters.some((o) => o.name.escapedText === r));
  }
  function tce(e) {
    return ece(e, !1);
  }
  function nce(e) {
    return ece(e, !0);
  }
  function rce(e) {
    return !!Kf(e, rm);
  }
  function ice(e) {
    return Kf(e, LC);
  }
  function ace(e) {
    return _W(e, RJ);
  }
  function cW(e) {
    return Kf(e, o_e);
  }
  function BOe(e) {
    return Kf(e, CJ);
  }
  function oce(e) {
    return Kf(e, CJ, !0);
  }
  function GOe(e) {
    return Kf(e, LJ);
  }
  function sce(e) {
    return Kf(e, LJ, !0);
  }
  function UOe(e) {
    return Kf(e, IJ);
  }
  function lce(e) {
    return Kf(e, IJ, !0);
  }
  function VOe(e) {
    return Kf(e, kJ);
  }
  function cce(e) {
    return Kf(e, kJ, !0);
  }
  function uce(e) {
    return Kf(e, J7, !0);
  }
  function uW(e) {
    return Kf(e, wJ);
  }
  function dce(e) {
    return Kf(e, wJ, !0);
  }
  function dW(e) {
    return Kf(e, GO);
  }
  function wM(e) {
    return Kf(e, s_e);
  }
  function fce(e) {
    return Kf(e, K7);
  }
  function jOe(e) {
    return Kf(e, Ep);
  }
  function fW(e) {
    return Kf(e, X7);
  }
  function u1(e) {
    const t = Kf(e, Uk);
    if (t && t.typeExpression && t.typeExpression.type)
      return t;
  }
  function xv(e) {
    let t = Kf(e, Uk);
    return !t && Ba(e) && (t = nn(TI(e), (r) => !!r.typeExpression)), t && t.typeExpression && t.typeExpression.type;
  }
  function zR(e) {
    const t = fce(e);
    if (t && t.typeExpression)
      return t.typeExpression.type;
    const r = u1(e);
    if (r && r.typeExpression) {
      const i = r.typeExpression.type;
      if (uf(i)) {
        const o = nn(i.members, hC);
        return o && o.type;
      }
      if (Ch(i) || CC(i))
        return i.type;
    }
  }
  function SI(e, t) {
    var r, i;
    if (!kN(e))
      return rt;
    let o = (r = e.jsDoc) == null ? void 0 : r.jsDocCache;
    if (o === void 0 || t) {
      const s = vz(e, t);
      D.assert(s.length < 2 || s[0] !== s[1]), o = ca(s, (c) => qm(c) ? c.tags : c), t || ((i = e.jsDoc) != null || (e.jsDoc = []), e.jsDoc.jsDocCache = o);
    }
    return o;
  }
  function d1(e) {
    return SI(e, !1);
  }
  function HOe(e) {
    return SI(e, !0);
  }
  function Kf(e, t, r) {
    return nn(SI(e, r), t);
  }
  function _W(e, t) {
    return d1(e).filter(t);
  }
  function WOe(e, t) {
    return d1(e).filter((r) => r.kind === t);
  }
  function qR(e) {
    return typeof e == "string" ? e : e == null ? void 0 : e.map((t) => t.kind === 324 ? t.text : zOe(t)).join("");
  }
  function zOe(e) {
    const t = e.kind === 327 ? "link" : e.kind === 328 ? "linkcode" : "linkplain", r = e.name ? Af(e.name) : "", i = e.name && e.text.startsWith("://") ? "" : " ";
    return `{@${t} ${r}${i}${e.text}}`;
  }
  function Av(e) {
    if (P1(e)) {
      if (Gk(e.parent)) {
        const t = HI(e.parent);
        if (t && Le(t.tags))
          return ca(t.tags, (r) => Ep(r) ? r.typeParameters : void 0);
      }
      return rt;
    }
    if (m_(e))
      return D.assert(e.parent.kind === 323), ca(e.parent.tags, (t) => Ep(t) ? t.typeParameters : void 0);
    if (e.typeParameters || y_e(e) && e.typeParameters)
      return e.typeParameters;
    if (fr(e)) {
      const t = D3(e);
      if (t.length)
        return t;
      const r = xv(e);
      if (r && Ch(r) && r.typeParameters)
        return r.typeParameters;
    }
    return rt;
  }
  function xA(e) {
    return e.constraint ? e.constraint : Ep(e.parent) && e === e.parent.typeParameters[0] ? e.parent.constraint : void 0;
  }
  function og(e) {
    return e.kind === 79 || e.kind === 80;
  }
  function DM(e) {
    return e.kind === 175 || e.kind === 174;
  }
  function RM(e) {
    return Fr(e) && !!(e.flags & 32);
  }
  function pW(e) {
    return cl(e) && !!(e.flags & 32);
  }
  function tT(e) {
    return no(e) && !!(e.flags & 32);
  }
  function yu(e) {
    const t = e.kind;
    return !!(e.flags & 32) && (t === 208 || t === 209 || t === 210 || t === 232);
  }
  function xI(e) {
    return yu(e) && !Ix(e) && !!e.questionDotToken;
  }
  function NM(e) {
    return xI(e.parent) && e.parent.expression === e;
  }
  function AI(e) {
    return !yu(e.parent) || xI(e.parent) || e !== e.parent.expression;
  }
  function mW(e) {
    return e.kind === 223 && e.operatorToken.kind === 60;
  }
  function sg(e) {
    return q_(e) && je(e.typeName) && e.typeName.escapedText === "const" && !e.typeArguments;
  }
  function M_(e) {
    return bu(e, 8);
  }
  function OM(e) {
    return Ix(e) && !!(e.flags & 32);
  }
  function CI(e) {
    return e.kind === 249 || e.kind === 248;
  }
  function hW(e) {
    return e.kind === 277 || e.kind === 276;
  }
  function _ce(e) {
    switch (e.kind) {
      case 305:
      case 306:
        return !0;
      default:
        return !1;
    }
  }
  function gW(e) {
    return _ce(e) || e.kind === 303 || e.kind === 307;
  }
  function PM(e) {
    return e.kind === 351 || e.kind === 344;
  }
  function qOe(e) {
    return JR(e.kind);
  }
  function JR(e) {
    return e >= 163;
  }
  function yW(e) {
    return e >= 0 && e <= 162;
  }
  function qS(e) {
    return yW(e.kind);
  }
  function f1(e) {
    return Ps(e, "pos") && Ps(e, "end");
  }
  function LI(e) {
    return 8 <= e && e <= 14;
  }
  function nT(e) {
    return LI(e.kind);
  }
  function vW(e) {
    switch (e.kind) {
      case 207:
      case 206:
      case 13:
      case 215:
      case 228:
        return !0;
    }
    return !1;
  }
  function Cv(e) {
    return 14 <= e && e <= 17;
  }
  function pce(e) {
    return Cv(e.kind);
  }
  function MM(e) {
    const t = e.kind;
    return t === 16 || t === 17;
  }
  function JS(e) {
    return Ld(e) || dd(e);
  }
  function bW(e) {
    switch (e.kind) {
      case 273:
        return e.isTypeOnly || e.parent.parent.isTypeOnly;
      case 271:
        return e.parent.isTypeOnly;
      case 270:
      case 268:
        return e.isTypeOnly;
    }
    return !1;
  }
  function mce(e) {
    switch (e.kind) {
      case 278:
        return e.isTypeOnly || e.parent.parent.isTypeOnly;
      case 275:
        return e.isTypeOnly && !!e.moduleSpecifier && !e.exportClause;
      case 277:
        return e.parent.isTypeOnly;
    }
    return !1;
  }
  function _1(e) {
    return bW(e) || mce(e);
  }
  function hce(e) {
    return jo(e) || je(e);
  }
  function EW(e) {
    return e.kind === 10 || Cv(e.kind);
  }
  function Sl(e) {
    var t;
    return je(e) && ((t = e.emitNode) == null ? void 0 : t.autoGenerate) !== void 0;
  }
  function KS(e) {
    var t;
    return Ni(e) && ((t = e.emitNode) == null ? void 0 : t.autoGenerate) !== void 0;
  }
  function $u(e) {
    return (to(e) || LA(e)) && Ni(e.name);
  }
  function AA(e) {
    return Fr(e) && Ni(e.name);
  }
  function py(e) {
    switch (e) {
      case 126:
      case 127:
      case 132:
      case 85:
      case 136:
      case 88:
      case 93:
      case 101:
      case 123:
      case 121:
      case 122:
      case 146:
      case 124:
      case 145:
      case 161:
        return !0;
    }
    return !1;
  }
  function II(e) {
    return !!(ux(e) & 16476);
  }
  function TW(e) {
    return II(e) || e === 124 || e === 161 || e === 127;
  }
  function fo(e) {
    return py(e.kind);
  }
  function rf(e) {
    const t = e.kind;
    return t === 163 || t === 79;
  }
  function yl(e) {
    const t = e.kind;
    return t === 79 || t === 80 || t === 10 || t === 8 || t === 164;
  }
  function hh(e) {
    const t = e.kind;
    return t === 79 || t === 203 || t === 204;
  }
  function Ka(e) {
    return !!e && XS(e.kind);
  }
  function CA(e) {
    return !!e && (XS(e.kind) || Il(e));
  }
  function Qs(e) {
    return e && yce(e.kind);
  }
  function gce(e) {
    return e.kind === 110 || e.kind === 95;
  }
  function yce(e) {
    switch (e) {
      case 259:
      case 171:
      case 173:
      case 174:
      case 175:
      case 215:
      case 216:
        return !0;
      default:
        return !1;
    }
  }
  function XS(e) {
    switch (e) {
      case 170:
      case 176:
      case 326:
      case 177:
      case 178:
      case 181:
      case 320:
      case 182:
        return !0;
      default:
        return yce(e);
    }
  }
  function SW(e) {
    return qi(e) || tm(e) || co(e) && Ka(e.parent);
  }
  function Uc(e) {
    const t = e.kind;
    return t === 173 || t === 169 || t === 171 || t === 174 || t === 175 || t === 178 || t === 172 || t === 237;
  }
  function di(e) {
    return e && (e.kind === 260 || e.kind === 228);
  }
  function V0(e) {
    return e && (e.kind === 174 || e.kind === 175);
  }
  function af(e) {
    return to(e) && Bm(e);
  }
  function LA(e) {
    switch (e.kind) {
      case 171:
      case 174:
      case 175:
        return !0;
      default:
        return !1;
    }
  }
  function vce(e) {
    switch (e.kind) {
      case 171:
      case 174:
      case 175:
      case 169:
        return !0;
      default:
        return !1;
    }
  }
  function nl(e) {
    return fo(e) || Fu(e);
  }
  function rT(e) {
    const t = e.kind;
    return t === 177 || t === 176 || t === 168 || t === 170 || t === 178 || t === 174 || t === 175;
  }
  function FM(e) {
    return rT(e) || Uc(e);
  }
  function my(e) {
    const t = e.kind;
    return t === 299 || t === 300 || t === 301 || t === 171 || t === 174 || t === 175;
  }
  function Gi(e) {
    return rq(e.kind);
  }
  function bce(e) {
    switch (e.kind) {
      case 181:
      case 182:
        return !0;
    }
    return !1;
  }
  function Xa(e) {
    if (e) {
      const t = e.kind;
      return t === 204 || t === 203;
    }
    return !1;
  }
  function kI(e) {
    const t = e.kind;
    return t === 206 || t === 207;
  }
  function BM(e) {
    const t = e.kind;
    return t === 205 || t === 229;
  }
  function KR(e) {
    switch (e.kind) {
      case 257:
      case 166:
      case 205:
        return !0;
    }
    return !1;
  }
  function Ece(e) {
    return Ki(e) || Ba(e) || YR(e) || $R(e);
  }
  function XR(e) {
    return xW(e) || AW(e);
  }
  function xW(e) {
    switch (e.kind) {
      case 203:
      case 207:
        return !0;
    }
    return !1;
  }
  function YR(e) {
    switch (e.kind) {
      case 205:
      case 299:
      case 300:
      case 301:
        return !0;
    }
    return !1;
  }
  function AW(e) {
    switch (e.kind) {
      case 204:
      case 206:
        return !0;
    }
    return !1;
  }
  function $R(e) {
    switch (e.kind) {
      case 205:
      case 229:
      case 227:
      case 206:
      case 207:
      case 79:
      case 208:
      case 209:
        return !0;
    }
    return ed(e, !0);
  }
  function Tce(e) {
    const t = e.kind;
    return t === 208 || t === 163 || t === 202;
  }
  function Sce(e) {
    const t = e.kind;
    return t === 208 || t === 163;
  }
  function YS(e) {
    switch (e.kind) {
      case 283:
      case 282:
      case 210:
      case 211:
      case 212:
      case 167:
        return !0;
      default:
        return !1;
    }
  }
  function lg(e) {
    return e.kind === 210 || e.kind === 211;
  }
  function IA(e) {
    const t = e.kind;
    return t === 225 || t === 14;
  }
  function Td(e) {
    return xce(M_(e).kind);
  }
  function xce(e) {
    switch (e) {
      case 208:
      case 209:
      case 211:
      case 210:
      case 281:
      case 282:
      case 285:
      case 212:
      case 206:
      case 214:
      case 207:
      case 228:
      case 215:
      case 79:
      case 80:
      case 13:
      case 8:
      case 9:
      case 10:
      case 14:
      case 225:
      case 95:
      case 104:
      case 108:
      case 110:
      case 106:
      case 232:
      case 230:
      case 233:
      case 100:
      case 279:
        return !0;
      default:
        return !1;
    }
  }
  function CW(e) {
    return Ace(M_(e).kind);
  }
  function Ace(e) {
    switch (e) {
      case 221:
      case 222:
      case 217:
      case 218:
      case 219:
      case 220:
      case 213:
        return !0;
      default:
        return xce(e);
    }
  }
  function Cce(e) {
    switch (e.kind) {
      case 222:
        return !0;
      case 221:
        return e.operator === 45 || e.operator === 46;
      default:
        return !1;
    }
  }
  function Lce(e) {
    switch (e.kind) {
      case 104:
      case 110:
      case 95:
      case 221:
        return !0;
      default:
        return nT(e);
    }
  }
  function vt(e) {
    return JOe(M_(e).kind);
  }
  function JOe(e) {
    switch (e) {
      case 224:
      case 226:
      case 216:
      case 223:
      case 227:
      case 231:
      case 229:
      case 357:
      case 356:
      case 235:
        return !0;
      default:
        return Ace(e);
    }
  }
  function iT(e) {
    const t = e.kind;
    return t === 213 || t === 231;
  }
  function KOe(e) {
    return TJ(e) || H7(e);
  }
  function Lv(e, t) {
    switch (e.kind) {
      case 245:
      case 246:
      case 247:
      case 243:
      case 244:
        return !0;
      case 253:
        return t && Lv(e.statement, t);
    }
    return !1;
  }
  function Ice(e) {
    return Bl(e) || eu(e);
  }
  function kce(e) {
    return kt(e, Ice);
  }
  function GM(e) {
    return !oN(e) && !Bl(e) && !Yr(e, 1) && !Pu(e);
  }
  function QR(e) {
    return oN(e) || Bl(e) || Yr(e, 1);
  }
  function kA(e) {
    return e.kind === 246 || e.kind === 247;
  }
  function UM(e) {
    return co(e) || vt(e);
  }
  function LW(e) {
    return co(e);
  }
  function Jp(e) {
    return Uu(e) || vt(e);
  }
  function wce(e) {
    const t = e.kind;
    return t === 265 || t === 264 || t === 79;
  }
  function XOe(e) {
    const t = e.kind;
    return t === 265 || t === 264;
  }
  function YOe(e) {
    const t = e.kind;
    return t === 79 || t === 264;
  }
  function IW(e) {
    const t = e.kind;
    return t === 272 || t === 271;
  }
  function ZR(e) {
    return e.kind === 264 || e.kind === 263;
  }
  function Rm(e) {
    switch (e.kind) {
      case 216:
      case 223:
      case 205:
      case 210:
      case 176:
      case 260:
      case 228:
      case 172:
      case 173:
      case 182:
      case 177:
      case 209:
      case 263:
      case 302:
      case 274:
      case 275:
      case 278:
      case 259:
      case 215:
      case 181:
      case 174:
      case 79:
      case 270:
      case 268:
      case 273:
      case 178:
      case 261:
      case 341:
      case 343:
      case 320:
      case 344:
      case 351:
      case 326:
      case 349:
      case 325:
      case 288:
      case 289:
      case 290:
      case 197:
      case 171:
      case 170:
      case 264:
      case 199:
      case 277:
      case 267:
      case 271:
      case 211:
      case 14:
      case 8:
      case 207:
      case 166:
      case 208:
      case 299:
      case 169:
      case 168:
      case 175:
      case 300:
      case 308:
      case 301:
      case 10:
      case 262:
      case 184:
      case 165:
      case 257:
        return !0;
      default:
        return !1;
    }
  }
  function Nm(e) {
    switch (e.kind) {
      case 216:
      case 238:
      case 176:
      case 266:
      case 295:
      case 172:
      case 191:
      case 173:
      case 182:
      case 177:
      case 245:
      case 246:
      case 247:
      case 259:
      case 215:
      case 181:
      case 174:
      case 178:
      case 341:
      case 343:
      case 320:
      case 326:
      case 349:
      case 197:
      case 171:
      case 170:
      case 264:
      case 175:
      case 308:
      case 262:
        return !0;
      default:
        return !1;
    }
  }
  function $Oe(e) {
    return e === 216 || e === 205 || e === 260 || e === 228 || e === 172 || e === 173 || e === 263 || e === 302 || e === 278 || e === 259 || e === 215 || e === 174 || e === 270 || e === 268 || e === 273 || e === 261 || e === 288 || e === 171 || e === 170 || e === 264 || e === 267 || e === 271 || e === 277 || e === 166 || e === 299 || e === 169 || e === 168 || e === 175 || e === 300 || e === 262 || e === 165 || e === 257 || e === 349 || e === 341 || e === 351;
  }
  function kW(e) {
    return e === 259 || e === 279 || e === 260 || e === 261 || e === 262 || e === 263 || e === 264 || e === 269 || e === 268 || e === 275 || e === 274 || e === 267;
  }
  function wW(e) {
    return e === 249 || e === 248 || e === 256 || e === 243 || e === 241 || e === 239 || e === 246 || e === 247 || e === 245 || e === 242 || e === 253 || e === 250 || e === 252 || e === 254 || e === 255 || e === 240 || e === 244 || e === 251 || e === 355 || e === 359 || e === 358;
  }
  function vu(e) {
    return e.kind === 165 ? e.parent && e.parent.kind !== 348 || fr(e) : $Oe(e.kind);
  }
  function Dce(e) {
    return kW(e.kind);
  }
  function eN(e) {
    return wW(e.kind);
  }
  function wa(e) {
    const t = e.kind;
    return wW(t) || kW(t) || QOe(e);
  }
  function QOe(e) {
    return e.kind !== 238 || e.parent !== void 0 && (e.parent.kind === 255 || e.parent.kind === 295) ? !1 : !uT(e);
  }
  function Rce(e) {
    const t = e.kind;
    return wW(t) || kW(t) || t === 238;
  }
  function Nce(e) {
    const t = e.kind;
    return t === 280 || t === 163 || t === 79;
  }
  function wI(e) {
    const t = e.kind;
    return t === 108 || t === 79 || t === 208;
  }
  function tN(e) {
    const t = e.kind;
    return t === 281 || t === 291 || t === 282 || t === 11 || t === 285;
  }
  function VM(e) {
    const t = e.kind;
    return t === 288 || t === 290;
  }
  function Oce(e) {
    const t = e.kind;
    return t === 10 || t === 291;
  }
  function Qu(e) {
    const t = e.kind;
    return t === 283 || t === 282;
  }
  function DW(e) {
    const t = e.kind;
    return t === 292 || t === 293;
  }
  function wA(e) {
    return e.kind >= 312 && e.kind <= 353;
  }
  function RW(e) {
    return e.kind === 323 || e.kind === 322 || e.kind === 324 || $S(e) || DI(e) || Bk(e) || P1(e);
  }
  function DI(e) {
    return e.kind >= 330 && e.kind <= 353;
  }
  function hy(e) {
    return e.kind === 175;
  }
  function Iv(e) {
    return e.kind === 174;
  }
  function xf(e) {
    if (!kN(e))
      return !1;
    const { jsDoc: t } = e;
    return !!t && t.length > 0;
  }
  function jM(e) {
    return !!e.type;
  }
  function kv(e) {
    return !!e.initializer;
  }
  function aT(e) {
    switch (e.kind) {
      case 257:
      case 166:
      case 205:
      case 169:
      case 299:
      case 302:
        return !0;
      default:
        return !1;
    }
  }
  function NW(e) {
    return e.kind === 288 || e.kind === 290 || my(e);
  }
  function HM(e) {
    return e.kind === 180 || e.kind === 230;
  }
  function Pce(e) {
    let t = FW;
    for (const r of e) {
      if (!r.length)
        continue;
      let i = 0;
      for (; i < r.length && i < t && ag(r.charCodeAt(i)); i++)
        ;
      if (i < t && (t = i), t === 0)
        return 0;
    }
    return t === FW ? void 0 : t;
  }
  function xs(e) {
    return e.kind === 10 || e.kind === 14;
  }
  function $S(e) {
    return e.kind === 327 || e.kind === 328 || e.kind === 329;
  }
  function OW(e) {
    const t = tl(e.parameters);
    return !!t && gh(t);
  }
  function gh(e) {
    const t = rm(e) ? e.typeExpression && e.typeExpression.type : e.type;
    return e.dotDotDotToken !== void 0 || !!t && t.kind === 321;
  }
  var PW, MW, FW, ZOe = C({
    "src/compiler/utilitiesPublic.ts"() {
      Oa(), PW = HR(wc(0, 0), 0), MW = ["cs", "de", "es", "fr", "it", "ja", "ko", "pl", "pt-br", "ru", "tr", "zh-cn", "zh-tw"], FW = 1073741823;
    }
  });
  function xl(e, t) {
    const r = e.declarations;
    if (r) {
      for (const i of r)
        if (i.kind === t)
          return i;
    }
  }
  function Mce(e, t) {
    return lr(e.declarations || rt, (r) => r.kind === t);
  }
  function lo(e) {
    const t = /* @__PURE__ */ new Map();
    if (e)
      for (const r of e)
        t.set(r.escapedName, r);
    return t;
  }
  function Om(e) {
    return (e.flags & 33554432) !== 0;
  }
  function e8e() {
    var e = "";
    const t = (r) => e += r;
    return {
      getText: () => e,
      write: t,
      rawWrite: t,
      writeKeyword: t,
      writeOperator: t,
      writePunctuation: t,
      writeSpace: t,
      writeStringLiteral: t,
      writeLiteral: t,
      writeParameter: t,
      writeProperty: t,
      writeSymbol: (r, i) => t(r),
      writeTrailingSemicolon: t,
      writeComment: t,
      getTextPos: () => e.length,
      getLine: () => 0,
      getColumn: () => 0,
      getIndent: () => 0,
      isAtStartOfLine: () => !1,
      hasTrailingComment: () => !1,
      hasTrailingWhitespace: () => !!e.length && ag(e.charCodeAt(e.length - 1)),
      writeLine: () => e += " ",
      increaseIndent: so,
      decreaseIndent: so,
      clear: () => e = ""
    };
  }
  function BW(e, t) {
    return e.configFilePath !== t.configFilePath || Fce(e, t);
  }
  function Fce(e, t) {
    return DA(e, t, h5);
  }
  function Bce(e, t) {
    return DA(e, t, TK);
  }
  function DA(e, t, r) {
    return e !== t && r.some((i) => !Tq(j3(e, i), j3(t, i)));
  }
  function Gce(e, t) {
    for (; ; ) {
      const r = t(e);
      if (r === "quit")
        return;
      if (r !== void 0)
        return r;
      if (qi(e))
        return;
      e = e.parent;
    }
  }
  function of(e, t) {
    const r = e.entries();
    for (const [i, o] of r) {
      const s = t(o, i);
      if (s)
        return s;
    }
  }
  function RI(e, t) {
    const r = e.keys();
    for (const i of r) {
      const o = t(i);
      if (o)
        return o;
    }
  }
  function nN(e, t) {
    e.forEach((r, i) => {
      t.set(i, r);
    });
  }
  function NI(e) {
    const t = bk.getText();
    try {
      return e(bk), bk.getText();
    } finally {
      bk.clear(), bk.writeKeyword(t);
    }
  }
  function rN(e) {
    return e.end - e.pos;
  }
  function RA(e, t, r) {
    var i, o;
    return (o = (i = e == null ? void 0 : e.resolvedModules) == null ? void 0 : i.get(t, r)) == null ? void 0 : o.resolvedModule;
  }
  function Uce(e, t, r, i) {
    e.resolvedModules || (e.resolvedModules = OT()), e.resolvedModules.set(t, i, r);
  }
  function Vce(e, t, r, i) {
    e.resolvedTypeReferenceDirectiveNames || (e.resolvedTypeReferenceDirectiveNames = OT()), e.resolvedTypeReferenceDirectiveNames.set(t, i, r);
  }
  function t8e(e, t, r) {
    var i, o;
    return (o = (i = e == null ? void 0 : e.resolvedTypeReferenceDirectiveNames) == null ? void 0 : i.get(t, r)) == null ? void 0 : o.resolvedTypeReferenceDirective;
  }
  function GW(e, t) {
    return e.path === t.path && !e.prepend == !t.prepend && !e.circular == !t.circular;
  }
  function jce(e, t) {
    return e === t || e.resolvedModule === t.resolvedModule || !!e.resolvedModule && !!t.resolvedModule && e.resolvedModule.isExternalLibraryImport === t.resolvedModule.isExternalLibraryImport && e.resolvedModule.extension === t.resolvedModule.extension && e.resolvedModule.resolvedFileName === t.resolvedModule.resolvedFileName && e.resolvedModule.originalPath === t.resolvedModule.originalPath && n8e(e.resolvedModule.packageId, t.resolvedModule.packageId);
  }
  function n8e(e, t) {
    return e === t || !!e && !!t && e.name === t.name && e.subModuleName === t.subModuleName && e.version === t.version;
  }
  function WM({ name: e, subModuleName: t }) {
    return t ? `${e}/${t}` : e;
  }
  function oT(e) {
    return `${WM(e)}@${e.version}`;
  }
  function Hce(e, t) {
    return e === t || e.resolvedTypeReferenceDirective === t.resolvedTypeReferenceDirective || !!e.resolvedTypeReferenceDirective && !!t.resolvedTypeReferenceDirective && e.resolvedTypeReferenceDirective.resolvedFileName === t.resolvedTypeReferenceDirective.resolvedFileName && !!e.resolvedTypeReferenceDirective.primary == !!t.resolvedTypeReferenceDirective.primary && e.resolvedTypeReferenceDirective.originalPath === t.resolvedTypeReferenceDirective.originalPath;
  }
  function UW(e, t, r, i, o, s) {
    D.assert(e.length === r.length);
    for (let c = 0; c < e.length; c++) {
      const f = r[c], d = e[c], y = s.getName(d), h = s.getMode(d, t), E = i && i.get(y, h);
      if (E ? !f || !o(E, f) : f)
        return !0;
    }
    return !1;
  }
  function iN(e) {
    return r8e(e), (e.flags & 524288) !== 0;
  }
  function r8e(e) {
    e.flags & 1048576 || ((e.flags & 131072 || Ma(e, iN)) && (e.flags |= 524288), e.flags |= 1048576);
  }
  function Zn(e) {
    for (; e && e.kind !== 308; )
      e = e.parent;
    return e;
  }
  function zM(e) {
    return Zn(e.valueDeclaration || XW(e));
  }
  function qM(e, t) {
    return !!e && (e.scriptKind === 1 || e.scriptKind === 2) && !e.checkJsDirective && t === void 0;
  }
  function Wce(e) {
    switch (e.kind) {
      case 238:
      case 266:
      case 245:
      case 246:
      case 247:
        return !0;
    }
    return !1;
  }
  function wv(e, t) {
    return D.assert(e >= 0), ig(t)[e];
  }
  function i8e(e) {
    const t = Zn(e), r = ol(t, e.pos);
    return `${t.fileName}(${r.line + 1},${r.character + 1})`;
  }
  function aN(e, t) {
    D.assert(e >= 0);
    const r = ig(t), i = e, o = t.text;
    if (i + 1 === r.length)
      return o.length - 1;
    {
      const s = r[i];
      let c = r[i + 1] - 1;
      for (D.assert(hu(o.charCodeAt(c))); s <= c && hu(o.charCodeAt(c)); )
        c--;
      return c;
    }
  }
  function JM(e, t, r) {
    return !(r && r(t)) && !e.identifiers.has(t);
  }
  function Al(e) {
    return e === void 0 ? !0 : e.pos === e.end && e.pos >= 0 && e.kind !== 1;
  }
  function __(e) {
    return !Al(e);
  }
  function zce(e, t) {
    return Fl(e) ? t === e.expression : Il(e) ? t === e.modifiers : If(e) ? t === e.initializer : to(e) ? t === e.questionToken && af(e) : zc(e) ? t === e.modifiers || t === e.questionToken || t === e.exclamationToken || OI(e.modifiers, t, nl) : t_(e) ? t === e.equalsToken || t === e.modifiers || t === e.questionToken || t === e.exclamationToken || OI(e.modifiers, t, nl) : ac(e) ? t === e.exclamationToken : ql(e) ? t === e.typeParameters || t === e.type || OI(e.typeParameters, t, Fl) : z_(e) ? t === e.typeParameters || OI(e.typeParameters, t, Fl) : e_(e) ? t === e.typeParameters || t === e.type || OI(e.typeParameters, t, Fl) : FO(e) ? t === e.modifiers || OI(e.modifiers, t, nl) : !1;
  }
  function OI(e, t, r) {
    return !e || Va(t) || !r(t) ? !1 : jr(e, t);
  }
  function qce(e, t, r) {
    if (t === void 0 || t.length === 0)
      return e;
    let i = 0;
    for (; i < e.length && r(e[i]); ++i)
      ;
    return e.splice(i, 0, ...t), e;
  }
  function Jce(e, t, r) {
    if (t === void 0)
      return e;
    let i = 0;
    for (; i < e.length && r(e[i]); ++i)
      ;
    return e.splice(i, 0, t), e;
  }
  function Kce(e) {
    return gp(e) || !!(vo(e) & 2097152);
  }
  function Pm(e, t) {
    return qce(e, t, gp);
  }
  function VW(e, t) {
    return qce(e, t, Kce);
  }
  function a8e(e, t) {
    return Jce(e, t, gp);
  }
  function p1(e, t) {
    return Jce(e, t, Kce);
  }
  function jW(e, t, r) {
    if (e.charCodeAt(t + 1) === 47 && t + 2 < r && e.charCodeAt(t + 2) === 47) {
      const i = e.substring(t, r);
      return !!(Rq.test(i) || Nq.test(i) || tfe.test(i) || nfe.test(i));
    }
    return !1;
  }
  function KM(e, t) {
    return e.charCodeAt(t + 1) === 42 && e.charCodeAt(t + 2) === 33;
  }
  function Xce(e, t) {
    const r = new Map(t.map((c) => [
      `${ol(e, c.range.end).line}`,
      c
    ])), i = /* @__PURE__ */ new Map();
    return { getUnusedExpectations: o, markUsed: s };
    function o() {
      return Ro(r.entries()).filter(([c, f]) => f.type === 0 && !i.get(c)).map(([c, f]) => f);
    }
    function s(c) {
      return r.has(`${c}`) ? (i.set(`${c}`, !0), !0) : !1;
    }
  }
  function sT(e, t, r) {
    return Al(e) ? e.pos : wA(e) || e.kind === 11 ? Ko((t || Zn(e)).text, e.pos, !1, !0) : r && xf(e) ? sT(e.jsDoc[0], t) : e.kind === 354 && e._children.length > 0 ? sT(e._children[0], t, r) : Ko((t || Zn(e)).text, e.pos, !1, !1, pN(e));
  }
  function HW(e, t) {
    const r = !Al(e) && K_(e) ? Li(e.modifiers, Fu) : void 0;
    return r ? Ko((t || Zn(e)).text, r.end) : sT(e, t);
  }
  function m1(e, t, r = !1) {
    return PI(e.text, t, r);
  }
  function o8e(e) {
    return !!nr(e, wT);
  }
  function XM(e) {
    return !!(eu(e) && e.exportClause && Ih(e.exportClause) && e.exportClause.name.escapedText === "default");
  }
  function PI(e, t, r = !1) {
    if (Al(t))
      return "";
    let i = e.substring(r ? t.pos : Ko(e, t.pos), t.end);
    return o8e(t) && (i = i.split(/\r\n|\n|\r/).map((o) => cI(o.replace(/^\s*\*/, ""))).join(`
`)), i;
  }
  function Sc(e, t = !1) {
    return m1(Zn(e), e, t);
  }
  function s8e(e) {
    return e.pos;
  }
  function NA(e, t) {
    return yv(e, t, s8e, Ws);
  }
  function vo(e) {
    const t = e.emitNode;
    return t && t.flags || 0;
  }
  function F_(e) {
    const t = e.emitNode;
    return t && t.internalFlags || 0;
  }
  function WW() {
    return new Map(Object.entries({
      Array: new Map(Object.entries({
        es2015: [
          "find",
          "findIndex",
          "fill",
          "copyWithin",
          "entries",
          "keys",
          "values"
        ],
        es2016: [
          "includes"
        ],
        es2019: [
          "flat",
          "flatMap"
        ],
        es2022: [
          "at"
        ],
        es2023: [
          "findLastIndex",
          "findLast"
        ]
      })),
      Iterator: new Map(Object.entries({
        es2015: rt
      })),
      AsyncIterator: new Map(Object.entries({
        es2015: rt
      })),
      Atomics: new Map(Object.entries({
        es2017: rt
      })),
      SharedArrayBuffer: new Map(Object.entries({
        es2017: rt
      })),
      AsyncIterable: new Map(Object.entries({
        es2018: rt
      })),
      AsyncIterableIterator: new Map(Object.entries({
        es2018: rt
      })),
      AsyncGenerator: new Map(Object.entries({
        es2018: rt
      })),
      AsyncGeneratorFunction: new Map(Object.entries({
        es2018: rt
      })),
      RegExp: new Map(Object.entries({
        es2015: [
          "flags",
          "sticky",
          "unicode"
        ],
        es2018: [
          "dotAll"
        ]
      })),
      Reflect: new Map(Object.entries({
        es2015: [
          "apply",
          "construct",
          "defineProperty",
          "deleteProperty",
          "get",
          " getOwnPropertyDescriptor",
          "getPrototypeOf",
          "has",
          "isExtensible",
          "ownKeys",
          "preventExtensions",
          "set",
          "setPrototypeOf"
        ]
      })),
      ArrayConstructor: new Map(Object.entries({
        es2015: [
          "from",
          "of"
        ]
      })),
      ObjectConstructor: new Map(Object.entries({
        es2015: [
          "assign",
          "getOwnPropertySymbols",
          "keys",
          "is",
          "setPrototypeOf"
        ],
        es2017: [
          "values",
          "entries",
          "getOwnPropertyDescriptors"
        ],
        es2019: [
          "fromEntries"
        ],
        es2022: [
          "hasOwn"
        ]
      })),
      NumberConstructor: new Map(Object.entries({
        es2015: [
          "isFinite",
          "isInteger",
          "isNaN",
          "isSafeInteger",
          "parseFloat",
          "parseInt"
        ]
      })),
      Math: new Map(Object.entries({
        es2015: [
          "clz32",
          "imul",
          "sign",
          "log10",
          "log2",
          "log1p",
          "expm1",
          "cosh",
          "sinh",
          "tanh",
          "acosh",
          "asinh",
          "atanh",
          "hypot",
          "trunc",
          "fround",
          "cbrt"
        ]
      })),
      Map: new Map(Object.entries({
        es2015: [
          "entries",
          "keys",
          "values"
        ]
      })),
      Set: new Map(Object.entries({
        es2015: [
          "entries",
          "keys",
          "values"
        ]
      })),
      PromiseConstructor: new Map(Object.entries({
        es2015: [
          "all",
          "race",
          "reject",
          "resolve"
        ],
        es2020: [
          "allSettled"
        ],
        es2021: [
          "any"
        ]
      })),
      Symbol: new Map(Object.entries({
        es2015: [
          "for",
          "keyFor"
        ],
        es2019: [
          "description"
        ]
      })),
      WeakMap: new Map(Object.entries({
        es2015: [
          "entries",
          "keys",
          "values"
        ]
      })),
      WeakSet: new Map(Object.entries({
        es2015: [
          "entries",
          "keys",
          "values"
        ]
      })),
      String: new Map(Object.entries({
        es2015: [
          "codePointAt",
          "includes",
          "endsWith",
          "normalize",
          "repeat",
          "startsWith",
          "anchor",
          "big",
          "blink",
          "bold",
          "fixed",
          "fontcolor",
          "fontsize",
          "italics",
          "link",
          "small",
          "strike",
          "sub",
          "sup"
        ],
        es2017: [
          "padStart",
          "padEnd"
        ],
        es2019: [
          "trimStart",
          "trimEnd",
          "trimLeft",
          "trimRight"
        ],
        es2020: [
          "matchAll"
        ],
        es2021: [
          "replaceAll"
        ],
        es2022: [
          "at"
        ]
      })),
      StringConstructor: new Map(Object.entries({
        es2015: [
          "fromCodePoint",
          "raw"
        ]
      })),
      DateTimeFormat: new Map(Object.entries({
        es2017: [
          "formatToParts"
        ]
      })),
      Promise: new Map(Object.entries({
        es2015: rt,
        es2018: [
          "finally"
        ]
      })),
      RegExpMatchArray: new Map(Object.entries({
        es2018: [
          "groups"
        ]
      })),
      RegExpExecArray: new Map(Object.entries({
        es2018: [
          "groups"
        ]
      })),
      Intl: new Map(Object.entries({
        es2018: [
          "PluralRules"
        ]
      })),
      NumberFormat: new Map(Object.entries({
        es2018: [
          "formatToParts"
        ]
      })),
      SymbolConstructor: new Map(Object.entries({
        es2020: [
          "matchAll"
        ]
      })),
      DataView: new Map(Object.entries({
        es2020: [
          "setBigInt64",
          "setBigUint64",
          "getBigInt64",
          "getBigUint64"
        ]
      })),
      BigInt: new Map(Object.entries({
        es2020: rt
      })),
      RelativeTimeFormat: new Map(Object.entries({
        es2020: [
          "format",
          "formatToParts",
          "resolvedOptions"
        ]
      })),
      Int8Array: new Map(Object.entries({
        es2022: [
          "at"
        ],
        es2023: [
          "findLastIndex",
          "findLast"
        ]
      })),
      Uint8Array: new Map(Object.entries({
        es2022: [
          "at"
        ],
        es2023: [
          "findLastIndex",
          "findLast"
        ]
      })),
      Uint8ClampedArray: new Map(Object.entries({
        es2022: [
          "at"
        ],
        es2023: [
          "findLastIndex",
          "findLast"
        ]
      })),
      Int16Array: new Map(Object.entries({
        es2022: [
          "at"
        ],
        es2023: [
          "findLastIndex",
          "findLast"
        ]
      })),
      Uint16Array: new Map(Object.entries({
        es2022: [
          "at"
        ],
        es2023: [
          "findLastIndex",
          "findLast"
        ]
      })),
      Int32Array: new Map(Object.entries({
        es2022: [
          "at"
        ],
        es2023: [
          "findLastIndex",
          "findLast"
        ]
      })),
      Uint32Array: new Map(Object.entries({
        es2022: [
          "at"
        ],
        es2023: [
          "findLastIndex",
          "findLast"
        ]
      })),
      Float32Array: new Map(Object.entries({
        es2022: [
          "at"
        ],
        es2023: [
          "findLastIndex",
          "findLast"
        ]
      })),
      Float64Array: new Map(Object.entries({
        es2022: [
          "at"
        ],
        es2023: [
          "findLastIndex",
          "findLast"
        ]
      })),
      BigInt64Array: new Map(Object.entries({
        es2020: rt,
        es2022: [
          "at"
        ],
        es2023: [
          "findLastIndex",
          "findLast"
        ]
      })),
      BigUint64Array: new Map(Object.entries({
        es2020: rt,
        es2022: [
          "at"
        ],
        es2023: [
          "findLastIndex",
          "findLast"
        ]
      })),
      Error: new Map(Object.entries({
        es2022: [
          "cause"
        ]
      }))
    }));
  }
  function Yce(e, t, r) {
    var i;
    if (t && l8e(e, r))
      return m1(t, e);
    switch (e.kind) {
      case 10: {
        const o = r & 2 ? Rz : r & 1 || vo(e) & 33554432 ? ox : VN;
        return e.singleQuote ? "'" + o(e.text, 39) + "'" : '"' + o(e.text, 34) + '"';
      }
      case 14:
      case 15:
      case 16:
      case 17: {
        const o = r & 1 || vo(e) & 33554432 ? ox : VN, s = (i = e.rawText) != null ? i : k8e(o(e.text, 96));
        switch (e.kind) {
          case 14:
            return "`" + s + "`";
          case 15:
            return "`" + s + "${";
          case 16:
            return "}" + s + "${";
          case 17:
            return "}" + s + "`";
        }
        break;
      }
      case 8:
      case 9:
        return e.text;
      case 13:
        return r & 4 && e.isUnterminated ? e.text + (e.text.charCodeAt(e.text.length - 1) === 92 ? " /" : "/") : e.text;
    }
    return D.fail(`Literal kind '${e.kind}' not accounted for.`);
  }
  function l8e(e, t) {
    return Zs(e) || !e.parent || t & 4 && e.isUnterminated ? !1 : v_(e) && e.numericLiteralFlags & 512 ? !!(t & 8) : !P7(e);
  }
  function $ce(e) {
    return Ha(e) ? '"' + VN(e) + '"' : "" + e;
  }
  function Qce(e) {
    return mu(e).replace(/^(\d)/, "_$1").replace(/\W/g, "_");
  }
  function zW(e) {
    return (hp(e) & 3) !== 0 || qW(e);
  }
  function qW(e) {
    const t = Fm(e);
    return t.kind === 257 && t.parent.kind === 295;
  }
  function Pu(e) {
    return Jl(e) && (e.name.kind === 10 || Kp(e));
  }
  function YM(e) {
    return Jl(e) && e.name.kind === 10;
  }
  function JW(e) {
    return Jl(e) && jo(e.name);
  }
  function Zce(e) {
    return Jl(e) || je(e);
  }
  function MI(e) {
    return c8e(e.valueDeclaration);
  }
  function c8e(e) {
    return !!e && e.kind === 264 && !e.body;
  }
  function eue(e) {
    return e.kind === 308 || e.kind === 264 || CA(e);
  }
  function Kp(e) {
    return !!(e.flags & 1024);
  }
  function h1(e) {
    return Pu(e) && KW(e);
  }
  function KW(e) {
    switch (e.parent.kind) {
      case 308:
        return Zl(e.parent);
      case 265:
        return Pu(e.parent.parent) && qi(e.parent.parent.parent) && !Zl(e.parent.parent.parent);
    }
    return !1;
  }
  function XW(e) {
    var t;
    return (t = e.declarations) == null ? void 0 : t.find((r) => !h1(r) && !(Jl(r) && Kp(r)));
  }
  function u8e(e) {
    return e === 1 || e === 100 || e === 199;
  }
  function QS(e, t) {
    return Zl(e) || j_(t) || u8e(au(t)) && !!e.commonJsModuleIndicator;
  }
  function YW(e, t) {
    switch (e.scriptKind) {
      case 1:
      case 3:
      case 2:
      case 4:
        break;
      default:
        return !1;
    }
    return e.isDeclarationFile ? !1 : y_(t, "alwaysStrict") || __e(e.statements) ? !0 : Zl(e) || j_(t) ? au(t) >= 5 ? !0 : !t.noImplicitUseStrict : !1;
  }
  function $W(e) {
    return !!(e.flags & 16777216) || Yr(e, 2);
  }
  function QW(e, t) {
    switch (e.kind) {
      case 308:
      case 266:
      case 295:
      case 264:
      case 245:
      case 246:
      case 247:
      case 173:
      case 171:
      case 174:
      case 175:
      case 259:
      case 215:
      case 216:
      case 169:
      case 172:
        return !0;
      case 238:
        return !CA(t);
    }
    return !1;
  }
  function ZW(e) {
    switch (D.type(e), e.kind) {
      case 341:
      case 349:
      case 326:
        return !0;
      default:
        return ez(e);
    }
  }
  function ez(e) {
    switch (D.type(e), e.kind) {
      case 176:
      case 177:
      case 170:
      case 178:
      case 181:
      case 182:
      case 320:
      case 260:
      case 228:
      case 261:
      case 262:
      case 348:
      case 259:
      case 171:
      case 173:
      case 174:
      case 175:
      case 215:
      case 216:
        return !0;
      default:
        return !1;
    }
  }
  function lT(e) {
    switch (e.kind) {
      case 269:
      case 268:
        return !0;
      default:
        return !1;
    }
  }
  function tue(e) {
    return lT(e) || b1(e);
  }
  function $M(e) {
    switch (e.kind) {
      case 269:
      case 268:
      case 240:
      case 260:
      case 259:
      case 264:
      case 262:
      case 261:
      case 263:
        return !0;
      default:
        return !1;
    }
  }
  function nue(e) {
    return oN(e) || Jl(e) || gg(e) || lf(e);
  }
  function oN(e) {
    return lT(e) || eu(e);
  }
  function Mm(e) {
    return nr(e.parent, (t) => QW(t, t.parent));
  }
  function rue(e, t) {
    let r = Mm(e);
    for (; r; )
      t(r), r = Mm(r);
  }
  function ws(e) {
    return !e || rN(e) === 0 ? "(Missing)" : Sc(e);
  }
  function iue(e) {
    return e.declaration ? ws(e.declaration.parameters[0].name) : void 0;
  }
  function sN(e) {
    return e.kind === 164 && !Xf(e.expression);
  }
  function QM(e) {
    var t;
    switch (e.kind) {
      case 79:
      case 80:
        return (t = e.emitNode) != null && t.autoGenerate ? void 0 : e.escapedText;
      case 10:
      case 8:
      case 14:
        return sl(e.text);
      case 164:
        return Xf(e.expression) ? sl(e.expression.text) : void 0;
      default:
        return D.assertNever(e);
    }
  }
  function OA(e) {
    return D.checkDefined(QM(e));
  }
  function Af(e) {
    switch (e.kind) {
      case 108:
        return "this";
      case 80:
      case 79:
        return rN(e) === 0 ? Mr(e) : Sc(e);
      case 163:
        return Af(e.left) + "." + Af(e.right);
      case 208:
        return je(e.name) || Ni(e.name) ? Af(e.expression) + "." + Af(e.name) : D.assertNever(e.name);
      case 314:
        return Af(e.left) + Af(e.right);
      default:
        return D.assertNever(e);
    }
  }
  function Nr(e, t, r, i, o, s) {
    const c = Zn(e);
    return cd(c, e, t, r, i, o, s);
  }
  function PA(e, t, r, i, o, s, c) {
    const f = Ko(e.text, t.pos);
    return Dc(e, f, t.end - f, r, i, o, s, c);
  }
  function cd(e, t, r, i, o, s, c) {
    const f = g1(e, t);
    return Dc(e, f.start, f.length, r, i, o, s, c);
  }
  function cg(e, t, r, i) {
    const o = g1(e, t);
    return ZM(e, o.start, o.length, r, i);
  }
  function lN(e, t, r, i) {
    const o = Ko(e.text, t.pos);
    return ZM(e, o, t.end - o, r, i);
  }
  function tz(e, t, r) {
    D.assertGreaterThanOrEqual(t, 0), D.assertGreaterThanOrEqual(r, 0), e && (D.assertLessThanOrEqual(t, e.text.length), D.assertLessThanOrEqual(t + r, e.text.length));
  }
  function ZM(e, t, r, i, o) {
    return tz(e, t, r), {
      file: e,
      start: t,
      length: r,
      code: i.code,
      category: i.category,
      messageText: i.next ? i : i.messageText,
      relatedInformation: o
    };
  }
  function nz(e, t, r) {
    return {
      file: e,
      start: 0,
      length: 0,
      code: t.code,
      category: t.category,
      messageText: t.next ? t : t.messageText,
      relatedInformation: r
    };
  }
  function aue(e) {
    return typeof e.messageText == "string" ? {
      code: e.code,
      category: e.category,
      messageText: e.messageText,
      next: e.next
    } : e.messageText;
  }
  function rz(e, t, r) {
    return {
      file: e,
      start: t.pos,
      length: t.end - t.pos,
      code: r.code,
      category: r.category,
      messageText: r.message
    };
  }
  function gy(e, t) {
    const r = dy(e.languageVersion, !0, e.languageVariant, e.text, void 0, t);
    r.scan();
    const i = r.getTokenPos();
    return hc(i, r.getTextPos());
  }
  function oue(e, t) {
    const r = dy(e.languageVersion, !0, e.languageVariant, e.text, void 0, t);
    return r.scan(), r.getToken();
  }
  function d8e(e, t) {
    const r = Ko(e.text, t.pos);
    if (t.body && t.body.kind === 238) {
      const { line: i } = ol(e, t.body.pos), { line: o } = ol(e, t.body.end);
      if (i < o)
        return wc(r, aN(i, e) - r + 1);
    }
    return hc(r, t.end);
  }
  function g1(e, t) {
    let r = t;
    switch (t.kind) {
      case 308:
        const s = Ko(e.text, 0, !1);
        return s === e.text.length ? wc(0, 0) : gy(e, s);
      case 257:
      case 205:
      case 260:
      case 228:
      case 261:
      case 264:
      case 263:
      case 302:
      case 259:
      case 215:
      case 171:
      case 174:
      case 175:
      case 262:
      case 169:
      case 168:
      case 271:
        r = t.name;
        break;
      case 216:
        return d8e(e, t);
      case 292:
      case 293:
        const c = Ko(e.text, t.pos), f = t.statements.length > 0 ? t.statements[0].pos : t.end;
        return hc(c, f);
    }
    if (r === void 0)
      return gy(e, t.pos);
    D.assert(!qm(r));
    const i = Al(r), o = i || vx(t) ? r.pos : Ko(e.text, r.pos);
    return i ? (D.assert(o === r.pos, "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"), D.assert(o === r.end, "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809")) : (D.assert(o >= r.pos, "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"), D.assert(o <= r.end, "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809")), hc(o, r.end);
  }
  function sf(e) {
    return (e.externalModuleIndicator || e.commonJsModuleIndicator) !== void 0;
  }
  function p_(e) {
    return e.scriptKind === 6;
  }
  function y1(e) {
    return !!(_y(e) & 2048);
  }
  function e3(e) {
    return !!(_y(e) & 64 && !nf(e, e.parent));
  }
  function ug(e) {
    return !!(hp(e) & 2);
  }
  function FI(e) {
    return !!(hp(e) & 1);
  }
  function MA(e) {
    return e.kind === 210 && e.expression.kind === 106;
  }
  function lf(e) {
    return e.kind === 210 && e.expression.kind === 100;
  }
  function FA(e) {
    return Rk(e) && e.keywordToken === 100 && e.name.escapedText === "meta";
  }
  function j0(e) {
    return gg(e) && Z0(e.argument) && jo(e.argument.literal);
  }
  function gp(e) {
    return e.kind === 241 && e.expression.kind === 10;
  }
  function t3(e) {
    return !!(vo(e) & 2097152);
  }
  function n3(e) {
    return t3(e) && yc(e);
  }
  function f8e(e) {
    return je(e.name) && !e.initializer;
  }
  function r3(e) {
    return t3(e) && uc(e) && Yn(e.declarationList.declarations, f8e);
  }
  function iz(e, t) {
    return e.kind !== 11 ? ph(t.text, e.pos) : void 0;
  }
  function az(e, t) {
    const r = e.kind === 166 || e.kind === 165 || e.kind === 215 || e.kind === 216 || e.kind === 214 || e.kind === 257 || e.kind === 278 ? va(B0(t, e.pos), ph(t, e.pos)) : ph(t, e.pos);
    return lr(r, (i) => t.charCodeAt(i.pos + 1) === 42 && t.charCodeAt(i.pos + 2) === 42 && t.charCodeAt(i.pos + 3) !== 47);
  }
  function yh(e) {
    if (179 <= e.kind && e.kind <= 202)
      return !0;
    switch (e.kind) {
      case 131:
      case 157:
      case 148:
      case 160:
      case 152:
      case 134:
      case 153:
      case 149:
      case 155:
      case 144:
        return !0;
      case 114:
        return e.parent.kind !== 219;
      case 230:
        return jd(e.parent) && !JN(e);
      case 165:
        return e.parent.kind === 197 || e.parent.kind === 192;
      case 79:
        (e.parent.kind === 163 && e.parent.right === e || e.parent.kind === 208 && e.parent.name === e) && (e = e.parent), D.assert(e.kind === 79 || e.kind === 163 || e.kind === 208, "'node' was expected to be a qualified name, identifier or property access in 'isPartOfTypeNode'.");
      case 163:
      case 208:
      case 108: {
        const { parent: t } = e;
        if (t.kind === 183)
          return !1;
        if (t.kind === 202)
          return !t.isTypeOf;
        if (179 <= t.kind && t.kind <= 202)
          return !0;
        switch (t.kind) {
          case 230:
            return jd(t.parent) && !JN(t);
          case 165:
            return e === t.constraint;
          case 348:
            return e === t.constraint;
          case 169:
          case 168:
          case 166:
          case 257:
            return e === t.type;
          case 259:
          case 215:
          case 216:
          case 173:
          case 171:
          case 170:
          case 174:
          case 175:
            return e === t.type;
          case 176:
          case 177:
          case 178:
            return e === t.type;
          case 213:
            return e === t.type;
          case 210:
          case 211:
            return jr(t.typeArguments, e);
          case 212:
            return !1;
        }
      }
    }
    return !1;
  }
  function oz(e, t) {
    for (; e; ) {
      if (e.kind === t)
        return !0;
      e = e.parent;
    }
    return !1;
  }
  function cT(e, t) {
    return r(e);
    function r(i) {
      switch (i.kind) {
        case 250:
          return t(i);
        case 266:
        case 238:
        case 242:
        case 243:
        case 244:
        case 245:
        case 246:
        case 247:
        case 251:
        case 252:
        case 292:
        case 293:
        case 253:
        case 255:
        case 295:
          return Ma(i, r);
      }
    }
  }
  function sue(e, t) {
    return r(e);
    function r(i) {
      switch (i.kind) {
        case 226:
          t(i);
          const o = i.expression;
          o && r(o);
          return;
        case 263:
        case 261:
        case 264:
        case 262:
          return;
        default:
          if (Ka(i)) {
            if (i.name && i.name.kind === 164) {
              r(i.name.expression);
              return;
            }
          } else
            yh(i) || Ma(i, r);
      }
    }
  }
  function sz(e) {
    return e && e.kind === 185 ? e.elementType : e && e.kind === 180 ? Am(e.typeArguments) : void 0;
  }
  function lue(e) {
    switch (e.kind) {
      case 261:
      case 260:
      case 228:
      case 184:
        return e.members;
      case 207:
        return e.properties;
    }
  }
  function BA(e) {
    if (e)
      switch (e.kind) {
        case 205:
        case 302:
        case 166:
        case 299:
        case 169:
        case 168:
        case 300:
        case 257:
          return !0;
      }
    return !1;
  }
  function cue(e) {
    return BA(e) || V0(e);
  }
  function i3(e) {
    return e.parent.kind === 258 && e.parent.parent.kind === 240;
  }
  function uue(e) {
    return fr(e) ? Ls(e.parent) && br(e.parent.parent) && Cl(e.parent.parent) === 2 || a3(e.parent) : !1;
  }
  function a3(e) {
    return fr(e) ? br(e) && Cl(e) === 1 : !1;
  }
  function due(e) {
    return (Ki(e) ? ug(e) && je(e.name) && i3(e) : to(e) ? QI(e) && gc(e) : If(e) && QI(e)) || a3(e);
  }
  function fue(e) {
    switch (e.kind) {
      case 171:
      case 170:
      case 173:
      case 174:
      case 175:
      case 259:
      case 215:
        return !0;
    }
    return !1;
  }
  function lz(e, t) {
    for (; ; ) {
      if (t && t(e), e.statement.kind !== 253)
        return e.statement;
      e = e.statement;
    }
  }
  function uT(e) {
    return e && e.kind === 238 && Ka(e.parent);
  }
  function B_(e) {
    return e && e.kind === 171 && e.parent.kind === 207;
  }
  function o3(e) {
    return (e.kind === 171 || e.kind === 174 || e.kind === 175) && (e.parent.kind === 207 || e.parent.kind === 228);
  }
  function _ue(e) {
    return e && e.kind === 1;
  }
  function _8e(e) {
    return e && e.kind === 0;
  }
  function GA(e, t, r) {
    return e.properties.filter((i) => {
      if (i.kind === 299) {
        const o = QM(i.name);
        return t === o || !!r && r === o;
      }
      return !1;
    });
  }
  function pue(e, t, r) {
    return Jt(GA(e, t), (i) => Bu(i.initializer) ? nn(i.initializer.elements, (o) => jo(o) && o.text === r) : void 0);
  }
  function BI(e) {
    if (e && e.statements.length) {
      const t = e.statements[0].expression;
      return ai(t, Ls);
    }
  }
  function s3(e, t, r) {
    return Jt(cN(e, t), (i) => Bu(i.initializer) ? nn(i.initializer.elements, (o) => jo(o) && o.text === r) : void 0);
  }
  function cN(e, t) {
    const r = BI(e);
    return r ? GA(r, t) : rt;
  }
  function Cf(e) {
    return nr(e.parent, Ka);
  }
  function mue(e) {
    return nr(e.parent, Qs);
  }
  function xc(e) {
    return nr(e.parent, di);
  }
  function p8e(e) {
    return nr(e.parent, (t) => di(t) || Ka(t) ? "quit" : Il(t));
  }
  function l3(e) {
    return nr(e.parent, CA);
  }
  function Sd(e, t, r) {
    for (D.assert(e.kind !== 308); ; ) {
      if (e = e.parent, !e)
        return D.fail();
      switch (e.kind) {
        case 164:
          if (r && di(e.parent.parent))
            return e;
          e = e.parent.parent;
          break;
        case 167:
          e.parent.kind === 166 && Uc(e.parent.parent) ? e = e.parent.parent : Uc(e.parent) && (e = e.parent);
          break;
        case 216:
          if (!t)
            continue;
        case 259:
        case 215:
        case 264:
        case 172:
        case 169:
        case 168:
        case 171:
        case 170:
        case 173:
        case 174:
        case 175:
        case 176:
        case 177:
        case 178:
        case 263:
        case 308:
          return e;
      }
    }
  }
  function hue(e) {
    switch (e.kind) {
      case 216:
      case 259:
      case 215:
      case 169:
        return !0;
      case 238:
        switch (e.parent.kind) {
          case 173:
          case 171:
          case 174:
          case 175:
            return !0;
          default:
            return !1;
        }
      default:
        return !1;
    }
  }
  function c3(e) {
    je(e) && (Nc(e.parent) || yc(e.parent)) && e.parent.name === e && (e = e.parent);
    const t = Sd(e, !0, !1);
    return qi(t);
  }
  function gue(e) {
    const t = Sd(e, !1, !1);
    if (t)
      switch (t.kind) {
        case 173:
        case 259:
        case 215:
          return t;
      }
  }
  function uN(e, t) {
    for (; ; ) {
      if (e = e.parent, !e)
        return;
      switch (e.kind) {
        case 164:
          e = e.parent;
          break;
        case 259:
        case 215:
        case 216:
          if (!t)
            continue;
        case 169:
        case 168:
        case 171:
        case 170:
        case 173:
        case 174:
        case 175:
        case 172:
          return e;
        case 167:
          e.parent.kind === 166 && Uc(e.parent.parent) ? e = e.parent.parent : Uc(e.parent) && (e = e.parent);
          break;
      }
    }
  }
  function dT(e) {
    if (e.kind === 215 || e.kind === 216) {
      let t = e, r = e.parent;
      for (; r.kind === 214; )
        t = r, r = r.parent;
      if (r.kind === 210 && r.expression === t)
        return r;
    }
  }
  function m8e(e) {
    return e.kind === 106 || ud(e);
  }
  function ud(e) {
    const t = e.kind;
    return (t === 208 || t === 209) && e.expression.kind === 106;
  }
  function dN(e) {
    const t = e.kind;
    return (t === 208 || t === 209) && e.expression.kind === 108;
  }
  function u3(e) {
    var t;
    return !!e && Ki(e) && ((t = e.initializer) == null ? void 0 : t.kind) === 108;
  }
  function yue(e) {
    return !!e && (t_(e) || zc(e)) && br(e.parent.parent) && e.parent.parent.operatorToken.kind === 63 && e.parent.parent.right.kind === 108;
  }
  function fN(e) {
    switch (e.kind) {
      case 180:
        return e.typeName;
      case 230:
        return zl(e.expression) ? e.expression : void 0;
      case 79:
      case 163:
        return e;
    }
  }
  function d3(e) {
    switch (e.kind) {
      case 212:
        return e.tag;
      case 283:
      case 282:
        return e.tagName;
      default:
        return e.expression;
    }
  }
  function f3(e, t, r, i) {
    if (e && gu(t) && Ni(t.name))
      return !1;
    switch (t.kind) {
      case 260:
        return !0;
      case 228:
        return !e;
      case 169:
        return r !== void 0 && (e ? Nc(r) : di(r) && !A1(t) && !Hz(t));
      case 174:
      case 175:
      case 171:
        return t.body !== void 0 && r !== void 0 && (e ? Nc(r) : di(r));
      case 166:
        return e ? r !== void 0 && r.body !== void 0 && (r.kind === 173 || r.kind === 171 || r.kind === 175) && S1(r) !== t && i !== void 0 && i.kind === 260 : !1;
    }
    return !1;
  }
  function UA(e, t, r, i) {
    return $f(t) && f3(e, t, r, i);
  }
  function _N(e, t, r, i) {
    return UA(e, t, r, i) || GI(e, t, r);
  }
  function GI(e, t, r) {
    switch (t.kind) {
      case 260:
        return kt(t.members, (i) => _N(e, i, t, r));
      case 228:
        return !e && kt(t.members, (i) => _N(e, i, t, r));
      case 171:
      case 175:
      case 173:
        return kt(t.parameters, (i) => UA(e, i, t, r));
      default:
        return !1;
    }
  }
  function v1(e, t) {
    if (UA(e, t))
      return !0;
    const r = Eh(t);
    return !!r && GI(e, r, t);
  }
  function cz(e, t, r) {
    let i;
    if (V0(t)) {
      const { firstAccessor: o, secondAccessor: s, setAccessor: c } = vT(r.members, t), f = $f(o) ? o : s && $f(s) ? s : void 0;
      if (!f || t !== f)
        return !1;
      i = c == null ? void 0 : c.parameters;
    } else
      ac(t) && (i = t.parameters);
    if (UA(e, t, r))
      return !0;
    if (i) {
      for (const o of i)
        if (!x1(o) && UA(e, o, t, r))
          return !0;
    }
    return !1;
  }
  function uz(e) {
    if (e.textSourceNode) {
      switch (e.textSourceNode.kind) {
        case 10:
          return uz(e.textSourceNode);
        case 14:
          return e.text === "";
      }
      return !1;
    }
    return e.text === "";
  }
  function UI(e) {
    const { parent: t } = e;
    return t.kind === 283 || t.kind === 282 || t.kind === 284 ? t.tagName === e : !1;
  }
  function dg(e) {
    switch (e.kind) {
      case 106:
      case 104:
      case 110:
      case 95:
      case 13:
      case 206:
      case 207:
      case 208:
      case 209:
      case 210:
      case 211:
      case 212:
      case 231:
      case 213:
      case 235:
      case 232:
      case 214:
      case 215:
      case 228:
      case 216:
      case 219:
      case 217:
      case 218:
      case 221:
      case 222:
      case 223:
      case 224:
      case 227:
      case 225:
      case 229:
      case 281:
      case 282:
      case 285:
      case 226:
      case 220:
      case 233:
        return !0;
      case 230:
        return !jd(e.parent) && !LC(e.parent);
      case 163:
        for (; e.parent.kind === 163; )
          e = e.parent;
        return e.parent.kind === 183 || $S(e.parent) || Fk(e.parent) || tb(e.parent) || UI(e);
      case 314:
        for (; tb(e.parent); )
          e = e.parent;
        return e.parent.kind === 183 || $S(e.parent) || Fk(e.parent) || tb(e.parent) || UI(e);
      case 80:
        return br(e.parent) && e.parent.left === e && e.parent.operatorToken.kind === 101;
      case 79:
        if (e.parent.kind === 183 || $S(e.parent) || Fk(e.parent) || tb(e.parent) || UI(e))
          return !0;
      case 8:
      case 9:
      case 10:
      case 14:
      case 108:
        return _3(e);
      default:
        return !1;
    }
  }
  function _3(e) {
    const { parent: t } = e;
    switch (t.kind) {
      case 257:
      case 166:
      case 169:
      case 168:
      case 302:
      case 299:
      case 205:
        return t.initializer === e;
      case 241:
      case 242:
      case 243:
      case 244:
      case 250:
      case 251:
      case 252:
      case 292:
      case 254:
        return t.expression === e;
      case 245:
        const r = t;
        return r.initializer === e && r.initializer.kind !== 258 || r.condition === e || r.incrementor === e;
      case 246:
      case 247:
        const i = t;
        return i.initializer === e && i.initializer.kind !== 258 || i.expression === e;
      case 213:
      case 231:
        return e === t.expression;
      case 236:
        return e === t.expression;
      case 164:
        return e === t.expression;
      case 167:
      case 291:
      case 290:
      case 301:
        return !0;
      case 230:
        return t.expression === e && !yh(t);
      case 300:
        return t.objectAssignmentInitializer === e;
      case 235:
        return e === t.expression;
      default:
        return dg(t);
    }
  }
  function p3(e) {
    for (; e.kind === 163 || e.kind === 79; )
      e = e.parent;
    return e.kind === 183;
  }
  function vue(e) {
    return Ih(e) && !!e.parent.moduleSpecifier;
  }
  function H0(e) {
    return e.kind === 268 && e.moduleReference.kind === 280;
  }
  function VI(e) {
    return D.assert(H0(e)), e.moduleReference.expression;
  }
  function dz(e) {
    return b1(e) && sk(e.initializer).arguments[0];
  }
  function VA(e) {
    return e.kind === 268 && e.moduleReference.kind !== 280;
  }
  function Zu(e) {
    return fr(e);
  }
  function h8e(e) {
    return !fr(e);
  }
  function fr(e) {
    return !!e && !!(e.flags & 262144);
  }
  function m3(e) {
    return !!e && !!(e.flags & 67108864);
  }
  function fz(e) {
    return !p_(e);
  }
  function pN(e) {
    return !!e && !!(e.flags & 8388608);
  }
  function h3(e) {
    return q_(e) && je(e.typeName) && e.typeName.escapedText === "Object" && e.typeArguments && e.typeArguments.length === 2 && (e.typeArguments[0].kind === 152 || e.typeArguments[0].kind === 148);
  }
  function xd(e, t) {
    if (e.kind !== 210)
      return !1;
    const { expression: r, arguments: i } = e;
    if (r.kind !== 79 || r.escapedText !== "require" || i.length !== 1)
      return !1;
    const o = i[0];
    return !t || xs(o);
  }
  function _z(e) {
    return Eue(e, !1);
  }
  function b1(e) {
    return Eue(e, !0);
  }
  function bue(e) {
    return _s(e) && b1(e.parent.parent);
  }
  function Eue(e, t) {
    return Ki(e) && !!e.initializer && xd(t ? sk(e.initializer) : e.initializer, !0);
  }
  function pz(e) {
    return uc(e) && e.declarationList.declarations.length > 0 && Yn(e.declarationList.declarations, (t) => _z(t));
  }
  function mN(e) {
    return e === 39 || e === 34;
  }
  function g3(e, t) {
    return m1(t, e).charCodeAt(0) === 34;
  }
  function jI(e) {
    return br(e) || ll(e) || je(e) || no(e);
  }
  function hN(e) {
    return fr(e) && e.initializer && br(e.initializer) && (e.initializer.operatorToken.kind === 56 || e.initializer.operatorToken.kind === 60) && e.name && zl(e.name) && jA(e.name, e.initializer.left) ? e.initializer.right : e.initializer;
  }
  function gN(e) {
    const t = hN(e);
    return t && W0(t, K0(e.name));
  }
  function g8e(e, t) {
    return ze(e.properties, (r) => zc(r) && je(r.name) && r.name.escapedText === "value" && r.initializer && W0(r.initializer, t));
  }
  function ZS(e) {
    if (e && e.parent && br(e.parent) && e.parent.operatorToken.kind === 63) {
      const t = K0(e.parent.left);
      return W0(e.parent.right, t) || y8e(e.parent.left, e.parent.right, t);
    }
    if (e && no(e) && ex(e)) {
      const t = g8e(e.arguments[2], e.arguments[1].text === "prototype");
      if (t)
        return t;
    }
  }
  function W0(e, t) {
    if (no(e)) {
      const r = js(e.expression);
      return r.kind === 215 || r.kind === 216 ? e : void 0;
    }
    if (e.kind === 215 || e.kind === 228 || e.kind === 216 || Ls(e) && (e.properties.length === 0 || t))
      return e;
  }
  function y8e(e, t, r) {
    const i = br(t) && (t.operatorToken.kind === 56 || t.operatorToken.kind === 60) && W0(t.right, r);
    if (i && jA(e, t.left))
      return i;
  }
  function Tue(e) {
    const t = Ki(e.parent) ? e.parent.name : br(e.parent) && e.parent.operatorToken.kind === 63 ? e.parent.left : void 0;
    return t && W0(e.right, K0(t)) && zl(t) && jA(t, e.left);
  }
  function mz(e) {
    if (br(e.parent)) {
      const t = (e.parent.operatorToken.kind === 56 || e.parent.operatorToken.kind === 60) && br(e.parent.parent) ? e.parent.parent : e.parent;
      if (t.operatorToken.kind === 63 && je(t.left))
        return t.left;
    } else if (Ki(e.parent))
      return e.parent.name;
  }
  function jA(e, t) {
    return G_(e) && G_(t) ? U_(e) === U_(t) : og(e) && y3(t) && (t.expression.kind === 108 || je(t.expression) && (t.expression.escapedText === "window" || t.expression.escapedText === "self" || t.expression.escapedText === "global")) ? jA(e, bN(t)) : y3(e) && y3(t) ? fg(e) === fg(t) && jA(e.expression, t.expression) : !1;
  }
  function yN(e) {
    for (; ed(e, !0); )
      e = e.right;
    return e;
  }
  function fT(e) {
    return je(e) && e.escapedText === "exports";
  }
  function hz(e) {
    return je(e) && e.escapedText === "module";
  }
  function vh(e) {
    return (Fr(e) || vN(e)) && hz(e.expression) && fg(e) === "exports";
  }
  function Cl(e) {
    const t = v8e(e);
    return t === 5 || fr(e) ? t : 0;
  }
  function ex(e) {
    return Le(e.arguments) === 3 && Fr(e.expression) && je(e.expression.expression) && Mr(e.expression.expression) === "Object" && Mr(e.expression.name) === "defineProperty" && Xf(e.arguments[1]) && tx(e.arguments[0], !0);
  }
  function y3(e) {
    return Fr(e) || vN(e);
  }
  function vN(e) {
    return cl(e) && Xf(e.argumentExpression);
  }
  function _T(e, t) {
    return Fr(e) && (!t && e.expression.kind === 108 || je(e.name) && tx(e.expression, !0)) || v3(e, t);
  }
  function v3(e, t) {
    return vN(e) && (!t && e.expression.kind === 108 || zl(e.expression) || _T(e.expression, !0));
  }
  function tx(e, t) {
    return zl(e) || _T(e, t);
  }
  function bN(e) {
    return Fr(e) ? e.name : e.argumentExpression;
  }
  function v8e(e) {
    if (no(e)) {
      if (!ex(e))
        return 0;
      const t = e.arguments[0];
      return fT(t) || vh(t) ? 8 : _T(t) && fg(t) === "prototype" ? 9 : 7;
    }
    return e.operatorToken.kind !== 63 || !ll(e.left) || b8e(yN(e)) ? 0 : tx(e.left.expression, !0) && fg(e.left) === "prototype" && Ls(gz(e)) ? 6 : EN(e.left);
  }
  function b8e(e) {
    return Lx(e) && v_(e.expression) && e.expression.text === "0";
  }
  function b3(e) {
    if (Fr(e))
      return e.name;
    const t = js(e.argumentExpression);
    return v_(t) || xs(t) ? t : e;
  }
  function fg(e) {
    const t = b3(e);
    if (t) {
      if (je(t))
        return t.escapedText;
      if (xs(t) || v_(t))
        return sl(t.text);
    }
  }
  function EN(e) {
    if (e.expression.kind === 108)
      return 4;
    if (vh(e))
      return 2;
    if (tx(e.expression, !0)) {
      if (K0(e.expression))
        return 3;
      let t = e;
      for (; !je(t.expression); )
        t = t.expression;
      const r = t.expression;
      if ((r.escapedText === "exports" || r.escapedText === "module" && fg(t) === "exports") && _T(e))
        return 1;
      if (tx(e, !0) || cl(e) && C3(e))
        return 5;
    }
    return 0;
  }
  function gz(e) {
    for (; br(e.right); )
      e = e.right;
    return e.right;
  }
  function TN(e) {
    return br(e) && Cl(e) === 3;
  }
  function Sue(e) {
    return fr(e) && e.parent && e.parent.kind === 241 && (!cl(e) || vN(e)) && !!u1(e.parent);
  }
  function SN(e, t) {
    const { valueDeclaration: r } = e;
    (!r || !(t.flags & 16777216 && !fr(t) && !(r.flags & 16777216)) && jI(r) && !jI(t) || r.kind !== t.kind && Zce(r)) && (e.valueDeclaration = t);
  }
  function xue(e) {
    if (!e || !e.valueDeclaration)
      return !1;
    const t = e.valueDeclaration;
    return t.kind === 259 || Ki(t) && t.initializer && Ka(t.initializer);
  }
  function xN(e) {
    var t, r;
    switch (e.kind) {
      case 257:
      case 205:
        return (t = nr(e.initializer, (i) => xd(i, !0))) == null ? void 0 : t.arguments[0];
      case 269:
        return ai(e.moduleSpecifier, xs);
      case 268:
        return ai((r = ai(e.moduleReference, zm)) == null ? void 0 : r.expression, xs);
      case 270:
      case 277:
        return ai(e.parent.moduleSpecifier, xs);
      case 271:
      case 278:
        return ai(e.parent.parent.moduleSpecifier, xs);
      case 273:
        return ai(e.parent.parent.parent.moduleSpecifier, xs);
      default:
        D.assertNever(e);
    }
  }
  function AN(e) {
    return CN(e) || D.failBadSyntaxKind(e.parent);
  }
  function CN(e) {
    switch (e.parent.kind) {
      case 269:
      case 275:
        return e.parent;
      case 280:
        return e.parent.parent;
      case 210:
        return lf(e.parent) || xd(e.parent, !1) ? e.parent : void 0;
      case 198:
        return D.assert(jo(e)), ai(e.parent.parent, gg);
      default:
        return;
    }
  }
  function HA(e) {
    switch (e.kind) {
      case 269:
      case 275:
        return e.moduleSpecifier;
      case 268:
        return e.moduleReference.kind === 280 ? e.moduleReference.expression : void 0;
      case 202:
        return j0(e) ? e.argument.literal : void 0;
      case 210:
        return e.arguments[0];
      case 264:
        return e.name.kind === 10 ? e.name : void 0;
      default:
        return D.assertNever(e);
    }
  }
  function WA(e) {
    switch (e.kind) {
      case 269:
        return e.importClause && ai(e.importClause.namedBindings, Gv);
      case 268:
        return e;
      case 275:
        return e.exportClause && ai(e.exportClause, Ih);
      default:
        return D.assertNever(e);
    }
  }
  function nx(e) {
    return e.kind === 269 && !!e.importClause && !!e.importClause.name;
  }
  function E3(e, t) {
    if (e.name) {
      const r = t(e);
      if (r)
        return r;
    }
    if (e.namedBindings) {
      const r = Gv(e.namedBindings) ? t(e.namedBindings) : ze(e.namedBindings.elements, t);
      if (r)
        return r;
    }
  }
  function rx(e) {
    if (e)
      switch (e.kind) {
        case 166:
        case 171:
        case 170:
        case 300:
        case 299:
        case 169:
        case 168:
          return e.questionToken !== void 0;
      }
    return !1;
  }
  function zA(e) {
    const t = CC(e) ? Yc(e.parameters) : void 0, r = ai(t && t.name, je);
    return !!r && r.escapedText === "new";
  }
  function m_(e) {
    return e.kind === 349 || e.kind === 341 || e.kind === 343;
  }
  function LN(e) {
    return m_(e) || em(e);
  }
  function E8e(e) {
    return ou(e) && br(e.expression) && e.expression.operatorToken.kind === 63 ? yN(e.expression) : void 0;
  }
  function Aue(e) {
    return ou(e) && br(e.expression) && Cl(e.expression) !== 0 && br(e.expression.right) && (e.expression.right.operatorToken.kind === 56 || e.expression.right.operatorToken.kind === 60) ? e.expression.right.right : void 0;
  }
  function yz(e) {
    switch (e.kind) {
      case 240:
        const t = qA(e);
        return t && t.initializer;
      case 169:
        return e.initializer;
      case 299:
        return e.initializer;
    }
  }
  function qA(e) {
    return uc(e) ? Yc(e.declarationList.declarations) : void 0;
  }
  function Cue(e) {
    return Jl(e) && e.body && e.body.kind === 264 ? e.body : void 0;
  }
  function IN(e) {
    if (e.kind >= 240 && e.kind <= 256)
      return !0;
    switch (e.kind) {
      case 79:
      case 108:
      case 106:
      case 163:
      case 233:
      case 209:
      case 208:
      case 205:
      case 215:
      case 216:
      case 171:
      case 174:
      case 175:
        return !0;
      default:
        return !1;
    }
  }
  function kN(e) {
    switch (e.kind) {
      case 216:
      case 223:
      case 238:
      case 249:
      case 176:
      case 292:
      case 260:
      case 228:
      case 172:
      case 173:
      case 182:
      case 177:
      case 248:
      case 256:
      case 243:
      case 209:
      case 239:
      case 1:
      case 263:
      case 302:
      case 274:
      case 275:
      case 278:
      case 241:
      case 246:
      case 247:
      case 245:
      case 259:
      case 215:
      case 181:
      case 174:
      case 79:
      case 242:
      case 269:
      case 268:
      case 178:
      case 261:
      case 320:
      case 326:
      case 253:
      case 171:
      case 170:
      case 264:
      case 199:
      case 267:
      case 207:
      case 166:
      case 214:
      case 208:
      case 299:
      case 169:
      case 168:
      case 250:
      case 175:
      case 300:
      case 301:
      case 252:
      case 254:
      case 255:
      case 262:
      case 165:
      case 257:
      case 240:
      case 244:
      case 251:
        return !0;
      default:
        return !1;
    }
  }
  function vz(e, t) {
    let r;
    BA(e) && kv(e) && xf(e.initializer) && (r = Ti(r, Lue(e, qo(e.initializer.jsDoc))));
    let i = e;
    for (; i && i.parent; ) {
      if (xf(i) && (r = Ti(r, Lue(e, qo(i.jsDoc)))), i.kind === 166) {
        r = Ti(r, (t ? Zle : TI)(i));
        break;
      }
      if (i.kind === 165) {
        r = Ti(r, (t ? nce : tce)(i));
        break;
      }
      i = bz(i);
    }
    return r || rt;
  }
  function Lue(e, t) {
    if (qm(t)) {
      const r = lr(t.tags, (i) => Iue(e, i));
      return t.tags === r ? [t] : r;
    }
    return Iue(e, t) ? [t] : void 0;
  }
  function Iue(e, t) {
    return !(Uk(t) || X7(t)) || !t.parent || !qm(t.parent) || !Vd(t.parent.parent) || t.parent.parent === e;
  }
  function bz(e) {
    const t = e.parent;
    if (t.kind === 299 || t.kind === 274 || t.kind === 169 || t.kind === 241 && e.kind === 208 || t.kind === 250 || Cue(t) || br(e) && e.operatorToken.kind === 63)
      return t;
    if (t.parent && (qA(t.parent) === e || br(t) && t.operatorToken.kind === 63))
      return t.parent;
    if (t.parent && t.parent.parent && (qA(t.parent.parent) || yz(t.parent.parent) === e || Aue(t.parent.parent)))
      return t.parent.parent;
  }
  function wN(e) {
    if (e.symbol)
      return e.symbol;
    if (!je(e.name))
      return;
    const t = e.name.escapedText, r = z0(e);
    if (!r)
      return;
    const i = nn(r.parameters, (o) => o.name.kind === 79 && o.name.escapedText === t);
    return i && i.symbol;
  }
  function T3(e) {
    if (qm(e.parent) && e.parent.tags) {
      const t = nn(e.parent.tags, m_);
      if (t)
        return t;
    }
    return z0(e);
  }
  function z0(e) {
    const t = JA(e);
    if (t)
      return If(t) && t.type && Ka(t.type) ? t.type : Ka(t) ? t : void 0;
  }
  function JA(e) {
    const t = ix(e);
    if (t)
      return Aue(t) || E8e(t) || yz(t) || qA(t) || Cue(t) || t;
  }
  function ix(e) {
    const t = HI(e);
    if (!t)
      return;
    const r = t.parent;
    if (r && r.jsDoc && t === tl(r.jsDoc))
      return r;
  }
  function HI(e) {
    return nr(e.parent, qm);
  }
  function kue(e) {
    const t = e.name.escapedText, { typeParameters: r } = e.parent.parent.parent;
    return r && nn(r, (i) => i.name.escapedText === t);
  }
  function T8e(e) {
    return !!e.typeArguments;
  }
  function pT(e) {
    let t = e.parent;
    for (; ; ) {
      switch (t.kind) {
        case 223:
          const r = t.operatorToken.kind;
          return yy(r) && t.left === e ? r === 63 || ZI(r) ? 1 : 2 : 0;
        case 221:
        case 222:
          const i = t.operator;
          return i === 45 || i === 46 ? 2 : 0;
        case 246:
        case 247:
          return t.initializer === e ? 1 : 0;
        case 214:
        case 206:
        case 227:
        case 232:
          e = t;
          break;
        case 301:
          e = t.parent;
          break;
        case 300:
          if (t.name !== e)
            return 0;
          e = t.parent;
          break;
        case 299:
          if (t.name === e)
            return 0;
          e = t.parent;
          break;
        default:
          return 0;
      }
      t = e.parent;
    }
  }
  function bh(e) {
    return pT(e) !== 0;
  }
  function wue(e) {
    switch (e.kind) {
      case 238:
      case 240:
      case 251:
      case 242:
      case 252:
      case 266:
      case 292:
      case 293:
      case 253:
      case 245:
      case 246:
      case 247:
      case 243:
      case 244:
      case 255:
      case 295:
        return !0;
    }
    return !1;
  }
  function Due(e) {
    return Bs(e) || Js(e) || LA(e) || yc(e) || ql(e);
  }
  function Rue(e, t) {
    for (; e && e.kind === t; )
      e = e.parent;
    return e;
  }
  function DN(e) {
    return Rue(e, 193);
  }
  function Dv(e) {
    return Rue(e, 214);
  }
  function Nue(e) {
    let t;
    for (; e && e.kind === 193; )
      t = e, e = e.parent;
    return [t, e];
  }
  function Ez(e) {
    for (; xx(e); )
      e = e.type;
    return e;
  }
  function js(e, t) {
    return bu(e, t ? 17 : 1);
  }
  function Tz(e) {
    return e.kind !== 208 && e.kind !== 209 ? !1 : (e = Dv(e.parent), e && e.kind === 217);
  }
  function mT(e, t) {
    for (; e; ) {
      if (e === t)
        return !0;
      e = e.parent;
    }
    return !1;
  }
  function _g(e) {
    return !qi(e) && !Xa(e) && vu(e.parent) && e.parent.name === e;
  }
  function RN(e) {
    const t = e.parent;
    switch (e.kind) {
      case 10:
      case 14:
      case 8:
        if (As(t))
          return t.parent;
      case 79:
        if (vu(t))
          return t.name === e ? t : void 0;
        if (Cd(t)) {
          const r = t.parent;
          return rm(r) && r.name === t ? r : void 0;
        } else {
          const r = t.parent;
          return br(r) && Cl(r) !== 0 && (r.left.symbol || r.symbol) && ka(r) === e ? r : void 0;
        }
      case 80:
        return vu(t) && t.name === e ? t : void 0;
      default:
        return;
    }
  }
  function NN(e) {
    return Xf(e) && e.parent.kind === 164 && vu(e.parent.parent);
  }
  function Oue(e) {
    const t = e.parent;
    switch (t.kind) {
      case 169:
      case 168:
      case 171:
      case 170:
      case 174:
      case 175:
      case 302:
      case 299:
      case 208:
        return t.name === e;
      case 163:
        return t.right === e;
      case 205:
      case 273:
        return t.propertyName === e;
      case 278:
      case 288:
      case 282:
      case 283:
      case 284:
        return !0;
    }
    return !1;
  }
  function S8e(e) {
    return e.kind === 268 || e.kind === 267 || e.kind === 270 && e.name || e.kind === 271 || e.kind === 277 || e.kind === 273 || e.kind === 278 || e.kind === 274 && KA(e) ? !0 : fr(e) && (br(e) && Cl(e) === 2 && KA(e) || Fr(e) && br(e.parent) && e.parent.left === e && e.parent.operatorToken.kind === 63 && ON(e.parent.right));
  }
  function Sz(e) {
    switch (e.parent.kind) {
      case 270:
      case 273:
      case 271:
      case 278:
      case 274:
      case 268:
      case 277:
        return e.parent;
      case 163:
        do
          e = e.parent;
        while (e.parent.kind === 163);
        return Sz(e);
    }
  }
  function ON(e) {
    return zl(e) || Gu(e);
  }
  function KA(e) {
    const t = xz(e);
    return ON(t);
  }
  function xz(e) {
    return Bl(e) ? e.expression : e.right;
  }
  function Pue(e) {
    return e.kind === 300 ? e.name : e.kind === 299 ? e.initializer : e.parent.right;
  }
  function Xp(e) {
    const t = E1(e);
    if (t && fr(e)) {
      const r = ice(e);
      if (r)
        return r.class;
    }
    return t;
  }
  function E1(e) {
    const t = PN(e.heritageClauses, 94);
    return t && t.types.length > 0 ? t.types[0] : void 0;
  }
  function XA(e) {
    if (fr(e))
      return ace(e).map((t) => t.class);
    {
      const t = PN(e.heritageClauses, 117);
      return t == null ? void 0 : t.types;
    }
  }
  function WI(e) {
    return nd(e) ? zI(e) || rt : di(e) && va(XE(Xp(e)), XA(e)) || rt;
  }
  function zI(e) {
    const t = PN(e.heritageClauses, 94);
    return t ? t.types : void 0;
  }
  function PN(e, t) {
    if (e) {
      for (const r of e)
        if (r.token === t)
          return r;
    }
  }
  function q0(e, t) {
    for (; e; ) {
      if (e.kind === t)
        return e;
      e = e.parent;
    }
  }
  function Ad(e) {
    return 81 <= e && e <= 162;
  }
  function S3(e) {
    return 126 <= e && e <= 162;
  }
  function Mue(e) {
    return Ad(e) && !S3(e);
  }
  function x8e(e) {
    return 117 <= e && e <= 125;
  }
  function ax(e) {
    const t = ZE(e);
    return t !== void 0 && Mue(t);
  }
  function A8e(e) {
    const t = ZE(e);
    return t !== void 0 && Ad(t);
  }
  function x3(e) {
    const t = U0(e);
    return !!t && !S3(t);
  }
  function YA(e) {
    return 2 <= e && e <= 7;
  }
  function Vc(e) {
    if (!e)
      return 4;
    let t = 0;
    switch (e.kind) {
      case 259:
      case 215:
      case 171:
        e.asteriskToken && (t |= 1);
      case 216:
        Yr(e, 512) && (t |= 2);
        break;
    }
    return e.body || (t |= 4), t;
  }
  function $A(e) {
    switch (e.kind) {
      case 259:
      case 215:
      case 216:
      case 171:
        return e.body !== void 0 && e.asteriskToken === void 0 && Yr(e, 512);
    }
    return !1;
  }
  function Xf(e) {
    return xs(e) || v_(e);
  }
  function A3(e) {
    return Bv(e) && (e.operator === 39 || e.operator === 40) && v_(e.operand);
  }
  function Rv(e) {
    const t = ka(e);
    return !!t && C3(t);
  }
  function C3(e) {
    if (!(e.kind === 164 || e.kind === 209))
      return !1;
    const t = cl(e) ? js(e.argumentExpression) : e.expression;
    return !Xf(t) && !A3(t);
  }
  function T1(e) {
    switch (e.kind) {
      case 79:
      case 80:
        return e.escapedText;
      case 10:
      case 8:
        return sl(e.text);
      case 164:
        const t = e.expression;
        return Xf(t) ? sl(t.text) : A3(t) ? t.operator === 40 ? yo(t.operator) + t.operand.text : t.operand.text : void 0;
      default:
        return D.assertNever(e);
    }
  }
  function G_(e) {
    switch (e.kind) {
      case 79:
      case 10:
      case 14:
      case 8:
        return !0;
      default:
        return !1;
    }
  }
  function U_(e) {
    return og(e) ? Mr(e) : e.text;
  }
  function qI(e) {
    return og(e) ? e.escapedText : sl(e.text);
  }
  function C8e(e) {
    return `__@${bo(e)}@${e.escapedName}`;
  }
  function MN(e, t) {
    return `__#${bo(e)}@${t}`;
  }
  function FN(e) {
    return xa(e.escapedName, "__@");
  }
  function Fue(e) {
    return xa(e.escapedName, "__#");
  }
  function L8e(e) {
    return e.kind === 79 && e.escapedText === "Symbol";
  }
  function Bue(e) {
    return je(e) ? Mr(e) === "__proto__" : jo(e) && e.text === "__proto__";
  }
  function JI(e, t) {
    switch (e = bu(e), e.kind) {
      case 228:
      case 215:
        if (e.name)
          return !1;
        break;
      case 216:
        break;
      default:
        return !1;
    }
    return typeof t == "function" ? t(e) : !0;
  }
  function Az(e) {
    switch (e.kind) {
      case 299:
        return !Bue(e.name);
      case 300:
        return !!e.objectAssignmentInitializer;
      case 257:
        return je(e.name) && !!e.initializer;
      case 166:
        return je(e.name) && !!e.initializer && !e.dotDotDotToken;
      case 205:
        return je(e.name) && !!e.initializer && !e.dotDotDotToken;
      case 169:
        return !!e.initializer;
      case 223:
        switch (e.operatorToken.kind) {
          case 63:
          case 76:
          case 75:
          case 77:
            return je(e.left);
        }
        break;
      case 274:
        return !0;
    }
    return !1;
  }
  function Yf(e, t) {
    if (!Az(e))
      return !1;
    switch (e.kind) {
      case 299:
        return JI(e.initializer, t);
      case 300:
        return JI(e.objectAssignmentInitializer, t);
      case 257:
      case 166:
      case 205:
      case 169:
        return JI(e.initializer, t);
      case 223:
        return JI(e.right, t);
      case 274:
        return JI(e.expression, t);
    }
  }
  function Cz(e) {
    return e.escapedText === "push" || e.escapedText === "unshift";
  }
  function hT(e) {
    return Fm(e).kind === 166;
  }
  function Fm(e) {
    for (; e.kind === 205; )
      e = e.parent.parent;
    return e;
  }
  function Lz(e) {
    const t = e.kind;
    return t === 173 || t === 215 || t === 259 || t === 216 || t === 171 || t === 174 || t === 175 || t === 264 || t === 308;
  }
  function Zs(e) {
    return Qp(e.pos) || Qp(e.end);
  }
  function I8e(e) {
    return Ea(e, qi) || e;
  }
  function Iz(e) {
    const t = wz(e), r = e.kind === 211 && e.arguments !== void 0;
    return kz(e.kind, t, r);
  }
  function kz(e, t, r) {
    switch (e) {
      case 211:
        return r ? 0 : 1;
      case 221:
      case 218:
      case 219:
      case 217:
      case 220:
      case 224:
      case 226:
        return 1;
      case 223:
        switch (t) {
          case 42:
          case 63:
          case 64:
          case 65:
          case 67:
          case 66:
          case 68:
          case 69:
          case 70:
          case 71:
          case 72:
          case 73:
          case 78:
          case 74:
          case 75:
          case 76:
          case 77:
            return 1;
        }
    }
    return 0;
  }
  function L3(e) {
    const t = wz(e), r = e.kind === 211 && e.arguments !== void 0;
    return BN(e.kind, t, r);
  }
  function wz(e) {
    return e.kind === 223 ? e.operatorToken.kind : e.kind === 221 || e.kind === 222 ? e.operator : e.kind;
  }
  function BN(e, t, r) {
    switch (e) {
      case 357:
        return 0;
      case 227:
        return 1;
      case 226:
        return 2;
      case 224:
        return 4;
      case 223:
        switch (t) {
          case 27:
            return 0;
          case 63:
          case 64:
          case 65:
          case 67:
          case 66:
          case 68:
          case 69:
          case 70:
          case 71:
          case 72:
          case 73:
          case 78:
          case 74:
          case 75:
          case 76:
          case 77:
            return 3;
          default:
            return GN(t);
        }
      case 213:
      case 232:
      case 221:
      case 218:
      case 219:
      case 217:
      case 220:
        return 16;
      case 222:
        return 17;
      case 210:
        return 18;
      case 211:
        return r ? 19 : 18;
      case 212:
      case 208:
      case 209:
      case 233:
        return 19;
      case 231:
      case 235:
        return 11;
      case 108:
      case 106:
      case 79:
      case 80:
      case 104:
      case 110:
      case 95:
      case 8:
      case 9:
      case 10:
      case 206:
      case 207:
      case 215:
      case 216:
      case 228:
      case 13:
      case 14:
      case 225:
      case 214:
      case 229:
      case 281:
      case 282:
      case 285:
        return 20;
      default:
        return -1;
    }
  }
  function GN(e) {
    switch (e) {
      case 60:
        return 4;
      case 56:
        return 5;
      case 55:
        return 6;
      case 51:
        return 7;
      case 52:
        return 8;
      case 50:
        return 9;
      case 34:
      case 35:
      case 36:
      case 37:
        return 10;
      case 29:
      case 31:
      case 32:
      case 33:
      case 102:
      case 101:
      case 128:
      case 150:
        return 11;
      case 47:
      case 48:
      case 49:
        return 12;
      case 39:
      case 40:
        return 13;
      case 41:
      case 43:
      case 44:
        return 14;
      case 42:
        return 15;
    }
    return -1;
  }
  function UN(e) {
    return lr(e, (t) => {
      switch (t.kind) {
        case 291:
          return !!t.expression;
        case 11:
          return !t.containsOnlyTriviaWhiteSpaces;
        default:
          return !0;
      }
    });
  }
  function QA() {
    let e = [];
    const t = [], r = /* @__PURE__ */ new Map();
    let i = !1;
    return {
      add: s,
      lookup: o,
      getGlobalDiagnostics: c,
      getDiagnostics: f
    };
    function o(d) {
      let y;
      if (d.file ? y = r.get(d.file.fileName) : y = e, !y)
        return;
      const h = yv(y, d, ml, B3);
      if (h >= 0)
        return y[h];
    }
    function s(d) {
      let y;
      d.file ? (y = r.get(d.file.fileName), y || (y = [], r.set(d.file.fileName, y), gv(t, d.file.fileName, Nu))) : (i && (i = !1, e = e.slice()), y = e), gv(y, d, B3);
    }
    function c() {
      return i = !0, e;
    }
    function f(d) {
      if (d)
        return r.get(d) || [];
      const y = Bd(t, (h) => r.get(h));
      return e.length && y.unshift(...e), y;
    }
  }
  function k8e(e) {
    return e.replace(rfe, "\\${");
  }
  function Dz(e) {
    return e && !!(bx(e) ? e.templateFlags : e.head.templateFlags || kt(e.templateSpans, (t) => !!t.literal.templateFlags));
  }
  function Gue(e) {
    return "\\u" + ("0000" + e.toString(16).toUpperCase()).slice(-4);
  }
  function w8e(e, t, r) {
    if (e.charCodeAt(0) === 0) {
      const i = r.charCodeAt(t + e.length);
      return i >= 48 && i <= 57 ? "\\x00" : "\\0";
    }
    return sfe.get(e) || Gue(e.charCodeAt(0));
  }
  function ox(e, t) {
    const r = t === 96 ? ofe : t === 39 ? afe : ife;
    return e.replace(r, w8e);
  }
  function VN(e, t) {
    return e = ox(e, t), Bq.test(e) ? e.replace(Bq, (r) => Gue(r.charCodeAt(0))) : e;
  }
  function D8e(e) {
    return "&#x" + e.toString(16).toUpperCase() + ";";
  }
  function R8e(e) {
    return e.charCodeAt(0) === 0 ? "&#0;" : ufe.get(e) || D8e(e.charCodeAt(0));
  }
  function Rz(e, t) {
    const r = t === 39 ? cfe : lfe;
    return e.replace(r, R8e);
  }
  function V_(e) {
    const t = e.length;
    return t >= 2 && e.charCodeAt(0) === e.charCodeAt(t - 1) && N8e(e.charCodeAt(0)) ? e.substring(1, t - 1) : e;
  }
  function N8e(e) {
    return e === 39 || e === 34 || e === 96;
  }
  function KI(e) {
    const t = e.charCodeAt(0);
    return t >= 97 && t <= 122 || pu(e, "-") || pu(e, ":");
  }
  function I3(e) {
    const t = uC[1];
    for (let r = uC.length; r <= e; r++)
      uC.push(uC[r - 1] + t);
    return uC[e];
  }
  function ZA() {
    return uC[1].length;
  }
  function jN() {
    return pu(Se, "-dev") || pu(Se, "-insiders");
  }
  function HN(e) {
    var t, r, i, o, s, c = !1;
    function f(k) {
      const G = MR(k);
      G.length > 1 ? (o = o + G.length - 1, s = t.length - k.length + qo(G), i = s - t.length === 0) : i = !1;
    }
    function d(k) {
      k && k.length && (i && (k = I3(r) + k, i = !1), t += k, f(k));
    }
    function y(k) {
      k && (c = !1), d(k);
    }
    function h(k) {
      k && (c = !0), d(k);
    }
    function E() {
      t = "", r = 0, i = !0, o = 0, s = 0, c = !1;
    }
    function A(k) {
      k !== void 0 && (t += k, f(k), c = !1);
    }
    function L(k) {
      k && k.length && y(k);
    }
    function I(k) {
      (!i || k) && (t += e, o++, s = t.length, i = !0, c = !1);
    }
    function O() {
      return i ? t.length : t.length + e.length;
    }
    return E(), {
      write: y,
      rawWrite: A,
      writeLiteral: L,
      writeLine: I,
      increaseIndent: () => {
        r++;
      },
      decreaseIndent: () => {
        r--;
      },
      getIndent: () => r,
      getTextPos: () => t.length,
      getLine: () => o,
      getColumn: () => i ? r * ZA() : t.length - s,
      getText: () => t,
      isAtStartOfLine: () => i,
      hasTrailingComment: () => c,
      hasTrailingWhitespace: () => !!t.length && ag(t.charCodeAt(t.length - 1)),
      clear: E,
      writeKeyword: y,
      writeOperator: y,
      writeParameter: y,
      writeProperty: y,
      writePunctuation: y,
      writeSpace: y,
      writeStringLiteral: y,
      writeSymbol: (k, G) => y(k),
      writeTrailingSemicolon: y,
      writeComment: h,
      getTextPosWithWriteLine: O
    };
  }
  function Nz(e) {
    let t = !1;
    function r() {
      t && (e.writeTrailingSemicolon(";"), t = !1);
    }
    return {
      ...e,
      writeTrailingSemicolon() {
        t = !0;
      },
      writeLiteral(i) {
        r(), e.writeLiteral(i);
      },
      writeStringLiteral(i) {
        r(), e.writeStringLiteral(i);
      },
      writeSymbol(i, o) {
        r(), e.writeSymbol(i, o);
      },
      writePunctuation(i) {
        r(), e.writePunctuation(i);
      },
      writeKeyword(i) {
        r(), e.writeKeyword(i);
      },
      writeOperator(i) {
        r(), e.writeOperator(i);
      },
      writeParameter(i) {
        r(), e.writeParameter(i);
      },
      writeSpace(i) {
        r(), e.writeSpace(i);
      },
      writeProperty(i) {
        r(), e.writeProperty(i);
      },
      writeComment(i) {
        r(), e.writeComment(i);
      },
      writeLine() {
        r(), e.writeLine();
      },
      increaseIndent() {
        r(), e.increaseIndent();
      },
      decreaseIndent() {
        r(), e.decreaseIndent();
      }
    };
  }
  function WN(e) {
    return e.useCaseSensitiveFileNames ? e.useCaseSensitiveFileNames() : !1;
  }
  function J0(e) {
    return ru(WN(e));
  }
  function k3(e, t, r) {
    return t.moduleName || Oz(e, t.fileName, r && r.fileName);
  }
  function Uue(e, t) {
    return e.getCanonicalFileName(Pa(t, e.getCurrentDirectory()));
  }
  function Vue(e, t, r) {
    const i = t.getExternalModuleFileFromDeclaration(r);
    if (!i || i.isDeclarationFile)
      return;
    const o = HA(r);
    if (!(o && xs(o) && !Sf(o.text) && Uue(e, i.path).indexOf(Uue(e, Ou(e.getCommonSourceDirectory()))) === -1))
      return k3(e, i);
  }
  function Oz(e, t, r) {
    const i = (d) => e.getCanonicalFileName(d), o = zs(r ? mi(r) : e.getCommonSourceDirectory(), e.getCurrentDirectory(), i), s = Pa(t, e.getCurrentDirectory()), c = zS(o, s, o, i, !1), f = Ud(c);
    return r ? c1(f) : f;
  }
  function jue(e, t, r) {
    const i = t.getCompilerOptions();
    let o;
    return i.outDir ? o = Ud(w3(e, t, i.outDir)) : o = Ud(e), o + r;
  }
  function Hue(e, t) {
    return Pz(e, t.getCompilerOptions(), t.getCurrentDirectory(), t.getCommonSourceDirectory(), (r) => t.getCanonicalFileName(r));
  }
  function Pz(e, t, r, i, o) {
    const s = t.declarationDir || t.outDir, c = s ? Gz(e, s, r, i, o) : e, f = Mz(c);
    return Ud(c) + f;
  }
  function Mz(e) {
    return Tc(e, [".mjs", ".mts"]) ? ".d.mts" : Tc(e, [".cjs", ".cts"]) ? ".d.cts" : Tc(e, [".json"]) ? ".d.json.ts" : ".d.ts";
  }
  function Wue(e) {
    return Tc(e, [".d.mts", ".mjs", ".mts"]) ? [".mts", ".mjs"] : Tc(e, [".d.cts", ".cjs", ".cts"]) ? [".cts", ".cjs"] : Tc(e, [".d.json.ts"]) ? [".json"] : [".tsx", ".ts", ".jsx", ".js"];
  }
  function qs(e) {
    return e.outFile || e.out;
  }
  function Fz(e, t) {
    var r, i;
    if (e.paths)
      return (i = e.baseUrl) != null ? i : D.checkDefined(e.pathsBasePath || ((r = t.getCurrentDirectory) == null ? void 0 : r.call(t)), "Encountered 'paths' without a 'baseUrl', config file, or host 'getCurrentDirectory'.");
  }
  function Bz(e, t, r) {
    const i = e.getCompilerOptions();
    if (qs(i)) {
      const o = au(i), s = i.emitDeclarationOnly || o === 2 || o === 4;
      return lr(e.getSourceFiles(), (c) => (s || !Zl(c)) && sx(c, e, r));
    } else {
      const o = t === void 0 ? e.getSourceFiles() : [t];
      return lr(o, (s) => sx(s, e, r));
    }
  }
  function sx(e, t, r) {
    return !(t.getCompilerOptions().noEmitForJsFiles && Zu(e)) && !e.isDeclarationFile && !t.isSourceFileFromExternalLibrary(e) && (r || !(p_(e) && t.getResolvedProjectReferenceToRedirect(e.fileName)) && !t.isSourceOfProjectReferenceRedirect(e.fileName));
  }
  function w3(e, t, r) {
    return Gz(e, r, t.getCurrentDirectory(), t.getCommonSourceDirectory(), (i) => t.getCanonicalFileName(i));
  }
  function Gz(e, t, r, i, o) {
    let s = Pa(e, r);
    return s = o(s).indexOf(o(i)) === 0 ? s.substring(i.length) : s, Bi(t, s);
  }
  function XI(e, t, r, i, o, s, c) {
    e.writeFile(r, i, o, (f) => {
      t.add(Fs(_.Could_not_write_file_0_Colon_1, r, f));
    }, s, c);
  }
  function zue(e, t, r) {
    if (e.length > qp(e) && !r(e)) {
      const i = mi(e);
      zue(i, t, r), t(e);
    }
  }
  function Uz(e, t, r, i, o, s) {
    try {
      i(e, t, r);
    } catch {
      zue(mi(Jo(e)), o, s), i(e, t, r);
    }
  }
  function YI(e, t) {
    const r = ig(e);
    return mI(r, t);
  }
  function gT(e, t) {
    return mI(e, t);
  }
  function Eh(e) {
    return nn(e.members, (t) => ql(t) && __(t.body));
  }
  function $I(e) {
    if (e && e.parameters.length > 0) {
      const t = e.parameters.length === 2 && x1(e.parameters[0]);
      return e.parameters[t ? 1 : 0];
    }
  }
  function que(e) {
    const t = $I(e);
    return t && t.type;
  }
  function S1(e) {
    if (e.parameters.length && !P1(e)) {
      const t = e.parameters[0];
      if (x1(t))
        return t;
    }
  }
  function x1(e) {
    return yT(e.name);
  }
  function yT(e) {
    return !!e && e.kind === 79 && Vz(e);
  }
  function lx(e) {
    if (!yT(e))
      return !1;
    for (; Cd(e.parent) && e.parent.left === e; )
      e = e.parent;
    return e.parent.kind === 183;
  }
  function Vz(e) {
    return e.escapedText === "this";
  }
  function vT(e, t) {
    let r, i, o, s;
    return Rv(t) ? (r = t, t.kind === 174 ? o = t : t.kind === 175 ? s = t : D.fail("Accessor has wrong kind")) : ze(e, (c) => {
      if (V0(c) && Ja(c) === Ja(t)) {
        const f = T1(c.name), d = T1(t.name);
        f === d && (r ? i || (i = c) : r = c, c.kind === 174 && !o && (o = c), c.kind === 175 && !s && (s = c));
      }
    }), {
      firstAccessor: r,
      secondAccessor: i,
      getAccessor: o,
      setAccessor: s
    };
  }
  function Zc(e) {
    if (!fr(e) && yc(e))
      return;
    const t = e.type;
    return t || !fr(e) ? t : PM(e) ? e.typeExpression && e.typeExpression.type : xv(e);
  }
  function Jue(e) {
    return e.type;
  }
  function yp(e) {
    return P1(e) ? e.type && e.type.typeExpression && e.type.typeExpression.type : e.type || (fr(e) ? zR(e) : void 0);
  }
  function D3(e) {
    return ca(d1(e), (t) => O8e(t) ? t.typeParameters : void 0);
  }
  function O8e(e) {
    return Ep(e) && !(e.parent.kind === 323 && (e.parent.tags.some(m_) || e.parent.tags.some(Gk)));
  }
  function Kue(e) {
    const t = $I(e);
    return t && Zc(t);
  }
  function Xue(e, t, r, i) {
    Yue(e, t, r.pos, i);
  }
  function Yue(e, t, r, i) {
    i && i.length && r !== i[0].pos && gT(e, r) !== gT(e, i[0].pos) && t.writeLine();
  }
  function $ue(e, t, r, i) {
    r !== i && gT(e, r) !== gT(e, i) && t.writeLine();
  }
  function Que(e, t, r, i, o, s, c, f) {
    if (i && i.length > 0) {
      o && r.writeSpace(" ");
      let d = !1;
      for (const y of i)
        d && (r.writeSpace(" "), d = !1), f(e, t, r, y.pos, y.end, c), y.hasTrailingNewLine ? r.writeLine() : d = !0;
      d && s && r.writeSpace(" ");
    }
  }
  function Zue(e, t, r, i, o, s, c) {
    let f, d;
    if (c ? o.pos === 0 && (f = lr(ph(e, o.pos), y)) : f = ph(e, o.pos), f) {
      const h = [];
      let E;
      for (const A of f) {
        if (E) {
          const L = gT(t, E.end);
          if (gT(t, A.pos) >= L + 2)
            break;
        }
        h.push(A), E = A;
      }
      if (h.length) {
        const A = gT(t, qo(h).end);
        gT(t, Ko(e, o.pos)) >= A + 2 && (Xue(t, r, o, f), Que(e, t, r, h, !1, !0, s, i), d = { nodePos: o.pos, detachedCommentEndPos: qo(h).end });
      }
    }
    return d;
    function y(h) {
      return KM(e, h.pos);
    }
  }
  function eC(e, t, r, i, o, s) {
    if (e.charCodeAt(i + 1) === 42) {
      const c = BR(t, i), f = t.length;
      let d;
      for (let y = i, h = c.line; y < o; h++) {
        const E = h + 1 === f ? e.length + 1 : t[h + 1];
        if (y !== i) {
          d === void 0 && (d = ede(e, t[c.line], i));
          const L = r.getIndent() * ZA() - d + ede(e, y, E);
          if (L > 0) {
            let I = L % ZA();
            const O = I3((L - I) / ZA());
            for (r.rawWrite(O); I; )
              r.rawWrite(" "), I--;
          } else
            r.rawWrite("");
        }
        P8e(e, o, r, s, y, E), y = E;
      }
    } else
      r.writeComment(e.substring(i, o));
  }
  function P8e(e, t, r, i, o, s) {
    const c = Math.min(t, s - 1), f = a1(e.substring(o, c));
    f ? (r.writeComment(f), c !== t && r.writeLine()) : r.rawWrite(i);
  }
  function ede(e, t, r) {
    let i = 0;
    for (; t < r && Dm(e.charCodeAt(t)); t++)
      e.charCodeAt(t) === 9 ? i += ZA() - i % ZA() : i++;
    return i;
  }
  function R3(e) {
    return Mu(e) !== 0;
  }
  function tde(e) {
    return Nv(e) !== 0;
  }
  function Gd(e, t) {
    return !!cx(e, t);
  }
  function Yr(e, t) {
    return !!nde(e, t);
  }
  function Ja(e) {
    return Uc(e) && gc(e) || Il(e);
  }
  function gc(e) {
    return Yr(e, 32);
  }
  function jz(e) {
    return Gd(e, 16384);
  }
  function A1(e) {
    return Yr(e, 256);
  }
  function Hz(e) {
    return Yr(e, 2);
  }
  function Bm(e) {
    return Yr(e, 128);
  }
  function QI(e) {
    return Gd(e, 64);
  }
  function $f(e) {
    return Yr(e, 131072);
  }
  function cx(e, t) {
    return Mu(e) & t;
  }
  function nde(e, t) {
    return Nv(e) & t;
  }
  function Wz(e, t, r) {
    return e.kind >= 0 && e.kind <= 162 ? 0 : (e.modifierFlagsCache & 536870912 || (e.modifierFlagsCache = zz(e) | 536870912), t && !(e.modifierFlagsCache & 4096) && (r || fr(e)) && e.parent && (e.modifierFlagsCache |= ide(e) | 4096), e.modifierFlagsCache & -536875009);
  }
  function Mu(e) {
    return Wz(e, !0);
  }
  function rde(e) {
    return Wz(e, !0, !0);
  }
  function Nv(e) {
    return Wz(e, !1);
  }
  function ide(e) {
    let t = 0;
    return e.parent && !Ba(e) && (fr(e) && (oce(e) && (t |= 4), sce(e) && (t |= 8), lce(e) && (t |= 16), cce(e) && (t |= 64), uce(e) && (t |= 16384)), dce(e) && (t |= 8192)), t;
  }
  function ade(e) {
    return zz(e) | ide(e);
  }
  function zz(e) {
    let t = K_(e) ? Gm(e.modifiers) : 0;
    return (e.flags & 4 || e.kind === 79 && e.flags & 2048) && (t |= 1), t;
  }
  function Gm(e) {
    let t = 0;
    if (e)
      for (const r of e)
        t |= ux(r.kind);
    return t;
  }
  function ux(e) {
    switch (e) {
      case 124:
        return 32;
      case 123:
        return 4;
      case 122:
        return 16;
      case 121:
        return 8;
      case 126:
        return 256;
      case 127:
        return 128;
      case 93:
        return 1;
      case 136:
        return 2;
      case 85:
        return 2048;
      case 88:
        return 1024;
      case 132:
        return 512;
      case 146:
        return 64;
      case 161:
        return 16384;
      case 101:
        return 32768;
      case 145:
        return 65536;
      case 167:
        return 131072;
    }
    return 0;
  }
  function ode(e) {
    return e === 56 || e === 55;
  }
  function sde(e) {
    return ode(e) || e === 53;
  }
  function ZI(e) {
    return e === 75 || e === 76 || e === 77;
  }
  function qz(e) {
    return br(e) && ZI(e.operatorToken.kind);
  }
  function zN(e) {
    return ode(e) || e === 60;
  }
  function qN(e) {
    return br(e) && zN(e.operatorToken.kind);
  }
  function yy(e) {
    return e >= 63 && e <= 78;
  }
  function Jz(e) {
    const t = Kz(e);
    return t && !t.isImplements ? t.class : void 0;
  }
  function Kz(e) {
    if (Sy(e)) {
      if (jd(e.parent) && di(e.parent.parent))
        return { class: e.parent.parent, isImplements: e.parent.token === 117 };
      if (LC(e.parent)) {
        const t = JA(e.parent);
        if (t && di(t))
          return { class: t, isImplements: !1 };
      }
    }
  }
  function ed(e, t) {
    return br(e) && (t ? e.operatorToken.kind === 63 : yy(e.operatorToken.kind)) && Td(e.left);
  }
  function M8e(e) {
    return ed(e.parent) && e.parent.left === e;
  }
  function vy(e) {
    if (ed(e, !0)) {
      const t = e.left.kind;
      return t === 207 || t === 206;
    }
    return !1;
  }
  function JN(e) {
    return Jz(e) !== void 0;
  }
  function zl(e) {
    return e.kind === 79 || KN(e);
  }
  function Lf(e) {
    switch (e.kind) {
      case 79:
        return e;
      case 163:
        do
          e = e.left;
        while (e.kind !== 79);
        return e;
      case 208:
        do
          e = e.expression;
        while (e.kind !== 79);
        return e;
    }
  }
  function ek(e) {
    return e.kind === 79 || e.kind === 108 || e.kind === 106 || e.kind === 233 || e.kind === 208 && ek(e.expression) || e.kind === 214 && ek(e.expression);
  }
  function KN(e) {
    return Fr(e) && je(e.name) && zl(e.expression);
  }
  function XN(e) {
    if (Fr(e)) {
      const t = XN(e.expression);
      if (t !== void 0)
        return t + "." + Af(e.name);
    } else if (cl(e)) {
      const t = XN(e.expression);
      if (t !== void 0 && yl(e.argumentExpression))
        return t + "." + T1(e.argumentExpression);
    } else if (je(e))
      return ta(e.escapedText);
  }
  function K0(e) {
    return _T(e) && fg(e) === "prototype";
  }
  function tk(e) {
    return e.parent.kind === 163 && e.parent.right === e || e.parent.kind === 208 && e.parent.name === e;
  }
  function lde(e) {
    return Fr(e.parent) && e.parent.name === e || cl(e.parent) && e.parent.argumentExpression === e;
  }
  function cde(e) {
    return Cd(e.parent) && e.parent.right === e || Fr(e.parent) && e.parent.name === e || tb(e.parent) && e.parent.right === e;
  }
  function Xz(e) {
    return e.kind === 207 && e.properties.length === 0;
  }
  function ude(e) {
    return e.kind === 206 && e.elements.length === 0;
  }
  function tC(e) {
    if (!(!F8e(e) || !e.declarations)) {
      for (const t of e.declarations)
        if (t.localSymbol)
          return t.localSymbol;
    }
  }
  function F8e(e) {
    return e && Le(e.declarations) > 0 && Yr(e.declarations[0], 1024);
  }
  function N3(e) {
    return nn(mfe, (t) => cc(e, t));
  }
  function B8e(e) {
    const t = [], r = e.length;
    for (let i = 0; i < r; i++) {
      const o = e.charCodeAt(i);
      o < 128 ? t.push(o) : o < 2048 ? (t.push(o >> 6 | 192), t.push(o & 63 | 128)) : o < 65536 ? (t.push(o >> 12 | 224), t.push(o >> 6 & 63 | 128), t.push(o & 63 | 128)) : o < 131072 ? (t.push(o >> 18 | 240), t.push(o >> 12 & 63 | 128), t.push(o >> 6 & 63 | 128), t.push(o & 63 | 128)) : D.assert(!1, "Unexpected code point");
    }
    return t;
  }
  function dde(e) {
    let t = "";
    const r = B8e(e);
    let i = 0;
    const o = r.length;
    let s, c, f, d;
    for (; i < o; )
      s = r[i] >> 2, c = (r[i] & 3) << 4 | r[i + 1] >> 4, f = (r[i + 1] & 15) << 2 | r[i + 2] >> 6, d = r[i + 2] & 63, i + 1 >= o ? f = d = 64 : i + 2 >= o && (d = 64), t += k1.charAt(s) + k1.charAt(c) + k1.charAt(f) + k1.charAt(d), i += 3;
    return t;
  }
  function G8e(e) {
    let t = "", r = 0;
    const i = e.length;
    for (; r < i; ) {
      const o = e[r];
      if (o < 128)
        t += String.fromCharCode(o), r++;
      else if ((o & 192) === 192) {
        let s = o & 63;
        r++;
        let c = e[r];
        for (; (c & 192) === 128; )
          s = s << 6 | c & 63, r++, c = e[r];
        t += String.fromCharCode(s);
      } else
        t += String.fromCharCode(o), r++;
    }
    return t;
  }
  function fde(e, t) {
    return e && e.base64encode ? e.base64encode(t) : dde(t);
  }
  function _de(e, t) {
    if (e && e.base64decode)
      return e.base64decode(t);
    const r = t.length, i = [];
    let o = 0;
    for (; o < r && t.charCodeAt(o) !== k1.charCodeAt(64); ) {
      const s = k1.indexOf(t[o]), c = k1.indexOf(t[o + 1]), f = k1.indexOf(t[o + 2]), d = k1.indexOf(t[o + 3]), y = (s & 63) << 2 | c >> 4 & 3, h = (c & 15) << 4 | f >> 2 & 15, E = (f & 3) << 6 | d & 63;
      h === 0 && f !== 0 ? i.push(y) : E === 0 && d !== 0 ? i.push(y, h) : i.push(y, h, E), o += 4;
    }
    return G8e(i);
  }
  function Yz(e, t) {
    const r = Ha(t) ? t : t.readFile(e);
    if (!r)
      return;
    const i = rK(e, r);
    return i.error ? void 0 : i.config;
  }
  function nk(e, t) {
    return Yz(e, t) || {};
  }
  function Yp(e, t) {
    return !t.directoryExists || t.directoryExists(e);
  }
  function X0(e) {
    switch (e.newLine) {
      case 0:
        return dfe;
      case 1:
      case void 0:
        return ffe;
    }
  }
  function h_(e, t = e) {
    return D.assert(t >= e || t === -1), { pos: e, end: t };
  }
  function O3(e, t) {
    return h_(e.pos, t);
  }
  function Y0(e, t) {
    return h_(t, e.end);
  }
  function Ov(e) {
    const t = K_(e) ? Li(e.modifiers, Fu) : void 0;
    return t && !Qp(t.end) ? Y0(e, t.end) : e;
  }
  function $p(e) {
    if (to(e) || ac(e))
      return Y0(e, e.name.pos);
    const t = K_(e) ? tl(e.modifiers) : void 0;
    return t && !Qp(t.end) ? Y0(e, t.end) : Ov(e);
  }
  function U8e(e) {
    return e.pos === e.end;
  }
  function $z(e, t) {
    return h_(e, e + yo(t).length);
  }
  function bT(e, t) {
    return mde(e, e, t);
  }
  function P3(e, t, r) {
    return g_(rk(e, r, !1), rk(t, r, !1), r);
  }
  function pde(e, t, r) {
    return g_(e.end, t.end, r);
  }
  function mde(e, t, r) {
    return g_(rk(e, r, !1), t.end, r);
  }
  function YN(e, t, r) {
    return g_(e.end, rk(t, r, !1), r);
  }
  function Qz(e, t, r, i) {
    const o = rk(t, r, i);
    return hI(r, e.end, o);
  }
  function V8e(e, t, r) {
    return hI(r, e.end, t.end);
  }
  function hde(e, t) {
    return !g_(e.pos, e.end, t);
  }
  function g_(e, t, r) {
    return hI(r, e, t) === 0;
  }
  function rk(e, t, r) {
    return Qp(e.pos) ? -1 : Ko(t.text, e.pos, !1, r);
  }
  function gde(e, t, r, i) {
    const o = Ko(r.text, e, !1, i), s = j8e(o, t, r);
    return hI(r, s ?? t, o);
  }
  function yde(e, t, r, i) {
    const o = Ko(r.text, e, !1, i);
    return hI(r, e, Math.min(t, o));
  }
  function j8e(e, t = 0, r) {
    for (; e-- > t; )
      if (!ag(r.text.charCodeAt(e)))
        return e;
  }
  function $N(e) {
    const t = Ea(e);
    if (t)
      switch (t.parent.kind) {
        case 263:
        case 264:
          return t === t.parent.name;
      }
    return !1;
  }
  function ik(e) {
    return lr(e.declarations, Zz);
  }
  function Zz(e) {
    return Ki(e) && e.initializer !== void 0;
  }
  function H8e(e) {
    return e.watch && Ps(e, "watch");
  }
  function Um(e) {
    e.close();
  }
  function Ll(e) {
    return e.flags & 33554432 ? e.links.checkFlags : 0;
  }
  function Qf(e, t = !1) {
    if (e.valueDeclaration) {
      const r = t && e.declarations && nn(e.declarations, e_) || e.flags & 32768 && nn(e.declarations, z_) || e.valueDeclaration, i = _y(r);
      return e.parent && e.parent.flags & 32 ? i : i & -29;
    }
    if (Ll(e) & 6) {
      const r = e.links.checkFlags, i = r & 1024 ? 8 : r & 256 ? 4 : 16, o = r & 2048 ? 32 : 0;
      return i | o;
    }
    return e.flags & 4194304 ? 36 : 0;
  }
  function cf(e, t) {
    return e.flags & 2097152 ? t.getAliasedSymbol(e) : e;
  }
  function ak(e) {
    return e.exportSymbol ? e.exportSymbol.flags | e.flags : e.flags;
  }
  function eq(e) {
    return nC(e) === 1;
  }
  function ok(e) {
    return nC(e) !== 0;
  }
  function nC(e) {
    const { parent: t } = e;
    if (!t)
      return 0;
    switch (t.kind) {
      case 214:
        return nC(t);
      case 222:
      case 221:
        const { operator: i } = t;
        return i === 45 || i === 46 ? r() : 0;
      case 223:
        const { left: o, operatorToken: s } = t;
        return o === e && yy(s.kind) ? s.kind === 63 ? 1 : r() : 0;
      case 208:
        return t.name !== e ? 0 : nC(t);
      case 299: {
        const c = nC(t.parent);
        return e === t.name ? W8e(c) : c;
      }
      case 300:
        return e === t.objectAssignmentInitializer ? 0 : nC(t.parent);
      case 206:
        return nC(t);
      default:
        return 0;
    }
    function r() {
      return t.parent && Dv(t.parent).kind === 241 ? 1 : 2;
    }
  }
  function W8e(e) {
    switch (e) {
      case 0:
        return 1;
      case 1:
        return 0;
      case 2:
        return 2;
      default:
        return D.assertNever(e);
    }
  }
  function tq(e, t) {
    if (!e || !t || Object.keys(e).length !== Object.keys(t).length)
      return !1;
    for (const r in e)
      if (typeof e[r] == "object") {
        if (!tq(e[r], t[r]))
          return !1;
      } else if (typeof e[r] != "function" && e[r] !== t[r])
        return !1;
    return !0;
  }
  function Zf(e, t) {
    e.forEach(t), e.clear();
  }
  function pg(e, t, r) {
    const { onDeleteValue: i, onExistingValue: o } = r;
    e.forEach((s, c) => {
      const f = t.get(c);
      f === void 0 ? (e.delete(c), i(s, c)) : o && o(s, f, c);
    });
  }
  function rC(e, t, r) {
    pg(e, t, r);
    const { createNewValue: i } = r;
    t.forEach((o, s) => {
      e.has(s) || e.set(s, i(s, o));
    });
  }
  function vde(e) {
    if (e.flags & 32) {
      const t = mg(e);
      return !!t && Yr(t, 256);
    }
    return !1;
  }
  function mg(e) {
    var t;
    return (t = e.declarations) == null ? void 0 : t.find(di);
  }
  function ti(e) {
    return e.flags & 3899393 ? e.objectFlags : 0;
  }
  function z8e(e, t) {
    return !!rg(e, (r) => t(r) ? !0 : void 0);
  }
  function M3(e) {
    return !!e && !!e.declarations && !!e.declarations[0] && FO(e.declarations[0]);
  }
  function bde({ moduleSpecifier: e }) {
    return jo(e) ? e.text : Sc(e);
  }
  function nq(e) {
    let t;
    return Ma(e, (r) => {
      __(r) && (t = r);
    }, (r) => {
      for (let i = r.length - 1; i >= 0; i--)
        if (__(r[i])) {
          t = r[i];
          break;
        }
    }), t;
  }
  function vp(e, t, r = !0) {
    return e.has(t) ? !1 : (e.set(t, r), !0);
  }
  function dx(e) {
    return di(e) || nd(e) || uf(e);
  }
  function rq(e) {
    return e >= 179 && e <= 202 || e === 131 || e === 157 || e === 148 || e === 160 || e === 149 || e === 134 || e === 152 || e === 153 || e === 114 || e === 155 || e === 144 || e === 139 || e === 230 || e === 315 || e === 316 || e === 317 || e === 318 || e === 319 || e === 320 || e === 321;
  }
  function ll(e) {
    return e.kind === 208 || e.kind === 209;
  }
  function Ede(e) {
    return e.kind === 208 ? e.name : (D.assert(e.kind === 209), e.argumentExpression);
  }
  function Tde(e) {
    switch (e.kind) {
      case "text":
      case "internal":
        return !0;
      default:
        return !1;
    }
  }
  function iq(e) {
    return e.kind === 272 || e.kind === 276;
  }
  function sk(e) {
    for (; ll(e); )
      e = e.expression;
    return e;
  }
  function q8e(e, t) {
    if (ll(e.parent) && lde(e))
      return r(e.parent);
    function r(i) {
      if (i.kind === 208) {
        const o = t(i.name);
        if (o !== void 0)
          return o;
      } else if (i.kind === 209)
        if (je(i.argumentExpression) || xs(i.argumentExpression)) {
          const o = t(i.argumentExpression);
          if (o !== void 0)
            return o;
        } else
          return;
      if (ll(i.expression))
        return r(i.expression);
      if (je(i.expression))
        return t(i.expression);
    }
  }
  function lk(e, t) {
    for (; ; ) {
      switch (e.kind) {
        case 222:
          e = e.operand;
          continue;
        case 223:
          e = e.left;
          continue;
        case 224:
          e = e.condition;
          continue;
        case 212:
          e = e.tag;
          continue;
        case 210:
          if (t)
            return e;
        case 231:
        case 209:
        case 208:
        case 232:
        case 356:
        case 235:
          e = e.expression;
          continue;
      }
      return e;
    }
  }
  function J8e(e, t) {
    this.flags = e, this.escapedName = t, this.declarations = void 0, this.valueDeclaration = void 0, this.id = 0, this.mergeId = 0, this.parent = void 0, this.members = void 0, this.exports = void 0, this.exportSymbol = void 0, this.constEnumOnlyModule = void 0, this.isReferenced = void 0, this.isAssigned = void 0, this.links = void 0;
  }
  function K8e(e, t) {
    this.flags = t, (D.isDebugging || bi) && (this.checker = e);
  }
  function X8e(e, t) {
    this.flags = t, D.isDebugging && (this.checker = e);
  }
  function aq(e, t, r) {
    this.pos = t, this.end = r, this.kind = e, this.id = 0, this.flags = 0, this.modifierFlagsCache = 0, this.transformFlags = 0, this.parent = void 0, this.original = void 0, this.emitNode = void 0;
  }
  function Y8e(e, t, r) {
    this.pos = t, this.end = r, this.kind = e, this.id = 0, this.flags = 0, this.transformFlags = 0, this.parent = void 0, this.emitNode = void 0;
  }
  function $8e(e, t, r) {
    this.pos = t, this.end = r, this.kind = e, this.id = 0, this.flags = 0, this.transformFlags = 0, this.parent = void 0, this.original = void 0, this.emitNode = void 0;
  }
  function Q8e(e, t, r) {
    this.fileName = e, this.text = t, this.skipTrivia = r || ((i) => i);
  }
  function Sde(e) {
    Gq.push(e), e(jc);
  }
  function xde(e) {
    Object.assign(jc, e), ze(Gq, (t) => t(jc));
  }
  function Th(e, t, r = 0) {
    return e.replace(/{(\d+)}/g, (i, o) => "" + D.checkDefined(t[+o + r]));
  }
  function Ade(e) {
    pO = e;
  }
  function Cde(e) {
    !pO && e && (pO = e());
  }
  function Oo(e) {
    return pO && pO[e.key] || e.message;
  }
  function iC(e, t, r, i) {
    tz(void 0, t, r);
    let o = Oo(i);
    return arguments.length > 4 && (o = Th(o, arguments, 4)), {
      file: void 0,
      start: t,
      length: r,
      messageText: o,
      category: i.category,
      code: i.code,
      reportsUnnecessary: i.reportsUnnecessary,
      fileName: e
    };
  }
  function Z8e(e) {
    return e.file === void 0 && e.start !== void 0 && e.length !== void 0 && typeof e.fileName == "string";
  }
  function Lde(e, t) {
    const r = t.fileName || "", i = t.text.length;
    D.assertEqual(e.fileName, r), D.assertLessThanOrEqual(e.start, i), D.assertLessThanOrEqual(e.start + e.length, i);
    const o = {
      file: t,
      start: e.start,
      length: e.length,
      messageText: e.messageText,
      category: e.category,
      code: e.code,
      reportsUnnecessary: e.reportsUnnecessary
    };
    if (e.relatedInformation) {
      o.relatedInformation = [];
      for (const s of e.relatedInformation)
        Z8e(s) && s.fileName === r ? (D.assertLessThanOrEqual(s.start, i), D.assertLessThanOrEqual(s.start + s.length, i), o.relatedInformation.push(Lde(s, t))) : o.relatedInformation.push(s);
    }
    return o;
  }
  function fx(e, t) {
    const r = [];
    for (const i of e)
      r.push(Lde(i, t));
    return r;
  }
  function Dc(e, t, r, i) {
    tz(e, t, r);
    let o = Oo(i);
    return arguments.length > 4 && (o = Th(o, arguments, 4)), {
      file: e,
      start: t,
      length: r,
      messageText: o,
      category: i.category,
      code: i.code,
      reportsUnnecessary: i.reportsUnnecessary,
      reportsDeprecated: i.reportsDeprecated
    };
  }
  function oq(e, t) {
    let r = Oo(t);
    return arguments.length > 2 && (r = Th(r, arguments, 2)), r;
  }
  function Fs(e) {
    let t = Oo(e);
    return arguments.length > 1 && (t = Th(t, arguments, 1)), {
      file: void 0,
      start: void 0,
      length: void 0,
      messageText: t,
      category: e.category,
      code: e.code,
      reportsUnnecessary: e.reportsUnnecessary,
      reportsDeprecated: e.reportsDeprecated
    };
  }
  function F3(e, t) {
    return {
      file: void 0,
      start: void 0,
      length: void 0,
      code: e.code,
      category: e.category,
      messageText: e.next ? e : e.messageText,
      relatedInformation: t
    };
  }
  function Na(e, t) {
    let r = Oo(t);
    return arguments.length > 2 && (r = Th(r, arguments, 2)), {
      messageText: r,
      category: t.category,
      code: t.code,
      next: e === void 0 || Array.isArray(e) ? e : [e]
    };
  }
  function Ide(e, t) {
    let r = e;
    for (; r.next; )
      r = r.next[0];
    r.next = [t];
  }
  function kde(e) {
    return e.file ? e.file.path : void 0;
  }
  function ck(e, t) {
    return B3(e, t) || e6e(e, t) || 0;
  }
  function B3(e, t) {
    return Nu(kde(e), kde(t)) || Ws(e.start, t.start) || Ws(e.length, t.length) || Ws(e.code, t.code) || wde(e.messageText, t.messageText) || 0;
  }
  function e6e(e, t) {
    return !e.relatedInformation && !t.relatedInformation ? 0 : e.relatedInformation && t.relatedInformation ? Ws(e.relatedInformation.length, t.relatedInformation.length) || ze(e.relatedInformation, (r, i) => {
      const o = t.relatedInformation[i];
      return ck(r, o);
    }) || 0 : e.relatedInformation ? -1 : 1;
  }
  function wde(e, t) {
    if (typeof e == "string" && typeof t == "string")
      return Nu(e, t);
    if (typeof e == "string")
      return -1;
    if (typeof t == "string")
      return 1;
    let r = Nu(e.messageText, t.messageText);
    if (r)
      return r;
    if (!e.next && !t.next)
      return 0;
    if (!e.next)
      return -1;
    if (!t.next)
      return 1;
    const i = Math.min(e.next.length, t.next.length);
    for (let o = 0; o < i; o++)
      if (r = wde(e.next[o], t.next[o]), r)
        return r;
    return e.next.length < t.next.length ? -1 : e.next.length > t.next.length ? 1 : 0;
  }
  function QN(e) {
    return e === 4 || e === 2 || e === 1 || e === 6 ? 1 : 0;
  }
  function Dde(e) {
    if (e.transformFlags & 2)
      return Qu(e) || Rx(e) ? e : Ma(e, Dde);
  }
  function t6e(e) {
    return e.isDeclarationFile ? void 0 : Dde(e);
  }
  function n6e(e) {
    return (e.impliedNodeFormat === 99 || Tc(e.fileName, [".cjs", ".cts", ".mjs", ".mts"])) && !e.isDeclarationFile ? !0 : void 0;
  }
  function ZN(e) {
    switch (Rde(e)) {
      case 3:
        return (o) => {
          o.externalModuleIndicator = KO(o) || !o.isDeclarationFile || void 0;
        };
      case 1:
        return (o) => {
          o.externalModuleIndicator = KO(o);
        };
      case 2:
        const t = [KO];
        (e.jsx === 4 || e.jsx === 5) && t.push(t6e), t.push(n6e);
        const r = Im(...t);
        return (o) => void (o.externalModuleIndicator = r(o));
    }
  }
  function ts(e) {
    var t;
    return (t = e.target) != null ? t : e.module === 100 && 9 || e.module === 199 && 99 || 1;
  }
  function au(e) {
    return typeof e.module == "number" ? e.module : ts(e) >= 2 ? 5 : 1;
  }
  function sq(e) {
    return e >= 5 && e <= 99;
  }
  function vl(e) {
    let t = e.moduleResolution;
    if (t === void 0)
      switch (au(e)) {
        case 1:
          t = 2;
          break;
        case 100:
          t = 3;
          break;
        case 199:
          t = 99;
          break;
        default:
          t = 1;
          break;
      }
    return t;
  }
  function Rde(e) {
    return e.moduleDetection || (au(e) === 100 || au(e) === 199 ? 3 : 2);
  }
  function G3(e) {
    switch (au(e)) {
      case 1:
      case 2:
      case 5:
      case 6:
      case 7:
      case 99:
      case 100:
      case 199:
        return !0;
      default:
        return !1;
    }
  }
  function j_(e) {
    return !!(e.isolatedModules || e.verbatimModuleSyntax);
  }
  function U3(e) {
    return e.verbatimModuleSyntax || e.isolatedModules && e.preserveValueImports;
  }
  function Nde(e) {
    return e.allowUnreachableCode === !1;
  }
  function Ode(e) {
    return e.allowUnusedLabels === !1;
  }
  function V3(e) {
    return !!(W_(e) && e.declarationMap);
  }
  function H_(e) {
    if (e.esModuleInterop !== void 0)
      return e.esModuleInterop;
    switch (au(e)) {
      case 100:
      case 199:
        return !0;
    }
  }
  function ET(e) {
    return e.allowSyntheticDefaultImports !== void 0 ? e.allowSyntheticDefaultImports : H_(e) || au(e) === 4 || vl(e) === 100;
  }
  function _x(e) {
    return e >= 3 && e <= 99 || e === 100;
  }
  function lq(e) {
    const t = vl(e);
    if (!_x(t))
      return !1;
    if (e.resolvePackageJsonExports !== void 0)
      return e.resolvePackageJsonExports;
    switch (t) {
      case 3:
      case 99:
      case 100:
        return !0;
    }
    return !1;
  }
  function r6e(e) {
    const t = vl(e);
    if (!_x(t))
      return !1;
    if (e.resolvePackageJsonExports !== void 0)
      return e.resolvePackageJsonExports;
    switch (t) {
      case 3:
      case 99:
      case 100:
        return !0;
    }
    return !1;
  }
  function TT(e) {
    return e.resolveJsonModule !== void 0 ? e.resolveJsonModule : vl(e) === 100;
  }
  function W_(e) {
    return !!(e.declaration || e.composite);
  }
  function C1(e) {
    return !!(e.preserveConstEnums || j_(e));
  }
  function eO(e) {
    return !!(e.incremental || e.composite);
  }
  function y_(e, t) {
    return e[t] === void 0 ? !!e.strict : !!e[t];
  }
  function tO(e) {
    return e.allowJs === void 0 ? !!e.checkJs : e.allowJs;
  }
  function nO(e) {
    return e.useDefineForClassFields === void 0 ? ts(e) >= 9 : e.useDefineForClassFields;
  }
  function Pde(e, t) {
    return DA(t, e, vK);
  }
  function Mde(e, t) {
    return DA(t, e, bK);
  }
  function Fde(e, t) {
    return DA(t, e, EK);
  }
  function j3(e, t) {
    return t.strictFlag ? y_(e, t.name) : e[t.name];
  }
  function cq(e) {
    const t = e.jsx;
    return t === 2 || t === 4 || t === 5;
  }
  function H3(e, t) {
    const r = t == null ? void 0 : t.pragmas.get("jsximportsource"), i = Va(r) ? r[r.length - 1] : r;
    return e.jsx === 4 || e.jsx === 5 || e.jsxImportSource || i ? (i == null ? void 0 : i.arguments.factory) || e.jsxImportSource || "react" : void 0;
  }
  function W3(e, t) {
    return e ? `${e}/${t.jsx === 5 ? "jsx-dev-runtime" : "jsx-runtime"}` : void 0;
  }
  function uq(e) {
    let t = !1;
    for (let r = 0; r < e.length; r++)
      if (e.charCodeAt(r) === 42)
        if (!t)
          t = !0;
        else
          return !1;
    return !0;
  }
  function Bde(e, t) {
    let r, i, o, s = !1;
    return {
      getSymlinkedFiles: () => o,
      getSymlinkedDirectories: () => r,
      getSymlinkedDirectoriesByRealpath: () => i,
      setSymlinkedFile: (f, d) => (o || (o = /* @__PURE__ */ new Map())).set(f, d),
      setSymlinkedDirectory: (f, d) => {
        let y = zs(f, e, t);
        gk(y) || (y = Ou(y), d !== !1 && !(r != null && r.has(y)) && (i || (i = f_())).add(Ou(d.realPath), f), (r || (r = /* @__PURE__ */ new Map())).set(y, d));
      },
      setSymlinksFromResolutions(f, d) {
        var y, h;
        D.assert(!s), s = !0;
        for (const E of f)
          (y = E.resolvedModules) == null || y.forEach((A) => c(this, A.resolvedModule)), (h = E.resolvedTypeReferenceDirectiveNames) == null || h.forEach((A) => c(this, A.resolvedTypeReferenceDirective));
        d.forEach((E) => c(this, E.resolvedTypeReferenceDirective));
      },
      hasProcessedResolutions: () => s
    };
    function c(f, d) {
      if (!d || !d.originalPath || !d.resolvedFileName)
        return;
      const { resolvedFileName: y, originalPath: h } = d;
      f.setSymlinkedFile(zs(h, e, t), y);
      const [E, A] = i6e(y, h, e, t) || rt;
      E && A && f.setSymlinkedDirectory(A, { real: E, realPath: zs(E, e, t) });
    }
  }
  function i6e(e, t, r, i) {
    const o = ld(Pa(e, r)), s = ld(Pa(t, r));
    let c = !1;
    for (; o.length >= 2 && s.length >= 2 && !Gde(o[o.length - 2], i) && !Gde(s[s.length - 2], i) && i(o[o.length - 1]) === i(s[s.length - 1]); )
      o.pop(), s.pop(), c = !0;
    return c ? [l1(o), l1(s)] : void 0;
  }
  function Gde(e, t) {
    return e !== void 0 && (t(e) === "node_modules" || xa(e, "@"));
  }
  function a6e(e) {
    return zH(e.charCodeAt(0)) ? e.slice(1) : void 0;
  }
  function dq(e, t, r) {
    const i = Dj(e, t, r);
    return i === void 0 ? void 0 : a6e(i);
  }
  function o6e(e) {
    return e.replace(t7, s6e);
  }
  function s6e(e) {
    return "\\" + e;
  }
  function uk(e, t, r) {
    const i = z3(e, t, r);
    return !i || !i.length ? void 0 : `^(${i.map((c) => `(${c})`).join("|")})${r === "exclude" ? "($|/)" : "$"}`;
  }
  function z3(e, t, r) {
    if (!(e === void 0 || e.length === 0))
      return ca(e, (i) => i && Ude(i, t, r, Wq[r]));
  }
  function fq(e) {
    return !/[.*?]/.test(e);
  }
  function _q(e, t, r) {
    const i = e && Ude(e, t, r, Wq[r]);
    return i && `^(${i})${r === "exclude" ? "($|/)" : "$"}`;
  }
  function Ude(e, t, r, { singleAsteriskRegexFragment: i, doubleAsteriskRegexFragment: o, replaceWildcardCharacter: s }) {
    let c = "", f = !1;
    const d = RR(e, t), y = qo(d);
    if (r !== "exclude" && y === "**")
      return;
    d[0] = $E(d[0]), fq(y) && d.push("**", "*");
    let h = 0;
    for (let E of d) {
      if (E === "**")
        c += o;
      else if (r === "directories" && (c += "(", h++), f && (c += Ms), r !== "exclude") {
        let A = "";
        E.charCodeAt(0) === 42 ? (A += "([^./]" + i + ")?", E = E.substr(1)) : E.charCodeAt(0) === 63 && (A += "[^./]", E = E.substr(1)), A += E.replace(t7, s), A !== E && (c += n7), c += A;
      } else
        c += E.replace(t7, s);
      f = !0;
    }
    for (; h > 0; )
      c += ")?", h--;
    return c;
  }
  function pq(e, t) {
    return e === "*" ? t : e === "?" ? "[^/]" : "\\" + e;
  }
  function dk(e, t, r, i, o) {
    e = Jo(e), o = Jo(o);
    const s = Bi(o, e);
    return {
      includeFilePatterns: jt(z3(r, s, "files"), (c) => `^${c}$`),
      includeFilePattern: uk(r, s, "files"),
      includeDirectoryPattern: uk(r, s, "directories"),
      excludePattern: uk(t, s, "exclude"),
      basePaths: l6e(e, r, i)
    };
  }
  function Pv(e, t) {
    return new RegExp(e, t ? "" : "i");
  }
  function mq(e, t, r, i, o, s, c, f, d) {
    e = Jo(e), s = Jo(s);
    const y = dk(e, r, i, o, s), h = y.includeFilePatterns && y.includeFilePatterns.map((G) => Pv(G, o)), E = y.includeDirectoryPattern && Pv(y.includeDirectoryPattern, o), A = y.excludePattern && Pv(y.excludePattern, o), L = h ? h.map(() => []) : [[]], I = /* @__PURE__ */ new Map(), O = ru(o);
    for (const G of y.basePaths)
      k(G, Bi(s, G), c);
    return No(L);
    function k(G, V, H) {
      const te = O(d(V));
      if (I.has(te))
        return;
      I.set(te, !0);
      const { files: X, directories: Y } = f(G);
      for (const P of aI(X, Nu)) {
        const de = Bi(G, P), re = Bi(V, P);
        if (!(t && !Tc(de, t)) && !(A && A.test(re)))
          if (!h)
            L[0].push(de);
          else {
            const ye = vi(h, (ae) => ae.test(re));
            ye !== -1 && L[ye].push(de);
          }
      }
      if (!(H !== void 0 && (H--, H === 0)))
        for (const P of aI(Y, Nu)) {
          const de = Bi(G, P), re = Bi(V, P);
          (!E || E.test(re)) && (!A || !A.test(re)) && k(de, re, H);
        }
    }
  }
  function l6e(e, t, r) {
    const i = [e];
    if (t) {
      const o = [];
      for (const s of t) {
        const c = km(s) ? s : Jo(Bi(e, s));
        o.push(c6e(c));
      }
      o.sort(W4(!r));
      for (const s of o)
        Yn(i, (c) => !Ev(c, s, e, !r)) && i.push(s);
    }
    return i;
  }
  function c6e(e) {
    const t = kc(e, _fe);
    return t < 0 ? bA(e) ? $E(mi(e)) : e : e.substring(0, e.lastIndexOf(Ms, t));
  }
  function q3(e, t) {
    return t || hq(e) || 3;
  }
  function hq(e) {
    switch (e.substr(e.lastIndexOf(".")).toLowerCase()) {
      case ".js":
      case ".cjs":
      case ".mjs":
        return 1;
      case ".jsx":
        return 2;
      case ".ts":
      case ".cts":
      case ".mts":
        return 3;
      case ".tsx":
        return 4;
      case ".json":
        return 6;
      default:
        return 0;
    }
  }
  function fk(e, t) {
    const r = e && tO(e);
    if (!t || t.length === 0)
      return r ? mO : dC;
    const i = r ? mO : dC, o = No(i);
    return [
      ...i,
      ...ia(t, (c) => c.scriptKind === 7 || r && u6e(c.scriptKind) && o.indexOf(c.extension) === -1 ? [c.extension] : void 0)
    ];
  }
  function rO(e, t) {
    return !e || !TT(e) ? t : t === mO ? hfe : t === dC ? pfe : [...t, [".json"]];
  }
  function u6e(e) {
    return e === 1 || e === 2;
  }
  function px(e) {
    return kt(Ek, (t) => cc(e, t));
  }
  function iO(e) {
    return kt(zq, (t) => cc(e, t));
  }
  function Vde({ imports: e }, t = Im(px, iO)) {
    return Jt(e, ({ text: r }) => Sf(r) ? t(r) : void 0) || !1;
  }
  function gq(e, t, r, i) {
    if (e === "js" || t === 99)
      return $k(r) && o() !== 2 ? 3 : 2;
    if (e === "minimal")
      return 0;
    if (e === "index")
      return 1;
    if (!$k(r))
      return Vde(i) ? 2 : 0;
    return o();
    function o() {
      let s = !1;
      const c = i.imports.length ? i.imports.map((f) => f.text) : Zu(i) ? d6e(i).map((f) => f.arguments[0].text) : rt;
      for (const f of c)
        if (Sf(f)) {
          if (iO(f))
            return 3;
          px(f) && (s = !0);
        }
      return s ? 2 : 0;
    }
  }
  function d6e(e) {
    let t = 0, r;
    for (const i of e.statements) {
      if (t > 3)
        break;
      pz(i) ? r = va(r, i.declarationList.declarations.map((o) => o.initializer)) : ou(i) && xd(i.expression, !0) ? r = Fn(r, i.expression) : t++;
    }
    return r || rt;
  }
  function jde(e, t, r) {
    if (!e)
      return !1;
    const i = fk(t, r);
    for (const o of No(rO(t, i)))
      if (cc(e, o))
        return !0;
    return !1;
  }
  function Hde(e) {
    const t = e.match(/\//g);
    return t ? t.length : 0;
  }
  function aO(e, t) {
    return Ws(Hde(e), Hde(t));
  }
  function Ud(e) {
    for (const t of a7) {
      const r = Wde(e, t);
      if (r !== void 0)
        return r;
    }
    return e;
  }
  function Wde(e, t) {
    return cc(e, t) ? oO(e, t) : void 0;
  }
  function oO(e, t) {
    return e.substring(0, e.length - t.length);
  }
  function L1(e, t) {
    return KH(e, t, a7, !1);
  }
  function aC(e) {
    const t = e.indexOf("*");
    return t === -1 ? e : e.indexOf("*", t + 1) !== -1 ? void 0 : {
      prefix: e.substr(0, t),
      suffix: e.substr(t + 1)
    };
  }
  function J3(e) {
    return ia(tg(e), (t) => aC(t));
  }
  function Qp(e) {
    return !(e >= 0);
  }
  function K3(e) {
    return e === ".ts" || e === ".tsx" || e === ".d.ts" || e === ".cts" || e === ".mts" || e === ".d.mts" || e === ".d.cts" || xa(e, ".d.") && ic(e, ".ts");
  }
  function sO(e) {
    return K3(e) || e === ".json";
  }
  function lO(e) {
    const t = Sh(e);
    return t !== void 0 ? t : D.fail(`File ${e} has unknown extension.`);
  }
  function f6e(e) {
    return Sh(e) !== void 0;
  }
  function Sh(e) {
    return nn(a7, (t) => cc(e, t));
  }
  function cO(e, t) {
    return e.checkJsDirective ? e.checkJsDirective.enabled : t.checkJs;
  }
  function yq(e, t) {
    const r = [];
    for (const i of e) {
      if (i === t)
        return t;
      Ha(i) || r.push(i);
    }
    return wj(r, (i) => i, t);
  }
  function vq(e, t) {
    const r = e.indexOf(t);
    return D.assert(r !== -1), e.slice(r);
  }
  function Xo(e, ...t) {
    return t.length && (e.relatedInformation || (e.relatedInformation = []), D.assert(e.relatedInformation !== rt, "Diagnostic had empty array singleton for related info, but is still being constructed!"), e.relatedInformation.push(...t)), e;
  }
  function zde(e, t) {
    D.assert(e.length !== 0);
    let r = t(e[0]), i = r;
    for (let o = 1; o < e.length; o++) {
      const s = t(e[o]);
      s < r ? r = s : s > i && (i = s);
    }
    return { min: r, max: i };
  }
  function bq(e) {
    return { pos: sT(e), end: e.end };
  }
  function Eq(e, t) {
    const r = t.pos - 1, i = Math.min(e.text.length, Ko(e.text, t.end) + 1);
    return { pos: r, end: i };
  }
  function _k(e, t, r) {
    return t.skipLibCheck && e.isDeclarationFile || t.skipDefaultLibCheck && e.hasNoDefaultLib || r.isSourceOfProjectReferenceRedirect(e.fileName);
  }
  function Tq(e, t) {
    return e === t || typeof e == "object" && e !== null && typeof t == "object" && t !== null && Lse(e, t, Tq);
  }
  function pk(e) {
    let t;
    switch (e.charCodeAt(1)) {
      case 98:
      case 66:
        t = 1;
        break;
      case 111:
      case 79:
        t = 3;
        break;
      case 120:
      case 88:
        t = 4;
        break;
      default:
        const y = e.length - 1;
        let h = 0;
        for (; e.charCodeAt(h) === 48; )
          h++;
        return e.slice(h, y) || "0";
    }
    const r = 2, i = e.length - 1, o = (i - r) * t, s = new Uint16Array((o >>> 4) + (o & 15 ? 1 : 0));
    for (let y = i - 1, h = 0; y >= r; y--, h += t) {
      const E = h >>> 4, A = e.charCodeAt(y), I = (A <= 57 ? A - 48 : 10 + A - (A <= 70 ? 65 : 97)) << (h & 15);
      s[E] |= I;
      const O = I >>> 16;
      O && (s[E + 1] |= O);
    }
    let c = "", f = s.length - 1, d = !0;
    for (; d; ) {
      let y = 0;
      d = !1;
      for (let h = f; h >= 0; h--) {
        const E = y << 16 | s[h], A = E / 10 | 0;
        s[h] = A, y = E - A * 10, A && !d && (f = h, d = !0);
      }
      c = y + c;
    }
    return c;
  }
  function I1({ negative: e, base10Value: t }) {
    return (e && t !== "0" ? "-" : "") + t;
  }
  function qde(e) {
    if (X3(e, !1))
      return Sq(e);
  }
  function Sq(e) {
    const t = e.startsWith("-"), r = pk(`${t ? e.slice(1) : e}n`);
    return { negative: t, base10Value: r };
  }
  function X3(e, t) {
    if (e === "")
      return !1;
    const r = dy(99, !1);
    let i = !0;
    r.setOnError(() => i = !1), r.setText(e + "n");
    let o = r.scan();
    const s = o === 40;
    s && (o = r.scan());
    const c = r.getTokenFlags();
    return i && o === 9 && r.getTextPos() === e.length + 1 && !(c & 512) && (!t || e === I1({ negative: s, base10Value: pk(r.getTokenValue()) }));
  }
  function mx(e) {
    return !!(e.flags & 16777216) || p3(e) || m6e(e) || p6e(e) || !(dg(e) || _6e(e));
  }
  function _6e(e) {
    return je(e) && t_(e.parent) && e.parent.name === e;
  }
  function p6e(e) {
    for (; e.kind === 79 || e.kind === 208; )
      e = e.parent;
    if (e.kind !== 164)
      return !1;
    if (Yr(e.parent, 256))
      return !0;
    const t = e.parent.parent.kind;
    return t === 261 || t === 184;
  }
  function m6e(e) {
    if (e.kind !== 79)
      return !1;
    const t = nr(e.parent, (r) => {
      switch (r.kind) {
        case 294:
          return !0;
        case 208:
        case 230:
          return !1;
        default:
          return "quit";
      }
    });
    return (t == null ? void 0 : t.token) === 117 || (t == null ? void 0 : t.parent.kind) === 261;
  }
  function Jde(e) {
    return q_(e) && je(e.typeName);
  }
  function Kde(e, t = F0) {
    if (e.length < 2)
      return !0;
    const r = e[0];
    for (let i = 1, o = e.length; i < o; i++) {
      const s = e[i];
      if (!t(r, s))
        return !1;
    }
    return !0;
  }
  function mk(e, t) {
    return e.pos = t, e;
  }
  function oC(e, t) {
    return e.end = t, e;
  }
  function Vm(e, t, r) {
    return oC(mk(e, t), r);
  }
  function hk(e, t, r) {
    return Vm(e, t, t + r);
  }
  function Xde(e, t) {
    return e && (e.flags = t), e;
  }
  function Vo(e, t) {
    return e && t && (e.parent = t), e;
  }
  function sC(e, t) {
    if (e)
      for (const r of e)
        Vo(r, t);
    return e;
  }
  function Mv(e, t) {
    if (!e)
      return e;
    return XO(e, wA(e) ? r : o), e;
    function r(s, c) {
      if (t && s.parent === c)
        return "skip";
      Vo(s, c);
    }
    function i(s) {
      if (xf(s))
        for (const c of s.jsDoc)
          r(c, s), XO(c, r);
    }
    function o(s, c) {
      return r(s, c) || i(s);
    }
  }
  function h6e(e) {
    return !Rc(e);
  }
  function xq(e) {
    return Bu(e) && Yn(e.elements, h6e);
  }
  function Yde(e) {
    for (D.assertIsDefined(e.parent); ; ) {
      const t = e.parent;
      if (Vd(t)) {
        e = t;
        continue;
      }
      if (ou(t) || Lx(t) || LT(t) && (t.initializer === e || t.incrementor === e))
        return !0;
      if (Nk(t)) {
        if (e !== qo(t.elements))
          return !0;
        e = t;
        continue;
      }
      if (br(t) && t.operatorToken.kind === 27) {
        if (e === t.left)
          return !0;
        e = t;
        continue;
      }
      return !1;
    }
  }
  function gk(e) {
    return kt(wR, (t) => pu(e, t));
  }
  function $de(e) {
    if (!e.parent)
      return;
    switch (e.kind) {
      case 165:
        const { parent: r } = e;
        return r.kind === 192 ? void 0 : r.typeParameters;
      case 166:
        return e.parent.parameters;
      case 201:
        return e.parent.templateSpans;
      case 236:
        return e.parent.templateSpans;
      case 167: {
        const { parent: i } = e;
        return Mx(i) ? i.modifiers : void 0;
      }
      case 294:
        return e.parent.heritageClauses;
    }
    const { parent: t } = e;
    if (DI(e))
      return Bk(e.parent) ? void 0 : e.parent.tags;
    switch (t.kind) {
      case 184:
      case 261:
        return rT(e) ? t.members : void 0;
      case 189:
      case 190:
        return t.types;
      case 186:
      case 206:
      case 357:
      case 272:
      case 276:
        return t.elements;
      case 207:
      case 289:
        return t.properties;
      case 210:
      case 211:
        return Gi(e) ? t.typeArguments : t.expression === e ? void 0 : t.arguments;
      case 281:
      case 285:
        return tN(e) ? t.children : void 0;
      case 283:
      case 282:
        return Gi(e) ? t.typeArguments : void 0;
      case 238:
      case 292:
      case 293:
      case 265:
        return t.statements;
      case 266:
        return t.clauses;
      case 260:
      case 228:
        return Uc(e) ? t.members : void 0;
      case 263:
        return O1(e) ? t.members : void 0;
      case 308:
        return t.statements;
    }
  }
  function Y3(e) {
    if (!e.typeParameters) {
      if (kt(e.parameters, (t) => !Zc(t)))
        return !0;
      if (e.kind !== 216) {
        const t = Yc(e.parameters);
        if (!(t && x1(t)))
          return !0;
      }
    }
    return !1;
  }
  function yk(e) {
    return e === "Infinity" || e === "-Infinity" || e === "NaN";
  }
  function Qde(e) {
    return e.kind === 257 && e.parent.kind === 295;
  }
  function Aq(e) {
    const t = e.valueDeclaration && Fm(e.valueDeclaration);
    return !!t && (Ba(t) || Qde(t));
  }
  function lC(e) {
    return e.kind === 215 || e.kind === 216;
  }
  function ST(e) {
    return e.replace(/\$/gm, () => "\\$");
  }
  function xh(e) {
    return (+e).toString() === e;
  }
  function $3(e, t, r, i) {
    return P_(e, t) ? N.createIdentifier(e) : !i && xh(e) && +e >= 0 ? N.createNumericLiteral(+e) : N.createStringLiteral(e, !!r);
  }
  function vk(e) {
    return !!(e.flags & 262144 && e.isThisType);
  }
  function Cq(e) {
    let t = 0, r = 0, i = 0, o = 0, s;
    ((y) => {
      y[y.BeforeNodeModules = 0] = "BeforeNodeModules", y[y.NodeModules = 1] = "NodeModules", y[y.Scope = 2] = "Scope", y[y.PackageContent = 3] = "PackageContent";
    })(s || (s = {}));
    let c = 0, f = 0, d = 0;
    for (; f >= 0; )
      switch (c = f, f = e.indexOf("/", c + 1), d) {
        case 0:
          e.indexOf(Cy, c) === c && (t = c, r = f, d = 1);
          break;
        case 1:
        case 2:
          d === 1 && e.charAt(c + 1) === "@" ? d = 2 : (i = f, d = 3);
          break;
        case 3:
          e.indexOf(Cy, c) === c ? d = 1 : d = 3;
          break;
      }
    return o = c, d > 1 ? { topLevelNodeModulesIndex: t, topLevelPackageNameIndex: r, packageRootIndex: i, fileNameIndex: o } : void 0;
  }
  function g6e(e) {
    var t;
    return e.kind === 344 ? (t = e.typeExpression) == null ? void 0 : t.type : e.type;
  }
  function cC(e) {
    switch (e.kind) {
      case 165:
      case 260:
      case 261:
      case 262:
      case 263:
      case 349:
      case 341:
      case 343:
        return !0;
      case 270:
        return e.isTypeOnly;
      case 273:
      case 278:
        return e.parent.parent.isTypeOnly;
      default:
        return !1;
    }
  }
  function uO(e) {
    return eb(e) || uc(e) || yc(e) || Nc(e) || nd(e) || cC(e) || Jl(e) && !h1(e) && !Kp(e);
  }
  function dO(e) {
    if (!PM(e))
      return !1;
    const { isBracketed: t, typeExpression: r } = e;
    return t || !!r && r.type.kind === 319;
  }
  function Lq(e, t) {
    if (e.length === 0)
      return !1;
    const r = e.charCodeAt(0);
    return r === 35 ? e.length > 1 && mh(e.charCodeAt(1), t) : mh(r, t);
  }
  function Zde(e) {
    var t;
    return ((t = iJ(e)) == null ? void 0 : t.kind) === 0;
  }
  function fO(e) {
    return fr(e) && (e.type && e.type.kind === 319 || TI(e).some(({ isBracketed: t, typeExpression: r }) => t || !!r && r.type.kind === 319));
  }
  function Iq(e) {
    switch (e.kind) {
      case 169:
      case 168:
        return !!e.questionToken;
      case 166:
        return !!e.questionToken || fO(e);
      case 351:
      case 344:
        return dO(e);
      default:
        return !1;
    }
  }
  function efe(e) {
    const t = e.kind;
    return (t === 208 || t === 209) && Ix(e.expression);
  }
  function kq(e) {
    return fr(e) && Vd(e) && xf(e) && !!fW(e);
  }
  function wq(e) {
    return D.checkDefined(Q3(e));
  }
  function Q3(e) {
    const t = fW(e);
    return t && t.typeExpression && t.typeExpression.type;
  }
  var Z3, $0, _O, e7, bk, Dq, Rq, tfe, Nq, nfe, Oq, Pq, Mq, Fq, rfe, ife, afe, ofe, sfe, Bq, lfe, cfe, ufe, uC, k1, dfe, ffe, jc, Gq, pO, t7, _fe, Uq, n7, Vq, jq, Hq, Wq, dC, zq, pfe, mfe, qq, Ek, mO, hfe, r7, i7, Jq, a7, o7, y6e = C({
    "src/compiler/utilities.ts"() {
      Oa(), Z3 = [], $0 = "tslib", _O = 160, e7 = 1e6, bk = e8e(), Dq = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.NeverAsciiEscape = 1] = "NeverAsciiEscape", e[e.JsxAttributeEscape = 2] = "JsxAttributeEscape", e[e.TerminateUnterminatedLiterals = 4] = "TerminateUnterminatedLiterals", e[e.AllowNumericSeparator = 8] = "AllowNumericSeparator", e))(Dq || {}), Rq = /^(\/\/\/\s*<reference\s+path\s*=\s*)(('[^']*')|("[^"]*")).*?\/>/, tfe = /^(\/\/\/\s*<reference\s+types\s*=\s*)(('[^']*')|("[^"]*")).*?\/>/, Nq = /^(\/\/\/\s*<amd-dependency\s+path\s*=\s*)(('[^']*')|("[^"]*")).*?\/>/, nfe = /^(\/\/\/\s*<reference\s+no-default-lib\s*=\s*)(('[^']*')|("[^"]*"))\s*\/>/, Oq = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Definite = 1] = "Definite", e[e.Compound = 2] = "Compound", e))(Oq || {}), Pq = /* @__PURE__ */ ((e) => (e[e.Normal = 0] = "Normal", e[e.Generator = 1] = "Generator", e[e.Async = 2] = "Async", e[e.Invalid = 4] = "Invalid", e[e.AsyncGenerator = 3] = "AsyncGenerator", e))(Pq || {}), Mq = /* @__PURE__ */ ((e) => (e[e.Left = 0] = "Left", e[e.Right = 1] = "Right", e))(Mq || {}), Fq = /* @__PURE__ */ ((e) => (e[e.Comma = 0] = "Comma", e[e.Spread = 1] = "Spread", e[e.Yield = 2] = "Yield", e[e.Assignment = 3] = "Assignment", e[e.Conditional = 4] = "Conditional", e[e.Coalesce = 4] = "Coalesce", e[e.LogicalOR = 5] = "LogicalOR", e[e.LogicalAND = 6] = "LogicalAND", e[e.BitwiseOR = 7] = "BitwiseOR", e[e.BitwiseXOR = 8] = "BitwiseXOR", e[e.BitwiseAND = 9] = "BitwiseAND", e[e.Equality = 10] = "Equality", e[e.Relational = 11] = "Relational", e[e.Shift = 12] = "Shift", e[e.Additive = 13] = "Additive", e[e.Multiplicative = 14] = "Multiplicative", e[e.Exponentiation = 15] = "Exponentiation", e[e.Unary = 16] = "Unary", e[e.Update = 17] = "Update", e[e.LeftHandSide = 18] = "LeftHandSide", e[e.Member = 19] = "Member", e[e.Primary = 20] = "Primary", e[e.Highest = 20] = "Highest", e[e.Lowest = 0] = "Lowest", e[e.Invalid = -1] = "Invalid", e))(Fq || {}), rfe = /\$\{/g, ife = /[\\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g, afe = /[\\\'\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g, ofe = /\r\n|[\\\`\u0000-\u001f\t\v\f\b\r\u2028\u2029\u0085]/g, sfe = new Map(Object.entries({
        "	": "\\t",
        "\v": "\\v",
        "\f": "\\f",
        "\b": "\\b",
        "\r": "\\r",
        "\n": "\\n",
        "\\": "\\\\",
        '"': '\\"',
        "'": "\\'",
        "`": "\\`",
        "\u2028": "\\u2028",
        "\u2029": "\\u2029",
        "": "\\u0085",
        "\r\n": "\\r\\n"
      })), Bq = /[^\u0000-\u007F]/g, lfe = /[\"\u0000-\u001f\u2028\u2029\u0085]/g, cfe = /[\'\u0000-\u001f\u2028\u2029\u0085]/g, ufe = new Map(Object.entries({
        '"': "&quot;",
        "'": "&apos;"
      })), uC = ["", "    "], k1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", dfe = `\r
`, ffe = `
`, jc = {
        getNodeConstructor: () => aq,
        getTokenConstructor: () => Y8e,
        getIdentifierConstructor: () => $8e,
        getPrivateIdentifierConstructor: () => aq,
        getSourceFileConstructor: () => aq,
        getSymbolConstructor: () => J8e,
        getTypeConstructor: () => K8e,
        getSignatureConstructor: () => X8e,
        getSourceMapSourceConstructor: () => Q8e
      }, Gq = [], t7 = /[^\w\s\/]/g, _fe = [42, 63], Uq = ["node_modules", "bower_components", "jspm_packages"], n7 = `(?!(${Uq.join("|")})(/|$))`, Vq = {
        singleAsteriskRegexFragment: "([^./]|(\\.(?!min\\.js$))?)*",
        doubleAsteriskRegexFragment: `(/${n7}[^/.][^/]*)*?`,
        replaceWildcardCharacter: (e) => pq(e, Vq.singleAsteriskRegexFragment)
      }, jq = {
        singleAsteriskRegexFragment: "[^/]*",
        doubleAsteriskRegexFragment: `(/${n7}[^/.][^/]*)*?`,
        replaceWildcardCharacter: (e) => pq(e, jq.singleAsteriskRegexFragment)
      }, Hq = {
        singleAsteriskRegexFragment: "[^/]*",
        doubleAsteriskRegexFragment: "(/.+?)?",
        replaceWildcardCharacter: (e) => pq(e, Hq.singleAsteriskRegexFragment)
      }, Wq = {
        files: Vq,
        directories: jq,
        exclude: Hq
      }, dC = [[".ts", ".tsx", ".d.ts"], [".cts", ".d.cts"], [".mts", ".d.mts"]], zq = No(dC), pfe = [...dC, [".json"]], mfe = [".d.ts", ".d.cts", ".d.mts", ".cts", ".mts", ".ts", ".tsx", ".cts", ".mts"], qq = [[".js", ".jsx"], [".mjs"], [".cjs"]], Ek = No(qq), mO = [[".ts", ".tsx", ".d.ts", ".js", ".jsx"], [".cts", ".d.cts", ".cjs"], [".mts", ".d.mts", ".mjs"]], hfe = [...mO, [".json"]], r7 = [".d.ts", ".d.cts", ".d.mts"], i7 = [".ts", ".cts", ".mts", ".tsx"], Jq = /* @__PURE__ */ ((e) => (e[e.Minimal = 0] = "Minimal", e[e.Index = 1] = "Index", e[e.JsExtension = 2] = "JsExtension", e[e.TsExtension = 3] = "TsExtension", e))(Jq || {}), a7 = [".d.ts", ".d.mts", ".d.cts", ".mjs", ".mts", ".cjs", ".cts", ".ts", ".js", ".tsx", ".jsx", ".json"], o7 = {
        files: rt,
        directories: rt
      };
    }
  });
  function gfe() {
    let e, t, r, i, o;
    return {
      createBaseSourceFileNode: s,
      createBaseIdentifierNode: c,
      createBasePrivateIdentifierNode: f,
      createBaseTokenNode: d,
      createBaseNode: y
    };
    function s(h) {
      return new (o || (o = jc.getSourceFileConstructor()))(h, -1, -1);
    }
    function c(h) {
      return new (r || (r = jc.getIdentifierConstructor()))(h, -1, -1);
    }
    function f(h) {
      return new (i || (i = jc.getPrivateIdentifierConstructor()))(h, -1, -1);
    }
    function d(h) {
      return new (t || (t = jc.getTokenConstructor()))(h, -1, -1);
    }
    function y(h) {
      return new (e || (e = jc.getNodeConstructor()))(h, -1, -1);
    }
  }
  var v6e = C({
    "src/compiler/factory/baseNodeFactory.ts"() {
      Oa();
    }
  });
  function yfe(e) {
    let t, r;
    return {
      getParenthesizeLeftSideOfBinaryForOperator: i,
      getParenthesizeRightSideOfBinaryForOperator: o,
      parenthesizeLeftSideOfBinary: y,
      parenthesizeRightSideOfBinary: h,
      parenthesizeExpressionOfComputedPropertyName: E,
      parenthesizeConditionOfConditionalExpression: A,
      parenthesizeBranchOfConditionalExpression: L,
      parenthesizeExpressionOfExportDefault: I,
      parenthesizeExpressionOfNew: O,
      parenthesizeLeftSideOfAccess: k,
      parenthesizeOperandOfPostfixUnary: G,
      parenthesizeOperandOfPrefixUnary: V,
      parenthesizeExpressionsOfCommaDelimitedList: H,
      parenthesizeExpressionForDisallowedComma: te,
      parenthesizeExpressionOfExpressionStatement: X,
      parenthesizeConciseBodyOfArrowFunction: Y,
      parenthesizeCheckTypeOfConditionalType: P,
      parenthesizeExtendsTypeOfConditionalType: de,
      parenthesizeConstituentTypesOfUnionType: ye,
      parenthesizeConstituentTypeOfUnionType: re,
      parenthesizeConstituentTypesOfIntersectionType: W,
      parenthesizeConstituentTypeOfIntersectionType: ae,
      parenthesizeOperandOfTypeOperator: ce,
      parenthesizeOperandOfReadonlyTypeOperator: me,
      parenthesizeNonArrayTypeOfPostfixType: ve,
      parenthesizeElementTypesOfTupleType: Te,
      parenthesizeElementTypeOfTupleType: ee,
      parenthesizeTypeOfOptionalType: Ve,
      parenthesizeTypeArguments: Oe,
      parenthesizeLeadingTypeArgument: Be
    };
    function i(Me) {
      t || (t = /* @__PURE__ */ new Map());
      let Ye = t.get(Me);
      return Ye || (Ye = (We) => y(Me, We), t.set(Me, Ye)), Ye;
    }
    function o(Me) {
      r || (r = /* @__PURE__ */ new Map());
      let Ye = r.get(Me);
      return Ye || (Ye = (We) => h(Me, void 0, We), r.set(Me, Ye)), Ye;
    }
    function s(Me, Ye, We, Fe) {
      const st = BN(223, Me), Ct = kz(223, Me), Et = M_(Ye);
      if (!We && Ye.kind === 216 && st > 3)
        return !0;
      const Vt = L3(Et);
      switch (Ws(Vt, st)) {
        case -1:
          return !(!We && Ct === 1 && Ye.kind === 226);
        case 1:
          return !1;
        case 0:
          if (We)
            return Ct === 1;
          if (br(Et) && Et.operatorToken.kind === Me) {
            if (c(Me))
              return !1;
            if (Me === 39) {
              const at = Fe ? f(Fe) : 0;
              if (LI(at) && at === f(Et))
                return !1;
            }
          }
          return Iz(Et) === 0;
      }
    }
    function c(Me) {
      return Me === 41 || Me === 51 || Me === 50 || Me === 52 || Me === 27;
    }
    function f(Me) {
      if (Me = M_(Me), LI(Me.kind))
        return Me.kind;
      if (Me.kind === 223 && Me.operatorToken.kind === 39) {
        if (Me.cachedLiteralKind !== void 0)
          return Me.cachedLiteralKind;
        const Ye = f(Me.left), We = LI(Ye) && Ye === f(Me.right) ? Ye : 0;
        return Me.cachedLiteralKind = We, We;
      }
      return 0;
    }
    function d(Me, Ye, We, Fe) {
      return M_(Ye).kind === 214 ? Ye : s(Me, Ye, We, Fe) ? e.createParenthesizedExpression(Ye) : Ye;
    }
    function y(Me, Ye) {
      return d(Me, Ye, !0);
    }
    function h(Me, Ye, We) {
      return d(Me, We, !1, Ye);
    }
    function E(Me) {
      return Vk(Me) ? e.createParenthesizedExpression(Me) : Me;
    }
    function A(Me) {
      const Ye = BN(224, 57), We = M_(Me), Fe = L3(We);
      return Ws(Fe, Ye) !== 1 ? e.createParenthesizedExpression(Me) : Me;
    }
    function L(Me) {
      const Ye = M_(Me);
      return Vk(Ye) ? e.createParenthesizedExpression(Me) : Me;
    }
    function I(Me) {
      const Ye = M_(Me);
      let We = Vk(Ye);
      if (!We)
        switch (lk(Ye, !1).kind) {
          case 228:
          case 215:
            We = !0;
        }
      return We ? e.createParenthesizedExpression(Me) : Me;
    }
    function O(Me) {
      const Ye = lk(Me, !0);
      switch (Ye.kind) {
        case 210:
          return e.createParenthesizedExpression(Me);
        case 211:
          return Ye.arguments ? Me : e.createParenthesizedExpression(Me);
      }
      return k(Me);
    }
    function k(Me, Ye) {
      const We = M_(Me);
      return Td(We) && (We.kind !== 211 || We.arguments) && (Ye || !yu(We)) ? Me : ht(e.createParenthesizedExpression(Me), Me);
    }
    function G(Me) {
      return Td(Me) ? Me : ht(e.createParenthesizedExpression(Me), Me);
    }
    function V(Me) {
      return CW(Me) ? Me : ht(e.createParenthesizedExpression(Me), Me);
    }
    function H(Me) {
      const Ye = _a(Me, te);
      return ht(e.createNodeArray(Ye, Me.hasTrailingComma), Me);
    }
    function te(Me) {
      const Ye = M_(Me), We = L3(Ye), Fe = BN(223, 27);
      return We > Fe ? Me : ht(e.createParenthesizedExpression(Me), Me);
    }
    function X(Me) {
      const Ye = M_(Me);
      if (no(Ye)) {
        const Fe = Ye.expression, st = M_(Fe).kind;
        if (st === 215 || st === 216) {
          const Ct = e.updateCallExpression(Ye, ht(e.createParenthesizedExpression(Fe), Fe), Ye.typeArguments, Ye.arguments);
          return e.restoreOuterExpressions(Me, Ct, 8);
        }
      }
      const We = lk(Ye, !1).kind;
      return We === 207 || We === 215 ? ht(e.createParenthesizedExpression(Me), Me) : Me;
    }
    function Y(Me) {
      return !co(Me) && (Vk(Me) || lk(Me, !1).kind === 207) ? ht(e.createParenthesizedExpression(Me), Me) : Me;
    }
    function P(Me) {
      switch (Me.kind) {
        case 181:
        case 182:
        case 191:
          return e.createParenthesizedType(Me);
      }
      return Me;
    }
    function de(Me) {
      switch (Me.kind) {
        case 191:
          return e.createParenthesizedType(Me);
      }
      return Me;
    }
    function re(Me) {
      switch (Me.kind) {
        case 189:
        case 190:
          return e.createParenthesizedType(Me);
      }
      return P(Me);
    }
    function ye(Me) {
      return e.createNodeArray(_a(Me, re));
    }
    function ae(Me) {
      switch (Me.kind) {
        case 189:
        case 190:
          return e.createParenthesizedType(Me);
      }
      return re(Me);
    }
    function W(Me) {
      return e.createNodeArray(_a(Me, ae));
    }
    function ce(Me) {
      switch (Me.kind) {
        case 190:
          return e.createParenthesizedType(Me);
      }
      return ae(Me);
    }
    function me(Me) {
      switch (Me.kind) {
        case 195:
          return e.createParenthesizedType(Me);
      }
      return ce(Me);
    }
    function ve(Me) {
      switch (Me.kind) {
        case 192:
        case 195:
        case 183:
          return e.createParenthesizedType(Me);
      }
      return ce(Me);
    }
    function Te(Me) {
      return e.createNodeArray(_a(Me, ee));
    }
    function ee(Me) {
      return Qe(Me) ? e.createParenthesizedType(Me) : Me;
    }
    function Qe(Me) {
      return AC(Me) ? Me.postfix : wk(Me) || Ch(Me) || Ik(Me) || Ax(Me) ? Qe(Me.type) : yC(Me) ? Qe(Me.falseType) : Sx(Me) || DO(Me) ? Qe(qo(Me.types)) : vC(Me) ? !!Me.typeParameter.constraint && Qe(Me.typeParameter.constraint) : !1;
    }
    function Ve(Me) {
      return Qe(Me) ? e.createParenthesizedType(Me) : ve(Me);
    }
    function Be(Me) {
      return bce(Me) && Me.typeParameters ? e.createParenthesizedType(Me) : Me;
    }
    function qe(Me, Ye) {
      return Ye === 0 ? Be(Me) : Me;
    }
    function Oe(Me) {
      if (kt(Me))
        return e.createNodeArray(_a(Me, qe));
    }
  }
  var Kq, b6e = C({
    "src/compiler/factory/parenthesizerRules.ts"() {
      Oa(), Kq = {
        getParenthesizeLeftSideOfBinaryForOperator: (e) => ml,
        getParenthesizeRightSideOfBinaryForOperator: (e) => ml,
        parenthesizeLeftSideOfBinary: (e, t) => t,
        parenthesizeRightSideOfBinary: (e, t, r) => r,
        parenthesizeExpressionOfComputedPropertyName: ml,
        parenthesizeConditionOfConditionalExpression: ml,
        parenthesizeBranchOfConditionalExpression: ml,
        parenthesizeExpressionOfExportDefault: ml,
        parenthesizeExpressionOfNew: (e) => oo(e, Td),
        parenthesizeLeftSideOfAccess: (e) => oo(e, Td),
        parenthesizeOperandOfPostfixUnary: (e) => oo(e, Td),
        parenthesizeOperandOfPrefixUnary: (e) => oo(e, CW),
        parenthesizeExpressionsOfCommaDelimitedList: (e) => oo(e, f1),
        parenthesizeExpressionForDisallowedComma: ml,
        parenthesizeExpressionOfExpressionStatement: ml,
        parenthesizeConciseBodyOfArrowFunction: ml,
        parenthesizeCheckTypeOfConditionalType: ml,
        parenthesizeExtendsTypeOfConditionalType: ml,
        parenthesizeConstituentTypesOfUnionType: (e) => oo(e, f1),
        parenthesizeConstituentTypeOfUnionType: ml,
        parenthesizeConstituentTypesOfIntersectionType: (e) => oo(e, f1),
        parenthesizeConstituentTypeOfIntersectionType: ml,
        parenthesizeOperandOfTypeOperator: ml,
        parenthesizeOperandOfReadonlyTypeOperator: ml,
        parenthesizeNonArrayTypeOfPostfixType: ml,
        parenthesizeElementTypesOfTupleType: (e) => oo(e, f1),
        parenthesizeElementTypeOfTupleType: ml,
        parenthesizeTypeOfOptionalType: ml,
        parenthesizeTypeArguments: (e) => e && oo(e, f1),
        parenthesizeLeadingTypeArgument: ml
      };
    }
  });
  function vfe(e) {
    return {
      convertToFunctionBlock: t,
      convertToFunctionExpression: r,
      convertToArrayAssignmentElement: i,
      convertToObjectAssignmentElement: o,
      convertToAssignmentPattern: s,
      convertToObjectAssignmentPattern: c,
      convertToArrayAssignmentPattern: f,
      convertToAssignmentElementTarget: d
    };
    function t(y, h) {
      if (co(y))
        return y;
      const E = e.createReturnStatement(y);
      ht(E, y);
      const A = e.createBlock([E], h);
      return ht(A, y), A;
    }
    function r(y) {
      if (!y.body)
        return D.fail("Cannot convert a FunctionDeclaration without a body");
      const h = e.createFunctionExpression(eT(y), y.asteriskToken, y.name, y.typeParameters, y.parameters, y.type, y.body);
      return Wr(h, y), ht(h, y), EO(y) && rJ(h, !0), h;
    }
    function i(y) {
      if (_s(y)) {
        if (y.dotDotDotToken)
          return D.assertNode(y.name, je), Wr(ht(e.createSpreadElement(y.name), y), y);
        const h = d(y.name);
        return y.initializer ? Wr(ht(e.createAssignment(h, y.initializer), y), y) : h;
      }
      return oo(y, vt);
    }
    function o(y) {
      if (_s(y)) {
        if (y.dotDotDotToken)
          return D.assertNode(y.name, je), Wr(ht(e.createSpreadAssignment(y.name), y), y);
        if (y.propertyName) {
          const h = d(y.name);
          return Wr(ht(e.createPropertyAssignment(y.propertyName, y.initializer ? e.createAssignment(h, y.initializer) : h), y), y);
        }
        return D.assertNode(y.name, je), Wr(ht(e.createShorthandPropertyAssignment(y.name, y.initializer), y), y);
      }
      return oo(y, my);
    }
    function s(y) {
      switch (y.kind) {
        case 204:
        case 206:
          return f(y);
        case 203:
        case 207:
          return c(y);
      }
    }
    function c(y) {
      return Hm(y) ? Wr(ht(e.createObjectLiteralExpression(jt(y.elements, o)), y), y) : oo(y, Ls);
    }
    function f(y) {
      return bC(y) ? Wr(ht(e.createArrayLiteralExpression(jt(y.elements, i)), y), y) : oo(y, Bu);
    }
    function d(y) {
      return Xa(y) ? s(y) : oo(y, vt);
    }
  }
  var Xq, E6e = C({
    "src/compiler/factory/nodeConverters.ts"() {
      Oa(), Xq = {
        convertToFunctionBlock: Wa,
        convertToFunctionExpression: Wa,
        convertToArrayAssignmentElement: Wa,
        convertToObjectAssignmentElement: Wa,
        convertToAssignmentPattern: Wa,
        convertToObjectAssignmentPattern: Wa,
        convertToArrayAssignmentPattern: Wa,
        convertToAssignmentElementTarget: Wa
      };
    }
  });
  function T6e(e) {
    eJ.push(e);
  }
  function hO(e, t) {
    const r = e & 8 ? S6e : x6e, i = Ed(() => e & 1 ? Kq : yfe(G)), o = Ed(() => e & 2 ? Xq : vfe(G)), s = Lm((b) => (w, F) => U(w, b, F)), c = Lm((b) => (w) => x_(b, w)), f = Lm((b) => (w) => Q_(w, b)), d = Lm((b) => () => aE(b)), y = Lm((b) => (w) => Fy(b, w)), h = Lm((b) => (w, F) => Rs(b, w, F)), E = Lm((b) => (w, F) => mS(b, w, F)), A = Lm((b) => (w, F) => oE(b, w, F)), L = Lm((b) => (w, F) => Bh(b, w, F)), I = Lm((b) => (w, F, se) => c0(b, w, F, se)), O = Lm((b) => (w, F, se) => u0(b, w, F, se)), k = Lm((b) => (w, F, se, Je) => du(b, w, F, se, Je)), G = {
      get parenthesizer() {
        return i();
      },
      get converters() {
        return o();
      },
      baseFactory: t,
      flags: e,
      createNodeArray: V,
      createNumericLiteral: Y,
      createBigIntLiteral: P,
      createStringLiteral: re,
      createStringLiteralFromNode: ye,
      createRegularExpressionLiteral: ae,
      createLiteralLikeNode: W,
      createIdentifier: ve,
      createTempVariable: Te,
      createLoopVariable: ee,
      createUniqueName: Qe,
      getGeneratedNameForNode: Ve,
      createPrivateIdentifier: qe,
      createUniquePrivateName: Me,
      getGeneratedPrivateNameForNode: Ye,
      createToken: Fe,
      createSuper: st,
      createThis: Ct,
      createNull: Et,
      createTrue: Vt,
      createFalse: tt,
      createModifier: at,
      createModifiersFromModifierFlags: sn,
      createQualifiedName: Qt,
      updateQualifiedName: On,
      createComputedPropertyName: jn,
      updateComputedPropertyName: In,
      createTypeParameterDeclaration: Zt,
      updateTypeParameterDeclaration: _r,
      createParameterDeclaration: Ii,
      updateParameterDeclaration: $i,
      createDecorator: Qi,
      updateDecorator: Or,
      createPropertySignature: At,
      updatePropertySignature: vn,
      createPropertyDeclaration: fn,
      updatePropertyDeclaration: rr,
      createMethodSignature: cr,
      updateMethodSignature: Pi,
      createMethodDeclaration: hi,
      updateMethodDeclaration: Rn,
      createConstructorDeclaration: we,
      updateConstructorDeclaration: yt,
      createGetAccessorDeclaration: Ce,
      updateGetAccessorDeclaration: pt,
      createSetAccessorDeclaration: ie,
      updateSetAccessorDeclaration: he,
      createCallSignature: He,
      updateCallSignature: Ze,
      createConstructSignature: Xe,
      updateConstructSignature: Ut,
      createIndexSignature: cn,
      updateIndexSignature: Sn,
      createClassStaticBlockDeclaration: Pn,
      updateClassStaticBlockDeclaration: Ar,
      createTemplateLiteralTypeSpan: Er,
      updateTemplateLiteralTypeSpan: ue,
      createKeywordTypeNode: mt,
      createTypePredicateNode: zt,
      updateTypePredicateNode: it,
      createTypeReferenceNode: K,
      updateTypeReferenceNode: Pe,
      createFunctionTypeNode: Z,
      updateFunctionTypeNode: Re,
      createConstructorTypeNode: Rt,
      updateConstructorTypeNode: _n,
      createTypeQueryNode: Ai,
      updateTypeQueryNode: Ci,
      createTypeLiteralNode: ji,
      updateTypeLiteralNode: mo,
      createArrayTypeNode: To,
      updateArrayTypeNode: io,
      createTupleTypeNode: ua,
      updateTupleTypeNode: Hi,
      createNamedTupleMember: Xr,
      updateNamedTupleMember: ss,
      createOptionalTypeNode: _i,
      updateOptionalTypeNode: da,
      createRestTypeNode: wn,
      updateRestTypeNode: pa,
      createUnionTypeNode: Gl,
      updateUnionTypeNode: Xl,
      createIntersectionTypeNode: Ul,
      updateIntersectionTypeNode: Co,
      createConditionalTypeNode: La,
      updateConditionalTypeNode: Yo,
      createInferTypeNode: Vl,
      updateInferTypeNode: tu,
      createImportTypeNode: Jc,
      updateImportTypeNode: Ds,
      createParenthesizedType: hl,
      updateParenthesizedType: el,
      createThisTypeNode: Ks,
      createTypeOperatorNode: rn,
      updateTypeOperatorNode: jl,
      createIndexedAccessTypeNode: xu,
      updateIndexedAccessTypeNode: Wu,
      createMappedTypeNode: fe,
      updateMappedTypeNode: It,
      createLiteralTypeNode: Ht,
      updateLiteralTypeNode: Q,
      createTemplateLiteralType: qd,
      updateTemplateLiteralType: oc,
      createObjectBindingPattern: ot,
      updateObjectBindingPattern: xt,
      createArrayBindingPattern: mn,
      updateArrayBindingPattern: Dr,
      createBindingElement: Pr,
      updateBindingElement: Ta,
      createArrayLiteralExpression: ls,
      updateArrayLiteralExpression: ho,
      createObjectLiteralExpression: Ho,
      updateObjectLiteralExpression: Ya,
      createPropertyAccessExpression: e & 4 ? (b, w) => or(dc(b, w), 262144) : dc,
      updatePropertyAccessExpression: _d,
      createPropertyAccessChain: e & 4 ? (b, w, F) => or(Es(b, w, F), 262144) : Es,
      updatePropertyAccessChain: ds,
      createElementAccessExpression: Jd,
      updateElementAccessExpression: Hl,
      createElementAccessChain: Nf,
      updateElementAccessChain: xe,
      createCallExpression: Nn,
      updateCallExpression: Xi,
      createCallChain: Lo,
      updateCallChain: oe,
      createNewExpression: ut,
      updateNewExpression: Mt,
      createTaggedTemplateExpression: Pt,
      updateTaggedTemplateExpression: un,
      createTypeAssertion: Vn,
      updateTypeAssertion: Rr,
      createParenthesizedExpression: ni,
      updateParenthesizedExpression: Mi,
      createFunctionExpression: ja,
      updateFunctionExpression: Wo,
      createArrowFunction: Ts,
      updateArrowFunction: Xs,
      createDeleteExpression: pd,
      updateDeleteExpression: _f,
      createTypeOfExpression: tc,
      updateTypeOfExpression: Kd,
      createVoidExpression: Au,
      updateVoidExpression: pf,
      createAwaitExpression: S_,
      updateAwaitExpression: $o,
      createPrefixUnaryExpression: x_,
      updatePrefixUnaryExpression: mf,
      createPostfixUnaryExpression: Q_,
      updatePostfixUnaryExpression: Ip,
      createBinaryExpression: U,
      updateBinaryExpression: qt,
      createConditionalExpression: Xn,
      updateConditionalExpression: Da,
      createTemplateExpression: Ia,
      updateTemplateExpression: Ie,
      createTemplateHead: Tn,
      createTemplateMiddle: Hn,
      createTemplateTail: qr,
      createNoSubstitutionTemplateLiteral: Ji,
      createTemplateLiteralLikeNode: bn,
      createYieldExpression: tr,
      updateYieldExpression: pn,
      createSpreadElement: dr,
      updateSpreadElement: Aa,
      createClassExpression: Ys,
      updateClassExpression: sc,
      createOmittedExpression: Ym,
      createExpressionWithTypeArguments: xg,
      updateExpressionWithTypeArguments: Z_,
      createAsExpression: ub,
      updateAsExpression: Qv,
      createNonNullExpression: u2,
      updateNonNullExpression: rS,
      createSatisfiesExpression: d2,
      updateSatisfiesExpression: Ag,
      createNonNullChain: ep,
      updateNonNullChain: Zv,
      createMetaProperty: Oh,
      updateMetaProperty: kp,
      createTemplateSpan: e0,
      updateTemplateSpan: X1,
      createSemicolonClassElement: db,
      createBlock: Cg,
      updateBlock: iS,
      createVariableStatement: Y1,
      updateVariableStatement: $1,
      createEmptyStatement: Q1,
      createExpressionStatement: t0,
      updateExpressionStatement: f2,
      createIfStatement: Z1,
      updateIfStatement: eE,
      createDoStatement: n0,
      updateDoStatement: fb,
      createWhileStatement: r0,
      updateWhileStatement: aS,
      createForStatement: Lg,
      updateForStatement: Qo,
      createForInStatement: tE,
      updateForInStatement: uL,
      createForOfStatement: Py,
      updateForOfStatement: Ig,
      createContinueStatement: $m,
      updateContinueStatement: tp,
      createBreakStatement: kd,
      updateBreakStatement: wd,
      createReturnStatement: Dd,
      updateReturnStatement: _b,
      createWithStatement: pb,
      updateWithStatement: _2,
      createSwitchStatement: mb,
      updateSwitchStatement: kg,
      createLabeledStatement: hb,
      updateLabeledStatement: oS,
      createThrowStatement: gb,
      updateThrowStatement: dL,
      createTryStatement: p2,
      updateTryStatement: i0,
      createDebuggerStatement: nE,
      createVariableDeclaration: Ke,
      updateVariableDeclaration: My,
      createVariableDeclarationList: om,
      updateVariableDeclarationList: a0,
      createFunctionDeclaration: yb,
      updateFunctionDeclaration: o0,
      createClassDeclaration: sS,
      updateClassDeclaration: ns,
      createInterfaceDeclaration: np,
      updateInterfaceDeclaration: rE,
      createTypeAliasDeclaration: vc,
      updateTypeAliasDeclaration: Ph,
      createEnumDeclaration: vb,
      updateEnumDeclaration: rp,
      createModuleDeclaration: bb,
      updateModuleDeclaration: cu,
      createModuleBlock: Dg,
      updateModuleBlock: Pc,
      createCaseBlock: lS,
      updateCaseBlock: fL,
      createNamespaceExportDeclaration: Wi,
      updateNamespaceExportDeclaration: Jr,
      createImportEqualsDeclaration: Xd,
      updateImportEqualsDeclaration: iE,
      createImportDeclaration: Rg,
      updateImportDeclaration: Mh,
      createImportClause: Zm,
      updateImportClause: _l,
      createAssertClause: Eb,
      updateAssertClause: cS,
      createAssertEntry: Tb,
      updateAssertEntry: uS,
      createImportTypeAssertionContainer: r_,
      updateImportTypeAssertionContainer: m2,
      createNamespaceImport: h2,
      updateNamespaceImport: s0,
      createNamespaceExport: dS,
      updateNamespaceExport: fS,
      createNamedImports: g2,
      updateNamedImports: Sb,
      createImportSpecifier: _S,
      updateImportSpecifier: Of,
      createExportAssignment: Ng,
      updateExportAssignment: wp,
      createExportDeclaration: ip,
      updateExportDeclaration: y2,
      createNamedExports: sm,
      updateNamedExports: pS,
      createExportSpecifier: md,
      updateExportSpecifier: Og,
      createMissingDeclaration: lm,
      createExternalModuleReference: cm,
      updateExternalModuleReference: Pg,
      get createJSDocAllType() {
        return d(315);
      },
      get createJSDocUnknownType() {
        return d(316);
      },
      get createJSDocNonNullableType() {
        return E(318);
      },
      get updateJSDocNonNullableType() {
        return A(318);
      },
      get createJSDocNullableType() {
        return E(317);
      },
      get updateJSDocNullableType() {
        return A(317);
      },
      get createJSDocOptionalType() {
        return y(319);
      },
      get updateJSDocOptionalType() {
        return h(319);
      },
      get createJSDocVariadicType() {
        return y(321);
      },
      get updateJSDocVariadicType() {
        return h(321);
      },
      get createJSDocNamepathType() {
        return y(322);
      },
      get updateJSDocNamepathType() {
        return h(322);
      },
      createJSDocFunctionType: By,
      updateJSDocFunctionType: v2,
      createJSDocTypeLiteral: Ab,
      updateJSDocTypeLiteral: Cb,
      createJSDocTypeExpression: b2,
      updateJSDocTypeExpression: _L,
      createJSDocSignature: E2,
      updateJSDocSignature: pr,
      createJSDocTemplateTag: l0,
      updateJSDocTemplateTag: eh,
      createJSDocTypedefTag: ir,
      updateJSDocTypedefTag: T2,
      createJSDocParameterTag: Gy,
      updateJSDocParameterTag: Lc,
      createJSDocPropertyTag: A_,
      updateJSDocPropertyTag: Dp,
      createJSDocCallbackTag: Uy,
      updateJSDocCallbackTag: sE,
      createJSDocOverloadTag: ap,
      updateJSDocOverloadTag: Vy,
      createJSDocAugmentsTag: Yl,
      updateJSDocAugmentsTag: nc,
      createJSDocImplementsTag: Mg,
      updateJSDocImplementsTag: Fg,
      createJSDocSeeTag: uu,
      updateJSDocSeeTag: C_,
      createJSDocNameReference: th,
      updateJSDocNameReference: Rd,
      createJSDocMemberName: lE,
      updateJSDocMemberName: Lb,
      createJSDocLink: Ib,
      updateJSDocLink: Rp,
      createJSDocLinkCode: Fh,
      updateJSDocLinkCode: cE,
      createJSDocLinkPlain: jy,
      updateJSDocLinkPlain: Rl,
      get createJSDocTypeTag() {
        return O(347);
      },
      get updateJSDocTypeTag() {
        return k(347);
      },
      get createJSDocReturnTag() {
        return O(345);
      },
      get updateJSDocReturnTag() {
        return k(345);
      },
      get createJSDocThisTag() {
        return O(346);
      },
      get updateJSDocThisTag() {
        return k(346);
      },
      get createJSDocAuthorTag() {
        return L(333);
      },
      get updateJSDocAuthorTag() {
        return I(333);
      },
      get createJSDocClassTag() {
        return L(335);
      },
      get updateJSDocClassTag() {
        return I(335);
      },
      get createJSDocPublicTag() {
        return L(336);
      },
      get updateJSDocPublicTag() {
        return I(336);
      },
      get createJSDocPrivateTag() {
        return L(337);
      },
      get updateJSDocPrivateTag() {
        return I(337);
      },
      get createJSDocProtectedTag() {
        return L(338);
      },
      get updateJSDocProtectedTag() {
        return I(338);
      },
      get createJSDocReadonlyTag() {
        return L(339);
      },
      get updateJSDocReadonlyTag() {
        return I(339);
      },
      get createJSDocOverrideTag() {
        return L(340);
      },
      get updateJSDocOverrideTag() {
        return I(340);
      },
      get createJSDocDeprecatedTag() {
        return L(334);
      },
      get updateJSDocDeprecatedTag() {
        return I(334);
      },
      get createJSDocThrowsTag() {
        return O(352);
      },
      get updateJSDocThrowsTag() {
        return k(352);
      },
      get createJSDocSatisfiesTag() {
        return O(353);
      },
      get updateJSDocSatisfiesTag() {
        return k(353);
      },
      createJSDocEnumTag: uE,
      updateJSDocEnumTag: Uh,
      createJSDocUnknownTag: Gh,
      updateJSDocUnknownTag: bc,
      createJSDocText: kb,
      updateJSDocText: hd,
      createJSDocComment: nh,
      updateJSDocComment: wb,
      createJsxElement: d0,
      updateJsxElement: dE,
      createJsxSelfClosingElement: Hy,
      updateJsxSelfClosingElement: hS,
      createJsxOpeningElement: f0,
      updateJsxOpeningElement: Bg,
      createJsxClosingElement: Mf,
      updateJsxClosingElement: fE,
      createJsxFragment: hf,
      createJsxText: _0,
      updateJsxText: S2,
      createJsxOpeningFragment: as,
      createJsxJsxClosingFragment: Ir,
      updateJsxFragment: Vh,
      createJsxAttribute: Yd,
      updateJsxAttribute: gd,
      createJsxAttributes: gS,
      updateJsxAttributes: _E,
      createJsxSpreadAttribute: Wy,
      updateJsxSpreadAttribute: x2,
      createJsxExpression: zy,
      updateJsxExpression: um,
      createCaseClause: Np,
      updateCaseClause: Gg,
      createDefaultClause: p0,
      updateDefaultClause: jh,
      createHeritageClause: dm,
      updateHeritageClause: yS,
      createCatchClause: $l,
      updateCatchClause: gf,
      createPropertyAssignment: rh,
      updatePropertyAssignment: Nd,
      createShorthandPropertyAssignment: qy,
      updateShorthandPropertyAssignment: Ug,
      createSpreadAssignment: Ff,
      updateSpreadAssignment: Ns,
      createEnumMember: mE,
      updateEnumMember: hE,
      createSourceFile: Vg,
      updateSourceFile: bE,
      createRedirectedSourceFile: m0,
      createBundle: EE,
      updateBundle: Jy,
      createUnparsedSource: $d,
      createUnparsedPrologue: pL,
      createUnparsedPrepend: jg,
      createUnparsedTextLike: C2,
      createUnparsedSyntheticReference: L2,
      createInputFiles: S,
      createSyntheticExpression: le,
      createSyntaxList: ke,
      createNotEmittedStatement: on,
      createPartiallyEmittedExpression: Cr,
      updatePartiallyEmittedExpression: Si,
      createCommaListExpression: Vi,
      updateCommaListExpression: _o,
      createEndOfDeclarationMarker: nu,
      createMergeDeclarationMarker: Qd,
      createSyntheticReferenceExpression: yf,
      updateSyntheticReferenceExpression: Ky,
      cloneNode: L_,
      get createComma() {
        return s(27);
      },
      get createAssignment() {
        return s(63);
      },
      get createLogicalOr() {
        return s(56);
      },
      get createLogicalAnd() {
        return s(55);
      },
      get createBitwiseOr() {
        return s(51);
      },
      get createBitwiseXor() {
        return s(52);
      },
      get createBitwiseAnd() {
        return s(50);
      },
      get createStrictEquality() {
        return s(36);
      },
      get createStrictInequality() {
        return s(37);
      },
      get createEquality() {
        return s(34);
      },
      get createInequality() {
        return s(35);
      },
      get createLessThan() {
        return s(29);
      },
      get createLessThanEquals() {
        return s(32);
      },
      get createGreaterThan() {
        return s(31);
      },
      get createGreaterThanEquals() {
        return s(33);
      },
      get createLeftShift() {
        return s(47);
      },
      get createRightShift() {
        return s(48);
      },
      get createUnsignedRightShift() {
        return s(49);
      },
      get createAdd() {
        return s(39);
      },
      get createSubtract() {
        return s(40);
      },
      get createMultiply() {
        return s(41);
      },
      get createDivide() {
        return s(43);
      },
      get createModulo() {
        return s(44);
      },
      get createExponent() {
        return s(42);
      },
      get createPrefixPlus() {
        return c(39);
      },
      get createPrefixMinus() {
        return c(40);
      },
      get createPrefixIncrement() {
        return c(45);
      },
      get createPrefixDecrement() {
        return c(46);
      },
      get createBitwiseNot() {
        return c(54);
      },
      get createLogicalNot() {
        return c(53);
      },
      get createPostfixIncrement() {
        return f(45);
      },
      get createPostfixDecrement() {
        return f(46);
      },
      createImmediatelyInvokedFunctionExpression: TE,
      createImmediatelyInvokedArrowFunction: Bf,
      createVoidZero: ih,
      createExportDefault: Yy,
      createExternalModuleExport: i_,
      createTypeCheck: SE,
      createMethodCall: y0,
      createGlobalMethodCall: rs,
      createFunctionBindCall: fc,
      createFunctionCallCall: _P,
      createFunctionApplyCall: Ss,
      createArraySliceCall: I2,
      createArrayConcatCall: k2,
      createObjectDefinePropertyCall: z,
      createObjectGetOwnPropertyDescriptorCall: be,
      createReflectGetCall: $e,
      createReflectSetCall: Tt,
      createPropertyDescriptor: Cn,
      createCallBinding: Is,
      createAssignmentTargetWrapper: Io,
      inlineExpressions: is,
      getInternalName: Op,
      getLocalName: fm,
      getExportName: Hg,
      getDeclarationName: I_,
      getNamespaceMemberName: $y,
      getExternalModuleOrNamespaceExportName: w2,
      restoreOuterExpressions: xi,
      restoreEnclosingLabel: ki,
      createUseStrictPrologue: op,
      copyPrologue: xE,
      copyStandardPrologue: v0,
      copyCustomPrologue: hL,
      ensureUseStrict: Gf,
      liftToBlock: D2,
      mergeLexicalEnvironment: Qw,
      updateModifiers: Zw
    };
    return ze(eJ, (b) => b(G)), G;
    function V(b, w) {
      if (b === void 0 || b === rt)
        b = [];
      else if (f1(b)) {
        if (w === void 0 || b.hasTrailingComma === w)
          return b.transformFlags === void 0 && bfe(b), D.attachNodeArrayDebugInfo(b), b;
        const Je = b.slice();
        return Je.pos = b.pos, Je.end = b.end, Je.hasTrailingComma = w, Je.transformFlags = b.transformFlags, D.attachNodeArrayDebugInfo(Je), Je;
      }
      const F = b.length, se = F >= 1 && F <= 4 ? b.slice() : b;
      return se.pos = -1, se.end = -1, se.hasTrailingComma = !!w, se.transformFlags = 0, bfe(se), D.attachNodeArrayDebugInfo(se), se;
    }
    function H(b) {
      return t.createBaseNode(b);
    }
    function te(b) {
      const w = H(b);
      return w.symbol = void 0, w.localSymbol = void 0, w;
    }
    function X(b, w) {
      return b !== w && (b.typeArguments = w.typeArguments), r(b, w);
    }
    function Y(b, w = 0) {
      const F = te(8);
      return F.text = typeof b == "number" ? b + "" : b, F.numericLiteralFlags = w, w & 384 && (F.transformFlags |= 1024), F;
    }
    function P(b) {
      const w = We(9);
      return w.text = typeof b == "string" ? b : I1(b) + "n", w.transformFlags |= 4, w;
    }
    function de(b, w) {
      const F = te(10);
      return F.text = b, F.singleQuote = w, F;
    }
    function re(b, w, F) {
      const se = de(b, w);
      return se.hasExtendedUnicodeEscape = F, F && (se.transformFlags |= 1024), se;
    }
    function ye(b) {
      const w = de(U_(b), void 0);
      return w.textSourceNode = b, w;
    }
    function ae(b) {
      const w = We(13);
      return w.text = b, w;
    }
    function W(b, w) {
      switch (b) {
        case 8:
          return Y(w, 0);
        case 9:
          return P(w);
        case 10:
          return re(w, void 0);
        case 11:
          return _0(w, !1);
        case 12:
          return _0(w, !0);
        case 13:
          return ae(w);
        case 14:
          return bn(b, w, void 0, 0);
      }
    }
    function ce(b) {
      const w = t.createBaseIdentifierNode(79);
      return w.escapedText = b, w.jsDoc = void 0, w.flowNode = void 0, w.symbol = void 0, w;
    }
    function me(b, w, F, se) {
      const Je = ce(sl(b));
      return xO(Je, {
        flags: w,
        id: yO,
        prefix: F,
        suffix: se
      }), yO++, Je;
    }
    function ve(b, w, F) {
      w === void 0 && b && (w = ZE(b)), w === 79 && (w = void 0);
      const se = ce(sl(b));
      return F && (se.flags |= 128), se.escapedText === "await" && (se.transformFlags |= 67108864), se.flags & 128 && (se.transformFlags |= 1024), se;
    }
    function Te(b, w, F, se) {
      let Je = 1;
      w && (Je |= 8);
      const Kt = me("", Je, F, se);
      return b && b(Kt), Kt;
    }
    function ee(b) {
      let w = 2;
      return b && (w |= 8), me("", w, void 0, void 0);
    }
    function Qe(b, w = 0, F, se) {
      return D.assert(!(w & 7), "Argument out of range: flags"), D.assert((w & 48) !== 32, "GeneratedIdentifierFlags.FileLevel cannot be set without also setting GeneratedIdentifierFlags.Optimistic"), me(b, 3 | w, F, se);
    }
    function Ve(b, w = 0, F, se) {
      D.assert(!(w & 7), "Argument out of range: flags");
      const Je = b ? og(b) ? RT(!1, F, b, se, Mr) : `generated@${ps(b)}` : "";
      (F || se) && (w |= 16);
      const Kt = me(Je, 4 | w, F, se);
      return Kt.original = b, Kt;
    }
    function Be(b) {
      const w = t.createBasePrivateIdentifierNode(80);
      return w.escapedText = b, w.transformFlags |= 16777216, w;
    }
    function qe(b) {
      return xa(b, "#") || D.fail("First character of private identifier must be #: " + b), Be(sl(b));
    }
    function Oe(b, w, F, se) {
      const Je = Be(sl(b));
      return xO(Je, {
        flags: w,
        id: yO,
        prefix: F,
        suffix: se
      }), yO++, Je;
    }
    function Me(b, w, F) {
      b && !xa(b, "#") && D.fail("First character of private identifier must be #: " + b);
      const se = 8 | (b ? 3 : 1);
      return Oe(b ?? "", se, w, F);
    }
    function Ye(b, w, F) {
      const se = og(b) ? RT(!0, w, b, F, Mr) : `#generated@${ps(b)}`, Kt = Oe(se, 4 | (w || F ? 16 : 0), w, F);
      return Kt.original = b, Kt;
    }
    function We(b) {
      return t.createBaseTokenNode(b);
    }
    function Fe(b) {
      D.assert(b >= 0 && b <= 162, "Invalid token"), D.assert(b <= 14 || b >= 17, "Invalid token. Use 'createTemplateLiteralLikeNode' to create template literals."), D.assert(b <= 8 || b >= 14, "Invalid token. Use 'createLiteralLikeNode' to create literals."), D.assert(b !== 79, "Invalid token. Use 'createIdentifier' to create identifiers");
      const w = We(b);
      let F = 0;
      switch (b) {
        case 132:
          F = 384;
          break;
        case 123:
        case 121:
        case 122:
        case 146:
        case 126:
        case 136:
        case 85:
        case 131:
        case 148:
        case 160:
        case 144:
        case 149:
        case 101:
        case 145:
        case 161:
        case 152:
        case 134:
        case 153:
        case 114:
        case 157:
        case 155:
          F = 1;
          break;
        case 106:
          F = 134218752, w.flowNode = void 0;
          break;
        case 124:
          F = 1024;
          break;
        case 127:
          F = 16777216;
          break;
        case 108:
          F = 16384, w.flowNode = void 0;
          break;
      }
      return F && (w.transformFlags |= F), w;
    }
    function st() {
      return Fe(106);
    }
    function Ct() {
      return Fe(108);
    }
    function Et() {
      return Fe(104);
    }
    function Vt() {
      return Fe(110);
    }
    function tt() {
      return Fe(95);
    }
    function at(b) {
      return Fe(b);
    }
    function sn(b) {
      const w = [];
      return b & 1 && w.push(at(93)), b & 2 && w.push(at(136)), b & 1024 && w.push(at(88)), b & 2048 && w.push(at(85)), b & 4 && w.push(at(123)), b & 8 && w.push(at(121)), b & 16 && w.push(at(122)), b & 256 && w.push(at(126)), b & 32 && w.push(at(124)), b & 16384 && w.push(at(161)), b & 64 && w.push(at(146)), b & 128 && w.push(at(127)), b & 512 && w.push(at(132)), b & 32768 && w.push(at(101)), b & 65536 && w.push(at(145)), w.length ? w : void 0;
    }
    function Qt(b, w) {
      const F = H(163);
      return F.left = b, F.right = El(w), F.transformFlags |= hr(F.left) | Tk(F.right), F.flowNode = void 0, F;
    }
    function On(b, w, F) {
      return b.left !== w || b.right !== F ? r(Qt(w, F), b) : b;
    }
    function jn(b) {
      const w = H(164);
      return w.expression = i().parenthesizeExpressionOfComputedPropertyName(b), w.transformFlags |= hr(w.expression) | 1024 | 131072, w;
    }
    function In(b, w) {
      return b.expression !== w ? r(jn(w), b) : b;
    }
    function Zt(b, w, F, se) {
      const Je = te(165);
      return Je.modifiers = ko(b), Je.name = El(w), Je.constraint = F, Je.default = se, Je.transformFlags = 1, Je.expression = void 0, Je.jsDoc = void 0, Je;
    }
    function _r(b, w, F, se, Je) {
      return b.modifiers !== w || b.name !== F || b.constraint !== se || b.default !== Je ? r(Zt(w, F, se, Je), b) : b;
    }
    function Ii(b, w, F, se, Je, Kt) {
      var Gr, ea;
      const $a = te(166);
      return $a.modifiers = ko(b), $a.dotDotDotToken = w, $a.name = El(F), $a.questionToken = se, $a.type = Je, $a.initializer = Zy(Kt), yT($a.name) ? $a.transformFlags = 1 : $a.transformFlags = Po($a.modifiers) | hr($a.dotDotDotToken) | by($a.name) | hr($a.questionToken) | hr($a.initializer) | (((Gr = $a.questionToken) != null ? Gr : $a.type) ? 1 : 0) | (((ea = $a.dotDotDotToken) != null ? ea : $a.initializer) ? 1024 : 0) | (Gm($a.modifiers) & 16476 ? 8192 : 0), $a.jsDoc = void 0, $a;
    }
    function $i(b, w, F, se, Je, Kt, Gr) {
      return b.modifiers !== w || b.dotDotDotToken !== F || b.name !== se || b.questionToken !== Je || b.type !== Kt || b.initializer !== Gr ? r(Ii(w, F, se, Je, Kt, Gr), b) : b;
    }
    function Qi(b) {
      const w = H(167);
      return w.expression = i().parenthesizeLeftSideOfAccess(b, !1), w.transformFlags |= hr(w.expression) | 1 | 8192 | 33554432, w;
    }
    function Or(b, w) {
      return b.expression !== w ? r(Qi(w), b) : b;
    }
    function At(b, w, F, se) {
      const Je = te(168);
      return Je.modifiers = ko(b), Je.name = El(w), Je.type = se, Je.questionToken = F, Je.transformFlags = 1, Je.initializer = void 0, Je.jsDoc = void 0, Je;
    }
    function vn(b, w, F, se, Je) {
      return b.modifiers !== w || b.name !== F || b.questionToken !== se || b.type !== Je ? Wt(At(w, F, se, Je), b) : b;
    }
    function Wt(b, w) {
      return b !== w && (b.initializer = w.initializer), r(b, w);
    }
    function fn(b, w, F, se, Je) {
      const Kt = te(169);
      Kt.modifiers = ko(b), Kt.name = El(w), Kt.questionToken = F && Fv(F) ? F : void 0, Kt.exclamationToken = F && kO(F) ? F : void 0, Kt.type = se, Kt.initializer = Zy(Je);
      const Gr = Kt.flags & 16777216 || Gm(Kt.modifiers) & 2;
      return Kt.transformFlags = Po(Kt.modifiers) | by(Kt.name) | hr(Kt.initializer) | (Gr || Kt.questionToken || Kt.exclamationToken || Kt.type ? 1 : 0) | (As(Kt.name) || Gm(Kt.modifiers) & 32 && Kt.initializer ? 8192 : 0) | 16777216, Kt.jsDoc = void 0, Kt;
    }
    function rr(b, w, F, se, Je, Kt) {
      return b.modifiers !== w || b.name !== F || b.questionToken !== (se !== void 0 && Fv(se) ? se : void 0) || b.exclamationToken !== (se !== void 0 && kO(se) ? se : void 0) || b.type !== Je || b.initializer !== Kt ? r(fn(w, F, se, Je, Kt), b) : b;
    }
    function cr(b, w, F, se, Je, Kt) {
      const Gr = te(170);
      return Gr.modifiers = ko(b), Gr.name = El(w), Gr.questionToken = F, Gr.typeParameters = ko(se), Gr.parameters = ko(Je), Gr.type = Kt, Gr.transformFlags = 1, Gr.jsDoc = void 0, Gr.locals = void 0, Gr.nextContainer = void 0, Gr.typeArguments = void 0, Gr;
    }
    function Pi(b, w, F, se, Je, Kt, Gr) {
      return b.modifiers !== w || b.name !== F || b.questionToken !== se || b.typeParameters !== Je || b.parameters !== Kt || b.type !== Gr ? X(cr(w, F, se, Je, Kt, Gr), b) : b;
    }
    function hi(b, w, F, se, Je, Kt, Gr, ea) {
      const $a = te(171);
      if ($a.modifiers = ko(b), $a.asteriskToken = w, $a.name = El(F), $a.questionToken = se, $a.exclamationToken = void 0, $a.typeParameters = ko(Je), $a.parameters = V(Kt), $a.type = Gr, $a.body = ea, !$a.body)
        $a.transformFlags = 1;
      else {
        const vf = Gm($a.modifiers) & 512, Wg = !!$a.asteriskToken, zg = vf && Wg;
        $a.transformFlags = Po($a.modifiers) | hr($a.asteriskToken) | by($a.name) | hr($a.questionToken) | Po($a.typeParameters) | Po($a.parameters) | hr($a.type) | hr($a.body) & -67108865 | (zg ? 128 : vf ? 256 : Wg ? 2048 : 0) | ($a.questionToken || $a.typeParameters || $a.type ? 1 : 0) | 1024;
      }
      return $a.typeArguments = void 0, $a.jsDoc = void 0, $a.locals = void 0, $a.nextContainer = void 0, $a.flowNode = void 0, $a.endFlowNode = void 0, $a.returnFlowNode = void 0, $a;
    }
    function Rn(b, w, F, se, Je, Kt, Gr, ea, $a) {
      return b.modifiers !== w || b.asteriskToken !== F || b.name !== se || b.questionToken !== Je || b.typeParameters !== Kt || b.parameters !== Gr || b.type !== ea || b.body !== $a ? an(hi(w, F, se, Je, Kt, Gr, ea, $a), b) : b;
    }
    function an(b, w) {
      return b !== w && (b.exclamationToken = w.exclamationToken), r(b, w);
    }
    function Pn(b) {
      const w = te(172);
      return w.body = b, w.transformFlags = hr(b) | 16777216, w.modifiers = void 0, w.jsDoc = void 0, w.locals = void 0, w.nextContainer = void 0, w.endFlowNode = void 0, w.returnFlowNode = void 0, w;
    }
    function Ar(b, w) {
      return b.body !== w ? Hr(Pn(w), b) : b;
    }
    function Hr(b, w) {
      return b !== w && (b.modifiers = w.modifiers), r(b, w);
    }
    function we(b, w, F) {
      const se = te(173);
      return se.modifiers = ko(b), se.parameters = V(w), se.body = F, se.transformFlags = Po(se.modifiers) | Po(se.parameters) | hr(se.body) & -67108865 | 1024, se.typeParameters = void 0, se.type = void 0, se.typeArguments = void 0, se.jsDoc = void 0, se.locals = void 0, se.nextContainer = void 0, se.endFlowNode = void 0, se.returnFlowNode = void 0, se;
    }
    function yt(b, w, F, se) {
      return b.modifiers !== w || b.parameters !== F || b.body !== se ? Nt(we(w, F, se), b) : b;
    }
    function Nt(b, w) {
      return b !== w && (b.typeParameters = w.typeParameters, b.type = w.type), X(b, w);
    }
    function Ce(b, w, F, se, Je) {
      const Kt = te(174);
      return Kt.modifiers = ko(b), Kt.name = El(w), Kt.parameters = V(F), Kt.type = se, Kt.body = Je, Kt.body ? Kt.transformFlags = Po(Kt.modifiers) | by(Kt.name) | Po(Kt.parameters) | hr(Kt.type) | hr(Kt.body) & -67108865 | (Kt.type ? 1 : 0) : Kt.transformFlags = 1, Kt.typeArguments = void 0, Kt.typeParameters = void 0, Kt.jsDoc = void 0, Kt.locals = void 0, Kt.nextContainer = void 0, Kt.flowNode = void 0, Kt.endFlowNode = void 0, Kt.returnFlowNode = void 0, Kt;
    }
    function pt(b, w, F, se, Je, Kt) {
      return b.modifiers !== w || b.name !== F || b.parameters !== se || b.type !== Je || b.body !== Kt ? _e(Ce(w, F, se, Je, Kt), b) : b;
    }
    function _e(b, w) {
      return b !== w && (b.typeParameters = w.typeParameters), X(b, w);
    }
    function ie(b, w, F, se) {
      const Je = te(175);
      return Je.modifiers = ko(b), Je.name = El(w), Je.parameters = V(F), Je.body = se, Je.body ? Je.transformFlags = Po(Je.modifiers) | by(Je.name) | Po(Je.parameters) | hr(Je.body) & -67108865 | (Je.type ? 1 : 0) : Je.transformFlags = 1, Je.typeArguments = void 0, Je.typeParameters = void 0, Je.type = void 0, Je.jsDoc = void 0, Je.locals = void 0, Je.nextContainer = void 0, Je.flowNode = void 0, Je.endFlowNode = void 0, Je.returnFlowNode = void 0, Je;
    }
    function he(b, w, F, se, Je) {
      return b.modifiers !== w || b.name !== F || b.parameters !== se || b.body !== Je ? j(ie(w, F, se, Je), b) : b;
    }
    function j(b, w) {
      return b !== w && (b.typeParameters = w.typeParameters, b.type = w.type), X(b, w);
    }
    function He(b, w, F) {
      const se = te(176);
      return se.typeParameters = ko(b), se.parameters = ko(w), se.type = F, se.transformFlags = 1, se.jsDoc = void 0, se.locals = void 0, se.nextContainer = void 0, se.typeArguments = void 0, se;
    }
    function Ze(b, w, F, se) {
      return b.typeParameters !== w || b.parameters !== F || b.type !== se ? X(He(w, F, se), b) : b;
    }
    function Xe(b, w, F) {
      const se = te(177);
      return se.typeParameters = ko(b), se.parameters = ko(w), se.type = F, se.transformFlags = 1, se.jsDoc = void 0, se.locals = void 0, se.nextContainer = void 0, se.typeArguments = void 0, se;
    }
    function Ut(b, w, F, se) {
      return b.typeParameters !== w || b.parameters !== F || b.type !== se ? X(Xe(w, F, se), b) : b;
    }
    function cn(b, w, F) {
      const se = te(178);
      return se.modifiers = ko(b), se.parameters = ko(w), se.type = F, se.transformFlags = 1, se.jsDoc = void 0, se.locals = void 0, se.nextContainer = void 0, se.typeArguments = void 0, se;
    }
    function Sn(b, w, F, se) {
      return b.parameters !== F || b.type !== se || b.modifiers !== w ? X(cn(w, F, se), b) : b;
    }
    function Er(b, w) {
      const F = H(201);
      return F.type = b, F.literal = w, F.transformFlags = 1, F;
    }
    function ue(b, w, F) {
      return b.type !== w || b.literal !== F ? r(Er(w, F), b) : b;
    }
    function mt(b) {
      return Fe(b);
    }
    function zt(b, w, F) {
      const se = H(179);
      return se.assertsModifier = b, se.parameterName = El(w), se.type = F, se.transformFlags = 1, se;
    }
    function it(b, w, F, se) {
      return b.assertsModifier !== w || b.parameterName !== F || b.type !== se ? r(zt(w, F, se), b) : b;
    }
    function K(b, w) {
      const F = H(180);
      return F.typeName = El(b), F.typeArguments = w && i().parenthesizeTypeArguments(V(w)), F.transformFlags = 1, F;
    }
    function Pe(b, w, F) {
      return b.typeName !== w || b.typeArguments !== F ? r(K(w, F), b) : b;
    }
    function Z(b, w, F) {
      const se = te(181);
      return se.typeParameters = ko(b), se.parameters = ko(w), se.type = F, se.transformFlags = 1, se.modifiers = void 0, se.jsDoc = void 0, se.locals = void 0, se.nextContainer = void 0, se.typeArguments = void 0, se;
    }
    function Re(b, w, F, se) {
      return b.typeParameters !== w || b.parameters !== F || b.type !== se ? q(Z(w, F, se), b) : b;
    }
    function q(b, w) {
      return b !== w && (b.modifiers = w.modifiers), X(b, w);
    }
    function Rt(...b) {
      return b.length === 4 ? gt(...b) : b.length === 3 ? ft(...b) : D.fail("Incorrect number of arguments specified.");
    }
    function gt(b, w, F, se) {
      const Je = te(182);
      return Je.modifiers = ko(b), Je.typeParameters = ko(w), Je.parameters = ko(F), Je.type = se, Je.transformFlags = 1, Je.jsDoc = void 0, Je.locals = void 0, Je.nextContainer = void 0, Je.typeArguments = void 0, Je;
    }
    function ft(b, w, F) {
      return gt(void 0, b, w, F);
    }
    function _n(...b) {
      return b.length === 5 ? $n(...b) : b.length === 4 ? oi(...b) : D.fail("Incorrect number of arguments specified.");
    }
    function $n(b, w, F, se, Je) {
      return b.modifiers !== w || b.typeParameters !== F || b.parameters !== se || b.type !== Je ? X(Rt(w, F, se, Je), b) : b;
    }
    function oi(b, w, F, se) {
      return $n(b, b.modifiers, w, F, se);
    }
    function Ai(b, w) {
      const F = H(183);
      return F.exprName = b, F.typeArguments = w && i().parenthesizeTypeArguments(w), F.transformFlags = 1, F;
    }
    function Ci(b, w, F) {
      return b.exprName !== w || b.typeArguments !== F ? r(Ai(w, F), b) : b;
    }
    function ji(b) {
      const w = te(184);
      return w.members = V(b), w.transformFlags = 1, w;
    }
    function mo(b, w) {
      return b.members !== w ? r(ji(w), b) : b;
    }
    function To(b) {
      const w = H(185);
      return w.elementType = i().parenthesizeNonArrayTypeOfPostfixType(b), w.transformFlags = 1, w;
    }
    function io(b, w) {
      return b.elementType !== w ? r(To(w), b) : b;
    }
    function ua(b) {
      const w = H(186);
      return w.elements = V(i().parenthesizeElementTypesOfTupleType(b)), w.transformFlags = 1, w;
    }
    function Hi(b, w) {
      return b.elements !== w ? r(ua(w), b) : b;
    }
    function Xr(b, w, F, se) {
      const Je = te(199);
      return Je.dotDotDotToken = b, Je.name = w, Je.questionToken = F, Je.type = se, Je.transformFlags = 1, Je.jsDoc = void 0, Je;
    }
    function ss(b, w, F, se, Je) {
      return b.dotDotDotToken !== w || b.name !== F || b.questionToken !== se || b.type !== Je ? r(Xr(w, F, se, Je), b) : b;
    }
    function _i(b) {
      const w = H(187);
      return w.type = i().parenthesizeTypeOfOptionalType(b), w.transformFlags = 1, w;
    }
    function da(b, w) {
      return b.type !== w ? r(_i(w), b) : b;
    }
    function wn(b) {
      const w = H(188);
      return w.type = b, w.transformFlags = 1, w;
    }
    function pa(b, w) {
      return b.type !== w ? r(wn(w), b) : b;
    }
    function ec(b, w, F) {
      const se = H(b);
      return se.types = G.createNodeArray(F(w)), se.transformFlags = 1, se;
    }
    function rl(b, w, F) {
      return b.types !== w ? r(ec(b.kind, w, F), b) : b;
    }
    function Gl(b) {
      return ec(189, b, i().parenthesizeConstituentTypesOfUnionType);
    }
    function Xl(b, w) {
      return rl(b, w, i().parenthesizeConstituentTypesOfUnionType);
    }
    function Ul(b) {
      return ec(190, b, i().parenthesizeConstituentTypesOfIntersectionType);
    }
    function Co(b, w) {
      return rl(b, w, i().parenthesizeConstituentTypesOfIntersectionType);
    }
    function La(b, w, F, se) {
      const Je = H(191);
      return Je.checkType = i().parenthesizeCheckTypeOfConditionalType(b), Je.extendsType = i().parenthesizeExtendsTypeOfConditionalType(w), Je.trueType = F, Je.falseType = se, Je.transformFlags = 1, Je.locals = void 0, Je.nextContainer = void 0, Je;
    }
    function Yo(b, w, F, se, Je) {
      return b.checkType !== w || b.extendsType !== F || b.trueType !== se || b.falseType !== Je ? r(La(w, F, se, Je), b) : b;
    }
    function Vl(b) {
      const w = H(192);
      return w.typeParameter = b, w.transformFlags = 1, w;
    }
    function tu(b, w) {
      return b.typeParameter !== w ? r(Vl(w), b) : b;
    }
    function qd(b, w) {
      const F = H(200);
      return F.head = b, F.templateSpans = V(w), F.transformFlags = 1, F;
    }
    function oc(b, w, F) {
      return b.head !== w || b.templateSpans !== F ? r(qd(w, F), b) : b;
    }
    function Jc(b, w, F, se, Je = !1) {
      const Kt = H(202);
      return Kt.argument = b, Kt.assertions = w, Kt.qualifier = F, Kt.typeArguments = se && i().parenthesizeTypeArguments(se), Kt.isTypeOf = Je, Kt.transformFlags = 1, Kt;
    }
    function Ds(b, w, F, se, Je, Kt = b.isTypeOf) {
      return b.argument !== w || b.assertions !== F || b.qualifier !== se || b.typeArguments !== Je || b.isTypeOf !== Kt ? r(Jc(w, F, se, Je, Kt), b) : b;
    }
    function hl(b) {
      const w = H(193);
      return w.type = b, w.transformFlags = 1, w;
    }
    function el(b, w) {
      return b.type !== w ? r(hl(w), b) : b;
    }
    function Ks() {
      const b = H(194);
      return b.transformFlags = 1, b;
    }
    function rn(b, w) {
      const F = H(195);
      return F.operator = b, F.type = b === 146 ? i().parenthesizeOperandOfReadonlyTypeOperator(w) : i().parenthesizeOperandOfTypeOperator(w), F.transformFlags = 1, F;
    }
    function jl(b, w) {
      return b.type !== w ? r(rn(b.operator, w), b) : b;
    }
    function xu(b, w) {
      const F = H(196);
      return F.objectType = i().parenthesizeNonArrayTypeOfPostfixType(b), F.indexType = w, F.transformFlags = 1, F;
    }
    function Wu(b, w, F) {
      return b.objectType !== w || b.indexType !== F ? r(xu(w, F), b) : b;
    }
    function fe(b, w, F, se, Je, Kt) {
      const Gr = te(197);
      return Gr.readonlyToken = b, Gr.typeParameter = w, Gr.nameType = F, Gr.questionToken = se, Gr.type = Je, Gr.members = Kt && V(Kt), Gr.transformFlags = 1, Gr.locals = void 0, Gr.nextContainer = void 0, Gr;
    }
    function It(b, w, F, se, Je, Kt, Gr) {
      return b.readonlyToken !== w || b.typeParameter !== F || b.nameType !== se || b.questionToken !== Je || b.type !== Kt || b.members !== Gr ? r(fe(w, F, se, Je, Kt, Gr), b) : b;
    }
    function Ht(b) {
      const w = H(198);
      return w.literal = b, w.transformFlags = 1, w;
    }
    function Q(b, w) {
      return b.literal !== w ? r(Ht(w), b) : b;
    }
    function ot(b) {
      const w = H(203);
      return w.elements = V(b), w.transformFlags |= Po(w.elements) | 1024 | 524288, w.transformFlags & 32768 && (w.transformFlags |= 65664), w;
    }
    function xt(b, w) {
      return b.elements !== w ? r(ot(w), b) : b;
    }
    function mn(b) {
      const w = H(204);
      return w.elements = V(b), w.transformFlags |= Po(w.elements) | 1024 | 524288, w;
    }
    function Dr(b, w) {
      return b.elements !== w ? r(mn(w), b) : b;
    }
    function Pr(b, w, F, se) {
      const Je = te(205);
      return Je.dotDotDotToken = b, Je.propertyName = El(w), Je.name = El(F), Je.initializer = Zy(se), Je.transformFlags |= hr(Je.dotDotDotToken) | by(Je.propertyName) | by(Je.name) | hr(Je.initializer) | (Je.dotDotDotToken ? 32768 : 0) | 1024, Je.flowNode = void 0, Je;
    }
    function Ta(b, w, F, se, Je) {
      return b.propertyName !== F || b.dotDotDotToken !== w || b.name !== se || b.initializer !== Je ? r(Pr(w, F, se, Je), b) : b;
    }
    function ls(b, w) {
      const F = H(206), se = b && tl(b), Je = V(b, se && Rc(se) ? !0 : void 0);
      return F.elements = i().parenthesizeExpressionsOfCommaDelimitedList(Je), F.multiLine = w, F.transformFlags |= Po(F.elements), F;
    }
    function ho(b, w) {
      return b.elements !== w ? r(ls(w, b.multiLine), b) : b;
    }
    function Ho(b, w) {
      const F = te(207);
      return F.properties = V(b), F.multiLine = w, F.transformFlags |= Po(F.properties), F.jsDoc = void 0, F;
    }
    function Ya(b, w) {
      return b.properties !== w ? r(Ho(w, b.multiLine), b) : b;
    }
    function dl(b, w, F) {
      const se = te(208);
      return se.expression = b, se.questionDotToken = w, se.name = F, se.transformFlags = hr(se.expression) | hr(se.questionDotToken) | (je(se.name) ? Tk(se.name) : hr(se.name) | 536870912), se.jsDoc = void 0, se.flowNode = void 0, se;
    }
    function dc(b, w) {
      const F = dl(i().parenthesizeLeftSideOfAccess(b, !1), void 0, El(w));
      return Ck(b) && (F.transformFlags |= 384), F;
    }
    function _d(b, w, F) {
      return RM(b) ? ds(b, w, b.questionDotToken, oo(F, je)) : b.expression !== w || b.name !== F ? r(dc(w, F), b) : b;
    }
    function Es(b, w, F) {
      const se = dl(i().parenthesizeLeftSideOfAccess(b, !0), w, El(F));
      return se.flags |= 32, se.transformFlags |= 32, se;
    }
    function ds(b, w, F, se) {
      return D.assert(!!(b.flags & 32), "Cannot update a PropertyAccessExpression using updatePropertyAccessChain. Use updatePropertyAccess instead."), b.expression !== w || b.questionDotToken !== F || b.name !== se ? r(Es(w, F, se), b) : b;
    }
    function fl(b, w, F) {
      const se = te(209);
      return se.expression = b, se.questionDotToken = w, se.argumentExpression = F, se.transformFlags |= hr(se.expression) | hr(se.questionDotToken) | hr(se.argumentExpression), se.jsDoc = void 0, se.flowNode = void 0, se;
    }
    function Jd(b, w) {
      const F = fl(i().parenthesizeLeftSideOfAccess(b, !1), void 0, b0(w));
      return Ck(b) && (F.transformFlags |= 384), F;
    }
    function Hl(b, w, F) {
      return pW(b) ? xe(b, w, b.questionDotToken, F) : b.expression !== w || b.argumentExpression !== F ? r(Jd(w, F), b) : b;
    }
    function Nf(b, w, F) {
      const se = fl(i().parenthesizeLeftSideOfAccess(b, !0), w, b0(F));
      return se.flags |= 32, se.transformFlags |= 32, se;
    }
    function xe(b, w, F, se) {
      return D.assert(!!(b.flags & 32), "Cannot update a ElementAccessExpression using updateElementAccessChain. Use updateElementAccess instead."), b.expression !== w || b.questionDotToken !== F || b.argumentExpression !== se ? r(Nf(w, F, se), b) : b;
    }
    function Dt(b, w, F, se) {
      const Je = te(210);
      return Je.expression = b, Je.questionDotToken = w, Je.typeArguments = F, Je.arguments = se, Je.transformFlags |= hr(Je.expression) | hr(Je.questionDotToken) | Po(Je.typeArguments) | Po(Je.arguments), Je.typeArguments && (Je.transformFlags |= 1), ud(Je.expression) && (Je.transformFlags |= 16384), Je;
    }
    function Nn(b, w, F) {
      const se = Dt(i().parenthesizeLeftSideOfAccess(b, !1), void 0, ko(w), i().parenthesizeExpressionsOfCommaDelimitedList(V(F)));
      return Lk(se.expression) && (se.transformFlags |= 8388608), se;
    }
    function Xi(b, w, F, se) {
      return tT(b) ? oe(b, w, b.questionDotToken, F, se) : b.expression !== w || b.typeArguments !== F || b.arguments !== se ? r(Nn(w, F, se), b) : b;
    }
    function Lo(b, w, F, se) {
      const Je = Dt(i().parenthesizeLeftSideOfAccess(b, !0), w, ko(F), i().parenthesizeExpressionsOfCommaDelimitedList(V(se)));
      return Je.flags |= 32, Je.transformFlags |= 32, Je;
    }
    function oe(b, w, F, se, Je) {
      return D.assert(!!(b.flags & 32), "Cannot update a CallExpression using updateCallChain. Use updateCall instead."), b.expression !== w || b.questionDotToken !== F || b.typeArguments !== se || b.arguments !== Je ? r(Lo(w, F, se, Je), b) : b;
    }
    function ut(b, w, F) {
      const se = te(211);
      return se.expression = i().parenthesizeExpressionOfNew(b), se.typeArguments = ko(w), se.arguments = F ? i().parenthesizeExpressionsOfCommaDelimitedList(F) : void 0, se.transformFlags |= hr(se.expression) | Po(se.typeArguments) | Po(se.arguments) | 32, se.typeArguments && (se.transformFlags |= 1), se;
    }
    function Mt(b, w, F, se) {
      return b.expression !== w || b.typeArguments !== F || b.arguments !== se ? r(ut(w, F, se), b) : b;
    }
    function Pt(b, w, F) {
      const se = H(212);
      return se.tag = i().parenthesizeLeftSideOfAccess(b, !1), se.typeArguments = ko(w), se.template = F, se.transformFlags |= hr(se.tag) | Po(se.typeArguments) | hr(se.template) | 1024, se.typeArguments && (se.transformFlags |= 1), Dz(se.template) && (se.transformFlags |= 128), se;
    }
    function un(b, w, F, se) {
      return b.tag !== w || b.typeArguments !== F || b.template !== se ? r(Pt(w, F, se), b) : b;
    }
    function Vn(b, w) {
      const F = H(213);
      return F.expression = i().parenthesizeOperandOfPrefixUnary(w), F.type = b, F.transformFlags |= hr(F.expression) | hr(F.type) | 1, F;
    }
    function Rr(b, w, F) {
      return b.type !== w || b.expression !== F ? r(Vn(w, F), b) : b;
    }
    function ni(b) {
      const w = H(214);
      return w.expression = b, w.transformFlags = hr(w.expression), w.jsDoc = void 0, w;
    }
    function Mi(b, w) {
      return b.expression !== w ? r(ni(w), b) : b;
    }
    function ja(b, w, F, se, Je, Kt, Gr) {
      const ea = te(215);
      ea.modifiers = ko(b), ea.asteriskToken = w, ea.name = El(F), ea.typeParameters = ko(se), ea.parameters = V(Je), ea.type = Kt, ea.body = Gr;
      const $a = Gm(ea.modifiers) & 512, vf = !!ea.asteriskToken, Wg = $a && vf;
      return ea.transformFlags = Po(ea.modifiers) | hr(ea.asteriskToken) | by(ea.name) | Po(ea.typeParameters) | Po(ea.parameters) | hr(ea.type) | hr(ea.body) & -67108865 | (Wg ? 128 : $a ? 256 : vf ? 2048 : 0) | (ea.typeParameters || ea.type ? 1 : 0) | 4194304, ea.typeArguments = void 0, ea.jsDoc = void 0, ea.locals = void 0, ea.nextContainer = void 0, ea.flowNode = void 0, ea.endFlowNode = void 0, ea.returnFlowNode = void 0, ea;
    }
    function Wo(b, w, F, se, Je, Kt, Gr, ea) {
      return b.name !== se || b.modifiers !== w || b.asteriskToken !== F || b.typeParameters !== Je || b.parameters !== Kt || b.type !== Gr || b.body !== ea ? X(ja(w, F, se, Je, Kt, Gr, ea), b) : b;
    }
    function Ts(b, w, F, se, Je, Kt) {
      const Gr = te(216);
      Gr.modifiers = ko(b), Gr.typeParameters = ko(w), Gr.parameters = V(F), Gr.type = se, Gr.equalsGreaterThanToken = Je ?? Fe(38), Gr.body = i().parenthesizeConciseBodyOfArrowFunction(Kt);
      const ea = Gm(Gr.modifiers) & 512;
      return Gr.transformFlags = Po(Gr.modifiers) | Po(Gr.typeParameters) | Po(Gr.parameters) | hr(Gr.type) | hr(Gr.equalsGreaterThanToken) | hr(Gr.body) & -67108865 | (Gr.typeParameters || Gr.type ? 1 : 0) | (ea ? 16640 : 0) | 1024, Gr.typeArguments = void 0, Gr.jsDoc = void 0, Gr.locals = void 0, Gr.nextContainer = void 0, Gr.flowNode = void 0, Gr.endFlowNode = void 0, Gr.returnFlowNode = void 0, Gr;
    }
    function Xs(b, w, F, se, Je, Kt, Gr) {
      return b.modifiers !== w || b.typeParameters !== F || b.parameters !== se || b.type !== Je || b.equalsGreaterThanToken !== Kt || b.body !== Gr ? X(Ts(w, F, se, Je, Kt, Gr), b) : b;
    }
    function pd(b) {
      const w = H(217);
      return w.expression = i().parenthesizeOperandOfPrefixUnary(b), w.transformFlags |= hr(w.expression), w;
    }
    function _f(b, w) {
      return b.expression !== w ? r(pd(w), b) : b;
    }
    function tc(b) {
      const w = H(218);
      return w.expression = i().parenthesizeOperandOfPrefixUnary(b), w.transformFlags |= hr(w.expression), w;
    }
    function Kd(b, w) {
      return b.expression !== w ? r(tc(w), b) : b;
    }
    function Au(b) {
      const w = H(219);
      return w.expression = i().parenthesizeOperandOfPrefixUnary(b), w.transformFlags |= hr(w.expression), w;
    }
    function pf(b, w) {
      return b.expression !== w ? r(Au(w), b) : b;
    }
    function S_(b) {
      const w = H(220);
      return w.expression = i().parenthesizeOperandOfPrefixUnary(b), w.transformFlags |= hr(w.expression) | 256 | 128 | 2097152, w;
    }
    function $o(b, w) {
      return b.expression !== w ? r(S_(w), b) : b;
    }
    function x_(b, w) {
      const F = H(221);
      return F.operator = b, F.operand = i().parenthesizeOperandOfPrefixUnary(w), F.transformFlags |= hr(F.operand), (b === 45 || b === 46) && je(F.operand) && !Sl(F.operand) && !Uv(F.operand) && (F.transformFlags |= 268435456), F;
    }
    function mf(b, w) {
      return b.operand !== w ? r(x_(b.operator, w), b) : b;
    }
    function Q_(b, w) {
      const F = H(222);
      return F.operator = w, F.operand = i().parenthesizeOperandOfPostfixUnary(b), F.transformFlags |= hr(F.operand), je(F.operand) && !Sl(F.operand) && !Uv(F.operand) && (F.transformFlags |= 268435456), F;
    }
    function Ip(b, w) {
      return b.operand !== w ? r(Q_(w, b.operator), b) : b;
    }
    function U(b, w, F) {
      const se = te(223), Je = eD(w), Kt = Je.kind;
      return se.left = i().parenthesizeLeftSideOfBinary(Kt, b), se.operatorToken = Je, se.right = i().parenthesizeRightSideOfBinary(Kt, se.left, F), se.transformFlags |= hr(se.left) | hr(se.operatorToken) | hr(se.right), Kt === 60 ? se.transformFlags |= 32 : Kt === 63 ? Ls(se.left) ? se.transformFlags |= 5248 | et(se.left) : Bu(se.left) && (se.transformFlags |= 5120 | et(se.left)) : Kt === 42 || Kt === 67 ? se.transformFlags |= 512 : ZI(Kt) && (se.transformFlags |= 16), Kt === 101 && Ni(se.left) && (se.transformFlags |= 536870912), se.jsDoc = void 0, se;
    }
    function et(b) {
      return JO(b) ? 65536 : 0;
    }
    function qt(b, w, F, se) {
      return b.left !== w || b.operatorToken !== F || b.right !== se ? r(U(w, F, se), b) : b;
    }
    function Xn(b, w, F, se, Je) {
      const Kt = H(224);
      return Kt.condition = i().parenthesizeConditionOfConditionalExpression(b), Kt.questionToken = w ?? Fe(57), Kt.whenTrue = i().parenthesizeBranchOfConditionalExpression(F), Kt.colonToken = se ?? Fe(58), Kt.whenFalse = i().parenthesizeBranchOfConditionalExpression(Je), Kt.transformFlags |= hr(Kt.condition) | hr(Kt.questionToken) | hr(Kt.whenTrue) | hr(Kt.colonToken) | hr(Kt.whenFalse), Kt;
    }
    function Da(b, w, F, se, Je, Kt) {
      return b.condition !== w || b.questionToken !== F || b.whenTrue !== se || b.colonToken !== Je || b.whenFalse !== Kt ? r(Xn(w, F, se, Je, Kt), b) : b;
    }
    function Ia(b, w) {
      const F = H(225);
      return F.head = b, F.templateSpans = V(w), F.transformFlags |= hr(F.head) | Po(F.templateSpans) | 1024, F;
    }
    function Ie(b, w, F) {
      return b.head !== w || b.templateSpans !== F ? r(Ia(w, F), b) : b;
    }
    function Ue(b, w, F, se = 0) {
      D.assert(!(se & -2049), "Unsupported template flags.");
      let Je;
      if (F !== void 0 && F !== w && (Je = A6e(b, F), typeof Je == "object"))
        return D.fail("Invalid raw text");
      if (w === void 0) {
        if (Je === void 0)
          return D.fail("Arguments 'text' and 'rawText' may not both be undefined.");
        w = Je;
      } else
        Je !== void 0 && D.assert(w === Je, "Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.");
      return w;
    }
    function Lt(b) {
      let w = 1024;
      return b && (w |= 128), w;
    }
    function Ot(b, w, F, se) {
      const Je = We(b);
      return Je.text = w, Je.rawText = F, Je.templateFlags = se & 2048, Je.transformFlags = Lt(Je.templateFlags), Je;
    }
    function hn(b, w, F, se) {
      const Je = te(b);
      return Je.text = w, Je.rawText = F, Je.templateFlags = se & 2048, Je.transformFlags = Lt(Je.templateFlags), Je;
    }
    function bn(b, w, F, se) {
      return b === 14 ? hn(b, w, F, se) : Ot(b, w, F, se);
    }
    function Tn(b, w, F) {
      return b = Ue(15, b, w, F), bn(15, b, w, F);
    }
    function Hn(b, w, F) {
      return b = Ue(15, b, w, F), bn(16, b, w, F);
    }
    function qr(b, w, F) {
      return b = Ue(15, b, w, F), bn(17, b, w, F);
    }
    function Ji(b, w, F) {
      return b = Ue(15, b, w, F), hn(14, b, w, F);
    }
    function tr(b, w) {
      D.assert(!b || !!w, "A `YieldExpression` with an asteriskToken must have an expression.");
      const F = H(226);
      return F.expression = w && i().parenthesizeExpressionForDisallowedComma(w), F.asteriskToken = b, F.transformFlags |= hr(F.expression) | hr(F.asteriskToken) | 1024 | 128 | 1048576, F;
    }
    function pn(b, w, F) {
      return b.expression !== F || b.asteriskToken !== w ? r(tr(w, F), b) : b;
    }
    function dr(b) {
      const w = H(227);
      return w.expression = i().parenthesizeExpressionForDisallowedComma(b), w.transformFlags |= hr(w.expression) | 1024 | 32768, w;
    }
    function Aa(b, w) {
      return b.expression !== w ? r(dr(w), b) : b;
    }
    function Ys(b, w, F, se, Je) {
      const Kt = te(228);
      return Kt.modifiers = ko(b), Kt.name = El(w), Kt.typeParameters = ko(F), Kt.heritageClauses = ko(se), Kt.members = V(Je), Kt.transformFlags |= Po(Kt.modifiers) | by(Kt.name) | Po(Kt.typeParameters) | Po(Kt.heritageClauses) | Po(Kt.members) | (Kt.typeParameters ? 1 : 0) | 1024, Kt.jsDoc = void 0, Kt;
    }
    function sc(b, w, F, se, Je, Kt) {
      return b.modifiers !== w || b.name !== F || b.typeParameters !== se || b.heritageClauses !== Je || b.members !== Kt ? r(Ys(w, F, se, Je, Kt), b) : b;
    }
    function Ym() {
      return H(229);
    }
    function xg(b, w) {
      const F = H(230);
      return F.expression = i().parenthesizeLeftSideOfAccess(b, !1), F.typeArguments = w && i().parenthesizeTypeArguments(w), F.transformFlags |= hr(F.expression) | Po(F.typeArguments) | 1024, F;
    }
    function Z_(b, w, F) {
      return b.expression !== w || b.typeArguments !== F ? r(xg(w, F), b) : b;
    }
    function ub(b, w) {
      const F = H(231);
      return F.expression = b, F.type = w, F.transformFlags |= hr(F.expression) | hr(F.type) | 1, F;
    }
    function Qv(b, w, F) {
      return b.expression !== w || b.type !== F ? r(ub(w, F), b) : b;
    }
    function u2(b) {
      const w = H(232);
      return w.expression = i().parenthesizeLeftSideOfAccess(b, !1), w.transformFlags |= hr(w.expression) | 1, w;
    }
    function rS(b, w) {
      return OM(b) ? Zv(b, w) : b.expression !== w ? r(u2(w), b) : b;
    }
    function d2(b, w) {
      const F = H(235);
      return F.expression = b, F.type = w, F.transformFlags |= hr(F.expression) | hr(F.type) | 1, F;
    }
    function Ag(b, w, F) {
      return b.expression !== w || b.type !== F ? r(d2(w, F), b) : b;
    }
    function ep(b) {
      const w = H(232);
      return w.flags |= 32, w.expression = i().parenthesizeLeftSideOfAccess(b, !0), w.transformFlags |= hr(w.expression) | 1, w;
    }
    function Zv(b, w) {
      return D.assert(!!(b.flags & 32), "Cannot update a NonNullExpression using updateNonNullChain. Use updateNonNullExpression instead."), b.expression !== w ? r(ep(w), b) : b;
    }
    function Oh(b, w) {
      const F = H(233);
      switch (F.keywordToken = b, F.name = w, F.transformFlags |= hr(F.name), b) {
        case 103:
          F.transformFlags |= 1024;
          break;
        case 100:
          F.transformFlags |= 4;
          break;
        default:
          return D.assertNever(b);
      }
      return F.flowNode = void 0, F;
    }
    function kp(b, w) {
      return b.name !== w ? r(Oh(b.keywordToken, w), b) : b;
    }
    function e0(b, w) {
      const F = H(236);
      return F.expression = b, F.literal = w, F.transformFlags |= hr(F.expression) | hr(F.literal) | 1024, F;
    }
    function X1(b, w, F) {
      return b.expression !== w || b.literal !== F ? r(e0(w, F), b) : b;
    }
    function db() {
      const b = H(237);
      return b.transformFlags |= 1024, b;
    }
    function Cg(b, w) {
      const F = H(238);
      return F.statements = V(b), F.multiLine = w, F.transformFlags |= Po(F.statements), F.jsDoc = void 0, F.locals = void 0, F.nextContainer = void 0, F;
    }
    function iS(b, w) {
      return b.statements !== w ? r(Cg(w, b.multiLine), b) : b;
    }
    function Y1(b, w) {
      const F = H(240);
      return F.modifiers = ko(b), F.declarationList = Va(w) ? om(w) : w, F.transformFlags |= Po(F.modifiers) | hr(F.declarationList), Gm(F.modifiers) & 2 && (F.transformFlags = 1), F.jsDoc = void 0, F.flowNode = void 0, F;
    }
    function $1(b, w, F) {
      return b.modifiers !== w || b.declarationList !== F ? r(Y1(w, F), b) : b;
    }
    function Q1() {
      const b = H(239);
      return b.jsDoc = void 0, b;
    }
    function t0(b) {
      const w = H(241);
      return w.expression = i().parenthesizeExpressionOfExpressionStatement(b), w.transformFlags |= hr(w.expression), w.jsDoc = void 0, w.flowNode = void 0, w;
    }
    function f2(b, w) {
      return b.expression !== w ? r(t0(w), b) : b;
    }
    function Z1(b, w, F) {
      const se = H(242);
      return se.expression = b, se.thenStatement = Pd(w), se.elseStatement = Pd(F), se.transformFlags |= hr(se.expression) | hr(se.thenStatement) | hr(se.elseStatement), se.jsDoc = void 0, se.flowNode = void 0, se;
    }
    function eE(b, w, F, se) {
      return b.expression !== w || b.thenStatement !== F || b.elseStatement !== se ? r(Z1(w, F, se), b) : b;
    }
    function n0(b, w) {
      const F = H(243);
      return F.statement = Pd(b), F.expression = w, F.transformFlags |= hr(F.statement) | hr(F.expression), F.jsDoc = void 0, F.flowNode = void 0, F;
    }
    function fb(b, w, F) {
      return b.statement !== w || b.expression !== F ? r(n0(w, F), b) : b;
    }
    function r0(b, w) {
      const F = H(244);
      return F.expression = b, F.statement = Pd(w), F.transformFlags |= hr(F.expression) | hr(F.statement), F.jsDoc = void 0, F.flowNode = void 0, F;
    }
    function aS(b, w, F) {
      return b.expression !== w || b.statement !== F ? r(r0(w, F), b) : b;
    }
    function Lg(b, w, F, se) {
      const Je = H(245);
      return Je.initializer = b, Je.condition = w, Je.incrementor = F, Je.statement = Pd(se), Je.transformFlags |= hr(Je.initializer) | hr(Je.condition) | hr(Je.incrementor) | hr(Je.statement), Je.jsDoc = void 0, Je.locals = void 0, Je.nextContainer = void 0, Je.flowNode = void 0, Je;
    }
    function Qo(b, w, F, se, Je) {
      return b.initializer !== w || b.condition !== F || b.incrementor !== se || b.statement !== Je ? r(Lg(w, F, se, Je), b) : b;
    }
    function tE(b, w, F) {
      const se = H(246);
      return se.initializer = b, se.expression = w, se.statement = Pd(F), se.transformFlags |= hr(se.initializer) | hr(se.expression) | hr(se.statement), se.jsDoc = void 0, se.locals = void 0, se.nextContainer = void 0, se.flowNode = void 0, se;
    }
    function uL(b, w, F, se) {
      return b.initializer !== w || b.expression !== F || b.statement !== se ? r(tE(w, F, se), b) : b;
    }
    function Py(b, w, F, se) {
      const Je = H(247);
      return Je.awaitModifier = b, Je.initializer = w, Je.expression = i().parenthesizeExpressionForDisallowedComma(F), Je.statement = Pd(se), Je.transformFlags |= hr(Je.awaitModifier) | hr(Je.initializer) | hr(Je.expression) | hr(Je.statement) | 1024, b && (Je.transformFlags |= 128), Je.jsDoc = void 0, Je.locals = void 0, Je.nextContainer = void 0, Je.flowNode = void 0, Je;
    }
    function Ig(b, w, F, se, Je) {
      return b.awaitModifier !== w || b.initializer !== F || b.expression !== se || b.statement !== Je ? r(Py(w, F, se, Je), b) : b;
    }
    function $m(b) {
      const w = H(248);
      return w.label = El(b), w.transformFlags |= hr(w.label) | 4194304, w.jsDoc = void 0, w.flowNode = void 0, w;
    }
    function tp(b, w) {
      return b.label !== w ? r($m(w), b) : b;
    }
    function kd(b) {
      const w = H(249);
      return w.label = El(b), w.transformFlags |= hr(w.label) | 4194304, w.jsDoc = void 0, w.flowNode = void 0, w;
    }
    function wd(b, w) {
      return b.label !== w ? r(kd(w), b) : b;
    }
    function Dd(b) {
      const w = H(250);
      return w.expression = b, w.transformFlags |= hr(w.expression) | 128 | 4194304, w.jsDoc = void 0, w.flowNode = void 0, w;
    }
    function _b(b, w) {
      return b.expression !== w ? r(Dd(w), b) : b;
    }
    function pb(b, w) {
      const F = H(251);
      return F.expression = b, F.statement = Pd(w), F.transformFlags |= hr(F.expression) | hr(F.statement), F.jsDoc = void 0, F.flowNode = void 0, F;
    }
    function _2(b, w, F) {
      return b.expression !== w || b.statement !== F ? r(pb(w, F), b) : b;
    }
    function mb(b, w) {
      const F = H(252);
      return F.expression = i().parenthesizeExpressionForDisallowedComma(b), F.caseBlock = w, F.transformFlags |= hr(F.expression) | hr(F.caseBlock), F.jsDoc = void 0, F.flowNode = void 0, F.possiblyExhaustive = !1, F;
    }
    function kg(b, w, F) {
      return b.expression !== w || b.caseBlock !== F ? r(mb(w, F), b) : b;
    }
    function hb(b, w) {
      const F = H(253);
      return F.label = El(b), F.statement = Pd(w), F.transformFlags |= hr(F.label) | hr(F.statement), F.jsDoc = void 0, F.flowNode = void 0, F;
    }
    function oS(b, w, F) {
      return b.label !== w || b.statement !== F ? r(hb(w, F), b) : b;
    }
    function gb(b) {
      const w = H(254);
      return w.expression = b, w.transformFlags |= hr(w.expression), w.jsDoc = void 0, w.flowNode = void 0, w;
    }
    function dL(b, w) {
      return b.expression !== w ? r(gb(w), b) : b;
    }
    function p2(b, w, F) {
      const se = H(255);
      return se.tryBlock = b, se.catchClause = w, se.finallyBlock = F, se.transformFlags |= hr(se.tryBlock) | hr(se.catchClause) | hr(se.finallyBlock), se.jsDoc = void 0, se.flowNode = void 0, se;
    }
    function i0(b, w, F, se) {
      return b.tryBlock !== w || b.catchClause !== F || b.finallyBlock !== se ? r(p2(w, F, se), b) : b;
    }
    function nE() {
      const b = H(256);
      return b.jsDoc = void 0, b.flowNode = void 0, b;
    }
    function Ke(b, w, F, se) {
      var Je;
      const Kt = te(257);
      return Kt.name = El(b), Kt.exclamationToken = w, Kt.type = F, Kt.initializer = Zy(se), Kt.transformFlags |= by(Kt.name) | hr(Kt.initializer) | (((Je = Kt.exclamationToken) != null ? Je : Kt.type) ? 1 : 0), Kt.jsDoc = void 0, Kt;
    }
    function My(b, w, F, se, Je) {
      return b.name !== w || b.type !== se || b.exclamationToken !== F || b.initializer !== Je ? r(Ke(w, F, se, Je), b) : b;
    }
    function om(b, w = 0) {
      const F = H(258);
      return F.flags |= w & 3, F.declarations = V(b), F.transformFlags |= Po(F.declarations) | 4194304, w & 3 && (F.transformFlags |= 263168), F;
    }
    function a0(b, w) {
      return b.declarations !== w ? r(om(w, b.flags), b) : b;
    }
    function yb(b, w, F, se, Je, Kt, Gr) {
      const ea = te(259);
      if (ea.modifiers = ko(b), ea.asteriskToken = w, ea.name = El(F), ea.typeParameters = ko(se), ea.parameters = V(Je), ea.type = Kt, ea.body = Gr, !ea.body || Gm(ea.modifiers) & 2)
        ea.transformFlags = 1;
      else {
        const $a = Gm(ea.modifiers) & 512, vf = !!ea.asteriskToken, Wg = $a && vf;
        ea.transformFlags = Po(ea.modifiers) | hr(ea.asteriskToken) | by(ea.name) | Po(ea.typeParameters) | Po(ea.parameters) | hr(ea.type) | hr(ea.body) & -67108865 | (Wg ? 128 : $a ? 256 : vf ? 2048 : 0) | (ea.typeParameters || ea.type ? 1 : 0) | 4194304;
      }
      return ea.typeArguments = void 0, ea.jsDoc = void 0, ea.locals = void 0, ea.nextContainer = void 0, ea.endFlowNode = void 0, ea.returnFlowNode = void 0, ea;
    }
    function o0(b, w, F, se, Je, Kt, Gr, ea) {
      return b.modifiers !== w || b.asteriskToken !== F || b.name !== se || b.typeParameters !== Je || b.parameters !== Kt || b.type !== Gr || b.body !== ea ? wg(yb(w, F, se, Je, Kt, Gr, ea), b) : b;
    }
    function wg(b, w) {
      return b !== w && b.modifiers === w.modifiers && (b.modifiers = w.modifiers), X(b, w);
    }
    function sS(b, w, F, se, Je) {
      const Kt = te(260);
      return Kt.modifiers = ko(b), Kt.name = El(w), Kt.typeParameters = ko(F), Kt.heritageClauses = ko(se), Kt.members = V(Je), Gm(Kt.modifiers) & 2 ? Kt.transformFlags = 1 : (Kt.transformFlags |= Po(Kt.modifiers) | by(Kt.name) | Po(Kt.typeParameters) | Po(Kt.heritageClauses) | Po(Kt.members) | (Kt.typeParameters ? 1 : 0) | 1024, Kt.transformFlags & 8192 && (Kt.transformFlags |= 1)), Kt.jsDoc = void 0, Kt;
    }
    function ns(b, w, F, se, Je, Kt) {
      return b.modifiers !== w || b.name !== F || b.typeParameters !== se || b.heritageClauses !== Je || b.members !== Kt ? r(sS(w, F, se, Je, Kt), b) : b;
    }
    function np(b, w, F, se, Je) {
      const Kt = te(261);
      return Kt.modifiers = ko(b), Kt.name = El(w), Kt.typeParameters = ko(F), Kt.heritageClauses = ko(se), Kt.members = V(Je), Kt.transformFlags = 1, Kt.jsDoc = void 0, Kt;
    }
    function rE(b, w, F, se, Je, Kt) {
      return b.modifiers !== w || b.name !== F || b.typeParameters !== se || b.heritageClauses !== Je || b.members !== Kt ? r(np(w, F, se, Je, Kt), b) : b;
    }
    function vc(b, w, F, se) {
      const Je = te(262);
      return Je.modifiers = ko(b), Je.name = El(w), Je.typeParameters = ko(F), Je.type = se, Je.transformFlags = 1, Je.jsDoc = void 0, Je.locals = void 0, Je.nextContainer = void 0, Je;
    }
    function Ph(b, w, F, se, Je) {
      return b.modifiers !== w || b.name !== F || b.typeParameters !== se || b.type !== Je ? r(vc(w, F, se, Je), b) : b;
    }
    function vb(b, w, F) {
      const se = te(263);
      return se.modifiers = ko(b), se.name = El(w), se.members = V(F), se.transformFlags |= Po(se.modifiers) | hr(se.name) | Po(se.members) | 1, se.transformFlags &= -67108865, se.jsDoc = void 0, se;
    }
    function rp(b, w, F, se) {
      return b.modifiers !== w || b.name !== F || b.members !== se ? r(vb(w, F, se), b) : b;
    }
    function bb(b, w, F, se = 0) {
      const Je = te(264);
      return Je.modifiers = ko(b), Je.flags |= se & 1044, Je.name = w, Je.body = F, Gm(Je.modifiers) & 2 ? Je.transformFlags = 1 : Je.transformFlags |= Po(Je.modifiers) | hr(Je.name) | hr(Je.body) | 1, Je.transformFlags &= -67108865, Je.jsDoc = void 0, Je.locals = void 0, Je.nextContainer = void 0, Je;
    }
    function cu(b, w, F, se) {
      return b.modifiers !== w || b.name !== F || b.body !== se ? r(bb(w, F, se, b.flags), b) : b;
    }
    function Dg(b) {
      const w = H(265);
      return w.statements = V(b), w.transformFlags |= Po(w.statements), w.jsDoc = void 0, w;
    }
    function Pc(b, w) {
      return b.statements !== w ? r(Dg(w), b) : b;
    }
    function lS(b) {
      const w = H(266);
      return w.clauses = V(b), w.transformFlags |= Po(w.clauses), w.locals = void 0, w.nextContainer = void 0, w;
    }
    function fL(b, w) {
      return b.clauses !== w ? r(lS(w), b) : b;
    }
    function Wi(b) {
      const w = te(267);
      return w.name = El(b), w.transformFlags |= Tk(w.name) | 1, w.modifiers = void 0, w.jsDoc = void 0, w;
    }
    function Jr(b, w) {
      return b.name !== w ? Qm(Wi(w), b) : b;
    }
    function Qm(b, w) {
      return b !== w && (b.modifiers = w.modifiers), r(b, w);
    }
    function Xd(b, w, F, se) {
      const Je = te(268);
      return Je.modifiers = ko(b), Je.name = El(F), Je.isTypeOnly = w, Je.moduleReference = se, Je.transformFlags |= Po(Je.modifiers) | Tk(Je.name) | hr(Je.moduleReference), zm(Je.moduleReference) || (Je.transformFlags |= 1), Je.transformFlags &= -67108865, Je.jsDoc = void 0, Je;
    }
    function iE(b, w, F, se, Je) {
      return b.modifiers !== w || b.isTypeOnly !== F || b.name !== se || b.moduleReference !== Je ? r(Xd(w, F, se, Je), b) : b;
    }
    function Rg(b, w, F, se) {
      const Je = H(269);
      return Je.modifiers = ko(b), Je.importClause = w, Je.moduleSpecifier = F, Je.assertClause = se, Je.transformFlags |= hr(Je.importClause) | hr(Je.moduleSpecifier), Je.transformFlags &= -67108865, Je.jsDoc = void 0, Je;
    }
    function Mh(b, w, F, se, Je) {
      return b.modifiers !== w || b.importClause !== F || b.moduleSpecifier !== se || b.assertClause !== Je ? r(Rg(w, F, se, Je), b) : b;
    }
    function Zm(b, w, F) {
      const se = te(270);
      return se.isTypeOnly = b, se.name = w, se.namedBindings = F, se.transformFlags |= hr(se.name) | hr(se.namedBindings), b && (se.transformFlags |= 1), se.transformFlags &= -67108865, se;
    }
    function _l(b, w, F, se) {
      return b.isTypeOnly !== w || b.name !== F || b.namedBindings !== se ? r(Zm(w, F, se), b) : b;
    }
    function Eb(b, w) {
      const F = H(296);
      return F.elements = V(b), F.multiLine = w, F.transformFlags |= 4, F;
    }
    function cS(b, w, F) {
      return b.elements !== w || b.multiLine !== F ? r(Eb(w, F), b) : b;
    }
    function Tb(b, w) {
      const F = H(297);
      return F.name = b, F.value = w, F.transformFlags |= 4, F;
    }
    function uS(b, w, F) {
      return b.name !== w || b.value !== F ? r(Tb(w, F), b) : b;
    }
    function r_(b, w) {
      const F = H(298);
      return F.assertClause = b, F.multiLine = w, F;
    }
    function m2(b, w, F) {
      return b.assertClause !== w || b.multiLine !== F ? r(r_(w, F), b) : b;
    }
    function h2(b) {
      const w = te(271);
      return w.name = b, w.transformFlags |= hr(w.name), w.transformFlags &= -67108865, w;
    }
    function s0(b, w) {
      return b.name !== w ? r(h2(w), b) : b;
    }
    function dS(b) {
      const w = te(277);
      return w.name = b, w.transformFlags |= hr(w.name) | 4, w.transformFlags &= -67108865, w;
    }
    function fS(b, w) {
      return b.name !== w ? r(dS(w), b) : b;
    }
    function g2(b) {
      const w = H(272);
      return w.elements = V(b), w.transformFlags |= Po(w.elements), w.transformFlags &= -67108865, w;
    }
    function Sb(b, w) {
      return b.elements !== w ? r(g2(w), b) : b;
    }
    function _S(b, w, F) {
      const se = te(273);
      return se.isTypeOnly = b, se.propertyName = w, se.name = F, se.transformFlags |= hr(se.propertyName) | hr(se.name), se.transformFlags &= -67108865, se;
    }
    function Of(b, w, F, se) {
      return b.isTypeOnly !== w || b.propertyName !== F || b.name !== se ? r(_S(w, F, se), b) : b;
    }
    function Ng(b, w, F) {
      const se = te(274);
      return se.modifiers = ko(b), se.isExportEquals = w, se.expression = w ? i().parenthesizeRightSideOfBinary(63, void 0, F) : i().parenthesizeExpressionOfExportDefault(F), se.transformFlags |= Po(se.modifiers) | hr(se.expression), se.transformFlags &= -67108865, se.jsDoc = void 0, se;
    }
    function wp(b, w, F) {
      return b.modifiers !== w || b.expression !== F ? r(Ng(w, b.isExportEquals, F), b) : b;
    }
    function ip(b, w, F, se, Je) {
      const Kt = te(275);
      return Kt.modifiers = ko(b), Kt.isTypeOnly = w, Kt.exportClause = F, Kt.moduleSpecifier = se, Kt.assertClause = Je, Kt.transformFlags |= Po(Kt.modifiers) | hr(Kt.exportClause) | hr(Kt.moduleSpecifier), Kt.transformFlags &= -67108865, Kt.jsDoc = void 0, Kt;
    }
    function y2(b, w, F, se, Je, Kt) {
      return b.modifiers !== w || b.isTypeOnly !== F || b.exportClause !== se || b.moduleSpecifier !== Je || b.assertClause !== Kt ? xb(ip(w, F, se, Je, Kt), b) : b;
    }
    function xb(b, w) {
      return b !== w && b.modifiers === w.modifiers && (b.modifiers = w.modifiers), r(b, w);
    }
    function sm(b) {
      const w = H(276);
      return w.elements = V(b), w.transformFlags |= Po(w.elements), w.transformFlags &= -67108865, w;
    }
    function pS(b, w) {
      return b.elements !== w ? r(sm(w), b) : b;
    }
    function md(b, w, F) {
      const se = H(278);
      return se.isTypeOnly = b, se.propertyName = El(w), se.name = El(F), se.transformFlags |= hr(se.propertyName) | hr(se.name), se.transformFlags &= -67108865, se.jsDoc = void 0, se;
    }
    function Og(b, w, F, se) {
      return b.isTypeOnly !== w || b.propertyName !== F || b.name !== se ? r(md(w, F, se), b) : b;
    }
    function lm() {
      const b = te(279);
      return b.jsDoc = void 0, b;
    }
    function cm(b) {
      const w = H(280);
      return w.expression = b, w.transformFlags |= hr(w.expression), w.transformFlags &= -67108865, w;
    }
    function Pg(b, w) {
      return b.expression !== w ? r(cm(w), b) : b;
    }
    function aE(b) {
      return H(b);
    }
    function mS(b, w, F = !1) {
      const se = Fy(b, F ? w && i().parenthesizeNonArrayTypeOfPostfixType(w) : w);
      return se.postfix = F, se;
    }
    function Fy(b, w) {
      const F = H(b);
      return F.type = w, F;
    }
    function oE(b, w, F) {
      return w.type !== F ? r(mS(b, F, w.postfix), w) : w;
    }
    function Rs(b, w, F) {
      return w.type !== F ? r(Fy(b, F), w) : w;
    }
    function By(b, w) {
      const F = te(320);
      return F.parameters = ko(b), F.type = w, F.transformFlags = Po(F.parameters) | (F.type ? 1 : 0), F.jsDoc = void 0, F.locals = void 0, F.nextContainer = void 0, F.typeArguments = void 0, F;
    }
    function v2(b, w, F) {
      return b.parameters !== w || b.type !== F ? r(By(w, F), b) : b;
    }
    function Ab(b, w = !1) {
      const F = te(325);
      return F.jsDocPropertyTags = ko(b), F.isArrayType = w, F;
    }
    function Cb(b, w, F) {
      return b.jsDocPropertyTags !== w || b.isArrayType !== F ? r(Ab(w, F), b) : b;
    }
    function b2(b) {
      const w = H(312);
      return w.type = b, w;
    }
    function _L(b, w) {
      return b.type !== w ? r(b2(w), b) : b;
    }
    function E2(b, w, F) {
      const se = te(326);
      return se.typeParameters = ko(b), se.parameters = V(w), se.type = F, se.jsDoc = void 0, se.locals = void 0, se.nextContainer = void 0, se;
    }
    function pr(b, w, F, se) {
      return b.typeParameters !== w || b.parameters !== F || b.type !== se ? r(E2(w, F, se), b) : b;
    }
    function Dl(b) {
      const w = s7(b.kind);
      return b.tagName.escapedText === sl(w) ? b.tagName : ve(w);
    }
    function fa(b, w, F) {
      const se = H(b);
      return se.tagName = w, se.comment = F, se;
    }
    function Pf(b, w, F) {
      const se = te(b);
      return se.tagName = w, se.comment = F, se;
    }
    function l0(b, w, F, se) {
      const Je = fa(348, b ?? ve("template"), se);
      return Je.constraint = w, Je.typeParameters = V(F), Je;
    }
    function eh(b, w = Dl(b), F, se, Je) {
      return b.tagName !== w || b.constraint !== F || b.typeParameters !== se || b.comment !== Je ? r(l0(w, F, se, Je), b) : b;
    }
    function ir(b, w, F, se) {
      const Je = Pf(349, b ?? ve("typedef"), se);
      return Je.typeExpression = w, Je.fullName = F, Je.name = jJ(F), Je.locals = void 0, Je.nextContainer = void 0, Je;
    }
    function T2(b, w = Dl(b), F, se, Je) {
      return b.tagName !== w || b.typeExpression !== F || b.fullName !== se || b.comment !== Je ? r(ir(w, F, se, Je), b) : b;
    }
    function Gy(b, w, F, se, Je, Kt) {
      const Gr = Pf(344, b ?? ve("param"), Kt);
      return Gr.typeExpression = se, Gr.name = w, Gr.isNameFirst = !!Je, Gr.isBracketed = F, Gr;
    }
    function Lc(b, w = Dl(b), F, se, Je, Kt, Gr) {
      return b.tagName !== w || b.name !== F || b.isBracketed !== se || b.typeExpression !== Je || b.isNameFirst !== Kt || b.comment !== Gr ? r(Gy(w, F, se, Je, Kt, Gr), b) : b;
    }
    function A_(b, w, F, se, Je, Kt) {
      const Gr = Pf(351, b ?? ve("prop"), Kt);
      return Gr.typeExpression = se, Gr.name = w, Gr.isNameFirst = !!Je, Gr.isBracketed = F, Gr;
    }
    function Dp(b, w = Dl(b), F, se, Je, Kt, Gr) {
      return b.tagName !== w || b.name !== F || b.isBracketed !== se || b.typeExpression !== Je || b.isNameFirst !== Kt || b.comment !== Gr ? r(A_(w, F, se, Je, Kt, Gr), b) : b;
    }
    function Uy(b, w, F, se) {
      const Je = Pf(341, b ?? ve("callback"), se);
      return Je.typeExpression = w, Je.fullName = F, Je.name = jJ(F), Je.locals = void 0, Je.nextContainer = void 0, Je;
    }
    function sE(b, w = Dl(b), F, se, Je) {
      return b.tagName !== w || b.typeExpression !== F || b.fullName !== se || b.comment !== Je ? r(Uy(w, F, se, Je), b) : b;
    }
    function ap(b, w, F) {
      const se = fa(342, b ?? ve("overload"), F);
      return se.typeExpression = w, se;
    }
    function Vy(b, w = Dl(b), F, se) {
      return b.tagName !== w || b.typeExpression !== F || b.comment !== se ? r(ap(w, F, se), b) : b;
    }
    function Yl(b, w, F) {
      const se = fa(331, b ?? ve("augments"), F);
      return se.class = w, se;
    }
    function nc(b, w = Dl(b), F, se) {
      return b.tagName !== w || b.class !== F || b.comment !== se ? r(Yl(w, F, se), b) : b;
    }
    function Mg(b, w, F) {
      const se = fa(332, b ?? ve("implements"), F);
      return se.class = w, se;
    }
    function uu(b, w, F) {
      const se = fa(350, b ?? ve("see"), F);
      return se.name = w, se;
    }
    function C_(b, w, F, se) {
      return b.tagName !== w || b.name !== F || b.comment !== se ? r(uu(w, F, se), b) : b;
    }
    function th(b) {
      const w = H(313);
      return w.name = b, w;
    }
    function Rd(b, w) {
      return b.name !== w ? r(th(w), b) : b;
    }
    function lE(b, w) {
      const F = H(314);
      return F.left = b, F.right = w, F.transformFlags |= hr(F.left) | hr(F.right), F;
    }
    function Lb(b, w, F) {
      return b.left !== w || b.right !== F ? r(lE(w, F), b) : b;
    }
    function Ib(b, w) {
      const F = H(327);
      return F.name = b, F.text = w, F;
    }
    function Rp(b, w, F) {
      return b.name !== w ? r(Ib(w, F), b) : b;
    }
    function Fh(b, w) {
      const F = H(328);
      return F.name = b, F.text = w, F;
    }
    function cE(b, w, F) {
      return b.name !== w ? r(Fh(w, F), b) : b;
    }
    function jy(b, w) {
      const F = H(329);
      return F.name = b, F.text = w, F;
    }
    function Rl(b, w, F) {
      return b.name !== w ? r(jy(w, F), b) : b;
    }
    function Fg(b, w = Dl(b), F, se) {
      return b.tagName !== w || b.class !== F || b.comment !== se ? r(Mg(w, F, se), b) : b;
    }
    function Bh(b, w, F) {
      return fa(b, w ?? ve(s7(b)), F);
    }
    function c0(b, w, F = Dl(w), se) {
      return w.tagName !== F || w.comment !== se ? r(Bh(b, F, se), w) : w;
    }
    function u0(b, w, F, se) {
      const Je = fa(b, w ?? ve(s7(b)), se);
      return Je.typeExpression = F, Je;
    }
    function du(b, w, F = Dl(w), se, Je) {
      return w.tagName !== F || w.typeExpression !== se || w.comment !== Je ? r(u0(b, F, se, Je), w) : w;
    }
    function Gh(b, w) {
      return fa(330, b, w);
    }
    function bc(b, w, F) {
      return b.tagName !== w || b.comment !== F ? r(Gh(w, F), b) : b;
    }
    function uE(b, w, F) {
      const se = Pf(343, b ?? ve(s7(343)), F);
      return se.typeExpression = w, se.locals = void 0, se.nextContainer = void 0, se;
    }
    function Uh(b, w = Dl(b), F, se) {
      return b.tagName !== w || b.typeExpression !== F || b.comment !== se ? r(uE(w, F, se), b) : b;
    }
    function kb(b) {
      const w = H(324);
      return w.text = b, w;
    }
    function hd(b, w) {
      return b.text !== w ? r(kb(w), b) : b;
    }
    function nh(b, w) {
      const F = H(323);
      return F.comment = b, F.tags = ko(w), F;
    }
    function wb(b, w, F) {
      return b.comment !== w || b.tags !== F ? r(nh(w, F), b) : b;
    }
    function d0(b, w, F) {
      const se = H(281);
      return se.openingElement = b, se.children = V(w), se.closingElement = F, se.transformFlags |= hr(se.openingElement) | Po(se.children) | hr(se.closingElement) | 2, se;
    }
    function dE(b, w, F, se) {
      return b.openingElement !== w || b.children !== F || b.closingElement !== se ? r(d0(w, F, se), b) : b;
    }
    function Hy(b, w, F) {
      const se = H(282);
      return se.tagName = b, se.typeArguments = ko(w), se.attributes = F, se.transformFlags |= hr(se.tagName) | Po(se.typeArguments) | hr(se.attributes) | 2, se.typeArguments && (se.transformFlags |= 1), se;
    }
    function hS(b, w, F, se) {
      return b.tagName !== w || b.typeArguments !== F || b.attributes !== se ? r(Hy(w, F, se), b) : b;
    }
    function f0(b, w, F) {
      const se = H(283);
      return se.tagName = b, se.typeArguments = ko(w), se.attributes = F, se.transformFlags |= hr(se.tagName) | Po(se.typeArguments) | hr(se.attributes) | 2, w && (se.transformFlags |= 1), se;
    }
    function Bg(b, w, F, se) {
      return b.tagName !== w || b.typeArguments !== F || b.attributes !== se ? r(f0(w, F, se), b) : b;
    }
    function Mf(b) {
      const w = H(284);
      return w.tagName = b, w.transformFlags |= hr(w.tagName) | 2, w;
    }
    function fE(b, w) {
      return b.tagName !== w ? r(Mf(w), b) : b;
    }
    function hf(b, w, F) {
      const se = H(285);
      return se.openingFragment = b, se.children = V(w), se.closingFragment = F, se.transformFlags |= hr(se.openingFragment) | Po(se.children) | hr(se.closingFragment) | 2, se;
    }
    function Vh(b, w, F, se) {
      return b.openingFragment !== w || b.children !== F || b.closingFragment !== se ? r(hf(w, F, se), b) : b;
    }
    function _0(b, w) {
      const F = H(11);
      return F.text = b, F.containsOnlyTriviaWhiteSpaces = !!w, F.transformFlags |= 2, F;
    }
    function S2(b, w, F) {
      return b.text !== w || b.containsOnlyTriviaWhiteSpaces !== F ? r(_0(w, F), b) : b;
    }
    function as() {
      const b = H(286);
      return b.transformFlags |= 2, b;
    }
    function Ir() {
      const b = H(287);
      return b.transformFlags |= 2, b;
    }
    function Yd(b, w) {
      const F = te(288);
      return F.name = b, F.initializer = w, F.transformFlags |= hr(F.name) | hr(F.initializer) | 2, F;
    }
    function gd(b, w, F) {
      return b.name !== w || b.initializer !== F ? r(Yd(w, F), b) : b;
    }
    function gS(b) {
      const w = te(289);
      return w.properties = V(b), w.transformFlags |= Po(w.properties) | 2, w;
    }
    function _E(b, w) {
      return b.properties !== w ? r(gS(w), b) : b;
    }
    function Wy(b) {
      const w = H(290);
      return w.expression = b, w.transformFlags |= hr(w.expression) | 2, w;
    }
    function x2(b, w) {
      return b.expression !== w ? r(Wy(w), b) : b;
    }
    function zy(b, w) {
      const F = H(291);
      return F.dotDotDotToken = b, F.expression = w, F.transformFlags |= hr(F.dotDotDotToken) | hr(F.expression) | 2, F;
    }
    function um(b, w) {
      return b.expression !== w ? r(zy(b.dotDotDotToken, w), b) : b;
    }
    function Np(b, w) {
      const F = H(292);
      return F.expression = i().parenthesizeExpressionForDisallowedComma(b), F.statements = V(w), F.transformFlags |= hr(F.expression) | Po(F.statements), F.jsDoc = void 0, F;
    }
    function Gg(b, w, F) {
      return b.expression !== w || b.statements !== F ? r(Np(w, F), b) : b;
    }
    function p0(b) {
      const w = H(293);
      return w.statements = V(b), w.transformFlags = Po(w.statements), w;
    }
    function jh(b, w) {
      return b.statements !== w ? r(p0(w), b) : b;
    }
    function dm(b, w) {
      const F = H(294);
      switch (F.token = b, F.types = V(w), F.transformFlags |= Po(F.types), b) {
        case 94:
          F.transformFlags |= 1024;
          break;
        case 117:
          F.transformFlags |= 1;
          break;
        default:
          return D.assertNever(b);
      }
      return F;
    }
    function yS(b, w) {
      return b.types !== w ? r(dm(b.token, w), b) : b;
    }
    function $l(b, w) {
      const F = H(295);
      return F.variableDeclaration = tD(b), F.block = w, F.transformFlags |= hr(F.variableDeclaration) | hr(F.block) | (b ? 0 : 64), F.locals = void 0, F.nextContainer = void 0, F;
    }
    function gf(b, w, F) {
      return b.variableDeclaration !== w || b.block !== F ? r($l(w, F), b) : b;
    }
    function rh(b, w) {
      const F = te(299);
      return F.name = El(b), F.initializer = i().parenthesizeExpressionForDisallowedComma(w), F.transformFlags |= by(F.name) | hr(F.initializer), F.modifiers = void 0, F.questionToken = void 0, F.exclamationToken = void 0, F.jsDoc = void 0, F;
    }
    function Nd(b, w, F) {
      return b.name !== w || b.initializer !== F ? pE(rh(w, F), b) : b;
    }
    function pE(b, w) {
      return b !== w && (b.modifiers = w.modifiers, b.questionToken = w.questionToken, b.exclamationToken = w.exclamationToken), r(b, w);
    }
    function qy(b, w) {
      const F = te(300);
      return F.name = El(b), F.objectAssignmentInitializer = w && i().parenthesizeExpressionForDisallowedComma(w), F.transformFlags |= Tk(F.name) | hr(F.objectAssignmentInitializer) | 1024, F.equalsToken = void 0, F.modifiers = void 0, F.questionToken = void 0, F.exclamationToken = void 0, F.jsDoc = void 0, F;
    }
    function Ug(b, w, F) {
      return b.name !== w || b.objectAssignmentInitializer !== F ? A2(qy(w, F), b) : b;
    }
    function A2(b, w) {
      return b !== w && (b.modifiers = w.modifiers, b.questionToken = w.questionToken, b.exclamationToken = w.exclamationToken, b.equalsToken = w.equalsToken), r(b, w);
    }
    function Ff(b) {
      const w = te(301);
      return w.expression = i().parenthesizeExpressionForDisallowedComma(b), w.transformFlags |= hr(w.expression) | 128 | 65536, w.jsDoc = void 0, w;
    }
    function Ns(b, w) {
      return b.expression !== w ? r(Ff(w), b) : b;
    }
    function mE(b, w) {
      const F = te(302);
      return F.name = El(b), F.initializer = w && i().parenthesizeExpressionForDisallowedComma(w), F.transformFlags |= hr(F.name) | hr(F.initializer) | 1, F.jsDoc = void 0, F;
    }
    function hE(b, w, F) {
      return b.name !== w || b.initializer !== F ? r(mE(w, F), b) : b;
    }
    function Vg(b, w, F) {
      const se = t.createBaseSourceFileNode(308);
      return se.statements = V(b), se.endOfFileToken = w, se.flags |= F, se.text = "", se.fileName = "", se.path = "", se.resolvedPath = "", se.originalFileName = "", se.languageVersion = 0, se.languageVariant = 0, se.scriptKind = 0, se.isDeclarationFile = !1, se.hasNoDefaultLib = !1, se.transformFlags |= Po(se.statements) | hr(se.endOfFileToken), se.locals = void 0, se.nextContainer = void 0, se.endFlowNode = void 0, se.nodeCount = 0, se.identifierCount = 0, se.symbolCount = 0, se.parseDiagnostics = void 0, se.bindDiagnostics = void 0, se.bindSuggestionDiagnostics = void 0, se.lineMap = void 0, se.externalModuleIndicator = void 0, se.setExternalModuleIndicator = void 0, se.pragmas = void 0, se.checkJsDirective = void 0, se.referencedFiles = void 0, se.typeReferenceDirectives = void 0, se.libReferenceDirectives = void 0, se.amdDependencies = void 0, se.commentDirectives = void 0, se.identifiers = void 0, se.packageJsonLocations = void 0, se.packageJsonScope = void 0, se.imports = void 0, se.moduleAugmentations = void 0, se.ambientModuleNames = void 0, se.resolvedModules = void 0, se.classifiableNames = void 0, se.impliedNodeFormat = void 0, se;
    }
    function m0(b) {
      const w = Object.create(b.redirectTarget);
      return Object.defineProperties(w, {
        id: {
          get() {
            return this.redirectInfo.redirectTarget.id;
          },
          set(F) {
            this.redirectInfo.redirectTarget.id = F;
          }
        },
        symbol: {
          get() {
            return this.redirectInfo.redirectTarget.symbol;
          },
          set(F) {
            this.redirectInfo.redirectTarget.symbol = F;
          }
        }
      }), w.redirectInfo = b, w;
    }
    function vS(b) {
      const w = m0(b.redirectInfo);
      return w.flags |= b.flags & -9, w.fileName = b.fileName, w.path = b.path, w.resolvedPath = b.resolvedPath, w.originalFileName = b.originalFileName, w.packageJsonLocations = b.packageJsonLocations, w.packageJsonScope = b.packageJsonScope, w.emitNode = void 0, w;
    }
    function gE(b) {
      const w = t.createBaseSourceFileNode(308);
      w.flags |= b.flags & -9;
      for (const F in b)
        if (!(Ps(w, F) || !Ps(b, F))) {
          if (F === "emitNode") {
            w.emitNode = void 0;
            continue;
          }
          w[F] = b[F];
        }
      return w;
    }
    function yE(b) {
      const w = b.redirectInfo ? vS(b) : gE(b);
      return Wr(w, b), w;
    }
    function vE(b, w, F, se, Je, Kt, Gr) {
      const ea = yE(b);
      return ea.statements = V(w), ea.isDeclarationFile = F, ea.referencedFiles = se, ea.typeReferenceDirectives = Je, ea.hasNoDefaultLib = Kt, ea.libReferenceDirectives = Gr, ea.transformFlags = Po(ea.statements) | hr(ea.endOfFileToken), ea;
    }
    function bE(b, w, F = b.isDeclarationFile, se = b.referencedFiles, Je = b.typeReferenceDirectives, Kt = b.hasNoDefaultLib, Gr = b.libReferenceDirectives) {
      return b.statements !== w || b.isDeclarationFile !== F || b.referencedFiles !== se || b.typeReferenceDirectives !== Je || b.hasNoDefaultLib !== Kt || b.libReferenceDirectives !== Gr ? r(vE(b, w, F, se, Je, Kt, Gr), b) : b;
    }
    function EE(b, w = rt) {
      const F = H(309);
      return F.prepends = w, F.sourceFiles = b, F.syntheticFileReferences = void 0, F.syntheticTypeReferences = void 0, F.syntheticLibReferences = void 0, F.hasNoDefaultLib = void 0, F;
    }
    function Jy(b, w, F = rt) {
      return b.sourceFiles !== w || b.prepends !== F ? r(EE(w, F), b) : b;
    }
    function $d(b, w, F) {
      const se = H(310);
      return se.prologues = b, se.syntheticReferences = w, se.texts = F, se.fileName = "", se.text = "", se.referencedFiles = rt, se.libReferenceDirectives = rt, se.getLineAndCharacterOfPosition = (Je) => ol(se, Je), se;
    }
    function Hh(b, w) {
      const F = H(b);
      return F.data = w, F;
    }
    function pL(b) {
      return Hh(303, b);
    }
    function jg(b, w) {
      const F = Hh(304, b);
      return F.texts = w, F;
    }
    function C2(b, w) {
      return Hh(w ? 306 : 305, b);
    }
    function L2(b) {
      const w = H(307);
      return w.data = b.data, w.section = b, w;
    }
    function S() {
      const b = H(311);
      return b.javascriptText = "", b.declarationText = "", b;
    }
    function le(b, w = !1, F) {
      const se = H(234);
      return se.type = b, se.isSpread = w, se.tupleNameSource = F, se;
    }
    function ke(b) {
      const w = H(354);
      return w._children = b, w;
    }
    function on(b) {
      const w = H(355);
      return w.original = b, ht(w, b), w;
    }
    function Cr(b, w) {
      const F = H(356);
      return F.expression = b, F.original = w, F.transformFlags |= hr(F.expression) | 1, ht(F, w), F;
    }
    function Si(b, w) {
      return b.expression !== w ? r(Cr(w, b.original), b) : b;
    }
    function li(b) {
      if (Zs(b) && !EI(b) && !b.original && !b.emitNode && !b.id) {
        if (Nk(b))
          return b.elements;
        if (br(b) && Ffe(b.operatorToken))
          return [b.left, b.right];
      }
      return b;
    }
    function Vi(b) {
      const w = H(357);
      return w.elements = V(KE(b, li)), w.transformFlags |= Po(w.elements), w;
    }
    function _o(b, w) {
      return b.elements !== w ? r(Vi(w), b) : b;
    }
    function nu(b) {
      const w = H(359);
      return w.emitNode = {}, w.original = b, w;
    }
    function Qd(b) {
      const w = H(358);
      return w.emitNode = {}, w.original = b, w;
    }
    function yf(b, w) {
      const F = H(360);
      return F.expression = b, F.thisArg = w, F.transformFlags |= hr(F.expression) | hr(F.thisArg), F;
    }
    function Ky(b, w, F) {
      return b.expression !== w || b.thisArg !== F ? r(yf(w, F), b) : b;
    }
    function Zd(b) {
      const w = ce(b.escapedText);
      return w.flags |= b.flags & -9, w.transformFlags = b.transformFlags, Wr(w, b), xO(w, { ...b.emitNode.autoGenerate }), w;
    }
    function h0(b) {
      const w = ce(b.escapedText);
      w.flags |= b.flags & -9, w.jsDoc = b.jsDoc, w.flowNode = b.flowNode, w.symbol = b.symbol, w.transformFlags = b.transformFlags, Wr(w, b);
      const F = xT(b);
      return F && Ty(w, F), w;
    }
    function g0(b) {
      const w = Be(b.escapedText);
      return w.flags |= b.flags & -9, w.transformFlags = b.transformFlags, Wr(w, b), xO(w, { ...b.emitNode.autoGenerate }), w;
    }
    function Xy(b) {
      const w = Be(b.escapedText);
      return w.flags |= b.flags & -9, w.transformFlags = b.transformFlags, Wr(w, b), w;
    }
    function L_(b) {
      if (b === void 0)
        return b;
      if (qi(b))
        return yE(b);
      if (Sl(b))
        return Zd(b);
      if (je(b))
        return h0(b);
      if (KS(b))
        return g0(b);
      if (Ni(b))
        return Xy(b);
      const w = JR(b.kind) ? t.createBaseNode(b.kind) : t.createBaseTokenNode(b.kind);
      w.flags |= b.flags & -9, w.transformFlags = b.transformFlags, Wr(w, b);
      for (const F in b)
        Ps(w, F) || !Ps(b, F) || (w[F] = b[F]);
      return w;
    }
    function TE(b, w, F) {
      return Nn(ja(void 0, void 0, void 0, void 0, w ? [w] : [], void 0, Cg(b, !0)), void 0, F ? [F] : []);
    }
    function Bf(b, w, F) {
      return Nn(Ts(void 0, void 0, w ? [w] : [], void 0, void 0, Cg(b, !0)), void 0, F ? [F] : []);
    }
    function ih() {
      return Au(Y("0"));
    }
    function Yy(b) {
      return Ng(void 0, !1, b);
    }
    function i_(b) {
      return ip(void 0, !1, sm([
        md(!1, void 0, b)
      ]));
    }
    function SE(b, w) {
      return w === "undefined" ? G.createStrictEquality(b, ih()) : G.createStrictEquality(tc(b), re(w));
    }
    function y0(b, w, F) {
      return tT(b) ? Lo(Es(b, void 0, w), void 0, void 0, F) : Nn(dc(b, w), void 0, F);
    }
    function fc(b, w, F) {
      return y0(b, "bind", [w, ...F]);
    }
    function _P(b, w, F) {
      return y0(b, "call", [w, ...F]);
    }
    function Ss(b, w, F) {
      return y0(b, "apply", [w, F]);
    }
    function rs(b, w, F) {
      return y0(ve(b), w, F);
    }
    function I2(b, w) {
      return y0(b, "slice", w === void 0 ? [] : [b0(w)]);
    }
    function k2(b, w) {
      return y0(b, "concat", w);
    }
    function z(b, w, F) {
      return rs("Object", "defineProperty", [b, b0(w), F]);
    }
    function be(b, w) {
      return rs("Object", "getOwnPropertyDescriptor", [b, b0(w)]);
    }
    function $e(b, w, F) {
      return rs("Reflect", "get", F ? [b, w, F] : [b, w]);
    }
    function Tt(b, w, F, se) {
      return rs("Reflect", "set", se ? [b, w, F, se] : [b, w, F]);
    }
    function Gt(b, w, F) {
      return F ? (b.push(rh(w, F)), !0) : !1;
    }
    function Cn(b, w) {
      const F = [];
      Gt(F, "enumerable", b0(b.enumerable)), Gt(F, "configurable", b0(b.configurable));
      let se = Gt(F, "writable", b0(b.writable));
      se = Gt(F, "value", b.value) || se;
      let Je = Gt(F, "get", b.get);
      return Je = Gt(F, "set", b.set) || Je, D.assert(!(se && Je), "A PropertyDescriptor may not be both an accessor descriptor and a data descriptor."), Ho(F, !w);
    }
    function Br(b, w) {
      switch (b.kind) {
        case 214:
          return Mi(b, w);
        case 213:
          return Rr(b, b.type, w);
        case 231:
          return Qv(b, w, b.type);
        case 235:
          return Ag(b, w, b.type);
        case 232:
          return rS(b, w);
        case 356:
          return Si(b, w);
      }
    }
    function gi(b) {
      return Vd(b) && Zs(b) && Zs(Q0(b)) && Zs(jm(b)) && !kt(fC(b)) && !kt(SO(b));
    }
    function xi(b, w, F = 15) {
      return b && Z7(b, F) && !gi(b) ? Br(b, xi(b.expression, w)) : w;
    }
    function ki(b, w, F) {
      if (!w)
        return b;
      const se = oS(w, w.label, R1(w.statement) ? ki(b, w.statement) : b);
      return F && F(w), se;
    }
    function Fa(b, w) {
      const F = js(b);
      switch (F.kind) {
        case 79:
          return w;
        case 108:
        case 8:
        case 9:
        case 10:
          return !1;
        case 206:
          return F.elements.length !== 0;
        case 207:
          return F.properties.length > 0;
        default:
          return !0;
      }
    }
    function Is(b, w, F, se = !1) {
      const Je = bu(b, 15);
      let Kt, Gr;
      return ud(Je) ? (Kt = Ct(), Gr = Je) : Ck(Je) ? (Kt = Ct(), Gr = F !== void 0 && F < 2 ? ht(ve("_super"), Je) : Je) : vo(Je) & 8192 ? (Kt = ih(), Gr = i().parenthesizeLeftSideOfAccess(Je, !1)) : Fr(Je) ? Fa(Je.expression, se) ? (Kt = Te(w), Gr = dc(ht(G.createAssignment(Kt, Je.expression), Je.expression), Je.name), ht(Gr, Je)) : (Kt = Je.expression, Gr = Je) : cl(Je) ? Fa(Je.expression, se) ? (Kt = Te(w), Gr = Jd(ht(G.createAssignment(Kt, Je.expression), Je.expression), Je.argumentExpression), ht(Gr, Je)) : (Kt = Je.expression, Gr = Je) : (Kt = ih(), Gr = i().parenthesizeLeftSideOfAccess(b, !1)), { target: Gr, thisArg: Kt };
    }
    function Io(b, w) {
      return dc(ni(Ho([
        ie(void 0, "value", [Ii(void 0, void 0, b, void 0, void 0, void 0)], Cg([
          t0(w)
        ]))
      ])), "value");
    }
    function is(b) {
      return b.length > 10 ? Vi(b) : Ru(b, G.createComma);
    }
    function Od(b, w, F, se = 0) {
      const Je = ka(b);
      if (Je && je(Je) && !Sl(Je)) {
        const Kt = Vo(ht(L_(Je), Je), Je.parent);
        return se |= vo(Je), F || (se |= 96), w || (se |= 3072), se && or(Kt, se), Kt;
      }
      return Ve(b);
    }
    function Op(b, w, F) {
      return Od(b, w, F, 98304);
    }
    function fm(b, w, F) {
      return Od(b, w, F, 32768);
    }
    function Hg(b, w, F) {
      return Od(b, w, F, 16384);
    }
    function I_(b, w, F) {
      return Od(b, w, F);
    }
    function $y(b, w, F, se) {
      const Je = dc(b, Zs(w) ? w : L_(w));
      ht(Je, w);
      let Kt = 0;
      return se || (Kt |= 96), F || (Kt |= 3072), Kt && or(Je, Kt), Je;
    }
    function w2(b, w, F, se) {
      return b && Yr(w, 1) ? $y(b, Od(w), F, se) : Hg(w, F, se);
    }
    function xE(b, w, F, se) {
      const Je = v0(b, w, 0, F);
      return hL(b, w, Je, se);
    }
    function mL(b) {
      return jo(b.expression) && b.expression.text === "use strict";
    }
    function op() {
      return Vu(t0(re("use strict")));
    }
    function v0(b, w, F = 0, se) {
      D.assert(w.length === 0, "Prologue directives should be at the first statement in the target statements array");
      let Je = !1;
      const Kt = b.length;
      for (; F < Kt; ) {
        const Gr = b[F];
        if (gp(Gr))
          mL(Gr) && (Je = !0), w.push(Gr);
        else
          break;
        F++;
      }
      return se && !Je && w.push(op()), F;
    }
    function hL(b, w, F, se, Je = n1) {
      const Kt = b.length;
      for (; F !== void 0 && F < Kt; ) {
        const Gr = b[F];
        if (vo(Gr) & 2097152 && Je(Gr))
          Fn(w, se ? lt(Gr, se, wa) : Gr);
        else
          break;
        F++;
      }
      return F;
    }
    function Gf(b) {
      return GJ(b) ? b : ht(V([op(), ...b]), b);
    }
    function D2(b) {
      return D.assert(Yn(b, Rce), "Cannot lift nodes to a Block."), Am(b) || Cg(b);
    }
    function Qy(b, w, F) {
      let se = F;
      for (; se < b.length && w(b[se]); )
        se++;
      return se;
    }
    function Qw(b, w) {
      if (!kt(w))
        return b;
      const F = Qy(b, gp, 0), se = Qy(b, n3, F), Je = Qy(b, r3, se), Kt = Qy(w, gp, 0), Gr = Qy(w, n3, Kt), ea = Qy(w, r3, Gr), $a = Qy(w, t3, ea);
      D.assert($a === w.length, "Expected declarations to be valid standard or custom prologues");
      const vf = f1(b) ? b.slice() : b;
      if ($a > ea && vf.splice(Je, 0, ...w.slice(ea, $a)), ea > Gr && vf.splice(se, 0, ...w.slice(Gr, ea)), Gr > Kt && vf.splice(F, 0, ...w.slice(Kt, Gr)), Kt > 0)
        if (F === 0)
          vf.splice(0, 0, ...w.slice(0, Kt));
        else {
          const Wg = /* @__PURE__ */ new Map();
          for (let zg = 0; zg < F; zg++) {
            const qg = b[zg];
            Wg.set(qg.expression.text, !0);
          }
          for (let zg = Kt - 1; zg >= 0; zg--) {
            const qg = w[zg];
            Wg.has(qg.expression.text) || vf.unshift(qg);
          }
        }
      return f1(b) ? ht(V(vf, b.hasTrailingComma), b) : b;
    }
    function Zw(b, w) {
      var F;
      let se;
      return typeof w == "number" ? se = sn(w) : se = w, Fl(b) ? _r(b, se, b.name, b.constraint, b.default) : Ba(b) ? $i(b, se, b.dotDotDotToken, b.name, b.questionToken, b.type, b.initializer) : Ik(b) ? $n(b, se, b.typeParameters, b.parameters, b.type) : If(b) ? vn(b, se, b.name, b.questionToken, b.type) : to(b) ? rr(b, se, b.name, (F = b.questionToken) != null ? F : b.exclamationToken, b.type, b.initializer) : Ah(b) ? Pi(b, se, b.name, b.questionToken, b.typeParameters, b.parameters, b.type) : ac(b) ? Rn(b, se, b.asteriskToken, b.name, b.questionToken, b.typeParameters, b.parameters, b.type, b.body) : ql(b) ? yt(b, se, b.parameters, b.body) : z_(b) ? pt(b, se, b.name, b.parameters, b.type, b.body) : e_(b) ? he(b, se, b.name, b.parameters, b.body) : Tx(b) ? Sn(b, se, b.parameters, b.type) : Bs(b) ? Wo(b, se, b.asteriskToken, b.name, b.typeParameters, b.parameters, b.type, b.body) : Js(b) ? Xs(b, se, b.typeParameters, b.parameters, b.type, b.equalsGreaterThanToken, b.body) : Gu(b) ? sc(b, se, b.name, b.typeParameters, b.heritageClauses, b.members) : uc(b) ? $1(b, se, b.declarationList) : yc(b) ? o0(b, se, b.asteriskToken, b.name, b.typeParameters, b.parameters, b.type, b.body) : Nc(b) ? ns(b, se, b.name, b.typeParameters, b.heritageClauses, b.members) : nd(b) ? rE(b, se, b.name, b.typeParameters, b.heritageClauses, b.members) : em(b) ? Ph(b, se, b.name, b.typeParameters, b.type) : eb(b) ? rp(b, se, b.name, b.members) : Jl(b) ? cu(b, se, b.name, b.body) : su(b) ? iE(b, se, b.isTypeOnly, b.name, b.moduleReference) : Wc(b) ? Mh(b, se, b.importClause, b.moduleSpecifier, b.assertClause) : Bl(b) ? wp(b, se, b.expression) : eu(b) ? y2(b, se, b.isTypeOnly, b.exportClause, b.moduleSpecifier, b.assertClause) : D.assertNever(b);
    }
    function ko(b) {
      return b ? V(b) : void 0;
    }
    function El(b) {
      return typeof b == "string" ? ve(b) : b;
    }
    function b0(b) {
      return typeof b == "string" ? re(b) : typeof b == "number" ? Y(b) : typeof b == "boolean" ? b ? Vt() : tt() : b;
    }
    function Zy(b) {
      return b && i().parenthesizeExpressionForDisallowedComma(b);
    }
    function eD(b) {
      return typeof b == "number" ? Fe(b) : b;
    }
    function Pd(b) {
      return b && TJ(b) ? ht(Wr(Q1(), b), b) : b;
    }
    function tD(b) {
      return typeof b == "string" || b && !Ki(b) ? Ke(b, void 0, void 0, void 0) : b;
    }
  }
  function S6e(e, t) {
    return e !== t && ht(e, t), e;
  }
  function x6e(e, t) {
    return e !== t && (Wr(e, t), ht(e, t)), e;
  }
  function s7(e) {
    switch (e) {
      case 347:
        return "type";
      case 345:
        return "returns";
      case 346:
        return "this";
      case 343:
        return "enum";
      case 333:
        return "author";
      case 335:
        return "class";
      case 336:
        return "public";
      case 337:
        return "private";
      case 338:
        return "protected";
      case 339:
        return "readonly";
      case 340:
        return "override";
      case 348:
        return "template";
      case 349:
        return "typedef";
      case 344:
        return "param";
      case 351:
        return "prop";
      case 341:
        return "callback";
      case 342:
        return "overload";
      case 331:
        return "augments";
      case 332:
        return "implements";
      default:
        return D.fail(`Unsupported kind: ${D.formatSyntaxKind(e)}`);
    }
  }
  function A6e(e, t) {
    switch (hg || (hg = dy(99, !1, 0)), e) {
      case 14:
        hg.setText("`" + t + "`");
        break;
      case 15:
        hg.setText("`" + t + "${");
        break;
      case 16:
        hg.setText("}" + t + "${");
        break;
      case 17:
        hg.setText("}" + t + "`");
        break;
    }
    let r = hg.scan();
    if (r === 19 && (r = hg.reScanTemplateToken(!1)), hg.isUnterminated())
      return hg.setText(void 0), tJ;
    let i;
    switch (r) {
      case 14:
      case 15:
      case 16:
      case 17:
        i = hg.getTokenValue();
        break;
    }
    return i === void 0 || hg.scan() !== 1 ? (hg.setText(void 0), tJ) : (hg.setText(void 0), i);
  }
  function by(e) {
    return e && je(e) ? Tk(e) : hr(e);
  }
  function Tk(e) {
    return hr(e) & -67108865;
  }
  function C6e(e, t) {
    return t | e.transformFlags & 134234112;
  }
  function hr(e) {
    if (!e)
      return 0;
    const t = e.transformFlags & ~Efe(e.kind);
    return gu(e) && yl(e.name) ? C6e(e.name, t) : t;
  }
  function Po(e) {
    return e ? e.transformFlags : 0;
  }
  function bfe(e) {
    let t = 0;
    for (const r of e)
      t |= hr(r);
    e.transformFlags = t;
  }
  function Efe(e) {
    if (e >= 179 && e <= 202)
      return -2;
    switch (e) {
      case 210:
      case 211:
      case 206:
        return -2147450880;
      case 264:
        return -1941676032;
      case 166:
        return -2147483648;
      case 216:
        return -2072174592;
      case 215:
      case 259:
        return -1937940480;
      case 258:
        return -2146893824;
      case 260:
      case 228:
        return -2147344384;
      case 173:
        return -1937948672;
      case 169:
        return -2013249536;
      case 171:
      case 174:
      case 175:
        return -2005057536;
      case 131:
      case 148:
      case 160:
      case 144:
      case 152:
      case 149:
      case 134:
      case 153:
      case 114:
      case 165:
      case 168:
      case 170:
      case 176:
      case 177:
      case 178:
      case 261:
      case 262:
        return -2;
      case 207:
        return -2147278848;
      case 295:
        return -2147418112;
      case 203:
      case 204:
        return -2147450880;
      case 213:
      case 235:
      case 231:
      case 356:
      case 214:
      case 106:
        return -2147483648;
      case 208:
      case 209:
        return -2147483648;
      default:
        return -2147483648;
    }
  }
  function gO(e) {
    return e.flags |= 8, e;
  }
  function Yq(e, t, r) {
    let i, o, s, c, f, d, y, h, E, A;
    Ha(e) ? (s = "", c = e, f = e.length, d = t, y = r) : (D.assert(t === "js" || t === "dts"), s = (t === "js" ? e.javascriptPath : e.declarationPath) || "", d = t === "js" ? e.javascriptMapPath : e.declarationMapPath, h = () => t === "js" ? e.javascriptText : e.declarationText, E = () => t === "js" ? e.javascriptMapText : e.declarationMapText, f = () => h().length, e.buildInfo && e.buildInfo.bundle && (D.assert(r === void 0 || typeof r == "boolean"), i = r, o = t === "js" ? e.buildInfo.bundle.js : e.buildInfo.bundle.dts, A = e.oldFileOfCurrentEmit));
    const L = A ? I6e(D.checkDefined(o)) : L6e(o, i, f);
    return L.fileName = s, L.sourceMapPath = d, L.oldFileOfCurrentEmit = A, h && E ? (Object.defineProperty(L, "text", { get: h }), Object.defineProperty(L, "sourceMapText", { get: E })) : (D.assert(!A), L.text = c ?? "", L.sourceMapText = y), L;
  }
  function L6e(e, t, r) {
    let i, o, s, c, f, d, y, h;
    for (const A of e ? e.sections : rt)
      switch (A.kind) {
        case "prologue":
          i = Fn(i, ht(N.createUnparsedPrologue(A.data), A));
          break;
        case "emitHelpers":
          o = Fn(o, lJ().get(A.data));
          break;
        case "no-default-lib":
          h = !0;
          break;
        case "reference":
          s = Fn(s, { pos: -1, end: -1, fileName: A.data });
          break;
        case "type":
          c = Fn(c, { pos: -1, end: -1, fileName: A.data });
          break;
        case "type-import":
          c = Fn(c, { pos: -1, end: -1, fileName: A.data, resolutionMode: 99 });
          break;
        case "type-require":
          c = Fn(c, { pos: -1, end: -1, fileName: A.data, resolutionMode: 1 });
          break;
        case "lib":
          f = Fn(f, { pos: -1, end: -1, fileName: A.data });
          break;
        case "prepend":
          let L;
          for (const I of A.texts)
            (!t || I.kind !== "internal") && (L = Fn(L, ht(N.createUnparsedTextLike(I.data, I.kind === "internal"), I)));
          d = Ti(d, L), y = Fn(y, N.createUnparsedPrepend(A.data, L ?? rt));
          break;
        case "internal":
          if (t) {
            y || (y = []);
            break;
          }
        case "text":
          y = Fn(y, ht(N.createUnparsedTextLike(A.data, A.kind === "internal"), A));
          break;
        default:
          D.assertNever(A);
      }
    if (!y) {
      const A = N.createUnparsedTextLike(void 0, !1);
      hk(A, 0, typeof r == "function" ? r() : r), y = [A];
    }
    const E = Jm.createUnparsedSource(i ?? rt, void 0, y);
    return sC(i, E), sC(y, E), sC(d, E), E.hasNoDefaultLib = h, E.helpers = o, E.referencedFiles = s || rt, E.typeReferenceDirectives = c, E.libReferenceDirectives = f || rt, E;
  }
  function I6e(e) {
    let t, r;
    for (const o of e.sections)
      switch (o.kind) {
        case "internal":
        case "text":
          t = Fn(t, ht(N.createUnparsedTextLike(o.data, o.kind === "internal"), o));
          break;
        case "no-default-lib":
        case "reference":
        case "type":
        case "type-import":
        case "type-require":
        case "lib":
          r = Fn(r, ht(N.createUnparsedSyntheticReference(o), o));
          break;
        case "prologue":
        case "emitHelpers":
        case "prepend":
          break;
        default:
          D.assertNever(o);
      }
    const i = N.createUnparsedSource(rt, r, t ?? rt);
    return sC(r, i), sC(t, i), i.helpers = jt(e.sources && e.sources.helpers, (o) => lJ().get(o)), i;
  }
  function k6e(e, t, r, i, o, s) {
    return Ha(e) ? Qq(void 0, e, r, i, void 0, t, o, s) : $q(e, t, r, i, o, s);
  }
  function $q(e, t, r, i, o, s, c, f) {
    const d = Jm.createInputFiles();
    d.javascriptPath = t, d.javascriptMapPath = r, d.declarationPath = i, d.declarationMapPath = o, d.buildInfoPath = s;
    const y = /* @__PURE__ */ new Map(), h = (I) => {
      if (I === void 0)
        return;
      let O = y.get(I);
      return O === void 0 && (O = e(I), y.set(I, O !== void 0 ? O : !1)), O !== !1 ? O : void 0;
    }, E = (I) => {
      const O = h(I);
      return O !== void 0 ? O : `/* Input file ${I} was missing */\r
`;
    };
    let A;
    return Object.defineProperties(d, {
      javascriptText: { get: () => E(t) },
      javascriptMapText: { get: () => h(r) },
      declarationText: { get: () => E(D.checkDefined(i)) },
      declarationMapText: { get: () => h(o) },
      buildInfo: { get: () => {
        var I, O;
        if (A === void 0 && s)
          if (c != null && c.getBuildInfo)
            A = (I = c.getBuildInfo(s, f.configFilePath)) != null ? I : !1;
          else {
            const k = h(s);
            A = k !== void 0 && (O = rF(s, k)) != null ? O : !1;
          }
        return A || void 0;
      } }
    }), d;
  }
  function Qq(e, t, r, i, o, s, c, f, d, y, h) {
    const E = Jm.createInputFiles();
    return E.javascriptPath = e, E.javascriptText = t, E.javascriptMapPath = r, E.javascriptMapText = i, E.declarationPath = o, E.declarationText = s, E.declarationMapPath = c, E.declarationMapText = f, E.buildInfoPath = d, E.buildInfo = y, E.oldFileOfCurrentEmit = h, E;
  }
  function w6e(e, t, r) {
    return new (Sfe || (Sfe = jc.getSourceMapSourceConstructor()))(e, t, r);
  }
  function Wr(e, t) {
    if (e.original = t, t) {
      const r = t.emitNode;
      r && (e.emitNode = D6e(r, e.emitNode));
    }
    return e;
  }
  function D6e(e, t) {
    const {
      flags: r,
      internalFlags: i,
      leadingComments: o,
      trailingComments: s,
      commentRange: c,
      sourceMapRange: f,
      tokenSourceMapRanges: d,
      constantValue: y,
      helpers: h,
      startsOnNewLine: E,
      snippetElement: A
    } = e;
    if (t || (t = {}), o && (t.leadingComments = Ti(o.slice(), t.leadingComments)), s && (t.trailingComments = Ti(s.slice(), t.trailingComments)), r && (t.flags = r), i && (t.internalFlags = i & -9), c && (t.commentRange = c), f && (t.sourceMapRange = f), d && (t.tokenSourceMapRanges = R6e(d, t.tokenSourceMapRanges)), y !== void 0 && (t.constantValue = y), h)
      for (const L of h)
        t.helpers = oy(t.helpers, L);
    return E !== void 0 && (t.startsOnNewLine = E), A !== void 0 && (t.snippetElement = A), t;
  }
  function R6e(e, t) {
    t || (t = []);
    for (const r in e)
      t[r] = e[r];
    return t;
  }
  var yO, Zq, eJ, hg, tJ, Sk, Tfe, N, Sfe, N6e = C({
    "src/compiler/factory/nodeFactory.ts"() {
      Oa(), yO = 0, Zq = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.NoParenthesizerRules = 1] = "NoParenthesizerRules", e[e.NoNodeConverters = 2] = "NoNodeConverters", e[e.NoIndentationOnFreshPropertyAccess = 4] = "NoIndentationOnFreshPropertyAccess", e[e.NoOriginalNode = 8] = "NoOriginalNode", e))(Zq || {}), eJ = [], tJ = {}, Sk = gfe(), Tfe = {
        createBaseSourceFileNode: (e) => gO(Sk.createBaseSourceFileNode(e)),
        createBaseIdentifierNode: (e) => gO(Sk.createBaseIdentifierNode(e)),
        createBasePrivateIdentifierNode: (e) => gO(Sk.createBasePrivateIdentifierNode(e)),
        createBaseTokenNode: (e) => gO(Sk.createBaseTokenNode(e)),
        createBaseNode: (e) => gO(Sk.createBaseNode(e))
      }, N = hO(4, Tfe);
    }
  });
  function td(e) {
    var t;
    if (e.emitNode)
      D.assert(!(e.emitNode.internalFlags & 8), "Invalid attempt to mutate an immutable node.");
    else {
      if (EI(e)) {
        if (e.kind === 308)
          return e.emitNode = { annotatedNodes: [e] };
        const r = (t = Zn(Ea(Zn(e)))) != null ? t : D.fail("Could not determine parsed source file.");
        td(r).annotatedNodes.push(e);
      }
      e.emitNode = {};
    }
    return e.emitNode;
  }
  function nJ(e) {
    var t, r;
    const i = (r = (t = Zn(Ea(e))) == null ? void 0 : t.emitNode) == null ? void 0 : r.annotatedNodes;
    if (i)
      for (const o of i)
        o.emitNode = void 0;
  }
  function vO(e) {
    const t = td(e);
    return t.flags |= 3072, t.leadingComments = void 0, t.trailingComments = void 0, e;
  }
  function or(e, t) {
    return td(e).flags = t, e;
  }
  function Zp(e, t) {
    const r = td(e);
    return r.flags = r.flags | t, e;
  }
  function bO(e, t) {
    return td(e).internalFlags = t, e;
  }
  function hx(e, t) {
    const r = td(e);
    return r.internalFlags = r.internalFlags | t, e;
  }
  function Q0(e) {
    var t, r;
    return (r = (t = e.emitNode) == null ? void 0 : t.sourceMapRange) != null ? r : e;
  }
  function fs(e, t) {
    return td(e).sourceMapRange = t, e;
  }
  function O6e(e, t) {
    var r, i;
    return (i = (r = e.emitNode) == null ? void 0 : r.tokenSourceMapRanges) == null ? void 0 : i[t];
  }
  function xfe(e, t, r) {
    var i;
    const o = td(e), s = (i = o.tokenSourceMapRanges) != null ? i : o.tokenSourceMapRanges = [];
    return s[t] = r, e;
  }
  function EO(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.startsOnNewLine;
  }
  function rJ(e, t) {
    return td(e).startsOnNewLine = t, e;
  }
  function jm(e) {
    var t, r;
    return (r = (t = e.emitNode) == null ? void 0 : t.commentRange) != null ? r : e;
  }
  function Hc(e, t) {
    return td(e).commentRange = t, e;
  }
  function fC(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.leadingComments;
  }
  function w1(e, t) {
    return td(e).leadingComments = t, e;
  }
  function TO(e, t, r, i) {
    return w1(e, Fn(fC(e), { kind: t, pos: -1, end: -1, hasTrailingNewLine: i, text: r }));
  }
  function SO(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.trailingComments;
  }
  function _C(e, t) {
    return td(e).trailingComments = t, e;
  }
  function l7(e, t, r, i) {
    return _C(e, Fn(SO(e), { kind: t, pos: -1, end: -1, hasTrailingNewLine: i, text: r }));
  }
  function Afe(e, t) {
    w1(e, fC(t)), _C(e, SO(t));
    const r = td(t);
    return r.leadingComments = void 0, r.trailingComments = void 0, e;
  }
  function Cfe(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.constantValue;
  }
  function Lfe(e, t) {
    const r = td(e);
    return r.constantValue = t, e;
  }
  function gx(e, t) {
    const r = td(e);
    return r.helpers = Fn(r.helpers, t), e;
  }
  function Ey(e, t) {
    if (kt(t)) {
      const r = td(e);
      for (const i of t)
        r.helpers = oy(r.helpers, i);
    }
    return e;
  }
  function P6e(e, t) {
    var r;
    const i = (r = e.emitNode) == null ? void 0 : r.helpers;
    return i ? z4(i, t) : !1;
  }
  function c7(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.helpers;
  }
  function Ife(e, t, r) {
    const i = e.emitNode, o = i && i.helpers;
    if (!kt(o))
      return;
    const s = td(t);
    let c = 0;
    for (let f = 0; f < o.length; f++) {
      const d = o[f];
      r(d) ? (c++, s.helpers = oy(s.helpers, d)) : c > 0 && (o[f - c] = d);
    }
    c > 0 && (o.length -= c);
  }
  function iJ(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.snippetElement;
  }
  function aJ(e, t) {
    const r = td(e);
    return r.snippetElement = t, e;
  }
  function oJ(e) {
    return td(e).internalFlags |= 4, e;
  }
  function kfe(e, t) {
    const r = td(e);
    return r.typeNode = t, e;
  }
  function wfe(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.typeNode;
  }
  function Ty(e, t) {
    return td(e).identifierTypeArguments = t, e;
  }
  function xT(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.identifierTypeArguments;
  }
  function xO(e, t) {
    return td(e).autoGenerate = t, e;
  }
  function M6e(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.autoGenerate;
  }
  function Dfe(e, t) {
    return td(e).generatedImportReference = t, e;
  }
  function Rfe(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.generatedImportReference;
  }
  var F6e = C({
    "src/compiler/factory/emitNode.ts"() {
      Oa();
    }
  });
  function Nfe(e) {
    const t = e.factory, r = Ed(() => bO(t.createTrue(), 8)), i = Ed(() => bO(t.createFalse(), 8));
    return {
      getUnscopedHelperName: o,
      createDecorateHelper: s,
      createMetadataHelper: c,
      createParamHelper: f,
      createESDecorateHelper: O,
      createRunInitializersHelper: k,
      createAssignHelper: G,
      createAwaitHelper: V,
      createAsyncGeneratorHelper: H,
      createAsyncDelegatorHelper: te,
      createAsyncValuesHelper: X,
      createRestHelper: Y,
      createAwaiterHelper: P,
      createExtendsHelper: de,
      createTemplateObjectHelper: re,
      createSpreadArrayHelper: ye,
      createPropKeyHelper: ae,
      createSetFunctionNameHelper: W,
      createValuesHelper: ce,
      createReadHelper: me,
      createGeneratorHelper: ve,
      createCreateBindingHelper: Te,
      createImportStarHelper: ee,
      createImportStarCallbackHelper: Qe,
      createImportDefaultHelper: Ve,
      createExportStarHelper: Be,
      createClassPrivateFieldGetHelper: qe,
      createClassPrivateFieldSetHelper: Oe,
      createClassPrivateFieldInHelper: Me
    };
    function o(Ye) {
      return or(t.createIdentifier(Ye), 8196);
    }
    function s(Ye, We, Fe, st) {
      e.requestEmitHelper(u7);
      const Ct = [];
      return Ct.push(t.createArrayLiteralExpression(Ye, !0)), Ct.push(We), Fe && (Ct.push(Fe), st && Ct.push(st)), t.createCallExpression(o("__decorate"), void 0, Ct);
    }
    function c(Ye, We) {
      return e.requestEmitHelper(d7), t.createCallExpression(o("__metadata"), void 0, [
        t.createStringLiteral(Ye),
        We
      ]);
    }
    function f(Ye, We, Fe) {
      return e.requestEmitHelper(f7), ht(t.createCallExpression(o("__param"), void 0, [
        t.createNumericLiteral(We + ""),
        Ye
      ]), Fe);
    }
    function d(Ye) {
      return t.createObjectLiteralExpression([
        t.createPropertyAssignment(t.createIdentifier("kind"), t.createStringLiteral("class")),
        t.createPropertyAssignment(t.createIdentifier("name"), Ye.name)
      ]);
    }
    function y(Ye) {
      const We = Ye.computed ? t.createElementAccessExpression(t.createIdentifier("obj"), Ye.name) : t.createPropertyAccessExpression(t.createIdentifier("obj"), Ye.name);
      return t.createPropertyAssignment("get", t.createArrowFunction(void 0, void 0, [t.createParameterDeclaration(void 0, void 0, t.createIdentifier("obj"))], void 0, void 0, We));
    }
    function h(Ye) {
      const We = Ye.computed ? t.createElementAccessExpression(t.createIdentifier("obj"), Ye.name) : t.createPropertyAccessExpression(t.createIdentifier("obj"), Ye.name);
      return t.createPropertyAssignment("set", t.createArrowFunction(void 0, void 0, [
        t.createParameterDeclaration(void 0, void 0, t.createIdentifier("obj")),
        t.createParameterDeclaration(void 0, void 0, t.createIdentifier("value"))
      ], void 0, void 0, t.createBlock([
        t.createExpressionStatement(t.createAssignment(We, t.createIdentifier("value")))
      ])));
    }
    function E(Ye) {
      const We = Ye.computed ? Ye.name : je(Ye.name) ? t.createStringLiteralFromNode(Ye.name) : Ye.name;
      return t.createPropertyAssignment("has", t.createArrowFunction(void 0, void 0, [t.createParameterDeclaration(void 0, void 0, t.createIdentifier("obj"))], void 0, void 0, t.createBinaryExpression(We, 101, t.createIdentifier("obj"))));
    }
    function A(Ye, We) {
      const Fe = [];
      return Fe.push(E(Ye)), We.get && Fe.push(y(Ye)), We.set && Fe.push(h(Ye)), t.createObjectLiteralExpression(Fe);
    }
    function L(Ye) {
      return t.createObjectLiteralExpression([
        t.createPropertyAssignment(t.createIdentifier("kind"), t.createStringLiteral(Ye.kind)),
        t.createPropertyAssignment(t.createIdentifier("name"), Ye.name.computed ? Ye.name.name : t.createStringLiteralFromNode(Ye.name.name)),
        t.createPropertyAssignment(t.createIdentifier("static"), Ye.static ? t.createTrue() : t.createFalse()),
        t.createPropertyAssignment(t.createIdentifier("private"), Ye.private ? t.createTrue() : t.createFalse()),
        t.createPropertyAssignment(t.createIdentifier("access"), A(Ye.name, Ye.access))
      ]);
    }
    function I(Ye) {
      return Ye.kind === "class" ? d(Ye) : L(Ye);
    }
    function O(Ye, We, Fe, st, Ct, Et) {
      return e.requestEmitHelper(_7), t.createCallExpression(o("__esDecorate"), void 0, [
        Ye ?? t.createNull(),
        We ?? t.createNull(),
        Fe,
        I(st),
        Ct,
        Et
      ]);
    }
    function k(Ye, We, Fe) {
      return e.requestEmitHelper(p7), t.createCallExpression(o("__runInitializers"), void 0, Fe ? [Ye, We, Fe] : [Ye, We]);
    }
    function G(Ye) {
      return ts(e.getCompilerOptions()) >= 2 ? t.createCallExpression(t.createPropertyAccessExpression(t.createIdentifier("Object"), "assign"), void 0, Ye) : (e.requestEmitHelper(m7), t.createCallExpression(o("__assign"), void 0, Ye));
    }
    function V(Ye) {
      return e.requestEmitHelper(yx), t.createCallExpression(o("__await"), void 0, [Ye]);
    }
    function H(Ye, We) {
      return e.requestEmitHelper(yx), e.requestEmitHelper(h7), (Ye.emitNode || (Ye.emitNode = {})).flags |= 1572864, t.createCallExpression(o("__asyncGenerator"), void 0, [
        We ? t.createThis() : t.createVoidZero(),
        t.createIdentifier("arguments"),
        Ye
      ]);
    }
    function te(Ye) {
      return e.requestEmitHelper(yx), e.requestEmitHelper(g7), t.createCallExpression(o("__asyncDelegator"), void 0, [Ye]);
    }
    function X(Ye) {
      return e.requestEmitHelper(y7), t.createCallExpression(o("__asyncValues"), void 0, [Ye]);
    }
    function Y(Ye, We, Fe, st) {
      e.requestEmitHelper(v7);
      const Ct = [];
      let Et = 0;
      for (let Vt = 0; Vt < We.length - 1; Vt++) {
        const tt = VJ(We[Vt]);
        if (tt)
          if (As(tt)) {
            D.assertIsDefined(Fe, "Encountered computed property name but 'computedTempVariables' argument was not provided.");
            const at = Fe[Et];
            Et++, Ct.push(t.createConditionalExpression(t.createTypeCheck(at, "symbol"), void 0, at, void 0, t.createAdd(at, t.createStringLiteral(""))));
          } else
            Ct.push(t.createStringLiteralFromNode(tt));
      }
      return t.createCallExpression(o("__rest"), void 0, [
        Ye,
        ht(t.createArrayLiteralExpression(Ct), st)
      ]);
    }
    function P(Ye, We, Fe, st) {
      e.requestEmitHelper(b7);
      const Ct = t.createFunctionExpression(void 0, t.createToken(41), void 0, void 0, [], void 0, st);
      return (Ct.emitNode || (Ct.emitNode = {})).flags |= 1572864, t.createCallExpression(o("__awaiter"), void 0, [
        Ye ? t.createThis() : t.createVoidZero(),
        We ? t.createIdentifier("arguments") : t.createVoidZero(),
        Fe ? VO(t, Fe) : t.createVoidZero(),
        Ct
      ]);
    }
    function de(Ye) {
      return e.requestEmitHelper(E7), t.createCallExpression(o("__extends"), void 0, [Ye, t.createUniqueName("_super", 48)]);
    }
    function re(Ye, We) {
      return e.requestEmitHelper(T7), t.createCallExpression(o("__makeTemplateObject"), void 0, [Ye, We]);
    }
    function ye(Ye, We, Fe) {
      return e.requestEmitHelper(x7), t.createCallExpression(o("__spreadArray"), void 0, [Ye, We, Fe ? r() : i()]);
    }
    function ae(Ye) {
      return e.requestEmitHelper(A7), t.createCallExpression(o("__propKey"), void 0, [Ye]);
    }
    function W(Ye, We, Fe) {
      return e.requestEmitHelper(C7), e.factory.createCallExpression(o("__setFunctionName"), void 0, Fe ? [Ye, We, e.factory.createStringLiteral(Fe)] : [Ye, We]);
    }
    function ce(Ye) {
      return e.requestEmitHelper(L7), t.createCallExpression(o("__values"), void 0, [Ye]);
    }
    function me(Ye, We) {
      return e.requestEmitHelper(S7), t.createCallExpression(o("__read"), void 0, We !== void 0 ? [Ye, t.createNumericLiteral(We + "")] : [Ye]);
    }
    function ve(Ye) {
      return e.requestEmitHelper(I7), t.createCallExpression(o("__generator"), void 0, [t.createThis(), Ye]);
    }
    function Te(Ye, We, Fe) {
      return e.requestEmitHelper(pC), t.createCallExpression(o("__createBinding"), void 0, [t.createIdentifier("exports"), Ye, We, ...Fe ? [Fe] : []]);
    }
    function ee(Ye) {
      return e.requestEmitHelper(AO), t.createCallExpression(o("__importStar"), void 0, [Ye]);
    }
    function Qe() {
      return e.requestEmitHelper(AO), o("__importStar");
    }
    function Ve(Ye) {
      return e.requestEmitHelper(w7), t.createCallExpression(o("__importDefault"), void 0, [Ye]);
    }
    function Be(Ye, We = t.createIdentifier("exports")) {
      return e.requestEmitHelper(D7), e.requestEmitHelper(pC), t.createCallExpression(o("__exportStar"), void 0, [Ye, We]);
    }
    function qe(Ye, We, Fe, st) {
      e.requestEmitHelper(R7);
      let Ct;
      return st ? Ct = [Ye, We, t.createStringLiteral(Fe), st] : Ct = [Ye, We, t.createStringLiteral(Fe)], t.createCallExpression(o("__classPrivateFieldGet"), void 0, Ct);
    }
    function Oe(Ye, We, Fe, st, Ct) {
      e.requestEmitHelper(N7);
      let Et;
      return Ct ? Et = [Ye, We, Fe, t.createStringLiteral(st), Ct] : Et = [Ye, We, Fe, t.createStringLiteral(st)], t.createCallExpression(o("__classPrivateFieldSet"), void 0, Et);
    }
    function Me(Ye, We) {
      return e.requestEmitHelper(O7), t.createCallExpression(o("__classPrivateFieldIn"), void 0, [Ye, We]);
    }
  }
  function Ofe(e, t) {
    return e === t || e.priority === t.priority ? 0 : e.priority === void 0 ? 1 : t.priority === void 0 ? -1 : Ws(e.priority, t.priority);
  }
  function sJ(e, ...t) {
    return (r) => {
      let i = "";
      for (let o = 0; o < t.length; o++)
        i += e[o], i += r(t[o]);
      return i += e[e.length - 1], i;
    };
  }
  function lJ() {
    return Pfe || (Pfe = e1([
      u7,
      d7,
      f7,
      _7,
      p7,
      m7,
      yx,
      h7,
      g7,
      y7,
      v7,
      b7,
      E7,
      T7,
      x7,
      L7,
      S7,
      A7,
      C7,
      I7,
      AO,
      w7,
      D7,
      R7,
      N7,
      O7,
      pC,
      k7
    ], (e) => e.name));
  }
  function xk(e, t) {
    return no(e) && je(e.expression) && (vo(e.expression) & 8192) !== 0 && e.expression.escapedText === t;
  }
  var cJ, u7, d7, f7, _7, p7, m7, yx, h7, g7, y7, v7, b7, E7, T7, S7, x7, A7, C7, L7, I7, pC, k7, AO, w7, D7, R7, N7, O7, Pfe, CO, LO, B6e = C({
    "src/compiler/factory/emitHelpers.ts"() {
      Oa(), cJ = /* @__PURE__ */ ((e) => (e.Field = "f", e.Method = "m", e.Accessor = "a", e))(cJ || {}), u7 = {
        name: "typescript:decorate",
        importName: "__decorate",
        scoped: !1,
        priority: 2,
        text: `
            var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
                var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
                if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
                else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
                return c > 3 && r && Object.defineProperty(target, key, r), r;
            };`
      }, d7 = {
        name: "typescript:metadata",
        importName: "__metadata",
        scoped: !1,
        priority: 3,
        text: `
            var __metadata = (this && this.__metadata) || function (k, v) {
                if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
            };`
      }, f7 = {
        name: "typescript:param",
        importName: "__param",
        scoped: !1,
        priority: 4,
        text: `
            var __param = (this && this.__param) || function (paramIndex, decorator) {
                return function (target, key) { decorator(target, key, paramIndex); }
            };`
      }, _7 = {
        name: "typescript:esDecorate",
        importName: "__esDecorate",
        scoped: !1,
        priority: 2,
        text: `
        var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
            function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
            var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
            var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
            var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
            var _, done = false;
            for (var i = decorators.length - 1; i >= 0; i--) {
                var context = {};
                for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
                for (var p in contextIn.access) context.access[p] = contextIn.access[p];
                context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
                var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
                if (kind === "accessor") {
                    if (result === void 0) continue;
                    if (result === null || typeof result !== "object") throw new TypeError("Object expected");
                    if (_ = accept(result.get)) descriptor.get = _;
                    if (_ = accept(result.set)) descriptor.set = _;
                    if (_ = accept(result.init)) initializers.push(_);
                }
                else if (_ = accept(result)) {
                    if (kind === "field") initializers.push(_);
                    else descriptor[key] = _;
                }
            }
            if (target) Object.defineProperty(target, contextIn.name, descriptor);
            done = true;
        };`
      }, p7 = {
        name: "typescript:runInitializers",
        importName: "__runInitializers",
        scoped: !1,
        priority: 2,
        text: `
        var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
            var useValue = arguments.length > 2;
            for (var i = 0; i < initializers.length; i++) {
                value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
            }
            return useValue ? value : void 0;
        };`
      }, m7 = {
        name: "typescript:assign",
        importName: "__assign",
        scoped: !1,
        priority: 1,
        text: `
            var __assign = (this && this.__assign) || function () {
                __assign = Object.assign || function(t) {
                    for (var s, i = 1, n = arguments.length; i < n; i++) {
                        s = arguments[i];
                        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
                            t[p] = s[p];
                    }
                    return t;
                };
                return __assign.apply(this, arguments);
            };`
      }, yx = {
        name: "typescript:await",
        importName: "__await",
        scoped: !1,
        text: `
            var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }`
      }, h7 = {
        name: "typescript:asyncGenerator",
        importName: "__asyncGenerator",
        scoped: !1,
        dependencies: [yx],
        text: `
            var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var g = generator.apply(thisArg, _arguments || []), i, q = [];
                return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
                function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
                function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
                function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
                function fulfill(value) { resume("next", value); }
                function reject(value) { resume("throw", value); }
                function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
            };`
      }, g7 = {
        name: "typescript:asyncDelegator",
        importName: "__asyncDelegator",
        scoped: !1,
        dependencies: [yx],
        text: `
            var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
                var i, p;
                return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
                function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
            };`
      }, y7 = {
        name: "typescript:asyncValues",
        importName: "__asyncValues",
        scoped: !1,
        text: `
            var __asyncValues = (this && this.__asyncValues) || function (o) {
                if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
                var m = o[Symbol.asyncIterator], i;
                return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
                function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
                function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
            };`
      }, v7 = {
        name: "typescript:rest",
        importName: "__rest",
        scoped: !1,
        text: `
            var __rest = (this && this.__rest) || function (s, e) {
                var t = {};
                for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
                    t[p] = s[p];
                if (s != null && typeof Object.getOwnPropertySymbols === "function")
                    for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
                        if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
                            t[p[i]] = s[p[i]];
                    }
                return t;
            };`
      }, b7 = {
        name: "typescript:awaiter",
        importName: "__awaiter",
        scoped: !1,
        priority: 5,
        text: `
            var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
                function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
                return new (P || (P = Promise))(function (resolve, reject) {
                    function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
                    function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
                    function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                });
            };`
      }, E7 = {
        name: "typescript:extends",
        importName: "__extends",
        scoped: !1,
        priority: 0,
        text: `
            var __extends = (this && this.__extends) || (function () {
                var extendStatics = function (d, b) {
                    extendStatics = Object.setPrototypeOf ||
                        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
                        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
                    return extendStatics(d, b);
                };

                return function (d, b) {
                    if (typeof b !== "function" && b !== null)
                        throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() { this.constructor = d; }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                };
            })();`
      }, T7 = {
        name: "typescript:makeTemplateObject",
        importName: "__makeTemplateObject",
        scoped: !1,
        priority: 0,
        text: `
            var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
                if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
                return cooked;
            };`
      }, S7 = {
        name: "typescript:read",
        importName: "__read",
        scoped: !1,
        text: `
            var __read = (this && this.__read) || function (o, n) {
                var m = typeof Symbol === "function" && o[Symbol.iterator];
                if (!m) return o;
                var i = m.call(o), r, ar = [], e;
                try {
                    while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
                }
                catch (error) { e = { error: error }; }
                finally {
                    try {
                        if (r && !r.done && (m = i["return"])) m.call(i);
                    }
                    finally { if (e) throw e.error; }
                }
                return ar;
            };`
      }, x7 = {
        name: "typescript:spreadArray",
        importName: "__spreadArray",
        scoped: !1,
        text: `
            var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
                if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
                    if (ar || !(i in from)) {
                        if (!ar) ar = Array.prototype.slice.call(from, 0, i);
                        ar[i] = from[i];
                    }
                }
                return to.concat(ar || Array.prototype.slice.call(from));
            };`
      }, A7 = {
        name: "typescript:propKey",
        importName: "__propKey",
        scoped: !1,
        text: `
        var __propKey = (this && this.__propKey) || function (x) {
            return typeof x === "symbol" ? x : "".concat(x);
        };`
      }, C7 = {
        name: "typescript:setFunctionName",
        importName: "__setFunctionName",
        scoped: !1,
        text: `
        var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {
            if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
            return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
        };`
      }, L7 = {
        name: "typescript:values",
        importName: "__values",
        scoped: !1,
        text: `
            var __values = (this && this.__values) || function(o) {
                var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
                if (m) return m.call(o);
                if (o && typeof o.length === "number") return {
                    next: function () {
                        if (o && i >= o.length) o = void 0;
                        return { value: o && o[i++], done: !o };
                    }
                };
                throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
            };`
      }, I7 = {
        name: "typescript:generator",
        importName: "__generator",
        scoped: !1,
        priority: 6,
        text: `
            var __generator = (this && this.__generator) || function (thisArg, body) {
                var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
                return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
                function verb(n) { return function (v) { return step([n, v]); }; }
                function step(op) {
                    if (f) throw new TypeError("Generator is already executing.");
                    while (g && (g = 0, op[0] && (_ = 0)), _) try {
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
                        if (y = 0, t) op = [op[0] & 2, t.value];
                        switch (op[0]) {
                            case 0: case 1: t = op; break;
                            case 4: _.label++; return { value: op[1], done: false };
                            case 5: _.label++; y = op[1]; op = [0]; continue;
                            case 7: op = _.ops.pop(); _.trys.pop(); continue;
                            default:
                                if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                                if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                                if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                                if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                                if (t[2]) _.ops.pop();
                                _.trys.pop(); continue;
                        }
                        op = body.call(thisArg, _);
                    } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
                    if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
                }
            };`
      }, pC = {
        name: "typescript:commonjscreatebinding",
        importName: "__createBinding",
        scoped: !1,
        priority: 1,
        text: `
            var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
                if (k2 === undefined) k2 = k;
                var desc = Object.getOwnPropertyDescriptor(m, k);
                if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
                  desc = { enumerable: true, get: function() { return m[k]; } };
                }
                Object.defineProperty(o, k2, desc);
            }) : (function(o, m, k, k2) {
                if (k2 === undefined) k2 = k;
                o[k2] = m[k];
            }));`
      }, k7 = {
        name: "typescript:commonjscreatevalue",
        importName: "__setModuleDefault",
        scoped: !1,
        priority: 1,
        text: `
            var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
                Object.defineProperty(o, "default", { enumerable: true, value: v });
            }) : function(o, v) {
                o["default"] = v;
            });`
      }, AO = {
        name: "typescript:commonjsimportstar",
        importName: "__importStar",
        scoped: !1,
        dependencies: [pC, k7],
        priority: 2,
        text: `
            var __importStar = (this && this.__importStar) || function (mod) {
                if (mod && mod.__esModule) return mod;
                var result = {};
                if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
                __setModuleDefault(result, mod);
                return result;
            };`
      }, w7 = {
        name: "typescript:commonjsimportdefault",
        importName: "__importDefault",
        scoped: !1,
        text: `
            var __importDefault = (this && this.__importDefault) || function (mod) {
                return (mod && mod.__esModule) ? mod : { "default": mod };
            };`
      }, D7 = {
        name: "typescript:export-star",
        importName: "__exportStar",
        scoped: !1,
        dependencies: [pC],
        priority: 2,
        text: `
            var __exportStar = (this && this.__exportStar) || function(m, exports) {
                for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
            };`
      }, R7 = {
        name: "typescript:classPrivateFieldGet",
        importName: "__classPrivateFieldGet",
        scoped: !1,
        text: `
            var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
                if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
                if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
                return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
            };`
      }, N7 = {
        name: "typescript:classPrivateFieldSet",
        importName: "__classPrivateFieldSet",
        scoped: !1,
        text: `
            var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
                if (kind === "m") throw new TypeError("Private method is not writable");
                if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
                if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
                return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
            };`
      }, O7 = {
        name: "typescript:classPrivateFieldIn",
        importName: "__classPrivateFieldIn",
        scoped: !1,
        text: `
            var __classPrivateFieldIn = (this && this.__classPrivateFieldIn) || function(state, receiver) {
                if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
                return typeof state === "function" ? receiver === state : state.has(receiver);
            };`
      }, CO = {
        name: "typescript:async-super",
        scoped: !0,
        text: sJ`
            const ${"_superIndex"} = name => super[name];`
      }, LO = {
        name: "typescript:advanced-async-super",
        scoped: !0,
        text: sJ`
            const ${"_superIndex"} = (function (geti, seti) {
                const cache = Object.create(null);
                return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } });
            })(name => super[name], (name, value) => super[name] = value);`
      };
    }
  });
  function v_(e) {
    return e.kind === 8;
  }
  function P7(e) {
    return e.kind === 9;
  }
  function jo(e) {
    return e.kind === 10;
  }
  function vx(e) {
    return e.kind === 11;
  }
  function uJ(e) {
    return e.kind === 13;
  }
  function bx(e) {
    return e.kind === 14;
  }
  function mC(e) {
    return e.kind === 15;
  }
  function Mfe(e) {
    return e.kind === 16;
  }
  function dJ(e) {
    return e.kind === 17;
  }
  function M7(e) {
    return e.kind === 25;
  }
  function Ffe(e) {
    return e.kind === 27;
  }
  function fJ(e) {
    return e.kind === 39;
  }
  function _J(e) {
    return e.kind === 40;
  }
  function IO(e) {
    return e.kind === 41;
  }
  function kO(e) {
    return e.kind === 53;
  }
  function Fv(e) {
    return e.kind === 57;
  }
  function Bfe(e) {
    return e.kind === 58;
  }
  function F7(e) {
    return e.kind === 28;
  }
  function Gfe(e) {
    return e.kind === 38;
  }
  function je(e) {
    return e.kind === 79;
  }
  function Ni(e) {
    return e.kind === 80;
  }
  function B7(e) {
    return e.kind === 93;
  }
  function Ufe(e) {
    return e.kind === 88;
  }
  function Ak(e) {
    return e.kind === 132;
  }
  function Vfe(e) {
    return e.kind === 129;
  }
  function pJ(e) {
    return e.kind === 133;
  }
  function jfe(e) {
    return e.kind === 146;
  }
  function Ex(e) {
    return e.kind === 124;
  }
  function Hfe(e) {
    return e.kind === 126;
  }
  function Wfe(e) {
    return e.kind === 161;
  }
  function zfe(e) {
    return e.kind === 127;
  }
  function Ck(e) {
    return e.kind === 106;
  }
  function Lk(e) {
    return e.kind === 100;
  }
  function qfe(e) {
    return e.kind === 82;
  }
  function Cd(e) {
    return e.kind === 163;
  }
  function As(e) {
    return e.kind === 164;
  }
  function Fl(e) {
    return e.kind === 165;
  }
  function Ba(e) {
    return e.kind === 166;
  }
  function Fu(e) {
    return e.kind === 167;
  }
  function If(e) {
    return e.kind === 168;
  }
  function to(e) {
    return e.kind === 169;
  }
  function Ah(e) {
    return e.kind === 170;
  }
  function ac(e) {
    return e.kind === 171;
  }
  function Il(e) {
    return e.kind === 172;
  }
  function ql(e) {
    return e.kind === 173;
  }
  function z_(e) {
    return e.kind === 174;
  }
  function e_(e) {
    return e.kind === 175;
  }
  function hC(e) {
    return e.kind === 176;
  }
  function wO(e) {
    return e.kind === 177;
  }
  function Tx(e) {
    return e.kind === 178;
  }
  function G7(e) {
    return e.kind === 179;
  }
  function q_(e) {
    return e.kind === 180;
  }
  function Ch(e) {
    return e.kind === 181;
  }
  function Ik(e) {
    return e.kind === 182;
  }
  function kk(e) {
    return e.kind === 183;
  }
  function uf(e) {
    return e.kind === 184;
  }
  function mJ(e) {
    return e.kind === 185;
  }
  function gC(e) {
    return e.kind === 186;
  }
  function wk(e) {
    return e.kind === 199;
  }
  function hJ(e) {
    return e.kind === 187;
  }
  function gJ(e) {
    return e.kind === 188;
  }
  function Sx(e) {
    return e.kind === 189;
  }
  function DO(e) {
    return e.kind === 190;
  }
  function yC(e) {
    return e.kind === 191;
  }
  function vC(e) {
    return e.kind === 192;
  }
  function xx(e) {
    return e.kind === 193;
  }
  function U7(e) {
    return e.kind === 194;
  }
  function Ax(e) {
    return e.kind === 195;
  }
  function Cx(e) {
    return e.kind === 196;
  }
  function Dk(e) {
    return e.kind === 197;
  }
  function Z0(e) {
    return e.kind === 198;
  }
  function gg(e) {
    return e.kind === 202;
  }
  function Jfe(e) {
    return e.kind === 201;
  }
  function G6e(e) {
    return e.kind === 200;
  }
  function Hm(e) {
    return e.kind === 203;
  }
  function bC(e) {
    return e.kind === 204;
  }
  function _s(e) {
    return e.kind === 205;
  }
  function Bu(e) {
    return e.kind === 206;
  }
  function Ls(e) {
    return e.kind === 207;
  }
  function Fr(e) {
    return e.kind === 208;
  }
  function cl(e) {
    return e.kind === 209;
  }
  function no(e) {
    return e.kind === 210;
  }
  function D1(e) {
    return e.kind === 211;
  }
  function AT(e) {
    return e.kind === 212;
  }
  function Kfe(e) {
    return e.kind === 213;
  }
  function Vd(e) {
    return e.kind === 214;
  }
  function Bs(e) {
    return e.kind === 215;
  }
  function Js(e) {
    return e.kind === 216;
  }
  function Xfe(e) {
    return e.kind === 217;
  }
  function EC(e) {
    return e.kind === 218;
  }
  function Lx(e) {
    return e.kind === 219;
  }
  function TC(e) {
    return e.kind === 220;
  }
  function Bv(e) {
    return e.kind === 221;
  }
  function yJ(e) {
    return e.kind === 222;
  }
  function br(e) {
    return e.kind === 223;
  }
  function SC(e) {
    return e.kind === 224;
  }
  function V7(e) {
    return e.kind === 225;
  }
  function j7(e) {
    return e.kind === 226;
  }
  function Lh(e) {
    return e.kind === 227;
  }
  function Gu(e) {
    return e.kind === 228;
  }
  function Rc(e) {
    return e.kind === 229;
  }
  function Sy(e) {
    return e.kind === 230;
  }
  function RO(e) {
    return e.kind === 231;
  }
  function U6e(e) {
    return e.kind === 235;
  }
  function Ix(e) {
    return e.kind === 232;
  }
  function Rk(e) {
    return e.kind === 233;
  }
  function V6e(e) {
    return e.kind === 234;
  }
  function H7(e) {
    return e.kind === 356;
  }
  function Nk(e) {
    return e.kind === 357;
  }
  function Ok(e) {
    return e.kind === 236;
  }
  function Yfe(e) {
    return e.kind === 237;
  }
  function co(e) {
    return e.kind === 238;
  }
  function uc(e) {
    return e.kind === 240;
  }
  function vJ(e) {
    return e.kind === 239;
  }
  function ou(e) {
    return e.kind === 241;
  }
  function CT(e) {
    return e.kind === 242;
  }
  function j6e(e) {
    return e.kind === 243;
  }
  function H6e(e) {
    return e.kind === 244;
  }
  function LT(e) {
    return e.kind === 245;
  }
  function bJ(e) {
    return e.kind === 246;
  }
  function NO(e) {
    return e.kind === 247;
  }
  function W6e(e) {
    return e.kind === 248;
  }
  function z6e(e) {
    return e.kind === 249;
  }
  function bp(e) {
    return e.kind === 250;
  }
  function $fe(e) {
    return e.kind === 251;
  }
  function OO(e) {
    return e.kind === 252;
  }
  function R1(e) {
    return e.kind === 253;
  }
  function EJ(e) {
    return e.kind === 254;
  }
  function PO(e) {
    return e.kind === 255;
  }
  function q6e(e) {
    return e.kind === 256;
  }
  function Ki(e) {
    return e.kind === 257;
  }
  function Uu(e) {
    return e.kind === 258;
  }
  function yc(e) {
    return e.kind === 259;
  }
  function Nc(e) {
    return e.kind === 260;
  }
  function nd(e) {
    return e.kind === 261;
  }
  function em(e) {
    return e.kind === 262;
  }
  function eb(e) {
    return e.kind === 263;
  }
  function Jl(e) {
    return e.kind === 264;
  }
  function tm(e) {
    return e.kind === 265;
  }
  function MO(e) {
    return e.kind === 266;
  }
  function FO(e) {
    return e.kind === 267;
  }
  function su(e) {
    return e.kind === 268;
  }
  function Wc(e) {
    return e.kind === 269;
  }
  function Wm(e) {
    return e.kind === 270;
  }
  function Qfe(e) {
    return e.kind === 298;
  }
  function W7(e) {
    return e.kind === 296;
  }
  function Zfe(e) {
    return e.kind === 297;
  }
  function Gv(e) {
    return e.kind === 271;
  }
  function Ih(e) {
    return e.kind === 277;
  }
  function xy(e) {
    return e.kind === 272;
  }
  function Ld(e) {
    return e.kind === 273;
  }
  function Bl(e) {
    return e.kind === 274;
  }
  function eu(e) {
    return e.kind === 275;
  }
  function J_(e) {
    return e.kind === 276;
  }
  function dd(e) {
    return e.kind === 278;
  }
  function J6e(e) {
    return e.kind === 279;
  }
  function TJ(e) {
    return e.kind === 355;
  }
  function kx(e) {
    return e.kind === 360;
  }
  function K6e(e) {
    return e.kind === 358;
  }
  function X6e(e) {
    return e.kind === 359;
  }
  function zm(e) {
    return e.kind === 280;
  }
  function Ay(e) {
    return e.kind === 281;
  }
  function wx(e) {
    return e.kind === 282;
  }
  function kh(e) {
    return e.kind === 283;
  }
  function Dx(e) {
    return e.kind === 284;
  }
  function Rx(e) {
    return e.kind === 285;
  }
  function Nx(e) {
    return e.kind === 286;
  }
  function e_e(e) {
    return e.kind === 287;
  }
  function nm(e) {
    return e.kind === 288;
  }
  function N1(e) {
    return e.kind === 289;
  }
  function IT(e) {
    return e.kind === 290;
  }
  function Pk(e) {
    return e.kind === 291;
  }
  function Mk(e) {
    return e.kind === 292;
  }
  function BO(e) {
    return e.kind === 293;
  }
  function jd(e) {
    return e.kind === 294;
  }
  function xC(e) {
    return e.kind === 295;
  }
  function zc(e) {
    return e.kind === 299;
  }
  function t_(e) {
    return e.kind === 300;
  }
  function Ox(e) {
    return e.kind === 301;
  }
  function O1(e) {
    return e.kind === 302;
  }
  function t_e(e) {
    return e.kind === 304;
  }
  function qi(e) {
    return e.kind === 308;
  }
  function SJ(e) {
    return e.kind === 309;
  }
  function kT(e) {
    return e.kind === 310;
  }
  function wT(e) {
    return e.kind === 312;
  }
  function Fk(e) {
    return e.kind === 313;
  }
  function tb(e) {
    return e.kind === 314;
  }
  function n_e(e) {
    return e.kind === 327;
  }
  function r_e(e) {
    return e.kind === 328;
  }
  function Y6e(e) {
    return e.kind === 329;
  }
  function i_e(e) {
    return e.kind === 315;
  }
  function a_e(e) {
    return e.kind === 316;
  }
  function AC(e) {
    return e.kind === 317;
  }
  function z7(e) {
    return e.kind === 318;
  }
  function xJ(e) {
    return e.kind === 319;
  }
  function CC(e) {
    return e.kind === 320;
  }
  function q7(e) {
    return e.kind === 321;
  }
  function $6e(e) {
    return e.kind === 322;
  }
  function qm(e) {
    return e.kind === 323;
  }
  function Bk(e) {
    return e.kind === 325;
  }
  function P1(e) {
    return e.kind === 326;
  }
  function LC(e) {
    return e.kind === 331;
  }
  function Q6e(e) {
    return e.kind === 333;
  }
  function o_e(e) {
    return e.kind === 335;
  }
  function AJ(e) {
    return e.kind === 341;
  }
  function CJ(e) {
    return e.kind === 336;
  }
  function LJ(e) {
    return e.kind === 337;
  }
  function IJ(e) {
    return e.kind === 338;
  }
  function kJ(e) {
    return e.kind === 339;
  }
  function J7(e) {
    return e.kind === 340;
  }
  function Gk(e) {
    return e.kind === 342;
  }
  function wJ(e) {
    return e.kind === 334;
  }
  function Z6e(e) {
    return e.kind === 350;
  }
  function GO(e) {
    return e.kind === 343;
  }
  function rm(e) {
    return e.kind === 344;
  }
  function K7(e) {
    return e.kind === 345;
  }
  function s_e(e) {
    return e.kind === 346;
  }
  function Uk(e) {
    return e.kind === 347;
  }
  function Ep(e) {
    return e.kind === 348;
  }
  function DJ(e) {
    return e.kind === 349;
  }
  function ePe(e) {
    return e.kind === 330;
  }
  function l_e(e) {
    return e.kind === 351;
  }
  function RJ(e) {
    return e.kind === 332;
  }
  function X7(e) {
    return e.kind === 353;
  }
  function tPe(e) {
    return e.kind === 352;
  }
  function IC(e) {
    return e.kind === 354;
  }
  var nPe = C({
    "src/compiler/factory/nodeTests.ts"() {
      Oa();
    }
  });
  function UO(e) {
    return e.createExportDeclaration(void 0, !1, e.createNamedExports([]), void 0);
  }
  function DT(e, t, r, i) {
    if (As(r))
      return ht(e.createElementAccessExpression(t, r.expression), i);
    {
      const o = ht(og(r) ? e.createPropertyAccessExpression(t, r) : e.createElementAccessExpression(t, r), r);
      return Zp(o, 128), o;
    }
  }
  function NJ(e, t) {
    const r = Jm.createIdentifier(e || "React");
    return Vo(r, Ea(t)), r;
  }
  function OJ(e, t, r) {
    if (Cd(t)) {
      const i = OJ(e, t.left, r), o = e.createIdentifier(Mr(t.right));
      return o.escapedText = t.right.escapedText, e.createPropertyAccessExpression(i, o);
    } else
      return NJ(Mr(t), r);
  }
  function PJ(e, t, r, i) {
    return t ? OJ(e, t, i) : e.createPropertyAccessExpression(NJ(r, i), "createElement");
  }
  function rPe(e, t, r, i) {
    return t ? OJ(e, t, i) : e.createPropertyAccessExpression(NJ(r, i), "Fragment");
  }
  function c_e(e, t, r, i, o, s) {
    const c = [r];
    if (i && c.push(i), o && o.length > 0)
      if (i || c.push(e.createNull()), o.length > 1)
        for (const f of o)
          Vu(f), c.push(f);
      else
        c.push(o[0]);
    return ht(e.createCallExpression(t, void 0, c), s);
  }
  function u_e(e, t, r, i, o, s, c) {
    const d = [rPe(e, r, i, s), e.createNull()];
    if (o && o.length > 0)
      if (o.length > 1)
        for (const y of o)
          Vu(y), d.push(y);
      else
        d.push(o[0]);
    return ht(e.createCallExpression(PJ(e, t, i, s), void 0, d), c);
  }
  function MJ(e, t, r) {
    if (Uu(t)) {
      const i = us(t.declarations), o = e.updateVariableDeclaration(i, i.name, void 0, void 0, r);
      return ht(e.createVariableStatement(void 0, e.updateVariableDeclarationList(t, [o])), t);
    } else {
      const i = ht(e.createAssignment(t, r), t);
      return ht(e.createExpressionStatement(i), t);
    }
  }
  function iPe(e, t, r) {
    return co(t) ? e.updateBlock(t, ht(e.createNodeArray([r, ...t.statements]), t.statements)) : e.createBlock(e.createNodeArray([t, r]), !0);
  }
  function VO(e, t) {
    if (Cd(t)) {
      const r = VO(e, t.left), i = Vo(ht(e.cloneNode(t.right), t.right), t.right.parent);
      return ht(e.createPropertyAccessExpression(r, i), t);
    } else
      return Vo(ht(e.cloneNode(t), t), t.parent);
  }
  function FJ(e, t) {
    return je(t) ? e.createStringLiteralFromNode(t) : As(t) ? Vo(ht(e.cloneNode(t.expression), t.expression), t.expression.parent) : Vo(ht(e.cloneNode(t), t), t.parent);
  }
  function aPe(e, t, r, i, o) {
    const { firstAccessor: s, getAccessor: c, setAccessor: f } = vT(t, r);
    if (r === s)
      return ht(e.createObjectDefinePropertyCall(i, FJ(e, r.name), e.createPropertyDescriptor({
        enumerable: e.createFalse(),
        configurable: !0,
        get: c && ht(Wr(e.createFunctionExpression(eT(c), void 0, void 0, void 0, c.parameters, void 0, c.body), c), c),
        set: f && ht(Wr(e.createFunctionExpression(eT(f), void 0, void 0, void 0, f.parameters, void 0, f.body), f), f)
      }, !o)), s);
  }
  function oPe(e, t, r) {
    return Wr(ht(e.createAssignment(DT(e, r, t.name, t.name), t.initializer), t), t);
  }
  function sPe(e, t, r) {
    return Wr(ht(e.createAssignment(DT(e, r, t.name, t.name), e.cloneNode(t.name)), t), t);
  }
  function lPe(e, t, r) {
    return Wr(ht(e.createAssignment(DT(e, r, t.name, t.name), Wr(ht(e.createFunctionExpression(eT(t), t.asteriskToken, void 0, void 0, t.parameters, void 0, t.body), t), t)), t), t);
  }
  function d_e(e, t, r, i) {
    switch (r.name && Ni(r.name) && D.failBadSyntaxKind(r.name, "Private identifiers are not allowed in object literals."), r.kind) {
      case 174:
      case 175:
        return aPe(e, t.properties, r, i, !!t.multiLine);
      case 299:
        return oPe(e, r, i);
      case 300:
        return sPe(e, r, i);
      case 171:
        return lPe(e, r, i);
    }
  }
  function Y7(e, t, r, i, o) {
    const s = t.operator;
    D.assert(s === 45 || s === 46, "Expected 'node' to be a pre- or post-increment or pre- or post-decrement expression");
    const c = e.createTempVariable(i);
    r = e.createAssignment(c, r), ht(r, t.operand);
    let f = Bv(t) ? e.createPrefixUnaryExpression(s, c) : e.createPostfixUnaryExpression(c, s);
    return ht(f, t), o && (f = e.createAssignment(o, f), ht(f, t)), r = e.createComma(r, f), ht(r, t), yJ(t) && (r = e.createComma(r, c), ht(r, t)), r;
  }
  function BJ(e) {
    return (vo(e) & 65536) !== 0;
  }
  function Uv(e) {
    return (vo(e) & 32768) !== 0;
  }
  function $7(e) {
    return (vo(e) & 16384) !== 0;
  }
  function f_e(e) {
    return jo(e.expression) && e.expression.text === "use strict";
  }
  function GJ(e) {
    for (const t of e)
      if (gp(t)) {
        if (f_e(t))
          return t;
      } else
        break;
  }
  function __e(e) {
    const t = Yc(e);
    return t !== void 0 && gp(t) && f_e(t);
  }
  function jO(e) {
    return e.kind === 223 && e.operatorToken.kind === 27;
  }
  function Vk(e) {
    return jO(e) || Nk(e);
  }
  function jk(e) {
    return Vd(e) && fr(e) && !!u1(e);
  }
  function Q7(e) {
    const t = xv(e);
    return D.assertIsDefined(t), t;
  }
  function Z7(e, t = 15) {
    switch (e.kind) {
      case 214:
        return t & 16 && jk(e) ? !1 : (t & 1) !== 0;
      case 213:
      case 231:
      case 230:
      case 235:
        return (t & 2) !== 0;
      case 232:
        return (t & 4) !== 0;
      case 356:
        return (t & 8) !== 0;
    }
    return !1;
  }
  function bu(e, t = 15) {
    for (; Z7(e, t); )
      e = e.expression;
    return e;
  }
  function p_e(e, t = 15) {
    let r = e.parent;
    for (; Z7(r, t); )
      r = r.parent, D.assert(r);
    return r;
  }
  function cPe(e) {
    return bu(e, 6);
  }
  function Vu(e) {
    return rJ(e, !0);
  }
  function HO(e) {
    const t = Tl(e, qi), r = t && t.emitNode;
    return r && r.externalHelpersModuleName;
  }
  function m_e(e) {
    const t = Tl(e, qi), r = t && t.emitNode;
    return !!r && (!!r.externalHelpersModuleName || !!r.externalHelpers);
  }
  function UJ(e, t, r, i, o, s, c) {
    if (i.importHelpers && QS(r, i)) {
      let f;
      const d = au(i);
      if (d >= 5 && d <= 99 || r.impliedNodeFormat === 99) {
        const y = c7(r);
        if (y) {
          const h = [];
          for (const E of y)
            if (!E.scoped) {
              const A = E.importName;
              A && d_(h, A);
            }
          if (kt(h)) {
            h.sort(Nu), f = e.createNamedImports(jt(h, (L) => JM(r, L) ? e.createImportSpecifier(!1, void 0, e.createIdentifier(L)) : e.createImportSpecifier(!1, e.createIdentifier(L), t.getUnscopedHelperName(L))));
            const E = Tl(r, qi), A = td(E);
            A.externalHelpers = !0;
          }
        }
      } else {
        const y = h_e(e, r, i, o, s || c);
        y && (f = e.createNamespaceImport(y));
      }
      if (f) {
        const y = e.createImportDeclaration(void 0, e.createImportClause(!1, void 0, f), e.createStringLiteral($0), void 0);
        return hx(y, 2), y;
      }
    }
  }
  function h_e(e, t, r, i, o) {
    if (r.importHelpers && QS(t, r)) {
      const s = HO(t);
      if (s)
        return s;
      const c = au(r);
      let f = (i || H_(r) && o) && c !== 4 && (c < 5 || t.impliedNodeFormat === 1);
      if (!f) {
        const d = c7(t);
        if (d) {
          for (const y of d)
            if (!y.scoped) {
              f = !0;
              break;
            }
        }
      }
      if (f) {
        const d = Tl(t, qi), y = td(d);
        return y.externalHelpersModuleName || (y.externalHelpersModuleName = e.createUniqueName($0));
      }
    }
  }
  function kC(e, t, r) {
    const i = WA(t);
    if (i && !nx(t) && !XM(t)) {
      const o = i.name;
      return Sl(o) ? o : e.createIdentifier(m1(r, o) || Mr(o));
    }
    if (t.kind === 269 && t.importClause || t.kind === 275 && t.moduleSpecifier)
      return e.getGeneratedNameForNode(t);
  }
  function Px(e, t, r, i, o, s) {
    const c = HA(t);
    if (c && jo(c))
      return dPe(t, i, e, o, s) || uPe(e, c, r) || e.cloneNode(c);
  }
  function uPe(e, t, r) {
    const i = r.renamedDependencies && r.renamedDependencies.get(t.text);
    return i ? e.createStringLiteral(i) : void 0;
  }
  function WO(e, t, r, i) {
    if (t) {
      if (t.moduleName)
        return e.createStringLiteral(t.moduleName);
      if (!t.isDeclarationFile && qs(i))
        return e.createStringLiteral(Oz(r, t.fileName));
    }
  }
  function dPe(e, t, r, i, o) {
    return WO(r, i.getExternalModuleFileFromDeclaration(e), t, o);
  }
  function zO(e) {
    if (KR(e))
      return e.initializer;
    if (zc(e)) {
      const t = e.initializer;
      return ed(t, !0) ? t.right : void 0;
    }
    if (t_(e))
      return e.objectAssignmentInitializer;
    if (ed(e, !0))
      return e.right;
    if (Lh(e))
      return zO(e.expression);
  }
  function Vv(e) {
    if (KR(e))
      return e.name;
    if (my(e)) {
      switch (e.kind) {
        case 299:
          return Vv(e.initializer);
        case 300:
          return e.name;
        case 301:
          return Vv(e.expression);
      }
      return;
    }
    return ed(e, !0) ? Vv(e.left) : Lh(e) ? Vv(e.expression) : e;
  }
  function e5(e) {
    switch (e.kind) {
      case 166:
      case 205:
        return e.dotDotDotToken;
      case 227:
      case 301:
        return e;
    }
  }
  function VJ(e) {
    const t = t5(e);
    return D.assert(!!t || Ox(e), "Invalid property name for binding element."), t;
  }
  function t5(e) {
    switch (e.kind) {
      case 205:
        if (e.propertyName) {
          const r = e.propertyName;
          return Ni(r) ? D.failBadSyntaxKind(r) : As(r) && g_e(r.expression) ? r.expression : r;
        }
        break;
      case 299:
        if (e.name) {
          const r = e.name;
          return Ni(r) ? D.failBadSyntaxKind(r) : As(r) && g_e(r.expression) ? r.expression : r;
        }
        break;
      case 301:
        return e.name && Ni(e.name) ? D.failBadSyntaxKind(e.name) : e.name;
    }
    const t = Vv(e);
    if (t && yl(t))
      return t;
  }
  function g_e(e) {
    const t = e.kind;
    return t === 10 || t === 8;
  }
  function wC(e) {
    switch (e.kind) {
      case 203:
      case 204:
      case 206:
        return e.elements;
      case 207:
        return e.properties;
    }
  }
  function jJ(e) {
    if (e) {
      let t = e;
      for (; ; ) {
        if (je(t) || !t.body)
          return je(t) ? t : t.name;
        t = t.body;
      }
    }
  }
  function fPe(e) {
    const t = e.kind;
    return t === 173 || t === 175;
  }
  function y_e(e) {
    const t = e.kind;
    return t === 173 || t === 174 || t === 175;
  }
  function HJ(e) {
    const t = e.kind;
    return t === 299 || t === 300 || t === 259 || t === 173 || t === 178 || t === 172 || t === 279 || t === 240 || t === 261 || t === 262 || t === 263 || t === 264 || t === 268 || t === 269 || t === 267 || t === 275 || t === 274;
  }
  function v_e(e) {
    const t = e.kind;
    return t === 172 || t === 299 || t === 300 || t === 279 || t === 267;
  }
  function b_e(e) {
    return Fv(e) || kO(e);
  }
  function E_e(e) {
    return je(e) || U7(e);
  }
  function T_e(e) {
    return jfe(e) || fJ(e) || _J(e);
  }
  function S_e(e) {
    return Fv(e) || fJ(e) || _J(e);
  }
  function x_e(e) {
    return je(e) || jo(e);
  }
  function _Pe(e) {
    const t = e.kind;
    return t === 104 || t === 110 || t === 95 || nT(e) || Bv(e);
  }
  function pPe(e) {
    return e === 42;
  }
  function mPe(e) {
    return e === 41 || e === 43 || e === 44;
  }
  function hPe(e) {
    return pPe(e) || mPe(e);
  }
  function gPe(e) {
    return e === 39 || e === 40;
  }
  function yPe(e) {
    return gPe(e) || hPe(e);
  }
  function vPe(e) {
    return e === 47 || e === 48 || e === 49;
  }
  function bPe(e) {
    return vPe(e) || yPe(e);
  }
  function EPe(e) {
    return e === 29 || e === 32 || e === 31 || e === 33 || e === 102 || e === 101;
  }
  function TPe(e) {
    return EPe(e) || bPe(e);
  }
  function SPe(e) {
    return e === 34 || e === 36 || e === 35 || e === 37;
  }
  function xPe(e) {
    return SPe(e) || TPe(e);
  }
  function APe(e) {
    return e === 50 || e === 51 || e === 52;
  }
  function CPe(e) {
    return APe(e) || xPe(e);
  }
  function LPe(e) {
    return e === 55 || e === 56;
  }
  function IPe(e) {
    return LPe(e) || CPe(e);
  }
  function kPe(e) {
    return e === 60 || IPe(e) || yy(e);
  }
  function wPe(e) {
    return kPe(e) || e === 27;
  }
  function A_e(e) {
    return wPe(e.kind);
  }
  function n5(e, t, r, i, o, s) {
    const c = new D_e(e, t, r, i, o, s);
    return f;
    function f(d, y) {
      const h = { value: void 0 }, E = [a5.enter], A = [d], L = [void 0];
      let I = 0;
      for (; E[I] !== a5.done; )
        I = E[I](c, I, E, A, L, h, y);
      return D.assertEqual(I, 0), h.value;
    }
  }
  function C_e(e) {
    return e === 93 || e === 88;
  }
  function WJ(e) {
    const t = e.kind;
    return C_e(t);
  }
  function DPe(e) {
    const t = e.kind;
    return py(t) && !C_e(t);
  }
  function L_e(e, t) {
    if (t !== void 0)
      return t.length === 0 ? t : ht(e.createNodeArray([], t.hasTrailingComma), t);
  }
  function r5(e) {
    var t;
    const r = e.emitNode.autoGenerate;
    if (r.flags & 4) {
      const i = r.id;
      let o = e, s = o.original;
      for (; s; ) {
        o = s;
        const c = (t = o.emitNode) == null ? void 0 : t.autoGenerate;
        if (og(o) && (c === void 0 || c.flags & 4 && c.id !== i))
          break;
        s = o.original;
      }
      return o;
    }
    return e;
  }
  function DC(e, t) {
    return typeof e == "object" ? RT(!1, e.prefix, e.node, e.suffix, t) : typeof e == "string" ? e.length > 0 && e.charCodeAt(0) === 35 ? e.slice(1) : e : "";
  }
  function RPe(e, t) {
    return typeof e == "string" ? e : NPe(e, D.checkDefined(t));
  }
  function NPe(e, t) {
    return KS(e) ? t(e).slice(1) : Sl(e) ? t(e) : Ni(e) ? e.escapedText.slice(1) : Mr(e);
  }
  function RT(e, t, r, i, o) {
    return t = DC(t, o), i = DC(i, o), r = RPe(r, o), `${e ? "#" : ""}${t}${r}${i}`;
  }
  function zJ(e, t, r, i) {
    return e.updatePropertyDeclaration(t, r, e.getGeneratedPrivateNameForNode(t.name, void 0, "_accessor_storage"), void 0, void 0, i);
  }
  function I_e(e, t, r, i) {
    return e.createGetAccessorDeclaration(r, i, [], void 0, e.createBlock([
      e.createReturnStatement(e.createPropertyAccessExpression(e.createThis(), e.getGeneratedPrivateNameForNode(t.name, void 0, "_accessor_storage")))
    ]));
  }
  function k_e(e, t, r, i) {
    return e.createSetAccessorDeclaration(r, i, [e.createParameterDeclaration(void 0, void 0, "value")], e.createBlock([
      e.createExpressionStatement(e.createAssignment(e.createPropertyAccessExpression(e.createThis(), e.getGeneratedPrivateNameForNode(t.name, void 0, "_accessor_storage")), e.createIdentifier("value")))
    ]));
  }
  function i5(e) {
    let t = e.expression;
    for (; ; ) {
      if (t = bu(t), Nk(t)) {
        t = qo(t.elements);
        continue;
      }
      if (jO(t)) {
        t = t.right;
        continue;
      }
      if (ed(t, !0) && Sl(t.left))
        return t;
      break;
    }
  }
  function OPe(e) {
    return Vd(e) && Zs(e) && !e.emitNode;
  }
  function qO(e, t) {
    if (OPe(e))
      qO(e.expression, t);
    else if (jO(e))
      qO(e.left, t), qO(e.right, t);
    else if (Nk(e))
      for (const r of e.elements)
        qO(r, t);
    else
      t.push(e);
  }
  function w_e(e) {
    const t = [];
    return qO(e, t), t;
  }
  function JO(e) {
    if (e.transformFlags & 65536)
      return !0;
    if (e.transformFlags & 128)
      for (const t of wC(e)) {
        const r = Vv(t);
        if (r && kI(r) && (r.transformFlags & 65536 || r.transformFlags & 128 && JO(r)))
          return !0;
      }
    return !1;
  }
  var a5, D_e, PPe = C({
    "src/compiler/factory/utilities.ts"() {
      Oa(), ((e) => {
        function t(h, E, A, L, I, O, k) {
          const G = E > 0 ? I[E - 1] : void 0;
          return D.assertEqual(A[E], t), I[E] = h.onEnter(L[E], G, k), A[E] = f(h, t), E;
        }
        e.enter = t;
        function r(h, E, A, L, I, O, k) {
          D.assertEqual(A[E], r), D.assertIsDefined(h.onLeft), A[E] = f(h, r);
          const G = h.onLeft(L[E].left, I[E], L[E]);
          return G ? (y(E, L, G), d(E, A, L, I, G)) : E;
        }
        e.left = r;
        function i(h, E, A, L, I, O, k) {
          return D.assertEqual(A[E], i), D.assertIsDefined(h.onOperator), A[E] = f(h, i), h.onOperator(L[E].operatorToken, I[E], L[E]), E;
        }
        e.operator = i;
        function o(h, E, A, L, I, O, k) {
          D.assertEqual(A[E], o), D.assertIsDefined(h.onRight), A[E] = f(h, o);
          const G = h.onRight(L[E].right, I[E], L[E]);
          return G ? (y(E, L, G), d(E, A, L, I, G)) : E;
        }
        e.right = o;
        function s(h, E, A, L, I, O, k) {
          D.assertEqual(A[E], s), A[E] = f(h, s);
          const G = h.onExit(L[E], I[E]);
          if (E > 0) {
            if (E--, h.foldState) {
              const V = A[E] === s ? "right" : "left";
              I[E] = h.foldState(I[E], G, V);
            }
          } else
            O.value = G;
          return E;
        }
        e.exit = s;
        function c(h, E, A, L, I, O, k) {
          return D.assertEqual(A[E], c), E;
        }
        e.done = c;
        function f(h, E) {
          switch (E) {
            case t:
              if (h.onLeft)
                return r;
            case r:
              if (h.onOperator)
                return i;
            case i:
              if (h.onRight)
                return o;
            case o:
              return s;
            case s:
              return c;
            case c:
              return c;
            default:
              D.fail("Invalid state");
          }
        }
        e.nextState = f;
        function d(h, E, A, L, I) {
          return h++, E[h] = t, A[h] = I, L[h] = void 0, h;
        }
        function y(h, E, A) {
          if (D.shouldAssert(2))
            for (; h >= 0; )
              D.assert(E[h] !== A, "Circular traversal detected."), h--;
        }
      })(a5 || (a5 = {})), D_e = class {
        constructor(e, t, r, i, o, s) {
          this.onEnter = e, this.onLeft = t, this.onOperator = r, this.onRight = i, this.onExit = o, this.foldState = s;
        }
      };
    }
  });
  function ht(e, t) {
    return t ? Vm(e, t.pos, t.end) : e;
  }
  function K_(e) {
    const t = e.kind;
    return t === 165 || t === 166 || t === 168 || t === 169 || t === 170 || t === 171 || t === 173 || t === 174 || t === 175 || t === 178 || t === 182 || t === 215 || t === 216 || t === 228 || t === 240 || t === 259 || t === 260 || t === 261 || t === 262 || t === 263 || t === 264 || t === 268 || t === 269 || t === 274 || t === 275;
  }
  function Mx(e) {
    const t = e.kind;
    return t === 166 || t === 169 || t === 171 || t === 174 || t === 175 || t === 228 || t === 260;
  }
  var MPe = C({
    "src/compiler/factory/utilitiesPublic.ts"() {
      Oa();
    }
  });
  function Yt(e, t) {
    return t && e(t);
  }
  function wi(e, t, r) {
    if (r) {
      if (t)
        return t(r);
      for (const i of r) {
        const o = e(i);
        if (o)
          return o;
      }
    }
  }
  function qJ(e, t) {
    return e.charCodeAt(t + 1) === 42 && e.charCodeAt(t + 2) === 42 && e.charCodeAt(t + 3) !== 47;
  }
  function KO(e) {
    return ze(e.statements, FPe) || BPe(e);
  }
  function FPe(e) {
    return K_(e) && GPe(e, 93) || su(e) && zm(e.moduleReference) || Wc(e) || Bl(e) || eu(e) ? e : void 0;
  }
  function BPe(e) {
    return e.flags & 4194304 ? R_e(e) : void 0;
  }
  function R_e(e) {
    return UPe(e) ? e : Ma(e, R_e);
  }
  function GPe(e, t) {
    return kt(e.modifiers, (r) => r.kind === t);
  }
  function UPe(e) {
    return Rk(e) && e.keywordToken === 100 && e.name.escapedText === "meta";
  }
  function N_e(e, t, r) {
    return wi(t, r, e.typeParameters) || wi(t, r, e.parameters) || Yt(t, e.type);
  }
  function O_e(e, t, r) {
    return wi(t, r, e.types);
  }
  function P_e(e, t, r) {
    return Yt(t, e.type);
  }
  function M_e(e, t, r) {
    return wi(t, r, e.elements);
  }
  function F_e(e, t, r) {
    return Yt(t, e.expression) || Yt(t, e.questionDotToken) || wi(t, r, e.typeArguments) || wi(t, r, e.arguments);
  }
  function B_e(e, t, r) {
    return wi(t, r, e.statements);
  }
  function G_e(e, t, r) {
    return Yt(t, e.label);
  }
  function U_e(e, t, r) {
    return wi(t, r, e.modifiers) || Yt(t, e.name) || wi(t, r, e.typeParameters) || wi(t, r, e.heritageClauses) || wi(t, r, e.members);
  }
  function V_e(e, t, r) {
    return wi(t, r, e.elements);
  }
  function j_e(e, t, r) {
    return Yt(t, e.propertyName) || Yt(t, e.name);
  }
  function H_e(e, t, r) {
    return Yt(t, e.tagName) || wi(t, r, e.typeArguments) || Yt(t, e.attributes);
  }
  function RC(e, t, r) {
    return Yt(t, e.type);
  }
  function W_e(e, t, r) {
    return Yt(t, e.tagName) || (e.isNameFirst ? Yt(t, e.name) || Yt(t, e.typeExpression) : Yt(t, e.typeExpression) || Yt(t, e.name)) || (typeof e.comment == "string" ? void 0 : wi(t, r, e.comment));
  }
  function NC(e, t, r) {
    return Yt(t, e.tagName) || Yt(t, e.typeExpression) || (typeof e.comment == "string" ? void 0 : wi(t, r, e.comment));
  }
  function JJ(e, t, r) {
    return Yt(t, e.name);
  }
  function Fx(e, t, r) {
    return Yt(t, e.tagName) || (typeof e.comment == "string" ? void 0 : wi(t, r, e.comment));
  }
  function VPe(e, t, r) {
    return Yt(t, e.expression);
  }
  function Ma(e, t, r) {
    if (e === void 0 || e.kind <= 162)
      return;
    const i = epe[e.kind];
    return i === void 0 ? void 0 : i(e, t, r);
  }
  function XO(e, t, r) {
    const i = z_e(e), o = [];
    for (; o.length < i.length; )
      o.push(e);
    for (; i.length !== 0; ) {
      const s = i.pop(), c = o.pop();
      if (Va(s)) {
        if (r) {
          const f = r(s, c);
          if (f) {
            if (f === "skip")
              continue;
            return f;
          }
        }
        for (let f = s.length - 1; f >= 0; --f)
          i.push(s[f]), o.push(c);
      } else {
        const f = t(s, c);
        if (f) {
          if (f === "skip")
            continue;
          return f;
        }
        if (s.kind >= 163)
          for (const d of z_e(s))
            i.push(d), o.push(s);
      }
    }
  }
  function z_e(e) {
    const t = [];
    return Ma(e, r, r), t;
    function r(i) {
      t.unshift(i);
    }
  }
  function q_e(e) {
    e.externalModuleIndicator = KO(e);
  }
  function YO(e, t, r, i = !1, o) {
    var s, c;
    (s = bi) == null || s.push(bi.Phase.Parse, "createSourceFile", { path: e }, !0), al("beforeParse");
    let f;
    zp.logStartParseSourceFile(e);
    const {
      languageVersion: d,
      setExternalModuleIndicator: y,
      impliedNodeFormat: h
    } = typeof r == "object" ? r : { languageVersion: r };
    if (d === 100)
      f = jv.parseSourceFile(e, t, d, void 0, i, 6, so);
    else {
      const E = h === void 0 ? y : (A) => (A.impliedNodeFormat = h, (y || q_e)(A));
      f = jv.parseSourceFile(e, t, d, void 0, i, o, E);
    }
    return zp.logStopParseSourceFile(), al("afterParse"), Jf("Parse", "beforeParse", "afterParse"), (c = bi) == null || c.pop(), f;
  }
  function Bx(e, t) {
    return jv.parseIsolatedEntityName(e, t);
  }
  function $O(e, t) {
    return jv.parseJsonText(e, t);
  }
  function Zl(e) {
    return e.externalModuleIndicator !== void 0;
  }
  function KJ(e, t, r, i = !1) {
    const o = o5.updateSourceFile(e, t, r, i);
    return o.flags |= e.flags & 6291456, o;
  }
  function J_e(e, t, r) {
    const i = jv.JSDocParser.parseIsolatedJSDocComment(e, t, r);
    return i && i.jsDoc && jv.fixupParentReferences(i.jsDoc), i;
  }
  function jPe(e, t, r) {
    return jv.JSDocParser.parseJSDocTypeExpressionForTests(e, t, r);
  }
  function fd(e) {
    return Tc(e, r7) || cc(e, ".ts") && pu(mu(e), ".d.");
  }
  function HPe(e, t, r, i) {
    if (e) {
      if (e === "import")
        return 99;
      if (e === "require")
        return 1;
      i(t, r - t, _.resolution_mode_should_be_either_require_or_import);
    }
  }
  function XJ(e, t) {
    const r = [];
    for (const i of ph(t, 0) || rt) {
      const o = t.substring(i.pos, i.end);
      zPe(r, i, o);
    }
    e.pragmas = /* @__PURE__ */ new Map();
    for (const i of r) {
      if (e.pragmas.has(i.name)) {
        const o = e.pragmas.get(i.name);
        o instanceof Array ? o.push(i.args) : e.pragmas.set(i.name, [o, i.args]);
        continue;
      }
      e.pragmas.set(i.name, i.args);
    }
  }
  function YJ(e, t) {
    e.checkJsDirective = void 0, e.referencedFiles = [], e.typeReferenceDirectives = [], e.libReferenceDirectives = [], e.amdDependencies = [], e.hasNoDefaultLib = !1, e.pragmas.forEach((r, i) => {
      switch (i) {
        case "reference": {
          const o = e.referencedFiles, s = e.typeReferenceDirectives, c = e.libReferenceDirectives;
          ze(pR(r), (f) => {
            const { types: d, lib: y, path: h, ["resolution-mode"]: E } = f.arguments;
            if (f.arguments["no-default-lib"])
              e.hasNoDefaultLib = !0;
            else if (d) {
              const A = HPe(E, d.pos, d.end, t);
              s.push({ pos: d.pos, end: d.end, fileName: d.value, ...A ? { resolutionMode: A } : {} });
            } else
              y ? c.push({ pos: y.pos, end: y.end, fileName: y.value }) : h ? o.push({ pos: h.pos, end: h.end, fileName: h.value }) : t(f.range.pos, f.range.end - f.range.pos, _.Invalid_reference_directive_syntax);
          });
          break;
        }
        case "amd-dependency": {
          e.amdDependencies = jt(pR(r), (o) => ({ name: o.arguments.name, path: o.arguments.path }));
          break;
        }
        case "amd-module": {
          if (r instanceof Array)
            for (const o of r)
              e.moduleName && t(o.range.pos, o.range.end - o.range.pos, _.An_AMD_module_cannot_have_multiple_name_assignments), e.moduleName = o.arguments.name;
          else
            e.moduleName = r.arguments.name;
          break;
        }
        case "ts-nocheck":
        case "ts-check": {
          ze(pR(r), (o) => {
            (!e.checkJsDirective || o.range.pos > e.checkJsDirective.pos) && (e.checkJsDirective = {
              enabled: i === "ts-check",
              end: o.range.end,
              pos: o.range.pos
            });
          });
          break;
        }
        case "jsx":
        case "jsxfrag":
        case "jsximportsource":
        case "jsxruntime":
          return;
        default:
          D.fail("Unhandled pragma kind");
      }
    });
  }
  function WPe(e) {
    if (s5.has(e))
      return s5.get(e);
    const t = new RegExp(`(\\s${e}\\s*=\\s*)(?:(?:'([^']*)')|(?:"([^"]*)"))`, "im");
    return s5.set(e, t), t;
  }
  function zPe(e, t, r) {
    const i = t.kind === 2 && tpe.exec(r);
    if (i) {
      const s = i[1].toLowerCase(), c = xR[s];
      if (!c || !(c.kind & 1))
        return;
      if (c.args) {
        const f = {};
        for (const d of c.args) {
          const h = WPe(d.name).exec(r);
          if (!h && !d.optional)
            return;
          if (h) {
            const E = h[2] || h[3];
            if (d.captureSpan) {
              const A = t.pos + h.index + h[1].length + 1;
              f[d.name] = {
                value: E,
                pos: A,
                end: A + E.length
              };
            } else
              f[d.name] = E;
          }
        }
        e.push({ name: s, args: { arguments: f, range: t } });
      } else
        e.push({ name: s, args: { arguments: {}, range: t } });
      return;
    }
    const o = t.kind === 2 && npe.exec(r);
    if (o)
      return K_e(e, t, 2, o);
    if (t.kind === 3) {
      const s = /@(\S+)(\s+.*)?$/gim;
      let c;
      for (; c = s.exec(r); )
        K_e(e, t, 4, c);
    }
  }
  function K_e(e, t, r, i) {
    if (!i)
      return;
    const o = i[1].toLowerCase(), s = xR[o];
    if (!s || !(s.kind & r))
      return;
    const c = i[2], f = qPe(s, c);
    f !== "fail" && e.push({ name: o, args: { arguments: f, range: t } });
  }
  function qPe(e, t) {
    if (!t)
      return {};
    if (!e.args)
      return {};
    const r = a1(t).split(/\s+/), i = {};
    for (let o = 0; o < e.args.length; o++) {
      const s = e.args[o];
      if (!r[o] && !s.optional)
        return "fail";
      if (s.captureSpan)
        return D.fail("Capture spans not yet implemented for non-xml pragmas");
      i[s.name] = r[o];
    }
    return i;
  }
  function nb(e, t) {
    return e.kind !== t.kind ? !1 : e.kind === 79 ? e.escapedText === t.escapedText : e.kind === 108 ? !0 : e.name.escapedText === t.name.escapedText && nb(e.expression, t.expression);
  }
  var X_e, Y_e, $_e, Q_e, Z_e, $J, Jm, epe, jv, o5, s5, tpe, npe, JPe = C({
    "src/compiler/parser.ts"() {
      Oa(), Oa(), s1(), $J = {
        createBaseSourceFileNode: (e) => new (Z_e || (Z_e = jc.getSourceFileConstructor()))(e, -1, -1),
        createBaseIdentifierNode: (e) => new ($_e || ($_e = jc.getIdentifierConstructor()))(e, -1, -1),
        createBasePrivateIdentifierNode: (e) => new (Q_e || (Q_e = jc.getPrivateIdentifierConstructor()))(e, -1, -1),
        createBaseTokenNode: (e) => new (Y_e || (Y_e = jc.getTokenConstructor()))(e, -1, -1),
        createBaseNode: (e) => new (X_e || (X_e = jc.getNodeConstructor()))(e, -1, -1)
      }, Jm = hO(1, $J), epe = {
        163: function(t, r, i) {
          return Yt(r, t.left) || Yt(r, t.right);
        },
        165: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.name) || Yt(r, t.constraint) || Yt(r, t.default) || Yt(r, t.expression);
        },
        300: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.name) || Yt(r, t.questionToken) || Yt(r, t.exclamationToken) || Yt(r, t.equalsToken) || Yt(r, t.objectAssignmentInitializer);
        },
        301: function(t, r, i) {
          return Yt(r, t.expression);
        },
        166: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.dotDotDotToken) || Yt(r, t.name) || Yt(r, t.questionToken) || Yt(r, t.type) || Yt(r, t.initializer);
        },
        169: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.name) || Yt(r, t.questionToken) || Yt(r, t.exclamationToken) || Yt(r, t.type) || Yt(r, t.initializer);
        },
        168: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.name) || Yt(r, t.questionToken) || Yt(r, t.type) || Yt(r, t.initializer);
        },
        299: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.name) || Yt(r, t.questionToken) || Yt(r, t.exclamationToken) || Yt(r, t.initializer);
        },
        257: function(t, r, i) {
          return Yt(r, t.name) || Yt(r, t.exclamationToken) || Yt(r, t.type) || Yt(r, t.initializer);
        },
        205: function(t, r, i) {
          return Yt(r, t.dotDotDotToken) || Yt(r, t.propertyName) || Yt(r, t.name) || Yt(r, t.initializer);
        },
        178: function(t, r, i) {
          return wi(r, i, t.modifiers) || wi(r, i, t.typeParameters) || wi(r, i, t.parameters) || Yt(r, t.type);
        },
        182: function(t, r, i) {
          return wi(r, i, t.modifiers) || wi(r, i, t.typeParameters) || wi(r, i, t.parameters) || Yt(r, t.type);
        },
        181: function(t, r, i) {
          return wi(r, i, t.modifiers) || wi(r, i, t.typeParameters) || wi(r, i, t.parameters) || Yt(r, t.type);
        },
        176: N_e,
        177: N_e,
        171: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.asteriskToken) || Yt(r, t.name) || Yt(r, t.questionToken) || Yt(r, t.exclamationToken) || wi(r, i, t.typeParameters) || wi(r, i, t.parameters) || Yt(r, t.type) || Yt(r, t.body);
        },
        170: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.name) || Yt(r, t.questionToken) || wi(r, i, t.typeParameters) || wi(r, i, t.parameters) || Yt(r, t.type);
        },
        173: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.name) || wi(r, i, t.typeParameters) || wi(r, i, t.parameters) || Yt(r, t.type) || Yt(r, t.body);
        },
        174: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.name) || wi(r, i, t.typeParameters) || wi(r, i, t.parameters) || Yt(r, t.type) || Yt(r, t.body);
        },
        175: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.name) || wi(r, i, t.typeParameters) || wi(r, i, t.parameters) || Yt(r, t.type) || Yt(r, t.body);
        },
        259: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.asteriskToken) || Yt(r, t.name) || wi(r, i, t.typeParameters) || wi(r, i, t.parameters) || Yt(r, t.type) || Yt(r, t.body);
        },
        215: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.asteriskToken) || Yt(r, t.name) || wi(r, i, t.typeParameters) || wi(r, i, t.parameters) || Yt(r, t.type) || Yt(r, t.body);
        },
        216: function(t, r, i) {
          return wi(r, i, t.modifiers) || wi(r, i, t.typeParameters) || wi(r, i, t.parameters) || Yt(r, t.type) || Yt(r, t.equalsGreaterThanToken) || Yt(r, t.body);
        },
        172: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.body);
        },
        180: function(t, r, i) {
          return Yt(r, t.typeName) || wi(r, i, t.typeArguments);
        },
        179: function(t, r, i) {
          return Yt(r, t.assertsModifier) || Yt(r, t.parameterName) || Yt(r, t.type);
        },
        183: function(t, r, i) {
          return Yt(r, t.exprName) || wi(r, i, t.typeArguments);
        },
        184: function(t, r, i) {
          return wi(r, i, t.members);
        },
        185: function(t, r, i) {
          return Yt(r, t.elementType);
        },
        186: function(t, r, i) {
          return wi(r, i, t.elements);
        },
        189: O_e,
        190: O_e,
        191: function(t, r, i) {
          return Yt(r, t.checkType) || Yt(r, t.extendsType) || Yt(r, t.trueType) || Yt(r, t.falseType);
        },
        192: function(t, r, i) {
          return Yt(r, t.typeParameter);
        },
        202: function(t, r, i) {
          return Yt(r, t.argument) || Yt(r, t.assertions) || Yt(r, t.qualifier) || wi(r, i, t.typeArguments);
        },
        298: function(t, r, i) {
          return Yt(r, t.assertClause);
        },
        193: P_e,
        195: P_e,
        196: function(t, r, i) {
          return Yt(r, t.objectType) || Yt(r, t.indexType);
        },
        197: function(t, r, i) {
          return Yt(r, t.readonlyToken) || Yt(r, t.typeParameter) || Yt(r, t.nameType) || Yt(r, t.questionToken) || Yt(r, t.type) || wi(r, i, t.members);
        },
        198: function(t, r, i) {
          return Yt(r, t.literal);
        },
        199: function(t, r, i) {
          return Yt(r, t.dotDotDotToken) || Yt(r, t.name) || Yt(r, t.questionToken) || Yt(r, t.type);
        },
        203: M_e,
        204: M_e,
        206: function(t, r, i) {
          return wi(r, i, t.elements);
        },
        207: function(t, r, i) {
          return wi(r, i, t.properties);
        },
        208: function(t, r, i) {
          return Yt(r, t.expression) || Yt(r, t.questionDotToken) || Yt(r, t.name);
        },
        209: function(t, r, i) {
          return Yt(r, t.expression) || Yt(r, t.questionDotToken) || Yt(r, t.argumentExpression);
        },
        210: F_e,
        211: F_e,
        212: function(t, r, i) {
          return Yt(r, t.tag) || Yt(r, t.questionDotToken) || wi(r, i, t.typeArguments) || Yt(r, t.template);
        },
        213: function(t, r, i) {
          return Yt(r, t.type) || Yt(r, t.expression);
        },
        214: function(t, r, i) {
          return Yt(r, t.expression);
        },
        217: function(t, r, i) {
          return Yt(r, t.expression);
        },
        218: function(t, r, i) {
          return Yt(r, t.expression);
        },
        219: function(t, r, i) {
          return Yt(r, t.expression);
        },
        221: function(t, r, i) {
          return Yt(r, t.operand);
        },
        226: function(t, r, i) {
          return Yt(r, t.asteriskToken) || Yt(r, t.expression);
        },
        220: function(t, r, i) {
          return Yt(r, t.expression);
        },
        222: function(t, r, i) {
          return Yt(r, t.operand);
        },
        223: function(t, r, i) {
          return Yt(r, t.left) || Yt(r, t.operatorToken) || Yt(r, t.right);
        },
        231: function(t, r, i) {
          return Yt(r, t.expression) || Yt(r, t.type);
        },
        232: function(t, r, i) {
          return Yt(r, t.expression);
        },
        235: function(t, r, i) {
          return Yt(r, t.expression) || Yt(r, t.type);
        },
        233: function(t, r, i) {
          return Yt(r, t.name);
        },
        224: function(t, r, i) {
          return Yt(r, t.condition) || Yt(r, t.questionToken) || Yt(r, t.whenTrue) || Yt(r, t.colonToken) || Yt(r, t.whenFalse);
        },
        227: function(t, r, i) {
          return Yt(r, t.expression);
        },
        238: B_e,
        265: B_e,
        308: function(t, r, i) {
          return wi(r, i, t.statements) || Yt(r, t.endOfFileToken);
        },
        240: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.declarationList);
        },
        258: function(t, r, i) {
          return wi(r, i, t.declarations);
        },
        241: function(t, r, i) {
          return Yt(r, t.expression);
        },
        242: function(t, r, i) {
          return Yt(r, t.expression) || Yt(r, t.thenStatement) || Yt(r, t.elseStatement);
        },
        243: function(t, r, i) {
          return Yt(r, t.statement) || Yt(r, t.expression);
        },
        244: function(t, r, i) {
          return Yt(r, t.expression) || Yt(r, t.statement);
        },
        245: function(t, r, i) {
          return Yt(r, t.initializer) || Yt(r, t.condition) || Yt(r, t.incrementor) || Yt(r, t.statement);
        },
        246: function(t, r, i) {
          return Yt(r, t.initializer) || Yt(r, t.expression) || Yt(r, t.statement);
        },
        247: function(t, r, i) {
          return Yt(r, t.awaitModifier) || Yt(r, t.initializer) || Yt(r, t.expression) || Yt(r, t.statement);
        },
        248: G_e,
        249: G_e,
        250: function(t, r, i) {
          return Yt(r, t.expression);
        },
        251: function(t, r, i) {
          return Yt(r, t.expression) || Yt(r, t.statement);
        },
        252: function(t, r, i) {
          return Yt(r, t.expression) || Yt(r, t.caseBlock);
        },
        266: function(t, r, i) {
          return wi(r, i, t.clauses);
        },
        292: function(t, r, i) {
          return Yt(r, t.expression) || wi(r, i, t.statements);
        },
        293: function(t, r, i) {
          return wi(r, i, t.statements);
        },
        253: function(t, r, i) {
          return Yt(r, t.label) || Yt(r, t.statement);
        },
        254: function(t, r, i) {
          return Yt(r, t.expression);
        },
        255: function(t, r, i) {
          return Yt(r, t.tryBlock) || Yt(r, t.catchClause) || Yt(r, t.finallyBlock);
        },
        295: function(t, r, i) {
          return Yt(r, t.variableDeclaration) || Yt(r, t.block);
        },
        167: function(t, r, i) {
          return Yt(r, t.expression);
        },
        260: U_e,
        228: U_e,
        261: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.name) || wi(r, i, t.typeParameters) || wi(r, i, t.heritageClauses) || wi(r, i, t.members);
        },
        262: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.name) || wi(r, i, t.typeParameters) || Yt(r, t.type);
        },
        263: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.name) || wi(r, i, t.members);
        },
        302: function(t, r, i) {
          return Yt(r, t.name) || Yt(r, t.initializer);
        },
        264: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.name) || Yt(r, t.body);
        },
        268: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.name) || Yt(r, t.moduleReference);
        },
        269: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.importClause) || Yt(r, t.moduleSpecifier) || Yt(r, t.assertClause);
        },
        270: function(t, r, i) {
          return Yt(r, t.name) || Yt(r, t.namedBindings);
        },
        296: function(t, r, i) {
          return wi(r, i, t.elements);
        },
        297: function(t, r, i) {
          return Yt(r, t.name) || Yt(r, t.value);
        },
        267: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.name);
        },
        271: function(t, r, i) {
          return Yt(r, t.name);
        },
        277: function(t, r, i) {
          return Yt(r, t.name);
        },
        272: V_e,
        276: V_e,
        275: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.exportClause) || Yt(r, t.moduleSpecifier) || Yt(r, t.assertClause);
        },
        273: j_e,
        278: j_e,
        274: function(t, r, i) {
          return wi(r, i, t.modifiers) || Yt(r, t.expression);
        },
        225: function(t, r, i) {
          return Yt(r, t.head) || wi(r, i, t.templateSpans);
        },
        236: function(t, r, i) {
          return Yt(r, t.expression) || Yt(r, t.literal);
        },
        200: function(t, r, i) {
          return Yt(r, t.head) || wi(r, i, t.templateSpans);
        },
        201: function(t, r, i) {
          return Yt(r, t.type) || Yt(r, t.literal);
        },
        164: function(t, r, i) {
          return Yt(r, t.expression);
        },
        294: function(t, r, i) {
          return wi(r, i, t.types);
        },
        230: function(t, r, i) {
          return Yt(r, t.expression) || wi(r, i, t.typeArguments);
        },
        280: function(t, r, i) {
          return Yt(r, t.expression);
        },
        279: function(t, r, i) {
          return wi(r, i, t.modifiers);
        },
        357: function(t, r, i) {
          return wi(r, i, t.elements);
        },
        281: function(t, r, i) {
          return Yt(r, t.openingElement) || wi(r, i, t.children) || Yt(r, t.closingElement);
        },
        285: function(t, r, i) {
          return Yt(r, t.openingFragment) || wi(r, i, t.children) || Yt(r, t.closingFragment);
        },
        282: H_e,
        283: H_e,
        289: function(t, r, i) {
          return wi(r, i, t.properties);
        },
        288: function(t, r, i) {
          return Yt(r, t.name) || Yt(r, t.initializer);
        },
        290: function(t, r, i) {
          return Yt(r, t.expression);
        },
        291: function(t, r, i) {
          return Yt(r, t.dotDotDotToken) || Yt(r, t.expression);
        },
        284: function(t, r, i) {
          return Yt(r, t.tagName);
        },
        187: RC,
        188: RC,
        312: RC,
        318: RC,
        317: RC,
        319: RC,
        321: RC,
        320: function(t, r, i) {
          return wi(r, i, t.parameters) || Yt(r, t.type);
        },
        323: function(t, r, i) {
          return (typeof t.comment == "string" ? void 0 : wi(r, i, t.comment)) || wi(r, i, t.tags);
        },
        350: function(t, r, i) {
          return Yt(r, t.tagName) || Yt(r, t.name) || (typeof t.comment == "string" ? void 0 : wi(r, i, t.comment));
        },
        313: function(t, r, i) {
          return Yt(r, t.name);
        },
        314: function(t, r, i) {
          return Yt(r, t.left) || Yt(r, t.right);
        },
        344: W_e,
        351: W_e,
        333: function(t, r, i) {
          return Yt(r, t.tagName) || (typeof t.comment == "string" ? void 0 : wi(r, i, t.comment));
        },
        332: function(t, r, i) {
          return Yt(r, t.tagName) || Yt(r, t.class) || (typeof t.comment == "string" ? void 0 : wi(r, i, t.comment));
        },
        331: function(t, r, i) {
          return Yt(r, t.tagName) || Yt(r, t.class) || (typeof t.comment == "string" ? void 0 : wi(r, i, t.comment));
        },
        348: function(t, r, i) {
          return Yt(r, t.tagName) || Yt(r, t.constraint) || wi(r, i, t.typeParameters) || (typeof t.comment == "string" ? void 0 : wi(r, i, t.comment));
        },
        349: function(t, r, i) {
          return Yt(r, t.tagName) || (t.typeExpression && t.typeExpression.kind === 312 ? Yt(r, t.typeExpression) || Yt(r, t.fullName) || (typeof t.comment == "string" ? void 0 : wi(r, i, t.comment)) : Yt(r, t.fullName) || Yt(r, t.typeExpression) || (typeof t.comment == "string" ? void 0 : wi(r, i, t.comment)));
        },
        341: function(t, r, i) {
          return Yt(r, t.tagName) || Yt(r, t.fullName) || Yt(r, t.typeExpression) || (typeof t.comment == "string" ? void 0 : wi(r, i, t.comment));
        },
        345: NC,
        347: NC,
        346: NC,
        343: NC,
        353: NC,
        352: NC,
        342: NC,
        326: function(t, r, i) {
          return ze(t.typeParameters, r) || ze(t.parameters, r) || Yt(r, t.type);
        },
        327: JJ,
        328: JJ,
        329: JJ,
        325: function(t, r, i) {
          return ze(t.jsDocPropertyTags, r);
        },
        330: Fx,
        335: Fx,
        336: Fx,
        337: Fx,
        338: Fx,
        339: Fx,
        334: Fx,
        340: Fx,
        356: VPe
      }, ((e) => {
        var t = dy(99, !0), r = 20480, i, o, s, c, f;
        function d(z) {
          return tt++, z;
        }
        var y = {
          createBaseSourceFileNode: (z) => d(new f(z, 0, 0)),
          createBaseIdentifierNode: (z) => d(new s(z, 0, 0)),
          createBasePrivateIdentifierNode: (z) => d(new c(z, 0, 0)),
          createBaseTokenNode: (z) => d(new o(z, 0, 0)),
          createBaseNode: (z) => d(new i(z, 0, 0))
        }, h = hO(11, y), {
          createNodeArray: E,
          createNumericLiteral: A,
          createStringLiteral: L,
          createLiteralLikeNode: I,
          createIdentifier: O,
          createPrivateIdentifier: k,
          createToken: G,
          createArrayLiteralExpression: V,
          createObjectLiteralExpression: H,
          createPropertyAccessExpression: te,
          createPropertyAccessChain: X,
          createElementAccessExpression: Y,
          createElementAccessChain: P,
          createCallExpression: de,
          createCallChain: re,
          createNewExpression: ye,
          createParenthesizedExpression: ae,
          createBlock: W,
          createVariableStatement: ce,
          createExpressionStatement: me,
          createIfStatement: ve,
          createWhileStatement: Te,
          createForStatement: ee,
          createForOfStatement: Qe,
          createVariableDeclaration: Ve,
          createVariableDeclarationList: Be
        } = h, qe, Oe, Me, Ye, We, Fe, st, Ct, Et, Vt, tt, at, sn, Qt, On, jn, In = !0, Zt = !1;
        function _r(z, be, $e, Tt, Gt = !1, Cn, Br) {
          var gi;
          if (Cn = q3(z, Cn), Cn === 6) {
            const ki = $i(z, be, $e, Tt, Gt);
            return t8(ki, (gi = ki.statements[0]) == null ? void 0 : gi.expression, ki.parseDiagnostics, !1, void 0, void 0), ki.referencedFiles = rt, ki.typeReferenceDirectives = rt, ki.libReferenceDirectives = rt, ki.amdDependencies = rt, ki.hasNoDefaultLib = !1, ki.pragmas = Y4, ki;
          }
          Qi(z, be, $e, Tt, Cn);
          const xi = At($e, Gt, Cn, Br || q_e);
          return Or(), xi;
        }
        e.parseSourceFile = _r;
        function Ii(z, be) {
          Qi("", z, be, void 0, 1), ft();
          const $e = $o(!0), Tt = q() === 1 && !st.length;
          return Or(), Tt ? $e : void 0;
        }
        e.parseIsolatedEntityName = Ii;
        function $i(z, be, $e = 2, Tt, Gt = !1) {
          Qi(z, be, $e, Tt, 6), Oe = jn, ft();
          const Cn = Z();
          let Br, gi;
          if (q() === 1)
            Br = Ks([], Cn, Cn), gi = oc();
          else {
            let Fa;
            for (; q() !== 1; ) {
              let is;
              switch (q()) {
                case 22:
                  is = Vy();
                  break;
                case 110:
                case 95:
                case 104:
                  is = oc();
                  break;
                case 40:
                  Xr(() => ft() === 8 && ft() !== 58) ? is = fS() : is = nc();
                  break;
                case 8:
                case 10:
                  if (Xr(() => ft() !== 58)) {
                    is = Ia();
                    break;
                  }
                default:
                  is = nc();
                  break;
              }
              Fa && Va(Fa) ? Fa.push(is) : Fa ? Fa = [Fa, is] : (Fa = is, q() !== 1 && mt(_.Unexpected_token));
            }
            const Is = Va(Fa) ? rn(V(Fa), Cn) : D.checkDefined(Fa), Io = me(Is);
            rn(Io, Cn), Br = Ks([Io], Cn), gi = tu(1, _.Unexpected_token);
          }
          const xi = Pi(z, 2, 6, !1, Br, gi, Oe, so);
          Gt && cr(xi), xi.nodeCount = tt, xi.identifierCount = sn, xi.identifiers = at, xi.parseDiagnostics = fx(st, xi), Ct && (xi.jsDocDiagnostics = fx(Ct, xi));
          const ki = xi;
          return Or(), ki;
        }
        e.parseJsonText = $i;
        function Qi(z, be, $e, Tt, Gt) {
          switch (i = jc.getNodeConstructor(), o = jc.getTokenConstructor(), s = jc.getIdentifierConstructor(), c = jc.getPrivateIdentifierConstructor(), f = jc.getSourceFileConstructor(), qe = Jo(z), Me = be, Ye = $e, Et = Tt, We = Gt, Fe = QN(Gt), st = [], Qt = 0, at = /* @__PURE__ */ new Map(), sn = 0, tt = 0, Oe = 0, In = !0, We) {
            case 1:
            case 2:
              jn = 262144;
              break;
            case 6:
              jn = 67371008;
              break;
            default:
              jn = 0;
              break;
          }
          Zt = !1, t.setText(Me), t.setOnError(Pe), t.setScriptTarget(Ye), t.setLanguageVariant(Fe);
        }
        function Or() {
          t.clearCommentDirectives(), t.setText(""), t.setOnError(void 0), Me = void 0, Ye = void 0, Et = void 0, We = void 0, Fe = void 0, Oe = 0, st = void 0, Ct = void 0, Qt = 0, at = void 0, On = void 0, In = !0;
        }
        function At(z, be, $e, Tt) {
          const Gt = fd(qe);
          Gt && (jn |= 16777216), Oe = jn, ft();
          const Cn = oe(0, Mf);
          D.assert(q() === 1);
          const Br = fn(oc()), gi = Pi(qe, z, $e, Gt, Cn, Br, Oe, Tt);
          return XJ(gi, Me), YJ(gi, xi), gi.commentDirectives = t.getCommentDirectives(), gi.nodeCount = tt, gi.identifierCount = sn, gi.identifiers = at, gi.parseDiagnostics = fx(st, gi), Ct && (gi.jsDocDiagnostics = fx(Ct, gi)), be && cr(gi), gi;
          function xi(ki, Fa, Is) {
            st.push(iC(qe, ki, Fa, Is));
          }
        }
        function vn(z, be) {
          return be ? fn(z) : z;
        }
        let Wt = !1;
        function fn(z) {
          D.assert(!z.jsDoc);
          const be = ia(az(z, Me), ($e) => k2.parseJSDocComment(z, $e.pos, $e.end - $e.pos));
          return be.length && (z.jsDoc = be), Wt && (Wt = !1, z.flags |= 268435456), z;
        }
        function rr(z) {
          const be = Et, $e = o5.createSyntaxCursor(z);
          Et = { currentNode: Fa };
          const Tt = [], Gt = st;
          st = [];
          let Cn = 0, Br = xi(z.statements, 0);
          for (; Br !== -1; ) {
            const Is = z.statements[Cn], Io = z.statements[Br];
            Ti(Tt, z.statements, Cn, Br), Cn = ki(z.statements, Br);
            const is = vi(Gt, (Op) => Op.start >= Is.pos), Od = is >= 0 ? vi(Gt, (Op) => Op.start >= Io.pos, is) : -1;
            is >= 0 && Ti(st, Gt, is, Od >= 0 ? Od : void 0), Hi(() => {
              const Op = jn;
              for (jn |= 32768, t.setTextPos(Io.pos), ft(); q() !== 1; ) {
                const fm = t.getStartPos(), Hg = ut(0, Mf);
                if (Tt.push(Hg), fm === t.getStartPos() && ft(), Cn >= 0) {
                  const I_ = z.statements[Cn];
                  if (Hg.end === I_.pos)
                    break;
                  Hg.end > I_.pos && (Cn = ki(z.statements, Cn + 1));
                }
              }
              jn = Op;
            }, 2), Br = Cn >= 0 ? xi(z.statements, Cn) : -1;
          }
          if (Cn >= 0) {
            const Is = z.statements[Cn];
            Ti(Tt, z.statements, Cn);
            const Io = vi(Gt, (is) => is.start >= Is.pos);
            Io >= 0 && Ti(st, Gt, Io);
          }
          return Et = be, h.updateSourceFile(z, ht(E(Tt), z.statements));
          function gi(Is) {
            return !(Is.flags & 32768) && !!(Is.transformFlags & 67108864);
          }
          function xi(Is, Io) {
            for (let is = Io; is < Is.length; is++)
              if (gi(Is[is]))
                return is;
            return -1;
          }
          function ki(Is, Io) {
            for (let is = Io; is < Is.length; is++)
              if (!gi(Is[is]))
                return is;
            return -1;
          }
          function Fa(Is) {
            const Io = $e.currentNode(Is);
            return In && Io && gi(Io) && (Io.intersectsChange = !0), Io;
          }
        }
        function cr(z) {
          Mv(z, !0);
        }
        e.fixupParentReferences = cr;
        function Pi(z, be, $e, Tt, Gt, Cn, Br, gi) {
          let xi = h.createSourceFile(Gt, Cn, Br);
          return hk(xi, 0, Me.length), ki(xi), !Tt && Zl(xi) && xi.transformFlags & 67108864 && (xi = rr(xi), ki(xi)), xi;
          function ki(Fa) {
            Fa.text = Me, Fa.bindDiagnostics = [], Fa.bindSuggestionDiagnostics = void 0, Fa.languageVersion = be, Fa.fileName = z, Fa.languageVariant = QN($e), Fa.isDeclarationFile = Tt, Fa.scriptKind = $e, gi(Fa), Fa.setExternalModuleIndicator = gi;
          }
        }
        function hi(z, be) {
          z ? jn |= be : jn &= ~be;
        }
        function Rn(z) {
          hi(z, 4096);
        }
        function an(z) {
          hi(z, 8192);
        }
        function Pn(z) {
          hi(z, 16384);
        }
        function Ar(z) {
          hi(z, 32768);
        }
        function Hr(z, be) {
          const $e = z & jn;
          if ($e) {
            hi(!1, $e);
            const Tt = be();
            return hi(!0, $e), Tt;
          }
          return be();
        }
        function we(z, be) {
          const $e = z & ~jn;
          if ($e) {
            hi(!0, $e);
            const Tt = be();
            return hi(!1, $e), Tt;
          }
          return be();
        }
        function yt(z) {
          return Hr(4096, z);
        }
        function Nt(z) {
          return we(4096, z);
        }
        function Ce(z) {
          return Hr(65536, z);
        }
        function pt(z) {
          return we(65536, z);
        }
        function _e(z) {
          return we(8192, z);
        }
        function ie(z) {
          return we(16384, z);
        }
        function he(z) {
          return we(32768, z);
        }
        function j(z) {
          return Hr(32768, z);
        }
        function He(z) {
          return we(40960, z);
        }
        function Ze(z) {
          return Hr(40960, z);
        }
        function Xe(z) {
          return (jn & z) !== 0;
        }
        function Ut() {
          return Xe(8192);
        }
        function cn() {
          return Xe(4096);
        }
        function Sn() {
          return Xe(65536);
        }
        function Er() {
          return Xe(16384);
        }
        function ue() {
          return Xe(32768);
        }
        function mt(z, be) {
          return it(t.getTokenPos(), t.getTextPos(), z, be);
        }
        function zt(z, be, $e, Tt) {
          const Gt = tl(st);
          let Cn;
          return (!Gt || z !== Gt.start) && (Cn = iC(qe, z, be, $e, Tt), st.push(Cn)), Zt = !0, Cn;
        }
        function it(z, be, $e, Tt) {
          return zt(z, be - z, $e, Tt);
        }
        function K(z, be, $e) {
          it(z.pos, z.end, be, $e);
        }
        function Pe(z, be) {
          zt(t.getTextPos(), be, z);
        }
        function Z() {
          return t.getStartPos();
        }
        function Re() {
          return t.hasPrecedingJSDocComment();
        }
        function q() {
          return Vt;
        }
        function Rt() {
          return Vt = t.scan();
        }
        function gt(z) {
          return ft(), z();
        }
        function ft() {
          return Ad(Vt) && (t.hasUnicodeEscape() || t.hasExtendedUnicodeEscape()) && it(t.getTokenPos(), t.getTextPos(), _.Keywords_cannot_contain_escape_characters), Rt();
        }
        function _n() {
          return Vt = t.scanJsDocToken();
        }
        function $n() {
          return Vt = t.reScanGreaterToken();
        }
        function oi() {
          return Vt = t.reScanSlashToken();
        }
        function Ai(z) {
          return Vt = t.reScanTemplateToken(z);
        }
        function Ci() {
          return Vt = t.reScanTemplateHeadOrNoSubstitutionTemplate();
        }
        function ji() {
          return Vt = t.reScanLessThanToken();
        }
        function mo() {
          return Vt = t.reScanHashToken();
        }
        function To() {
          return Vt = t.scanJsxIdentifier();
        }
        function io() {
          return Vt = t.scanJsxToken();
        }
        function ua() {
          return Vt = t.scanJsxAttributeValue();
        }
        function Hi(z, be) {
          const $e = Vt, Tt = st.length, Gt = Zt, Cn = jn, Br = be !== 0 ? t.lookAhead(z) : t.tryScan(z);
          return D.assert(Cn === jn), (!Br || be !== 0) && (Vt = $e, be !== 2 && (st.length = Tt), Zt = Gt), Br;
        }
        function Xr(z) {
          return Hi(z, 1);
        }
        function ss(z) {
          return Hi(z, 0);
        }
        function _i() {
          return q() === 79 ? !0 : q() > 116;
        }
        function da() {
          return q() === 79 ? !0 : q() === 125 && Ut() || q() === 133 && ue() ? !1 : q() > 116;
        }
        function wn(z, be, $e = !0) {
          return q() === z ? ($e && ft(), !0) : (be ? mt(be) : mt(_._0_expected, yo(z)), !1);
        }
        const pa = Object.keys(VR).filter((z) => z.length > 2);
        function ec(z) {
          var be;
          if (AT(z)) {
            it(Ko(Me, z.template.pos), z.template.end, _.Module_declaration_names_may_only_use_or_quoted_strings);
            return;
          }
          const $e = je(z) ? Mr(z) : void 0;
          if (!$e || !P_($e, Ye)) {
            mt(_._0_expected, yo(26));
            return;
          }
          const Tt = Ko(Me, z.pos);
          switch ($e) {
            case "const":
            case "let":
            case "var":
              it(Tt, z.end, _.Variable_declaration_not_allowed_at_this_location);
              return;
            case "declare":
              return;
            case "interface":
              rl(_.Interface_name_cannot_be_0, _.Interface_must_be_given_a_name, 18);
              return;
            case "is":
              it(Tt, t.getTextPos(), _.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);
              return;
            case "module":
            case "namespace":
              rl(_.Namespace_name_cannot_be_0, _.Namespace_must_be_given_a_name, 18);
              return;
            case "type":
              rl(_.Type_alias_name_cannot_be_0, _.Type_alias_must_be_given_a_name, 63);
              return;
          }
          const Gt = (be = sI($e, pa, (Cn) => Cn)) != null ? be : Gl($e);
          if (Gt) {
            it(Tt, z.end, _.Unknown_keyword_or_identifier_Did_you_mean_0, Gt);
            return;
          }
          q() !== 0 && it(Tt, z.end, _.Unexpected_keyword_or_identifier);
        }
        function rl(z, be, $e) {
          q() === $e ? mt(be) : mt(z, t.getTokenValue());
        }
        function Gl(z) {
          for (const be of pa)
            if (z.length > be.length + 2 && xa(z, be))
              return `${be} ${z.slice(be.length)}`;
        }
        function Xl(z, be, $e) {
          if (q() === 59 && !t.hasPrecedingLineBreak()) {
            mt(_.Decorators_must_precede_the_name_and_all_keywords_of_property_declarations);
            return;
          }
          if (q() === 20) {
            mt(_.Cannot_start_a_function_call_in_a_type_annotation), ft();
            return;
          }
          if (be && !Ds()) {
            $e ? mt(_._0_expected, yo(26)) : mt(_.Expected_for_property_initializer);
            return;
          }
          if (!hl()) {
            if ($e) {
              mt(_._0_expected, yo(26));
              return;
            }
            ec(z);
          }
        }
        function Ul(z) {
          return q() === z ? (_n(), !0) : (mt(_._0_expected, yo(z)), !1);
        }
        function Co(z, be, $e, Tt) {
          if (q() === be) {
            ft();
            return;
          }
          const Gt = mt(_._0_expected, yo(be));
          $e && Gt && Xo(Gt, iC(qe, Tt, 1, _.The_parser_expected_to_find_a_1_to_match_the_0_token_here, yo(z), yo(be)));
        }
        function La(z) {
          return q() === z ? (ft(), !0) : !1;
        }
        function Yo(z) {
          if (q() === z)
            return oc();
        }
        function Vl(z) {
          if (q() === z)
            return Jc();
        }
        function tu(z, be, $e) {
          return Yo(z) || jl(z, !1, be || _._0_expected, $e || yo(z));
        }
        function qd(z) {
          return Vl(z) || jl(z, !1, _._0_expected, yo(z));
        }
        function oc() {
          const z = Z(), be = q();
          return ft(), rn(G(be), z);
        }
        function Jc() {
          const z = Z(), be = q();
          return _n(), rn(G(be), z);
        }
        function Ds() {
          return q() === 26 ? !0 : q() === 19 || q() === 1 || t.hasPrecedingLineBreak();
        }
        function hl() {
          return Ds() ? (q() === 26 && ft(), !0) : !1;
        }
        function el() {
          return hl() || wn(26);
        }
        function Ks(z, be, $e, Tt) {
          const Gt = E(z, Tt);
          return Vm(Gt, be, $e ?? t.getStartPos()), Gt;
        }
        function rn(z, be, $e) {
          return Vm(z, be, $e ?? t.getStartPos()), jn && (z.flags |= jn), Zt && (Zt = !1, z.flags |= 131072), z;
        }
        function jl(z, be, $e, Tt) {
          be ? zt(t.getStartPos(), 0, $e, Tt) : $e && mt($e, Tt);
          const Gt = Z(), Cn = z === 79 ? O("", void 0) : Cv(z) ? h.createTemplateLiteralLikeNode(z, "", "", void 0) : z === 8 ? A("", void 0) : z === 10 ? L("", void 0) : z === 279 ? h.createMissingDeclaration() : G(z);
          return rn(Cn, Gt);
        }
        function xu(z) {
          let be = at.get(z);
          return be === void 0 && at.set(z, be = z), be;
        }
        function Wu(z, be, $e) {
          if (z) {
            sn++;
            const gi = Z(), xi = q(), ki = xu(t.getTokenValue()), Fa = t.hasExtendedUnicodeEscape();
            return Rt(), rn(O(ki, xi, Fa), gi);
          }
          if (q() === 80)
            return mt($e || _.Private_identifiers_are_not_allowed_outside_class_bodies), Wu(!0);
          if (q() === 0 && t.tryScan(() => t.reScanInvalidIdentifier() === 79))
            return Wu(!0);
          sn++;
          const Tt = q() === 1, Gt = t.isReservedWord(), Cn = t.getTokenText(), Br = Gt ? _.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here : _.Identifier_expected;
          return jl(79, Tt, be || Br, Cn);
        }
        function fe(z) {
          return Wu(_i(), void 0, z);
        }
        function It(z, be) {
          return Wu(da(), z, be);
        }
        function Ht(z) {
          return Wu(Yu(q()), z);
        }
        function Q() {
          return Yu(q()) || q() === 10 || q() === 8;
        }
        function ot() {
          return Yu(q()) || q() === 10;
        }
        function xt(z) {
          if (q() === 10 || q() === 8) {
            const be = Ia();
            return be.text = xu(be.text), be;
          }
          return z && q() === 22 ? Dr() : q() === 80 ? Pr() : Ht();
        }
        function mn() {
          return xt(!0);
        }
        function Dr() {
          const z = Z();
          wn(22);
          const be = yt(cu);
          return wn(23), rn(h.createComputedPropertyName(be), z);
        }
        function Pr() {
          const z = Z(), be = k(xu(t.getTokenValue()));
          return ft(), rn(be, z);
        }
        function Ta(z) {
          return q() === z && ss(ho);
        }
        function ls() {
          return ft(), t.hasPrecedingLineBreak() ? !1 : dc();
        }
        function ho() {
          switch (q()) {
            case 85:
              return ft() === 92;
            case 93:
              return ft(), q() === 88 ? Xr(_d) : q() === 154 ? Xr(Ya) : Ho();
            case 88:
              return _d();
            case 124:
            case 137:
            case 151:
              return ft(), dc();
            default:
              return ls();
          }
        }
        function Ho() {
          return q() === 59 || q() !== 41 && q() !== 128 && q() !== 18 && dc();
        }
        function Ya() {
          return ft(), Ho();
        }
        function dl() {
          return py(q()) && ss(ho);
        }
        function dc() {
          return q() === 22 || q() === 18 || q() === 41 || q() === 25 || Q();
        }
        function _d() {
          return ft(), q() === 84 || q() === 98 || q() === 118 || q() === 59 || q() === 126 && Xr(nh) || q() === 132 && Xr(wb);
        }
        function Es(z, be) {
          if (Mt(z))
            return !0;
          switch (z) {
            case 0:
            case 1:
            case 3:
              return !(q() === 26 && be) && hS();
            case 2:
              return q() === 82 || q() === 88;
            case 4:
              return Xr($1);
            case 5:
              return Xr(Nd) || q() === 26 && !be;
            case 6:
              return q() === 22 || Q();
            case 12:
              switch (q()) {
                case 22:
                case 41:
                case 25:
                case 24:
                  return !0;
                default:
                  return Q();
              }
            case 18:
              return Q();
            case 9:
              return q() === 22 || q() === 25 || Q();
            case 24:
              return ot();
            case 7:
              return q() === 18 ? Xr(ds) : be ? da() && !Nf() : vb() && !Nf();
            case 8:
              return _E();
            case 10:
              return q() === 27 || q() === 25 || _E();
            case 19:
              return q() === 101 || q() === 85 || da();
            case 15:
              switch (q()) {
                case 27:
                case 24:
                  return !0;
              }
            case 11:
              return q() === 25 || rp();
            case 16:
              return ub(!1);
            case 17:
              return ub(!0);
            case 20:
            case 21:
              return q() === 27 || kg();
            case 22:
              return Hh();
            case 23:
              return Yu(q());
            case 13:
              return Yu(q()) || q() === 18;
            case 14:
              return !0;
          }
          return D.fail("Non-exhaustive case in 'isListElement'.");
        }
        function ds() {
          if (D.assert(q() === 18), ft() === 19) {
            const z = ft();
            return z === 27 || z === 18 || z === 94 || z === 117;
          }
          return !0;
        }
        function fl() {
          return ft(), da();
        }
        function Jd() {
          return ft(), Yu(q());
        }
        function Hl() {
          return ft(), Cle(q());
        }
        function Nf() {
          return q() === 117 || q() === 94 ? Xr(xe) : !1;
        }
        function xe() {
          return ft(), rp();
        }
        function Dt() {
          return ft(), kg();
        }
        function Nn(z) {
          if (q() === 1)
            return !0;
          switch (z) {
            case 1:
            case 2:
            case 4:
            case 5:
            case 6:
            case 12:
            case 9:
            case 23:
            case 24:
              return q() === 19;
            case 3:
              return q() === 19 || q() === 82 || q() === 88;
            case 7:
              return q() === 18 || q() === 94 || q() === 117;
            case 8:
              return Xi();
            case 19:
              return q() === 31 || q() === 20 || q() === 18 || q() === 94 || q() === 117;
            case 11:
              return q() === 21 || q() === 26;
            case 15:
            case 21:
            case 10:
              return q() === 23;
            case 17:
            case 16:
            case 18:
              return q() === 21 || q() === 23;
            case 20:
              return q() !== 27;
            case 22:
              return q() === 18 || q() === 19;
            case 13:
              return q() === 31 || q() === 43;
            case 14:
              return q() === 29 && Xr(_o);
            default:
              return !1;
          }
        }
        function Xi() {
          return !!(Ds() || uS(q()) || q() === 38);
        }
        function Lo() {
          for (let z = 0; z < 25; z++)
            if (Qt & 1 << z && (Es(z, !0) || Nn(z)))
              return !0;
          return !1;
        }
        function oe(z, be) {
          const $e = Qt;
          Qt |= 1 << z;
          const Tt = [], Gt = Z();
          for (; !Nn(z); ) {
            if (Es(z, !1)) {
              Tt.push(ut(z, be));
              continue;
            }
            if (pd(z))
              break;
          }
          return Qt = $e, Ks(Tt, Gt);
        }
        function ut(z, be) {
          const $e = Mt(z);
          return $e ? Pt($e) : be();
        }
        function Mt(z, be) {
          var $e;
          if (!Et || !un(z) || Zt)
            return;
          const Tt = Et.currentNode(be ?? t.getStartPos());
          if (!(Al(Tt) || Tt.intersectsChange || iN(Tt) || (Tt.flags & 50720768) !== jn) && Vn(Tt, z))
            return kN(Tt) && (($e = Tt.jsDoc) != null && $e.jsDocCache) && (Tt.jsDoc.jsDocCache = void 0), Tt;
        }
        function Pt(z) {
          return t.setTextPos(z.end), ft(), z;
        }
        function un(z) {
          switch (z) {
            case 5:
            case 2:
            case 0:
            case 1:
            case 3:
            case 6:
            case 4:
            case 8:
            case 17:
            case 16:
              return !0;
          }
          return !1;
        }
        function Vn(z, be) {
          switch (be) {
            case 5:
              return Rr(z);
            case 2:
              return ni(z);
            case 0:
            case 1:
            case 3:
              return Mi(z);
            case 6:
              return ja(z);
            case 4:
              return Wo(z);
            case 8:
              return Ts(z);
            case 17:
            case 16:
              return Xs(z);
          }
          return !1;
        }
        function Rr(z) {
          if (z)
            switch (z.kind) {
              case 173:
              case 178:
              case 174:
              case 175:
              case 169:
              case 237:
                return !0;
              case 171:
                const be = z;
                return !(be.name.kind === 79 && be.name.escapedText === "constructor");
            }
          return !1;
        }
        function ni(z) {
          if (z)
            switch (z.kind) {
              case 292:
              case 293:
                return !0;
            }
          return !1;
        }
        function Mi(z) {
          if (z)
            switch (z.kind) {
              case 259:
              case 240:
              case 238:
              case 242:
              case 241:
              case 254:
              case 250:
              case 252:
              case 249:
              case 248:
              case 246:
              case 247:
              case 245:
              case 244:
              case 251:
              case 239:
              case 255:
              case 253:
              case 243:
              case 256:
              case 269:
              case 268:
              case 275:
              case 274:
              case 264:
              case 260:
              case 261:
              case 263:
              case 262:
                return !0;
            }
          return !1;
        }
        function ja(z) {
          return z.kind === 302;
        }
        function Wo(z) {
          if (z)
            switch (z.kind) {
              case 177:
              case 170:
              case 178:
              case 168:
              case 176:
                return !0;
            }
          return !1;
        }
        function Ts(z) {
          return z.kind !== 257 ? !1 : z.initializer === void 0;
        }
        function Xs(z) {
          return z.kind !== 166 ? !1 : z.initializer === void 0;
        }
        function pd(z) {
          return _f(z), Lo() ? !0 : (ft(), !1);
        }
        function _f(z) {
          switch (z) {
            case 0:
              return q() === 88 ? mt(_._0_expected, yo(93)) : mt(_.Declaration_or_statement_expected);
            case 1:
              return mt(_.Declaration_or_statement_expected);
            case 2:
              return mt(_.case_or_default_expected);
            case 3:
              return mt(_.Statement_expected);
            case 18:
            case 4:
              return mt(_.Property_or_signature_expected);
            case 5:
              return mt(_.Unexpected_token_A_constructor_method_accessor_or_property_was_expected);
            case 6:
              return mt(_.Enum_member_expected);
            case 7:
              return mt(_.Expression_expected);
            case 8:
              return Ad(q()) ? mt(_._0_is_not_allowed_as_a_variable_declaration_name, yo(q())) : mt(_.Variable_declaration_expected);
            case 9:
              return mt(_.Property_destructuring_pattern_expected);
            case 10:
              return mt(_.Array_element_destructuring_pattern_expected);
            case 11:
              return mt(_.Argument_expression_expected);
            case 12:
              return mt(_.Property_assignment_expected);
            case 15:
              return mt(_.Expression_or_comma_expected);
            case 17:
              return mt(_.Parameter_declaration_expected);
            case 16:
              return Ad(q()) ? mt(_._0_is_not_allowed_as_a_parameter_name, yo(q())) : mt(_.Parameter_declaration_expected);
            case 19:
              return mt(_.Type_parameter_declaration_expected);
            case 20:
              return mt(_.Type_argument_expected);
            case 21:
              return mt(_.Type_expected);
            case 22:
              return mt(_.Unexpected_token_expected);
            case 23:
              return mt(_.Identifier_expected);
            case 13:
              return mt(_.Identifier_expected);
            case 14:
              return mt(_.Identifier_expected);
            case 24:
              return mt(_.Identifier_or_string_literal_expected);
            case 25:
              return D.fail("ParsingContext.Count used as a context");
            default:
              D.assertNever(z);
          }
        }
        function tc(z, be, $e) {
          const Tt = Qt;
          Qt |= 1 << z;
          const Gt = [], Cn = Z();
          let Br = -1;
          for (; ; ) {
            if (Es(z, !1)) {
              const gi = t.getStartPos(), xi = ut(z, be);
              if (!xi) {
                Qt = Tt;
                return;
              }
              if (Gt.push(xi), Br = t.getTokenPos(), La(27))
                continue;
              if (Br = -1, Nn(z))
                break;
              wn(27, Kd(z)), $e && q() === 26 && !t.hasPrecedingLineBreak() && ft(), gi === t.getStartPos() && ft();
              continue;
            }
            if (Nn(z) || pd(z))
              break;
          }
          return Qt = Tt, Ks(Gt, Cn, void 0, Br >= 0);
        }
        function Kd(z) {
          return z === 6 ? _.An_enum_member_name_must_be_followed_by_a_or : void 0;
        }
        function Au() {
          const z = Ks([], Z());
          return z.isMissingList = !0, z;
        }
        function pf(z) {
          return !!z.isMissingList;
        }
        function S_(z, be, $e, Tt) {
          if (wn($e)) {
            const Gt = tc(z, be);
            return wn(Tt), Gt;
          }
          return Au();
        }
        function $o(z, be) {
          const $e = Z();
          let Tt = z ? Ht(be) : It(be);
          for (; La(24) && q() !== 29; )
            Tt = rn(h.createQualifiedName(Tt, mf(z, !1)), $e);
          return Tt;
        }
        function x_(z, be) {
          return rn(h.createQualifiedName(z, be), z.pos);
        }
        function mf(z, be) {
          if (t.hasPrecedingLineBreak() && Yu(q()) && Xr(hd))
            return jl(79, !0, _.Identifier_expected);
          if (q() === 80) {
            const $e = Pr();
            return be ? $e : jl(79, !0, _.Identifier_expected);
          }
          return z ? Ht() : It();
        }
        function Q_(z) {
          const be = Z(), $e = [];
          let Tt;
          do
            Tt = Da(z), $e.push(Tt);
          while (Tt.literal.kind === 16);
          return Ks($e, be);
        }
        function Ip(z) {
          const be = Z();
          return rn(h.createTemplateExpression(Ie(z), Q_(z)), be);
        }
        function U() {
          const z = Z();
          return rn(h.createTemplateLiteralType(Ie(!1), et()), z);
        }
        function et() {
          const z = Z(), be = [];
          let $e;
          do
            $e = qt(), be.push($e);
          while ($e.literal.kind === 16);
          return Ks(be, z);
        }
        function qt() {
          const z = Z();
          return rn(h.createTemplateLiteralTypeSpan(vc(), Xn(!1)), z);
        }
        function Xn(z) {
          return q() === 19 ? (Ai(z), Ue()) : tu(17, _._0_expected, yo(19));
        }
        function Da(z) {
          const be = Z();
          return rn(h.createTemplateSpan(yt(cu), Xn(z)), be);
        }
        function Ia() {
          return Ot(q());
        }
        function Ie(z) {
          z && Ci();
          const be = Ot(q());
          return D.assert(be.kind === 15, "Template head has wrong token kind"), be;
        }
        function Ue() {
          const z = Ot(q());
          return D.assert(z.kind === 16 || z.kind === 17, "Template fragment has wrong token kind"), z;
        }
        function Lt(z) {
          const be = z === 14 || z === 17, $e = t.getTokenText();
          return $e.substring(1, $e.length - (t.isUnterminated() ? 0 : be ? 1 : 2));
        }
        function Ot(z) {
          const be = Z(), $e = Cv(z) ? h.createTemplateLiteralLikeNode(z, t.getTokenValue(), Lt(z), t.getTokenFlags() & 2048) : z === 8 ? A(t.getTokenValue(), t.getNumericLiteralFlags()) : z === 10 ? L(t.getTokenValue(), void 0, t.hasExtendedUnicodeEscape()) : LI(z) ? I(z, t.getTokenValue()) : D.fail();
          return t.hasExtendedUnicodeEscape() && ($e.hasExtendedUnicodeEscape = !0), t.isUnterminated() && ($e.isUnterminated = !0), ft(), rn($e, be);
        }
        function hn() {
          return $o(!0, _.Type_expected);
        }
        function bn() {
          if (!t.hasPrecedingLineBreak() && ji() === 29)
            return S_(20, vc, 29, 31);
        }
        function Tn() {
          const z = Z();
          return rn(h.createTypeReferenceNode(hn(), bn()), z);
        }
        function Hn(z) {
          switch (z.kind) {
            case 180:
              return Al(z.typeName);
            case 181:
            case 182: {
              const { parameters: be, type: $e } = z;
              return pf(be) || Hn($e);
            }
            case 193:
              return Hn(z.type);
            default:
              return !1;
          }
        }
        function qr(z) {
          return ft(), rn(h.createTypePredicateNode(void 0, z, vc()), z.pos);
        }
        function Ji() {
          const z = Z();
          return ft(), rn(h.createThisTypeNode(), z);
        }
        function tr() {
          const z = Z();
          return ft(), rn(h.createJSDocAllType(), z);
        }
        function pn() {
          const z = Z();
          return ft(), rn(h.createJSDocNonNullableType(mb(), !1), z);
        }
        function dr() {
          const z = Z();
          return ft(), q() === 27 || q() === 19 || q() === 21 || q() === 31 || q() === 63 || q() === 51 ? rn(h.createJSDocUnknownType(), z) : rn(h.createJSDocNullableType(vc(), !1), z);
        }
        function Aa() {
          const z = Z(), be = Re();
          if (Xr(li)) {
            ft();
            const $e = kp(36), Tt = ep(58, !1);
            return vn(rn(h.createJSDocFunctionType($e, Tt), z), be);
          }
          return rn(h.createTypeReferenceNode(Ht(), void 0), z);
        }
        function Ys() {
          const z = Z();
          let be;
          return (q() === 108 || q() === 103) && (be = Ht(), wn(58)), rn(h.createParameterDeclaration(void 0, void 0, be, void 0, sc(), void 0), z);
        }
        function sc() {
          t.setInJSDocType(!0);
          const z = Z();
          if (La(142)) {
            const Tt = h.createJSDocNamepathType(void 0);
            e:
              for (; ; )
                switch (q()) {
                  case 19:
                  case 1:
                  case 27:
                  case 5:
                    break e;
                  default:
                    _n();
                }
            return t.setInJSDocType(!1), rn(Tt, z);
          }
          const be = La(25);
          let $e = ns();
          return t.setInJSDocType(!1), be && ($e = rn(h.createJSDocVariadicType($e), z)), q() === 63 ? (ft(), rn(h.createJSDocOptionalType($e), z)) : $e;
        }
        function Ym() {
          const z = Z();
          wn(112);
          const be = $o(!0), $e = t.hasPrecedingLineBreak() ? void 0 : $d();
          return rn(h.createTypeQueryNode(be, $e), z);
        }
        function xg() {
          const z = Z(), be = Ns(!1, !0), $e = It();
          let Tt, Gt;
          La(94) && (kg() || !rp() ? Tt = vc() : Gt = wp());
          const Cn = La(63) ? vc() : void 0, Br = h.createTypeParameterDeclaration(be, $e, Tt, Cn);
          return Br.expression = Gt, rn(Br, z);
        }
        function Z_() {
          if (q() === 29)
            return S_(19, xg, 29, 31);
        }
        function ub(z) {
          return q() === 25 || _E() || py(q()) || q() === 59 || kg(!z);
        }
        function Qv(z) {
          const be = Wy(_.Private_identifiers_cannot_be_used_as_parameters);
          return rN(be) === 0 && !kt(z) && py(q()) && ft(), be;
        }
        function u2() {
          return _i() || q() === 22 || q() === 18;
        }
        function rS(z) {
          return Ag(z);
        }
        function d2(z) {
          return Ag(z, !1);
        }
        function Ag(z, be = !0) {
          const $e = Z(), Tt = Re(), Gt = z ? he(() => Ns(!0)) : j(() => Ns(!0));
          if (q() === 108) {
            const xi = h.createParameterDeclaration(Gt, void 0, Wu(!0), void 0, Ph(), void 0), ki = Yc(Gt);
            return ki && K(ki, _.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters), vn(rn(xi, $e), Tt);
          }
          const Cn = In;
          In = !1;
          const Br = Yo(25);
          if (!be && !u2())
            return;
          const gi = vn(rn(h.createParameterDeclaration(Gt, Br, Qv(Gt), Yo(57), Ph(), Dg()), $e), Tt);
          return In = Cn, gi;
        }
        function ep(z, be) {
          if (Zv(z, be))
            return Ce(ns);
        }
        function Zv(z, be) {
          return z === 38 ? (wn(z), !0) : La(58) ? !0 : be && q() === 38 ? (mt(_._0_expected, yo(58)), ft(), !0) : !1;
        }
        function Oh(z, be) {
          const $e = Ut(), Tt = ue();
          an(!!(z & 1)), Ar(!!(z & 2));
          const Gt = z & 32 ? tc(17, Ys) : tc(16, () => be ? rS(Tt) : d2(Tt));
          return an($e), Ar(Tt), Gt;
        }
        function kp(z) {
          if (!wn(20))
            return Au();
          const be = Oh(z, !0);
          return wn(21), be;
        }
        function e0() {
          La(27) || el();
        }
        function X1(z) {
          const be = Z(), $e = Re();
          z === 177 && wn(103);
          const Tt = Z_(), Gt = kp(4), Cn = ep(58, !0);
          e0();
          const Br = z === 176 ? h.createCallSignature(Tt, Gt, Cn) : h.createConstructSignature(Tt, Gt, Cn);
          return vn(rn(Br, be), $e);
        }
        function db() {
          return q() === 22 && Xr(Cg);
        }
        function Cg() {
          if (ft(), q() === 25 || q() === 23)
            return !0;
          if (py(q())) {
            if (ft(), da())
              return !0;
          } else if (da())
            ft();
          else
            return !1;
          return q() === 58 || q() === 27 ? !0 : q() !== 57 ? !1 : (ft(), q() === 58 || q() === 27 || q() === 23);
        }
        function iS(z, be, $e) {
          const Tt = S_(16, () => rS(!1), 22, 23), Gt = Ph();
          e0();
          const Cn = h.createIndexSignature($e, Tt, Gt);
          return vn(rn(Cn, z), be);
        }
        function Y1(z, be, $e) {
          const Tt = mn(), Gt = Yo(57);
          let Cn;
          if (q() === 20 || q() === 29) {
            const Br = Z_(), gi = kp(4), xi = ep(58, !0);
            Cn = h.createMethodSignature($e, Tt, Gt, Br, gi, xi);
          } else {
            const Br = Ph();
            Cn = h.createPropertySignature($e, Tt, Gt, Br), q() === 63 && (Cn.initializer = Dg());
          }
          return e0(), vn(rn(Cn, z), be);
        }
        function $1() {
          if (q() === 20 || q() === 29 || q() === 137 || q() === 151)
            return !0;
          let z = !1;
          for (; py(q()); )
            z = !0, ft();
          return q() === 22 ? !0 : (Q() && (z = !0, ft()), z ? q() === 20 || q() === 29 || q() === 57 || q() === 58 || q() === 27 || Ds() : !1);
        }
        function Q1() {
          if (q() === 20 || q() === 29)
            return X1(176);
          if (q() === 103 && Xr(t0))
            return X1(177);
          const z = Z(), be = Re(), $e = Ns(!1);
          return Ta(137) ? rh(z, be, $e, 174, 4) : Ta(151) ? rh(z, be, $e, 175, 4) : db() ? iS(z, be, $e) : Y1(z, be, $e);
        }
        function t0() {
          return ft(), q() === 20 || q() === 29;
        }
        function f2() {
          return ft() === 24;
        }
        function Z1() {
          switch (ft()) {
            case 20:
            case 29:
            case 24:
              return !0;
          }
          return !1;
        }
        function eE() {
          const z = Z();
          return rn(h.createTypeLiteralNode(n0()), z);
        }
        function n0() {
          let z;
          return wn(18) ? (z = oe(4, Q1), wn(19)) : z = Au(), z;
        }
        function fb() {
          return ft(), q() === 39 || q() === 40 ? ft() === 146 : (q() === 146 && ft(), q() === 22 && fl() && ft() === 101);
        }
        function r0() {
          const z = Z(), be = Ht();
          wn(101);
          const $e = vc();
          return rn(h.createTypeParameterDeclaration(void 0, be, $e, void 0), z);
        }
        function aS() {
          const z = Z();
          wn(18);
          let be;
          (q() === 146 || q() === 39 || q() === 40) && (be = oc(), be.kind !== 146 && wn(146)), wn(22);
          const $e = r0(), Tt = La(128) ? vc() : void 0;
          wn(23);
          let Gt;
          (q() === 57 || q() === 39 || q() === 40) && (Gt = oc(), Gt.kind !== 57 && wn(57));
          const Cn = Ph();
          el();
          const Br = oe(4, Q1);
          return wn(19), rn(h.createMappedTypeNode(be, $e, Tt, Gt, Cn, Br), z);
        }
        function Lg() {
          const z = Z();
          if (La(25))
            return rn(h.createRestTypeNode(vc()), z);
          const be = vc();
          if (AC(be) && be.pos === be.type.pos) {
            const $e = h.createOptionalTypeNode(be.type);
            return ht($e, be), $e.flags = be.flags, $e;
          }
          return be;
        }
        function Qo() {
          return ft() === 58 || q() === 57 && ft() === 58;
        }
        function tE() {
          return q() === 25 ? Yu(ft()) && Qo() : Yu(q()) && Qo();
        }
        function uL() {
          if (Xr(tE)) {
            const z = Z(), be = Re(), $e = Yo(25), Tt = Ht(), Gt = Yo(57);
            wn(58);
            const Cn = Lg(), Br = h.createNamedTupleMember($e, Tt, Gt, Cn);
            return vn(rn(Br, z), be);
          }
          return Lg();
        }
        function Py() {
          const z = Z();
          return rn(h.createTupleTypeNode(S_(21, uL, 22, 23)), z);
        }
        function Ig() {
          const z = Z();
          wn(20);
          const be = vc();
          return wn(21), rn(h.createParenthesizedType(be), z);
        }
        function $m() {
          let z;
          if (q() === 126) {
            const be = Z();
            ft();
            const $e = rn(G(126), be);
            z = Ks([$e], be);
          }
          return z;
        }
        function tp() {
          const z = Z(), be = Re(), $e = $m(), Tt = La(103);
          D.assert(!$e || Tt, "Per isStartOfFunctionOrConstructorType, a function type cannot have modifiers.");
          const Gt = Z_(), Cn = kp(4), Br = ep(38, !1), gi = Tt ? h.createConstructorTypeNode($e, Gt, Cn, Br) : h.createFunctionTypeNode(Gt, Cn, Br);
          return vn(rn(gi, z), be);
        }
        function kd() {
          const z = oc();
          return q() === 24 ? void 0 : z;
        }
        function wd(z) {
          const be = Z();
          z && ft();
          let $e = q() === 110 || q() === 95 || q() === 104 ? oc() : Ot(q());
          return z && ($e = rn(h.createPrefixUnaryExpression(40, $e), be)), rn(h.createLiteralTypeNode($e), be);
        }
        function Dd() {
          return ft(), q() === 100;
        }
        function _b() {
          const z = Z(), be = t.getTokenPos();
          wn(18);
          const $e = t.hasPrecedingLineBreak();
          wn(130), wn(58);
          const Tt = Ky(!0);
          if (!wn(19)) {
            const Gt = tl(st);
            Gt && Gt.code === _._0_expected.code && Xo(Gt, iC(qe, be, 1, _.The_parser_expected_to_find_a_1_to_match_the_0_token_here, "{", "}"));
          }
          return rn(h.createImportTypeAssertionContainer(Tt, $e), z);
        }
        function pb() {
          Oe |= 2097152;
          const z = Z(), be = La(112);
          wn(100), wn(20);
          const $e = vc();
          let Tt;
          La(27) && (Tt = _b()), wn(21);
          const Gt = La(24) ? hn() : void 0, Cn = bn();
          return rn(h.createImportTypeNode($e, Tt, Gt, Cn, be), z);
        }
        function _2() {
          return ft(), q() === 8 || q() === 9;
        }
        function mb() {
          switch (q()) {
            case 131:
            case 157:
            case 152:
            case 148:
            case 160:
            case 153:
            case 134:
            case 155:
            case 144:
            case 149:
              return ss(kd) || Tn();
            case 66:
              t.reScanAsteriskEqualsToken();
            case 41:
              return tr();
            case 60:
              t.reScanQuestionToken();
            case 57:
              return dr();
            case 98:
              return Aa();
            case 53:
              return pn();
            case 14:
            case 10:
            case 8:
            case 9:
            case 110:
            case 95:
            case 104:
              return wd();
            case 40:
              return Xr(_2) ? wd(!0) : Tn();
            case 114:
              return oc();
            case 108: {
              const z = Ji();
              return q() === 140 && !t.hasPrecedingLineBreak() ? qr(z) : z;
            }
            case 112:
              return Xr(Dd) ? pb() : Ym();
            case 18:
              return Xr(fb) ? aS() : eE();
            case 22:
              return Py();
            case 20:
              return Ig();
            case 100:
              return pb();
            case 129:
              return Xr(hd) ? rE() : Tn();
            case 15:
              return U();
            default:
              return Tn();
          }
        }
        function kg(z) {
          switch (q()) {
            case 131:
            case 157:
            case 152:
            case 148:
            case 160:
            case 134:
            case 146:
            case 153:
            case 156:
            case 114:
            case 155:
            case 104:
            case 108:
            case 112:
            case 144:
            case 18:
            case 22:
            case 29:
            case 51:
            case 50:
            case 103:
            case 10:
            case 8:
            case 9:
            case 110:
            case 95:
            case 149:
            case 41:
            case 57:
            case 53:
            case 25:
            case 138:
            case 100:
            case 129:
            case 14:
            case 15:
              return !0;
            case 98:
              return !z;
            case 40:
              return !z && Xr(_2);
            case 20:
              return !z && Xr(hb);
            default:
              return da();
          }
        }
        function hb() {
          return ft(), q() === 21 || ub(!1) || kg();
        }
        function oS() {
          const z = Z();
          let be = mb();
          for (; !t.hasPrecedingLineBreak(); )
            switch (q()) {
              case 53:
                ft(), be = rn(h.createJSDocNonNullableType(be, !0), z);
                break;
              case 57:
                if (Xr(Dt))
                  return be;
                ft(), be = rn(h.createJSDocNullableType(be, !0), z);
                break;
              case 22:
                if (wn(22), kg()) {
                  const $e = vc();
                  wn(23), be = rn(h.createIndexedAccessTypeNode(be, $e), z);
                } else
                  wn(23), be = rn(h.createArrayTypeNode(be), z);
                break;
              default:
                return be;
            }
          return be;
        }
        function gb(z) {
          const be = Z();
          return wn(z), rn(h.createTypeOperatorNode(z, nE()), be);
        }
        function dL() {
          if (La(94)) {
            const z = pt(vc);
            if (Sn() || q() !== 57)
              return z;
          }
        }
        function p2() {
          const z = Z(), be = It(), $e = ss(dL), Tt = h.createTypeParameterDeclaration(void 0, be, $e);
          return rn(Tt, z);
        }
        function i0() {
          const z = Z();
          return wn(138), rn(h.createInferTypeNode(p2()), z);
        }
        function nE() {
          const z = q();
          switch (z) {
            case 141:
            case 156:
            case 146:
              return gb(z);
            case 138:
              return i0();
          }
          return Ce(oS);
        }
        function Ke(z) {
          if (o0()) {
            const be = tp();
            let $e;
            return Ch(be) ? $e = z ? _.Function_type_notation_must_be_parenthesized_when_used_in_a_union_type : _.Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type : $e = z ? _.Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type : _.Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type, K(be, $e), be;
          }
        }
        function My(z, be, $e) {
          const Tt = Z(), Gt = z === 51, Cn = La(z);
          let Br = Cn && Ke(Gt) || be();
          if (q() === z || Cn) {
            const gi = [Br];
            for (; La(z); )
              gi.push(Ke(Gt) || be());
            Br = rn($e(Ks(gi, Tt)), Tt);
          }
          return Br;
        }
        function om() {
          return My(50, nE, h.createIntersectionTypeNode);
        }
        function a0() {
          return My(51, om, h.createUnionTypeNode);
        }
        function yb() {
          return ft(), q() === 103;
        }
        function o0() {
          return q() === 29 || q() === 20 && Xr(sS) ? !0 : q() === 103 || q() === 126 && Xr(yb);
        }
        function wg() {
          if (py(q()) && Ns(!1), da() || q() === 108)
            return ft(), !0;
          if (q() === 22 || q() === 18) {
            const z = st.length;
            return Wy(), z === st.length;
          }
          return !1;
        }
        function sS() {
          return ft(), !!(q() === 21 || q() === 25 || wg() && (q() === 58 || q() === 27 || q() === 57 || q() === 63 || q() === 21 && (ft(), q() === 38)));
        }
        function ns() {
          const z = Z(), be = da() && ss(np), $e = vc();
          return be ? rn(h.createTypePredicateNode(void 0, be, $e), z) : $e;
        }
        function np() {
          const z = It();
          if (q() === 140 && !t.hasPrecedingLineBreak())
            return ft(), z;
        }
        function rE() {
          const z = Z(), be = tu(129), $e = q() === 108 ? Ji() : It(), Tt = La(140) ? vc() : void 0;
          return rn(h.createTypePredicateNode(be, $e, Tt), z);
        }
        function vc() {
          if (jn & 40960)
            return Hr(40960, vc);
          if (o0())
            return tp();
          const z = Z(), be = a0();
          if (!Sn() && !t.hasPrecedingLineBreak() && La(94)) {
            const $e = pt(vc);
            wn(57);
            const Tt = Ce(vc);
            wn(58);
            const Gt = Ce(vc);
            return rn(h.createConditionalTypeNode(be, $e, Tt, Gt), z);
          }
          return be;
        }
        function Ph() {
          return La(58) ? vc() : void 0;
        }
        function vb() {
          switch (q()) {
            case 108:
            case 106:
            case 104:
            case 110:
            case 95:
            case 8:
            case 9:
            case 10:
            case 14:
            case 15:
            case 20:
            case 22:
            case 18:
            case 98:
            case 84:
            case 103:
            case 43:
            case 68:
            case 79:
              return !0;
            case 100:
              return Xr(Z1);
            default:
              return da();
          }
        }
        function rp() {
          if (vb())
            return !0;
          switch (q()) {
            case 39:
            case 40:
            case 54:
            case 53:
            case 89:
            case 112:
            case 114:
            case 45:
            case 46:
            case 29:
            case 133:
            case 125:
            case 80:
            case 59:
              return !0;
            default:
              return m2() ? !0 : da();
          }
        }
        function bb() {
          return q() !== 18 && q() !== 98 && q() !== 84 && q() !== 59 && rp();
        }
        function cu() {
          const z = Er();
          z && Pn(!1);
          const be = Z();
          let $e = Pc(!0), Tt;
          for (; Tt = Yo(27); )
            $e = s0($e, Tt, Pc(!0), be);
          return z && Pn(!0), $e;
        }
        function Dg() {
          return La(63) ? Pc(!0) : void 0;
        }
        function Pc(z) {
          if (lS())
            return Wi();
          const be = Qm(z) || Mh(z);
          if (be)
            return be;
          const $e = Z(), Tt = Tb(0);
          return Tt.kind === 79 && q() === 38 ? Jr($e, Tt, z, void 0) : Td(Tt) && yy($n()) ? s0(Tt, oc(), Pc(z), $e) : cS(Tt, $e, z);
        }
        function lS() {
          return q() === 125 ? Ut() ? !0 : Xr(d0) : !1;
        }
        function fL() {
          return ft(), !t.hasPrecedingLineBreak() && da();
        }
        function Wi() {
          const z = Z();
          return ft(), !t.hasPrecedingLineBreak() && (q() === 41 || rp()) ? rn(h.createYieldExpression(Yo(41), Pc(!0)), z) : rn(h.createYieldExpression(void 0, void 0), z);
        }
        function Jr(z, be, $e, Tt) {
          D.assert(q() === 38, "parseSimpleArrowFunctionExpression should only have been called if we had a =>");
          const Gt = h.createParameterDeclaration(void 0, void 0, be, void 0, void 0, void 0);
          rn(Gt, be.pos);
          const Cn = Ks([Gt], Gt.pos, Gt.end), Br = tu(38), gi = Eb(!!Tt, $e), xi = h.createArrowFunction(Tt, void 0, Cn, void 0, Br, gi);
          return fn(rn(xi, z));
        }
        function Qm(z) {
          const be = Xd();
          if (be !== 0)
            return be === 1 ? _l(!0, !0) : ss(() => Rg(z));
        }
        function Xd() {
          return q() === 20 || q() === 29 || q() === 132 ? Xr(iE) : q() === 38 ? 1 : 0;
        }
        function iE() {
          if (q() === 132 && (ft(), t.hasPrecedingLineBreak() || q() !== 20 && q() !== 29))
            return 0;
          const z = q(), be = ft();
          if (z === 20) {
            if (be === 21)
              switch (ft()) {
                case 38:
                case 58:
                case 18:
                  return 1;
                default:
                  return 0;
              }
            if (be === 22 || be === 18)
              return 2;
            if (be === 25)
              return 1;
            if (py(be) && be !== 132 && Xr(fl))
              return ft() === 128 ? 0 : 1;
            if (!da() && be !== 108)
              return 0;
            switch (ft()) {
              case 58:
                return 1;
              case 57:
                return ft(), q() === 58 || q() === 27 || q() === 63 || q() === 21 ? 1 : 0;
              case 27:
              case 63:
              case 21:
                return 2;
            }
            return 0;
          } else
            return D.assert(z === 29), !da() && q() !== 85 ? 0 : Fe === 1 ? Xr(() => {
              La(85);
              const Tt = ft();
              if (Tt === 94)
                switch (ft()) {
                  case 63:
                  case 31:
                  case 43:
                    return !1;
                  default:
                    return !0;
                }
              else if (Tt === 27 || Tt === 63)
                return !0;
              return !1;
            }) ? 1 : 0 : 2;
        }
        function Rg(z) {
          const be = t.getTokenPos();
          if (On != null && On.has(be))
            return;
          const $e = _l(!1, z);
          return $e || (On || (On = /* @__PURE__ */ new Set())).add(be), $e;
        }
        function Mh(z) {
          if (q() === 132 && Xr(Zm) === 1) {
            const be = Z(), $e = mE(), Tt = Tb(0);
            return Jr(be, Tt, z, $e);
          }
        }
        function Zm() {
          if (q() === 132) {
            if (ft(), t.hasPrecedingLineBreak() || q() === 38)
              return 0;
            const z = Tb(0);
            if (!t.hasPrecedingLineBreak() && z.kind === 79 && q() === 38)
              return 1;
          }
          return 0;
        }
        function _l(z, be) {
          const $e = Z(), Tt = Re(), Gt = mE(), Cn = kt(Gt, Ak) ? 2 : 0, Br = Z_();
          let gi;
          if (wn(20)) {
            if (z)
              gi = Oh(Cn, z);
            else {
              const fm = Oh(Cn, z);
              if (!fm)
                return;
              gi = fm;
            }
            if (!wn(21) && !z)
              return;
          } else {
            if (!z)
              return;
            gi = Au();
          }
          const xi = q() === 58, ki = ep(58, !1);
          if (ki && !z && Hn(ki))
            return;
          let Fa = ki;
          for (; (Fa == null ? void 0 : Fa.kind) === 193; )
            Fa = Fa.type;
          const Is = Fa && CC(Fa);
          if (!z && q() !== 38 && (Is || q() !== 18))
            return;
          const Io = q(), is = tu(38), Od = Io === 38 || Io === 18 ? Eb(kt(Gt, Ak), be) : It();
          if (!be && xi && q() !== 58)
            return;
          const Op = h.createArrowFunction(Gt, Br, gi, ki, is, Od);
          return vn(rn(Op, $e), Tt);
        }
        function Eb(z, be) {
          if (q() === 18)
            return Rd(z ? 2 : 0);
          if (q() !== 26 && q() !== 98 && q() !== 84 && hS() && !bb())
            return Rd(16 | (z ? 2 : 0));
          const $e = In;
          In = !1;
          const Tt = z ? he(() => Pc(be)) : j(() => Pc(be));
          return In = $e, Tt;
        }
        function cS(z, be, $e) {
          const Tt = Yo(57);
          if (!Tt)
            return z;
          let Gt;
          return rn(h.createConditionalExpression(z, Tt, Hr(r, () => Pc(!1)), Gt = tu(58), __(Gt) ? Pc($e) : jl(79, !1, _._0_expected, yo(58))), be);
        }
        function Tb(z) {
          const be = Z(), $e = wp();
          return r_(z, $e, be);
        }
        function uS(z) {
          return z === 101 || z === 162;
        }
        function r_(z, be, $e) {
          for (; ; ) {
            $n();
            const Tt = GN(q());
            if (!(q() === 42 ? Tt >= z : Tt > z) || q() === 101 && cn())
              break;
            if (q() === 128 || q() === 150) {
              if (t.hasPrecedingLineBreak())
                break;
              {
                const Cn = q();
                ft(), be = Cn === 150 ? h2(be, vc()) : dS(be, vc());
              }
            } else
              be = s0(be, oc(), Tb(Tt), $e);
          }
          return be;
        }
        function m2() {
          return cn() && q() === 101 ? !1 : GN(q()) > 0;
        }
        function h2(z, be) {
          return rn(h.createSatisfiesExpression(z, be), z.pos);
        }
        function s0(z, be, $e, Tt) {
          return rn(h.createBinaryExpression(z, be, $e), Tt);
        }
        function dS(z, be) {
          return rn(h.createAsExpression(z, be), z.pos);
        }
        function fS() {
          const z = Z();
          return rn(h.createPrefixUnaryExpression(q(), gt(ip)), z);
        }
        function g2() {
          const z = Z();
          return rn(h.createDeleteExpression(gt(ip)), z);
        }
        function Sb() {
          const z = Z();
          return rn(h.createTypeOfExpression(gt(ip)), z);
        }
        function _S() {
          const z = Z();
          return rn(h.createVoidExpression(gt(ip)), z);
        }
        function Of() {
          return q() === 133 ? ue() ? !0 : Xr(d0) : !1;
        }
        function Ng() {
          const z = Z();
          return rn(h.createAwaitExpression(gt(ip)), z);
        }
        function wp() {
          if (y2()) {
            const $e = Z(), Tt = xb();
            return q() === 42 ? r_(GN(q()), Tt, $e) : Tt;
          }
          const z = q(), be = ip();
          if (q() === 42) {
            const $e = Ko(Me, be.pos), { end: Tt } = be;
            be.kind === 213 ? it($e, Tt, _.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses) : it($e, Tt, _.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses, yo(z));
          }
          return be;
        }
        function ip() {
          switch (q()) {
            case 39:
            case 40:
            case 54:
            case 53:
              return fS();
            case 89:
              return g2();
            case 112:
              return Sb();
            case 114:
              return _S();
            case 29:
              return Fe === 1 ? Og(!0) : b2();
            case 133:
              if (Of())
                return Ng();
            default:
              return xb();
          }
        }
        function y2() {
          switch (q()) {
            case 39:
            case 40:
            case 54:
            case 53:
            case 89:
            case 112:
            case 114:
            case 133:
              return !1;
            case 29:
              if (Fe !== 1)
                return !1;
            default:
              return !0;
          }
        }
        function xb() {
          if (q() === 45 || q() === 46) {
            const be = Z();
            return rn(h.createPrefixUnaryExpression(q(), gt(sm)), be);
          } else if (Fe === 1 && q() === 29 && Xr(Hl))
            return Og(!0);
          const z = sm();
          if (D.assert(Td(z)), (q() === 45 || q() === 46) && !t.hasPrecedingLineBreak()) {
            const be = q();
            return ft(), rn(h.createPostfixUnaryExpression(z, be), z.pos);
          }
          return z;
        }
        function sm() {
          const z = Z();
          let be;
          return q() === 100 ? Xr(t0) ? (Oe |= 2097152, be = oc()) : Xr(f2) ? (ft(), ft(), be = rn(h.createMetaProperty(100, Ht()), z), Oe |= 4194304) : be = pS() : be = q() === 106 ? md() : pS(), ir(z, be);
        }
        function pS() {
          const z = Z(), be = A_();
          return Pf(z, be, !0);
        }
        function md() {
          const z = Z();
          let be = oc();
          if (q() === 29) {
            const $e = Z(), Tt = ss(Gy);
            Tt !== void 0 && (it($e, Z(), _.super_may_not_use_type_arguments), l0() || (be = h.createExpressionWithTypeArguments(be, Tt)));
          }
          return q() === 20 || q() === 24 || q() === 22 ? be : (tu(24, _.super_must_be_followed_by_an_argument_list_or_member_access), rn(te(be, mf(!0, !0)), z));
        }
        function Og(z, be, $e) {
          const Tt = Z(), Gt = mS(z);
          let Cn;
          if (Gt.kind === 283) {
            let Br = Pg(Gt), gi;
            const xi = Br[Br.length - 1];
            if ((xi == null ? void 0 : xi.kind) === 281 && !nb(xi.openingElement.tagName, xi.closingElement.tagName) && nb(Gt.tagName, xi.closingElement.tagName)) {
              const ki = xi.children.end, Fa = rn(h.createJsxElement(xi.openingElement, xi.children, rn(h.createJsxClosingElement(rn(O(""), ki, ki)), ki, ki)), xi.openingElement.pos, ki);
              Br = Ks([...Br.slice(0, Br.length - 1), Fa], Br.pos, ki), gi = xi.closingElement;
            } else
              gi = Ab(Gt, z), nb(Gt.tagName, gi.tagName) || ($e && kh($e) && nb(gi.tagName, $e.tagName) ? K(Gt.tagName, _.JSX_element_0_has_no_corresponding_closing_tag, PI(Me, Gt.tagName)) : K(gi.tagName, _.Expected_corresponding_JSX_closing_tag_for_0, PI(Me, Gt.tagName)));
            Cn = rn(h.createJsxElement(Gt, Br, gi), Tt);
          } else
            Gt.kind === 286 ? Cn = rn(h.createJsxFragment(Gt, Pg(Gt), Cb(z)), Tt) : (D.assert(Gt.kind === 282), Cn = Gt);
          if (z && q() === 29) {
            const Br = typeof be > "u" ? Cn.pos : be, gi = ss(() => Og(!0, Br));
            if (gi) {
              const xi = jl(27, !1);
              return hk(xi, gi.pos, 0), it(Ko(Me, Br), gi.end, _.JSX_expressions_must_have_one_parent_element), rn(h.createBinaryExpression(Cn, xi, gi), Tt);
            }
          }
          return Cn;
        }
        function lm() {
          const z = Z(), be = h.createJsxText(t.getTokenValue(), Vt === 12);
          return Vt = t.scanJsxToken(), rn(be, z);
        }
        function cm(z, be) {
          switch (be) {
            case 1:
              if (Nx(z))
                K(z, _.JSX_fragment_has_no_corresponding_closing_tag);
              else {
                const $e = z.tagName, Tt = Ko(Me, $e.pos);
                it(Tt, $e.end, _.JSX_element_0_has_no_corresponding_closing_tag, PI(Me, z.tagName));
              }
              return;
            case 30:
            case 7:
              return;
            case 11:
            case 12:
              return lm();
            case 18:
              return oE(!1);
            case 29:
              return Og(!1, void 0, z);
            default:
              return D.assertNever(be);
          }
        }
        function Pg(z) {
          const be = [], $e = Z(), Tt = Qt;
          for (Qt |= 16384; ; ) {
            const Gt = cm(z, Vt = t.reScanJsxToken());
            if (!Gt || (be.push(Gt), kh(z) && (Gt == null ? void 0 : Gt.kind) === 281 && !nb(Gt.openingElement.tagName, Gt.closingElement.tagName) && nb(z.tagName, Gt.closingElement.tagName)))
              break;
          }
          return Qt = Tt, Ks(be, $e);
        }
        function aE() {
          const z = Z();
          return rn(h.createJsxAttributes(oe(13, Rs)), z);
        }
        function mS(z) {
          const be = Z();
          if (wn(29), q() === 31)
            return io(), rn(h.createJsxOpeningFragment(), be);
          const $e = Fy(), Tt = jn & 262144 ? void 0 : $d(), Gt = aE();
          let Cn;
          return q() === 31 ? (io(), Cn = h.createJsxOpeningElement($e, Tt, Gt)) : (wn(43), wn(31, void 0, !1) && (z ? ft() : io()), Cn = h.createJsxSelfClosingElement($e, Tt, Gt)), rn(Cn, be);
        }
        function Fy() {
          const z = Z();
          To();
          let be = q() === 108 ? oc() : Ht();
          for (; La(24); )
            be = rn(te(be, mf(!0, !1)), z);
          return be;
        }
        function oE(z) {
          const be = Z();
          if (!wn(18))
            return;
          let $e, Tt;
          return q() !== 19 && ($e = Yo(25), Tt = cu()), z ? wn(19) : wn(19, void 0, !1) && io(), rn(h.createJsxExpression($e, Tt), be);
        }
        function Rs() {
          if (q() === 18)
            return v2();
          To();
          const z = Z();
          return rn(h.createJsxAttribute(Ht(), By()), z);
        }
        function By() {
          if (q() === 63) {
            if (ua() === 10)
              return Ia();
            if (q() === 18)
              return oE(!0);
            if (q() === 29)
              return Og(!0);
            mt(_.or_JSX_element_expected);
          }
        }
        function v2() {
          const z = Z();
          wn(18), wn(25);
          const be = cu();
          return wn(19), rn(h.createJsxSpreadAttribute(be), z);
        }
        function Ab(z, be) {
          const $e = Z();
          wn(30);
          const Tt = Fy();
          return wn(31, void 0, !1) && (be || !nb(z.tagName, Tt) ? ft() : io()), rn(h.createJsxClosingElement(Tt), $e);
        }
        function Cb(z) {
          const be = Z();
          return wn(30), wn(31, _.Expected_corresponding_closing_tag_for_JSX_fragment, !1) && (z ? ft() : io()), rn(h.createJsxJsxClosingFragment(), be);
        }
        function b2() {
          D.assert(Fe !== 1, "Type assertions should never be parsed in JSX; they should be parsed as comparisons or JSX elements/fragments.");
          const z = Z();
          wn(29);
          const be = vc();
          wn(31);
          const $e = ip();
          return rn(h.createTypeAssertion(be, $e), z);
        }
        function _L() {
          return ft(), Yu(q()) || q() === 22 || l0();
        }
        function E2() {
          return q() === 28 && Xr(_L);
        }
        function pr(z) {
          if (z.flags & 32)
            return !0;
          if (Ix(z)) {
            let be = z.expression;
            for (; Ix(be) && !(be.flags & 32); )
              be = be.expression;
            if (be.flags & 32) {
              for (; Ix(z); )
                z.flags |= 32, z = z.expression;
              return !0;
            }
          }
          return !1;
        }
        function Dl(z, be, $e) {
          const Tt = mf(!0, !0), Gt = $e || pr(be), Cn = Gt ? X(be, $e, Tt) : te(be, Tt);
          if (Gt && Ni(Cn.name) && K(Cn.name, _.An_optional_chain_cannot_contain_private_identifiers), Sy(be) && be.typeArguments) {
            const Br = be.typeArguments.pos - 1, gi = Ko(Me, be.typeArguments.end) + 1;
            it(Br, gi, _.An_instantiation_expression_cannot_be_followed_by_a_property_access);
          }
          return rn(Cn, z);
        }
        function fa(z, be, $e) {
          let Tt;
          if (q() === 23)
            Tt = jl(79, !0, _.An_element_access_expression_should_take_an_argument);
          else {
            const Cn = yt(cu);
            Xf(Cn) && (Cn.text = xu(Cn.text)), Tt = Cn;
          }
          wn(23);
          const Gt = $e || pr(be) ? P(be, $e, Tt) : Y(be, Tt);
          return rn(Gt, z);
        }
        function Pf(z, be, $e) {
          for (; ; ) {
            let Tt, Gt = !1;
            if ($e && E2() ? (Tt = tu(28), Gt = Yu(q())) : Gt = La(24), Gt) {
              be = Dl(z, be, Tt);
              continue;
            }
            if ((Tt || !Er()) && La(22)) {
              be = fa(z, be, Tt);
              continue;
            }
            if (l0()) {
              be = !Tt && be.kind === 230 ? eh(z, be.expression, Tt, be.typeArguments) : eh(z, be, Tt, void 0);
              continue;
            }
            if (!Tt) {
              if (q() === 53 && !t.hasPrecedingLineBreak()) {
                ft(), be = rn(h.createNonNullExpression(be), z);
                continue;
              }
              const Cn = ss(Gy);
              if (Cn) {
                be = rn(h.createExpressionWithTypeArguments(be, Cn), z);
                continue;
              }
            }
            return be;
          }
        }
        function l0() {
          return q() === 14 || q() === 15;
        }
        function eh(z, be, $e, Tt) {
          const Gt = h.createTaggedTemplateExpression(be, Tt, q() === 14 ? (Ci(), Ia()) : Ip(!0));
          return ($e || be.flags & 32) && (Gt.flags |= 32), Gt.questionDotToken = $e, rn(Gt, z);
        }
        function ir(z, be) {
          for (; ; ) {
            be = Pf(z, be, !0);
            let $e;
            const Tt = Yo(28);
            if (Tt && ($e = ss(Gy), l0())) {
              be = eh(z, be, Tt, $e);
              continue;
            }
            if ($e || q() === 20) {
              !Tt && be.kind === 230 && ($e = be.typeArguments, be = be.expression);
              const Gt = T2(), Cn = Tt || pr(be) ? re(be, Tt, $e, Gt) : de(be, $e, Gt);
              be = rn(Cn, z);
              continue;
            }
            if (Tt) {
              const Gt = jl(79, !1, _.Identifier_expected);
              be = rn(X(be, Tt, Gt), z);
            }
            break;
          }
          return be;
        }
        function T2() {
          wn(20);
          const z = tc(11, ap);
          return wn(21), z;
        }
        function Gy() {
          if (jn & 262144 || ji() !== 29)
            return;
          ft();
          const z = tc(20, vc);
          if ($n() === 31)
            return ft(), z && Lc() ? z : void 0;
        }
        function Lc() {
          switch (q()) {
            case 20:
            case 14:
            case 15:
              return !0;
            case 29:
            case 31:
            case 39:
            case 40:
              return !1;
          }
          return t.hasPrecedingLineBreak() || m2() || !rp();
        }
        function A_() {
          switch (q()) {
            case 8:
            case 9:
            case 10:
            case 14:
              return Ia();
            case 108:
            case 106:
            case 104:
            case 110:
            case 95:
              return oc();
            case 20:
              return Dp();
            case 22:
              return Vy();
            case 18:
              return nc();
            case 132:
              if (!Xr(wb))
                break;
              return Mg();
            case 59:
              return Vg();
            case 84:
              return m0();
            case 98:
              return Mg();
            case 103:
              return C_();
            case 43:
            case 68:
              if (oi() === 13)
                return Ia();
              break;
            case 15:
              return Ip(!1);
            case 80:
              return Pr();
          }
          return It(_.Expression_expected);
        }
        function Dp() {
          const z = Z(), be = Re();
          wn(20);
          const $e = yt(cu);
          return wn(21), vn(rn(ae($e), z), be);
        }
        function Uy() {
          const z = Z();
          wn(25);
          const be = Pc(!0);
          return rn(h.createSpreadElement(be), z);
        }
        function sE() {
          return q() === 25 ? Uy() : q() === 27 ? rn(h.createOmittedExpression(), Z()) : Pc(!0);
        }
        function ap() {
          return Hr(r, sE);
        }
        function Vy() {
          const z = Z(), be = t.getTokenPos(), $e = wn(22), Tt = t.hasPrecedingLineBreak(), Gt = tc(15, sE);
          return Co(22, 23, $e, be), rn(V(Gt, Tt), z);
        }
        function Yl() {
          const z = Z(), be = Re();
          if (Yo(25)) {
            const Fa = Pc(!0);
            return vn(rn(h.createSpreadAssignment(Fa), z), be);
          }
          const $e = Ns(!0);
          if (Ta(137))
            return rh(z, be, $e, 174, 0);
          if (Ta(151))
            return rh(z, be, $e, 175, 0);
          const Tt = Yo(41), Gt = da(), Cn = mn(), Br = Yo(57), gi = Yo(53);
          if (Tt || q() === 20 || q() === 29)
            return yS(z, be, $e, Tt, Cn, Br, gi);
          let xi;
          if (Gt && q() !== 58) {
            const Fa = Yo(63), Is = Fa ? yt(() => Pc(!0)) : void 0;
            xi = h.createShorthandPropertyAssignment(Cn, Is), xi.equalsToken = Fa;
          } else {
            wn(58);
            const Fa = yt(() => Pc(!0));
            xi = h.createPropertyAssignment(Cn, Fa);
          }
          return xi.modifiers = $e, xi.questionToken = Br, xi.exclamationToken = gi, vn(rn(xi, z), be);
        }
        function nc() {
          const z = Z(), be = t.getTokenPos(), $e = wn(18), Tt = t.hasPrecedingLineBreak(), Gt = tc(12, Yl, !0);
          return Co(18, 19, $e, be), rn(H(Gt, Tt), z);
        }
        function Mg() {
          const z = Er();
          Pn(!1);
          const be = Z(), $e = Re(), Tt = Ns(!1);
          wn(98);
          const Gt = Yo(41), Cn = Gt ? 1 : 0, Br = kt(Tt, Ak) ? 2 : 0, gi = Cn && Br ? He(uu) : Cn ? _e(uu) : Br ? he(uu) : uu(), xi = Z_(), ki = kp(Cn | Br), Fa = ep(58, !1), Is = Rd(Cn | Br);
          Pn(z);
          const Io = h.createFunctionExpression(Tt, Gt, gi, xi, ki, Fa, Is);
          return vn(rn(Io, be), $e);
        }
        function uu() {
          return _i() ? fe() : void 0;
        }
        function C_() {
          const z = Z();
          if (wn(103), La(24)) {
            const Cn = Ht();
            return rn(h.createMetaProperty(103, Cn), z);
          }
          const be = Z();
          let $e = Pf(be, A_(), !1), Tt;
          $e.kind === 230 && (Tt = $e.typeArguments, $e = $e.expression), q() === 28 && mt(_.Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0, PI(Me, $e));
          const Gt = q() === 20 ? T2() : void 0;
          return rn(ye($e, Tt, Gt), z);
        }
        function th(z, be) {
          const $e = Z(), Tt = Re(), Gt = t.getTokenPos(), Cn = wn(18, be);
          if (Cn || z) {
            const Br = t.hasPrecedingLineBreak(), gi = oe(1, Mf);
            Co(18, 19, Cn, Gt);
            const xi = vn(rn(W(gi, Br), $e), Tt);
            return q() === 63 && (mt(_.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses), ft()), xi;
          } else {
            const Br = Au();
            return vn(rn(W(Br, void 0), $e), Tt);
          }
        }
        function Rd(z, be) {
          const $e = Ut();
          an(!!(z & 1));
          const Tt = ue();
          Ar(!!(z & 2));
          const Gt = In;
          In = !1;
          const Cn = Er();
          Cn && Pn(!1);
          const Br = th(!!(z & 16), be);
          return Cn && Pn(!0), In = Gt, an($e), Ar(Tt), Br;
        }
        function lE() {
          const z = Z(), be = Re();
          return wn(26), vn(rn(h.createEmptyStatement(), z), be);
        }
        function Lb() {
          const z = Z(), be = Re();
          wn(99);
          const $e = t.getTokenPos(), Tt = wn(20), Gt = yt(cu);
          Co(20, 21, Tt, $e);
          const Cn = Mf(), Br = La(91) ? Mf() : void 0;
          return vn(rn(ve(Gt, Cn, Br), z), be);
        }
        function Ib() {
          const z = Z(), be = Re();
          wn(90);
          const $e = Mf();
          wn(115);
          const Tt = t.getTokenPos(), Gt = wn(20), Cn = yt(cu);
          return Co(20, 21, Gt, Tt), La(26), vn(rn(h.createDoStatement($e, Cn), z), be);
        }
        function Rp() {
          const z = Z(), be = Re();
          wn(115);
          const $e = t.getTokenPos(), Tt = wn(20), Gt = yt(cu);
          Co(20, 21, Tt, $e);
          const Cn = Mf();
          return vn(rn(Te(Gt, Cn), z), be);
        }
        function Fh() {
          const z = Z(), be = Re();
          wn(97);
          const $e = Yo(133);
          wn(20);
          let Tt;
          q() !== 26 && (q() === 113 || q() === 119 || q() === 85 ? Tt = um(!0) : Tt = Nt(cu));
          let Gt;
          if ($e ? wn(162) : La(162)) {
            const Cn = yt(() => Pc(!0));
            wn(21), Gt = Qe($e, Tt, Cn, Mf());
          } else if (La(101)) {
            const Cn = yt(cu);
            wn(21), Gt = h.createForInStatement(Tt, Cn, Mf());
          } else {
            wn(26);
            const Cn = q() !== 26 && q() !== 21 ? yt(cu) : void 0;
            wn(26);
            const Br = q() !== 21 ? yt(cu) : void 0;
            wn(21), Gt = ee(Tt, Cn, Br, Mf());
          }
          return vn(rn(Gt, z), be);
        }
        function cE(z) {
          const be = Z(), $e = Re();
          wn(z === 249 ? 81 : 86);
          const Tt = Ds() ? void 0 : It();
          el();
          const Gt = z === 249 ? h.createBreakStatement(Tt) : h.createContinueStatement(Tt);
          return vn(rn(Gt, be), $e);
        }
        function jy() {
          const z = Z(), be = Re();
          wn(105);
          const $e = Ds() ? void 0 : yt(cu);
          return el(), vn(rn(h.createReturnStatement($e), z), be);
        }
        function Rl() {
          const z = Z(), be = Re();
          wn(116);
          const $e = t.getTokenPos(), Tt = wn(20), Gt = yt(cu);
          Co(20, 21, Tt, $e);
          const Cn = we(33554432, Mf);
          return vn(rn(h.createWithStatement(Gt, Cn), z), be);
        }
        function Fg() {
          const z = Z(), be = Re();
          wn(82);
          const $e = yt(cu);
          wn(58);
          const Tt = oe(3, Mf);
          return vn(rn(h.createCaseClause($e, Tt), z), be);
        }
        function Bh() {
          const z = Z();
          wn(88), wn(58);
          const be = oe(3, Mf);
          return rn(h.createDefaultClause(be), z);
        }
        function c0() {
          return q() === 82 ? Fg() : Bh();
        }
        function u0() {
          const z = Z();
          wn(18);
          const be = oe(2, c0);
          return wn(19), rn(h.createCaseBlock(be), z);
        }
        function du() {
          const z = Z(), be = Re();
          wn(107), wn(20);
          const $e = yt(cu);
          wn(21);
          const Tt = u0();
          return vn(rn(h.createSwitchStatement($e, Tt), z), be);
        }
        function Gh() {
          const z = Z(), be = Re();
          wn(109);
          let $e = t.hasPrecedingLineBreak() ? void 0 : yt(cu);
          return $e === void 0 && (sn++, $e = rn(O(""), Z())), hl() || ec($e), vn(rn(h.createThrowStatement($e), z), be);
        }
        function bc() {
          const z = Z(), be = Re();
          wn(111);
          const $e = th(!1), Tt = q() === 83 ? uE() : void 0;
          let Gt;
          return (!Tt || q() === 96) && (wn(96, _.catch_or_finally_expected), Gt = th(!1)), vn(rn(h.createTryStatement($e, Tt, Gt), z), be);
        }
        function uE() {
          const z = Z();
          wn(83);
          let be;
          La(20) ? (be = zy(), wn(21)) : be = void 0;
          const $e = th(!1);
          return rn(h.createCatchClause(be, $e), z);
        }
        function Uh() {
          const z = Z(), be = Re();
          return wn(87), el(), vn(rn(h.createDebuggerStatement(), z), be);
        }
        function kb() {
          const z = Z();
          let be = Re(), $e;
          const Tt = q() === 20, Gt = yt(cu);
          return je(Gt) && La(58) ? $e = h.createLabeledStatement(Gt, Mf()) : (hl() || ec(Gt), $e = me(Gt), Tt && (be = !1)), vn(rn($e, z), be);
        }
        function hd() {
          return ft(), Yu(q()) && !t.hasPrecedingLineBreak();
        }
        function nh() {
          return ft(), q() === 84 && !t.hasPrecedingLineBreak();
        }
        function wb() {
          return ft(), q() === 98 && !t.hasPrecedingLineBreak();
        }
        function d0() {
          return ft(), (Yu(q()) || q() === 8 || q() === 9 || q() === 10) && !t.hasPrecedingLineBreak();
        }
        function dE() {
          for (; ; )
            switch (q()) {
              case 113:
              case 119:
              case 85:
              case 98:
              case 84:
              case 92:
                return !0;
              case 118:
              case 154:
                return fL();
              case 142:
              case 143:
                return S2();
              case 126:
              case 127:
              case 132:
              case 136:
              case 121:
              case 122:
              case 123:
              case 146:
                if (ft(), t.hasPrecedingLineBreak())
                  return !1;
                continue;
              case 159:
                return ft(), q() === 18 || q() === 79 || q() === 93;
              case 100:
                return ft(), q() === 10 || q() === 41 || q() === 18 || Yu(q());
              case 93:
                let z = ft();
                if (z === 154 && (z = Xr(ft)), z === 63 || z === 41 || z === 18 || z === 88 || z === 128 || z === 59)
                  return !0;
                continue;
              case 124:
                ft();
                continue;
              default:
                return !1;
            }
        }
        function Hy() {
          return Xr(dE);
        }
        function hS() {
          switch (q()) {
            case 59:
            case 26:
            case 18:
            case 113:
            case 119:
            case 98:
            case 84:
            case 92:
            case 99:
            case 90:
            case 115:
            case 97:
            case 86:
            case 81:
            case 105:
            case 116:
            case 107:
            case 109:
            case 111:
            case 87:
            case 83:
            case 96:
              return !0;
            case 100:
              return Hy() || Xr(Z1);
            case 85:
            case 93:
              return Hy();
            case 132:
            case 136:
            case 118:
            case 142:
            case 143:
            case 154:
            case 159:
              return !0;
            case 127:
            case 123:
            case 121:
            case 122:
            case 124:
            case 146:
              return Hy() || !Xr(hd);
            default:
              return rp();
          }
        }
        function f0() {
          return ft(), _i() || q() === 18 || q() === 22;
        }
        function Bg() {
          return Xr(f0);
        }
        function Mf() {
          switch (q()) {
            case 26:
              return lE();
            case 18:
              return th(!1);
            case 113:
              return Gg(Z(), Re(), void 0);
            case 119:
              if (Bg())
                return Gg(Z(), Re(), void 0);
              break;
            case 98:
              return p0(Z(), Re(), void 0);
            case 84:
              return vS(Z(), Re(), void 0);
            case 99:
              return Lb();
            case 90:
              return Ib();
            case 115:
              return Rp();
            case 97:
              return Fh();
            case 86:
              return cE(248);
            case 81:
              return cE(249);
            case 105:
              return jy();
            case 116:
              return Rl();
            case 107:
              return du();
            case 109:
              return Gh();
            case 111:
            case 83:
            case 96:
              return bc();
            case 87:
              return Uh();
            case 59:
              return hf();
            case 132:
            case 118:
            case 154:
            case 142:
            case 143:
            case 136:
            case 85:
            case 92:
            case 93:
            case 100:
            case 121:
            case 122:
            case 123:
            case 126:
            case 127:
            case 124:
            case 146:
            case 159:
              if (Hy())
                return hf();
              break;
          }
          return kb();
        }
        function fE(z) {
          return z.kind === 136;
        }
        function hf() {
          const z = Z(), be = Re(), $e = Ns(!0);
          if (kt($e, fE)) {
            const Gt = Vh(z);
            if (Gt)
              return Gt;
            for (const Cn of $e)
              Cn.flags |= 16777216;
            return we(16777216, () => _0(z, be, $e));
          } else
            return _0(z, be, $e);
        }
        function Vh(z) {
          return we(16777216, () => {
            const be = Mt(Qt, z);
            if (be)
              return Pt(be);
          });
        }
        function _0(z, be, $e) {
          switch (q()) {
            case 113:
            case 119:
            case 85:
              return Gg(z, be, $e);
            case 98:
              return p0(z, be, $e);
            case 84:
              return vS(z, be, $e);
            case 118:
              return jg(z, be, $e);
            case 154:
              return C2(z, be, $e);
            case 92:
              return S(z, be, $e);
            case 159:
            case 142:
            case 143:
              return Cr(z, be, $e);
            case 100:
              return Qd(z, be, $e);
            case 93:
              switch (ft(), q()) {
                case 88:
                case 63:
                  return Ss(z, be, $e);
                case 128:
                  return nu(z, be, $e);
                default:
                  return _P(z, be, $e);
              }
            default:
              if ($e) {
                const Tt = jl(279, !0, _.Declaration_expected);
                return mk(Tt, z), Tt.modifiers = $e, Tt;
              }
              return;
          }
        }
        function S2() {
          return ft(), !t.hasPrecedingLineBreak() && (da() || q() === 10);
        }
        function as(z, be) {
          if (q() !== 18) {
            if (z & 4) {
              e0();
              return;
            }
            if (Ds()) {
              el();
              return;
            }
          }
          return Rd(z, be);
        }
        function Ir() {
          const z = Z();
          if (q() === 27)
            return rn(h.createOmittedExpression(), z);
          const be = Yo(25), $e = Wy(), Tt = Dg();
          return rn(h.createBindingElement(be, void 0, $e, Tt), z);
        }
        function Yd() {
          const z = Z(), be = Yo(25), $e = _i();
          let Tt = mn(), Gt;
          $e && q() !== 58 ? (Gt = Tt, Tt = void 0) : (wn(58), Gt = Wy());
          const Cn = Dg();
          return rn(h.createBindingElement(be, Tt, Gt, Cn), z);
        }
        function gd() {
          const z = Z();
          wn(18);
          const be = tc(9, Yd);
          return wn(19), rn(h.createObjectBindingPattern(be), z);
        }
        function gS() {
          const z = Z();
          wn(22);
          const be = tc(10, Ir);
          return wn(23), rn(h.createArrayBindingPattern(be), z);
        }
        function _E() {
          return q() === 18 || q() === 22 || q() === 80 || _i();
        }
        function Wy(z) {
          return q() === 22 ? gS() : q() === 18 ? gd() : fe(z);
        }
        function x2() {
          return zy(!0);
        }
        function zy(z) {
          const be = Z(), $e = Re(), Tt = Wy(_.Private_identifiers_are_not_allowed_in_variable_declarations);
          let Gt;
          z && Tt.kind === 79 && q() === 53 && !t.hasPrecedingLineBreak() && (Gt = oc());
          const Cn = Ph(), Br = uS(q()) ? void 0 : Dg(), gi = Ve(Tt, Gt, Cn, Br);
          return vn(rn(gi, be), $e);
        }
        function um(z) {
          const be = Z();
          let $e = 0;
          switch (q()) {
            case 113:
              break;
            case 119:
              $e |= 1;
              break;
            case 85:
              $e |= 2;
              break;
            default:
              D.fail();
          }
          ft();
          let Tt;
          if (q() === 162 && Xr(Np))
            Tt = Au();
          else {
            const Gt = cn();
            Rn(z), Tt = tc(8, z ? zy : x2), Rn(Gt);
          }
          return rn(Be(Tt, $e), be);
        }
        function Np() {
          return fl() && ft() === 21;
        }
        function Gg(z, be, $e) {
          const Tt = um(!1);
          el();
          const Gt = ce($e, Tt);
          return vn(rn(Gt, z), be);
        }
        function p0(z, be, $e) {
          const Tt = ue(), Gt = Gm($e);
          wn(98);
          const Cn = Yo(41), Br = Gt & 1024 ? uu() : fe(), gi = Cn ? 1 : 0, xi = Gt & 512 ? 2 : 0, ki = Z_();
          Gt & 1 && Ar(!0);
          const Fa = kp(gi | xi), Is = ep(58, !1), Io = as(gi | xi, _.or_expected);
          Ar(Tt);
          const is = h.createFunctionDeclaration($e, Cn, Br, ki, Fa, Is, Io);
          return vn(rn(is, z), be);
        }
        function jh() {
          if (q() === 135)
            return wn(135);
          if (q() === 10 && Xr(ft) === 20)
            return ss(() => {
              const z = Ia();
              return z.text === "constructor" ? z : void 0;
            });
        }
        function dm(z, be, $e) {
          return ss(() => {
            if (jh()) {
              const Tt = Z_(), Gt = kp(0), Cn = ep(58, !1), Br = as(0, _.or_expected), gi = h.createConstructorDeclaration($e, Gt, Br);
              return gi.typeParameters = Tt, gi.type = Cn, vn(rn(gi, z), be);
            }
          });
        }
        function yS(z, be, $e, Tt, Gt, Cn, Br, gi) {
          const xi = Tt ? 1 : 0, ki = kt($e, Ak) ? 2 : 0, Fa = Z_(), Is = kp(xi | ki), Io = ep(58, !1), is = as(xi | ki, gi), Od = h.createMethodDeclaration($e, Tt, Gt, Cn, Fa, Is, Io, is);
          return Od.exclamationToken = Br, vn(rn(Od, z), be);
        }
        function $l(z, be, $e, Tt, Gt) {
          const Cn = !Gt && !t.hasPrecedingLineBreak() ? Yo(53) : void 0, Br = Ph(), gi = Hr(45056, Dg);
          Xl(Tt, Br, gi);
          const xi = h.createPropertyDeclaration($e, Tt, Gt || Cn, Br, gi);
          return vn(rn(xi, z), be);
        }
        function gf(z, be, $e) {
          const Tt = Yo(41), Gt = mn(), Cn = Yo(57);
          return Tt || q() === 20 || q() === 29 ? yS(z, be, $e, Tt, Gt, Cn, void 0, _.or_expected) : $l(z, be, $e, Gt, Cn);
        }
        function rh(z, be, $e, Tt, Gt) {
          const Cn = mn(), Br = Z_(), gi = kp(0), xi = ep(58, !1), ki = as(Gt), Fa = Tt === 174 ? h.createGetAccessorDeclaration($e, Cn, gi, xi, ki) : h.createSetAccessorDeclaration($e, Cn, gi, ki);
          return Fa.typeParameters = Br, e_(Fa) && (Fa.type = xi), vn(rn(Fa, z), be);
        }
        function Nd() {
          let z;
          if (q() === 59)
            return !0;
          for (; py(q()); ) {
            if (z = q(), TW(z))
              return !0;
            ft();
          }
          if (q() === 41 || (Q() && (z = q(), ft()), q() === 22))
            return !0;
          if (z !== void 0) {
            if (!Ad(z) || z === 151 || z === 137)
              return !0;
            switch (q()) {
              case 20:
              case 29:
              case 53:
              case 58:
              case 63:
              case 57:
                return !0;
              default:
                return Ds();
            }
          }
          return !1;
        }
        function pE(z, be, $e) {
          tu(124);
          const Tt = qy(), Gt = vn(rn(h.createClassStaticBlockDeclaration(Tt), z), be);
          return Gt.modifiers = $e, Gt;
        }
        function qy() {
          const z = Ut(), be = ue();
          an(!1), Ar(!0);
          const $e = th(!1);
          return an(z), Ar(be), $e;
        }
        function Ug() {
          if (ue() && q() === 133) {
            const z = Z(), be = It(_.Expression_expected);
            ft();
            const $e = Pf(z, be, !0);
            return ir(z, $e);
          }
          return sm();
        }
        function A2() {
          const z = Z();
          if (!La(59))
            return;
          const be = ie(Ug);
          return rn(h.createDecorator(be), z);
        }
        function Ff(z, be, $e) {
          const Tt = Z(), Gt = q();
          if (q() === 85 && be) {
            if (!ss(ls))
              return;
          } else {
            if ($e && q() === 124 && Xr(Vi))
              return;
            if (z && q() === 124)
              return;
            if (!dl())
              return;
          }
          return rn(G(Gt), Tt);
        }
        function Ns(z, be, $e) {
          const Tt = Z();
          let Gt, Cn, Br, gi = !1, xi = !1, ki = !1;
          if (z && q() === 59)
            for (; Cn = A2(); )
              Gt = Fn(Gt, Cn);
          for (; Br = Ff(gi, be, $e); )
            Br.kind === 124 && (gi = !0), Gt = Fn(Gt, Br), xi = !0;
          if (xi && z && q() === 59)
            for (; Cn = A2(); )
              Gt = Fn(Gt, Cn), ki = !0;
          if (ki)
            for (; Br = Ff(gi, be, $e); )
              Br.kind === 124 && (gi = !0), Gt = Fn(Gt, Br);
          return Gt && Ks(Gt, Tt);
        }
        function mE() {
          let z;
          if (q() === 132) {
            const be = Z();
            ft();
            const $e = rn(G(132), be);
            z = Ks([$e], be);
          }
          return z;
        }
        function hE() {
          const z = Z();
          if (q() === 26)
            return ft(), rn(h.createSemicolonClassElement(), z);
          const be = Re(), $e = Ns(!0, !0, !0);
          if (q() === 124 && Xr(Vi))
            return pE(z, be, $e);
          if (Ta(137))
            return rh(z, be, $e, 174, 0);
          if (Ta(151))
            return rh(z, be, $e, 175, 0);
          if (q() === 135 || q() === 10) {
            const Tt = dm(z, be, $e);
            if (Tt)
              return Tt;
          }
          if (db())
            return iS(z, be, $e);
          if (Yu(q()) || q() === 10 || q() === 8 || q() === 41 || q() === 22)
            if (kt($e, fE)) {
              for (const Gt of $e)
                Gt.flags |= 16777216;
              return we(16777216, () => gf(z, be, $e));
            } else
              return gf(z, be, $e);
          if ($e) {
            const Tt = jl(79, !0, _.Declaration_expected);
            return $l(z, be, $e, Tt, void 0);
          }
          return D.fail("Should not have attempted to parse class member declaration.");
        }
        function Vg() {
          const z = Z(), be = Re(), $e = Ns(!0);
          if (q() === 84)
            return gE(z, be, $e, 228);
          const Tt = jl(279, !0, _.Expression_expected);
          return mk(Tt, z), Tt.modifiers = $e, Tt;
        }
        function m0() {
          return gE(Z(), Re(), void 0, 228);
        }
        function vS(z, be, $e) {
          return gE(z, be, $e, 260);
        }
        function gE(z, be, $e, Tt) {
          const Gt = ue();
          wn(84);
          const Cn = yE(), Br = Z_();
          kt($e, B7) && Ar(!0);
          const gi = bE();
          let xi;
          wn(18) ? (xi = pL(), wn(19)) : xi = Au(), Ar(Gt);
          const ki = Tt === 260 ? h.createClassDeclaration($e, Cn, Br, gi, xi) : h.createClassExpression($e, Cn, Br, gi, xi);
          return vn(rn(ki, z), be);
        }
        function yE() {
          return _i() && !vE() ? Wu(_i()) : void 0;
        }
        function vE() {
          return q() === 117 && Xr(Jd);
        }
        function bE() {
          if (Hh())
            return oe(22, EE);
        }
        function EE() {
          const z = Z(), be = q();
          D.assert(be === 94 || be === 117), ft();
          const $e = tc(7, Jy);
          return rn(h.createHeritageClause(be, $e), z);
        }
        function Jy() {
          const z = Z(), be = sm();
          if (be.kind === 230)
            return be;
          const $e = $d();
          return rn(h.createExpressionWithTypeArguments(be, $e), z);
        }
        function $d() {
          return q() === 29 ? S_(20, vc, 29, 31) : void 0;
        }
        function Hh() {
          return q() === 94 || q() === 117;
        }
        function pL() {
          return oe(5, hE);
        }
        function jg(z, be, $e) {
          wn(118);
          const Tt = It(), Gt = Z_(), Cn = bE(), Br = n0(), gi = h.createInterfaceDeclaration($e, Tt, Gt, Cn, Br);
          return vn(rn(gi, z), be);
        }
        function C2(z, be, $e) {
          wn(154);
          const Tt = It(), Gt = Z_();
          wn(63);
          const Cn = q() === 139 && ss(kd) || vc();
          el();
          const Br = h.createTypeAliasDeclaration($e, Tt, Gt, Cn);
          return vn(rn(Br, z), be);
        }
        function L2() {
          const z = Z(), be = Re(), $e = mn(), Tt = yt(Dg);
          return vn(rn(h.createEnumMember($e, Tt), z), be);
        }
        function S(z, be, $e) {
          wn(92);
          const Tt = It();
          let Gt;
          wn(18) ? (Gt = Ze(() => tc(6, L2)), wn(19)) : Gt = Au();
          const Cn = h.createEnumDeclaration($e, Tt, Gt);
          return vn(rn(Cn, z), be);
        }
        function le() {
          const z = Z();
          let be;
          return wn(18) ? (be = oe(1, Mf), wn(19)) : be = Au(), rn(h.createModuleBlock(be), z);
        }
        function ke(z, be, $e, Tt) {
          const Gt = Tt & 16, Cn = It(), Br = La(24) ? ke(Z(), !1, void 0, 4 | Gt) : le(), gi = h.createModuleDeclaration($e, Cn, Br, Tt);
          return vn(rn(gi, z), be);
        }
        function on(z, be, $e) {
          let Tt = 0, Gt;
          q() === 159 ? (Gt = It(), Tt |= 1024) : (Gt = Ia(), Gt.text = xu(Gt.text));
          let Cn;
          q() === 18 ? Cn = le() : el();
          const Br = h.createModuleDeclaration($e, Gt, Cn, Tt);
          return vn(rn(Br, z), be);
        }
        function Cr(z, be, $e) {
          let Tt = 0;
          if (q() === 159)
            return on(z, be, $e);
          if (La(143))
            Tt |= 16;
          else if (wn(142), q() === 10)
            return on(z, be, $e);
          return ke(z, be, $e, Tt);
        }
        function Si() {
          return q() === 147 && Xr(li);
        }
        function li() {
          return ft() === 20;
        }
        function Vi() {
          return ft() === 18;
        }
        function _o() {
          return ft() === 43;
        }
        function nu(z, be, $e) {
          wn(128), wn(143);
          const Tt = It();
          el();
          const Gt = h.createNamespaceExportDeclaration(Tt);
          return Gt.modifiers = $e, vn(rn(Gt, z), be);
        }
        function Qd(z, be, $e) {
          wn(100);
          const Tt = t.getStartPos();
          let Gt;
          da() && (Gt = It());
          let Cn = !1;
          if (q() !== 158 && (Gt == null ? void 0 : Gt.escapedText) === "type" && (da() || Zd()) && (Cn = !0, Gt = da() ? It() : void 0), Gt && !h0())
            return g0(z, be, $e, Gt, Cn);
          let Br;
          (Gt || q() === 41 || q() === 18) && (Br = Xy(Gt, Tt, Cn), wn(158));
          const gi = Bf();
          let xi;
          q() === 130 && !t.hasPrecedingLineBreak() && (xi = Ky()), el();
          const ki = h.createImportDeclaration($e, Br, gi, xi);
          return vn(rn(ki, z), be);
        }
        function yf() {
          const z = Z(), be = Yu(q()) ? Ht() : Ot(10);
          wn(58);
          const $e = Pc(!0);
          return rn(h.createAssertEntry(be, $e), z);
        }
        function Ky(z) {
          const be = Z();
          z || wn(130);
          const $e = t.getTokenPos();
          if (wn(18)) {
            const Tt = t.hasPrecedingLineBreak(), Gt = tc(24, yf, !0);
            if (!wn(19)) {
              const Cn = tl(st);
              Cn && Cn.code === _._0_expected.code && Xo(Cn, iC(qe, $e, 1, _.The_parser_expected_to_find_a_1_to_match_the_0_token_here, "{", "}"));
            }
            return rn(h.createAssertClause(Gt, Tt), be);
          } else {
            const Tt = Ks([], Z(), void 0, !1);
            return rn(h.createAssertClause(Tt, !1), be);
          }
        }
        function Zd() {
          return q() === 41 || q() === 18;
        }
        function h0() {
          return q() === 27 || q() === 158;
        }
        function g0(z, be, $e, Tt, Gt) {
          wn(63);
          const Cn = L_();
          el();
          const Br = h.createImportEqualsDeclaration($e, Gt, Tt, Cn);
          return vn(rn(Br, z), be);
        }
        function Xy(z, be, $e) {
          let Tt;
          return (!z || La(27)) && (Tt = q() === 41 ? ih() : Yy(272)), rn(h.createImportClause($e, z, Tt), be);
        }
        function L_() {
          return Si() ? TE() : $o(!1);
        }
        function TE() {
          const z = Z();
          wn(147), wn(20);
          const be = Bf();
          return wn(21), rn(h.createExternalModuleReference(be), z);
        }
        function Bf() {
          if (q() === 10) {
            const z = Ia();
            return z.text = xu(z.text), z;
          } else
            return cu();
        }
        function ih() {
          const z = Z();
          wn(41), wn(128);
          const be = It();
          return rn(h.createNamespaceImport(be), z);
        }
        function Yy(z) {
          const be = Z(), $e = z === 272 ? h.createNamedImports(S_(23, SE, 18, 19)) : h.createNamedExports(S_(23, i_, 18, 19));
          return rn($e, be);
        }
        function i_() {
          const z = Re();
          return vn(y0(278), z);
        }
        function SE() {
          return y0(273);
        }
        function y0(z) {
          const be = Z();
          let $e = Ad(q()) && !da(), Tt = t.getTokenPos(), Gt = t.getTextPos(), Cn = !1, Br, gi = !0, xi = Ht();
          if (xi.escapedText === "type")
            if (q() === 128) {
              const Is = Ht();
              if (q() === 128) {
                const Io = Ht();
                Yu(q()) ? (Cn = !0, Br = Is, xi = Fa(), gi = !1) : (Br = xi, xi = Io, gi = !1);
              } else
                Yu(q()) ? (Br = xi, gi = !1, xi = Fa()) : (Cn = !0, xi = Is);
            } else
              Yu(q()) && (Cn = !0, xi = Fa());
          gi && q() === 128 && (Br = xi, wn(128), xi = Fa()), z === 273 && $e && it(Tt, Gt, _.Identifier_expected);
          const ki = z === 273 ? h.createImportSpecifier(Cn, Br, xi) : h.createExportSpecifier(Cn, Br, xi);
          return rn(ki, be);
          function Fa() {
            return $e = Ad(q()) && !da(), Tt = t.getTokenPos(), Gt = t.getTextPos(), Ht();
          }
        }
        function fc(z) {
          return rn(h.createNamespaceExport(Ht()), z);
        }
        function _P(z, be, $e) {
          const Tt = ue();
          Ar(!0);
          let Gt, Cn, Br;
          const gi = La(154), xi = Z();
          La(41) ? (La(128) && (Gt = fc(xi)), wn(158), Cn = Bf()) : (Gt = Yy(276), (q() === 158 || q() === 10 && !t.hasPrecedingLineBreak()) && (wn(158), Cn = Bf())), Cn && q() === 130 && !t.hasPrecedingLineBreak() && (Br = Ky()), el(), Ar(Tt);
          const ki = h.createExportDeclaration($e, gi, Gt, Cn, Br);
          return vn(rn(ki, z), be);
        }
        function Ss(z, be, $e) {
          const Tt = ue();
          Ar(!0);
          let Gt;
          La(63) ? Gt = !0 : wn(88);
          const Cn = Pc(!0);
          el(), Ar(Tt);
          const Br = h.createExportAssignment($e, Gt, Cn);
          return vn(rn(Br, z), be);
        }
        let rs;
        ((z) => {
          z[z.SourceElements = 0] = "SourceElements", z[z.BlockStatements = 1] = "BlockStatements", z[z.SwitchClauses = 2] = "SwitchClauses", z[z.SwitchClauseStatements = 3] = "SwitchClauseStatements", z[z.TypeMembers = 4] = "TypeMembers", z[z.ClassMembers = 5] = "ClassMembers", z[z.EnumMembers = 6] = "EnumMembers", z[z.HeritageClauseElement = 7] = "HeritageClauseElement", z[z.VariableDeclarations = 8] = "VariableDeclarations", z[z.ObjectBindingElements = 9] = "ObjectBindingElements", z[z.ArrayBindingElements = 10] = "ArrayBindingElements", z[z.ArgumentExpressions = 11] = "ArgumentExpressions", z[z.ObjectLiteralMembers = 12] = "ObjectLiteralMembers", z[z.JsxAttributes = 13] = "JsxAttributes", z[z.JsxChildren = 14] = "JsxChildren", z[z.ArrayLiteralMembers = 15] = "ArrayLiteralMembers", z[z.Parameters = 16] = "Parameters", z[z.JSDocParameters = 17] = "JSDocParameters", z[z.RestProperties = 18] = "RestProperties", z[z.TypeParameters = 19] = "TypeParameters", z[z.TypeArguments = 20] = "TypeArguments", z[z.TupleElementTypes = 21] = "TupleElementTypes", z[z.HeritageClauses = 22] = "HeritageClauses", z[z.ImportOrExportSpecifiers = 23] = "ImportOrExportSpecifiers", z[z.AssertEntries = 24] = "AssertEntries", z[z.Count = 25] = "Count";
        })(rs || (rs = {}));
        let I2;
        ((z) => {
          z[z.False = 0] = "False", z[z.True = 1] = "True", z[z.Unknown = 2] = "Unknown";
        })(I2 || (I2 = {}));
        let k2;
        ((z) => {
          function be(ki, Fa, Is) {
            Qi("file.js", ki, 99, void 0, 1), t.setText(ki, Fa, Is), Vt = t.scan();
            const Io = $e(), is = Pi("file.js", 99, 1, !1, [], G(1), 0, so), Od = fx(st, is);
            return Ct && (is.jsDocDiagnostics = fx(Ct, is)), Or(), Io ? { jsDocTypeExpression: Io, diagnostics: Od } : void 0;
          }
          z.parseJSDocTypeExpressionForTests = be;
          function $e(ki) {
            const Fa = Z(), Is = (ki ? La : wn)(18), Io = we(8388608, sc);
            (!ki || Is) && Ul(19);
            const is = h.createJSDocTypeExpression(Io);
            return cr(is), rn(is, Fa);
          }
          z.parseJSDocTypeExpression = $e;
          function Tt() {
            const ki = Z(), Fa = La(18), Is = Z();
            let Io = $o(!1);
            for (; q() === 80; )
              mo(), _n(), Io = rn(h.createJSDocMemberName(Io, It()), Is);
            Fa && Ul(19);
            const is = h.createJSDocNameReference(Io);
            return cr(is), rn(is, ki);
          }
          z.parseJSDocNameReference = Tt;
          function Gt(ki, Fa, Is) {
            Qi("", ki, 99, void 0, 1);
            const Io = we(8388608, () => xi(Fa, Is)), Od = fx(st, { languageVariant: 0, text: ki });
            return Or(), Io ? { jsDoc: Io, diagnostics: Od } : void 0;
          }
          z.parseIsolatedJSDocComment = Gt;
          function Cn(ki, Fa, Is) {
            const Io = Vt, is = st.length, Od = Zt, Op = we(8388608, () => xi(Fa, Is));
            return Vo(Op, ki), jn & 262144 && (Ct || (Ct = []), Ct.push(...st)), Vt = Io, st.length = is, Zt = Od, Op;
          }
          z.parseJSDocComment = Cn;
          let Br;
          ((ki) => {
            ki[ki.BeginningOfLine = 0] = "BeginningOfLine", ki[ki.SawAsterisk = 1] = "SawAsterisk", ki[ki.SavingComments = 2] = "SavingComments", ki[ki.SavingBackticks = 3] = "SavingBackticks";
          })(Br || (Br = {}));
          let gi;
          ((ki) => {
            ki[ki.Property = 1] = "Property", ki[ki.Parameter = 2] = "Parameter", ki[ki.CallbackParameter = 4] = "CallbackParameter";
          })(gi || (gi = {}));
          function xi(ki = 0, Fa) {
            const Is = Me, Io = Fa === void 0 ? Is.length : ki + Fa;
            if (Fa = Io - ki, D.assert(ki >= 0), D.assert(ki <= Io), D.assert(Io <= Is.length), !qJ(Is, ki))
              return;
            let is, Od, Op, fm, Hg, I_ = [];
            const $y = [];
            return t.scanRange(ki + 3, Fa - 5, () => {
              let Dn = 1, Kr, Ur = ki - (Is.lastIndexOf(`
`, ki) + 1) + 4;
              function ii(So) {
                Kr || (Kr = Ur), I_.push(So), Ur += So.length;
              }
              for (_n(); bS(5); )
                ;
              bS(4) && (Dn = 0, Ur = 0);
              e:
                for (; ; ) {
                  switch (q()) {
                    case 59:
                      Dn === 0 || Dn === 1 ? (xE(I_), Hg || (Hg = Z()), b0(hL(Ur)), Dn = 0, Kr = void 0) : ii(t.getTokenText());
                      break;
                    case 4:
                      I_.push(t.getTokenText()), Dn = 0, Ur = 0;
                      break;
                    case 41:
                      const So = t.getTokenText();
                      Dn === 1 || Dn === 2 ? (Dn = 2, ii(So)) : (Dn = 1, Ur += So.length);
                      break;
                    case 5:
                      const Mo = t.getTokenText();
                      Dn === 2 ? I_.push(Mo) : Kr !== void 0 && Ur + Mo.length > Kr && I_.push(Mo.slice(Kr - Ur)), Ur += Mo.length;
                      break;
                    case 1:
                      break e;
                    case 18:
                      Dn = 2;
                      const bf = t.getStartPos(), sp = t.getTextPos() - 1, Wh = Qw(sp);
                      if (Wh) {
                        fm || w2(I_), $y.push(rn(h.createJSDocText(I_.join("")), fm ?? ki, bf)), $y.push(Wh), I_ = [], fm = t.getTextPos();
                        break;
                      }
                    default:
                      Dn = 2, ii(t.getTokenText());
                      break;
                  }
                  _n();
                }
              xE(I_), $y.length && I_.length && $y.push(rn(h.createJSDocText(I_.join("")), fm ?? ki, Hg)), $y.length && is && D.assertIsDefined(Hg, "having parsed tags implies that the end of the comment span should be set");
              const zi = is && Ks(is, Od, Op);
              return rn(h.createJSDocComment($y.length ? Ks($y, ki, Hg) : I_.length ? I_.join("") : void 0, zi), ki, Io);
            });
            function w2(Dn) {
              for (; Dn.length && (Dn[0] === `
` || Dn[0] === "\r"); )
                Dn.shift();
            }
            function xE(Dn) {
              for (; Dn.length && Dn[Dn.length - 1].trim() === ""; )
                Dn.pop();
            }
            function mL() {
              for (; ; ) {
                if (_n(), q() === 1)
                  return !0;
                if (!(q() === 5 || q() === 4))
                  return !1;
              }
            }
            function op() {
              if (!((q() === 5 || q() === 4) && Xr(mL)))
                for (; q() === 5 || q() === 4; )
                  _n();
            }
            function v0() {
              if ((q() === 5 || q() === 4) && Xr(mL))
                return "";
              let Dn = t.hasPrecedingLineBreak(), Kr = !1, Ur = "";
              for (; Dn && q() === 41 || q() === 5 || q() === 4; )
                Ur += t.getTokenText(), q() === 4 ? (Dn = !0, Kr = !0, Ur = "") : q() === 41 && (Dn = !1), _n();
              return Kr ? Ur : "";
            }
            function hL(Dn) {
              D.assert(q() === 59);
              const Kr = t.getTokenPos();
              _n();
              const Ur = S0(void 0), ii = v0();
              let zi;
              switch (Ur.escapedText) {
                case "author":
                  zi = Kt(Kr, Ur, Dn, ii);
                  break;
                case "implements":
                  zi = ea(Kr, Ur, Dn, ii);
                  break;
                case "augments":
                case "extends":
                  zi = $a(Kr, Ur, Dn, ii);
                  break;
                case "class":
                case "constructor":
                  zi = qg(Kr, h.createJSDocClassTag, Ur, Dn, ii);
                  break;
                case "public":
                  zi = qg(Kr, h.createJSDocPublicTag, Ur, Dn, ii);
                  break;
                case "private":
                  zi = qg(Kr, h.createJSDocPrivateTag, Ur, Dn, ii);
                  break;
                case "protected":
                  zi = qg(Kr, h.createJSDocProtectedTag, Ur, Dn, ii);
                  break;
                case "readonly":
                  zi = qg(Kr, h.createJSDocReadonlyTag, Ur, Dn, ii);
                  break;
                case "override":
                  zi = qg(Kr, h.createJSDocOverrideTag, Ur, Dn, ii);
                  break;
                case "deprecated":
                  Wt = !0, zi = qg(Kr, h.createJSDocDeprecatedTag, Ur, Dn, ii);
                  break;
                case "this":
                  zi = mre(Kr, Ur, Dn, ii);
                  break;
                case "enum":
                  zi = hre(Kr, Ur, Dn, ii);
                  break;
                case "arg":
                case "argument":
                case "param":
                  return tD(Kr, Ur, 2, Dn);
                case "return":
                case "returns":
                  zi = w(Kr, Ur, Dn, ii);
                  break;
                case "template":
                  zi = ev(Kr, Ur, Dn, ii);
                  break;
                case "type":
                  zi = F(Kr, Ur, Dn, ii);
                  break;
                case "typedef":
                  zi = gL(Kr, Ur, Dn, ii);
                  break;
                case "callback":
                  zi = ar(Kr, Ur, Dn, ii);
                  break;
                case "overload":
                  zi = E0(Kr, Ur, Dn, ii);
                  break;
                case "satisfies":
                  zi = vf(Kr, Ur, Dn, ii);
                  break;
                case "see":
                  zi = se(Kr, Ur, Dn, ii);
                  break;
                case "exception":
                case "throws":
                  zi = Je(Kr, Ur, Dn, ii);
                  break;
                default:
                  zi = El(Kr, Ur, Dn, ii);
                  break;
              }
              return zi;
            }
            function Gf(Dn, Kr, Ur, ii) {
              return ii || (Ur += Kr - Dn), D2(Ur, ii.slice(Ur));
            }
            function D2(Dn, Kr) {
              const Ur = Z();
              let ii = [];
              const zi = [];
              let So, Mo = 0, bf = !0, sp;
              function Wh(zh) {
                sp || (sp = Dn), ii.push(zh), Dn += zh.length;
              }
              Kr !== void 0 && (Kr !== "" && Wh(Kr), Mo = 1);
              let ah = q();
              e:
                for (; ; ) {
                  switch (ah) {
                    case 4:
                      Mo = 0, ii.push(t.getTokenText()), Dn = 0;
                      break;
                    case 59:
                      if (Mo === 3 || Mo === 2 && (!bf || Xr(Qy))) {
                        ii.push(t.getTokenText());
                        break;
                      }
                      t.setTextPos(t.getTextPos() - 1);
                    case 1:
                      break e;
                    case 5:
                      if (Mo === 2 || Mo === 3)
                        Wh(t.getTokenText());
                      else {
                        const Db = t.getTokenText();
                        sp !== void 0 && Dn + Db.length > sp && ii.push(Db.slice(sp - Dn)), Dn += Db.length;
                      }
                      break;
                    case 18:
                      Mo = 2;
                      const zh = t.getStartPos(), bL = t.getTextPos() - 1, zu = Qw(bL);
                      zu ? (zi.push(rn(h.createJSDocText(ii.join("")), So ?? Ur, zh)), zi.push(zu), ii = [], So = t.getTextPos()) : Wh(t.getTokenText());
                      break;
                    case 61:
                      Mo === 3 ? Mo = 2 : Mo = 3, Wh(t.getTokenText());
                      break;
                    case 41:
                      if (Mo === 0) {
                        Mo = 1, Dn += 1;
                        break;
                      }
                    default:
                      Mo !== 3 && (Mo = 2), Wh(t.getTokenText());
                      break;
                  }
                  bf = q() === 5, ah = _n();
                }
              if (w2(ii), xE(ii), zi.length)
                return ii.length && zi.push(rn(h.createJSDocText(ii.join("")), So ?? Ur)), Ks(zi, Ur, t.getTextPos());
              if (ii.length)
                return ii.join("");
            }
            function Qy() {
              const Dn = _n();
              return Dn === 5 || Dn === 4;
            }
            function Qw(Dn) {
              const Kr = ss(Zw);
              if (!Kr)
                return;
              _n(), op();
              const Ur = Z();
              let ii = Yu(q()) ? $o(!0) : void 0;
              if (ii)
                for (; q() === 80; )
                  mo(), _n(), ii = rn(h.createJSDocMemberName(ii, It()), Ur);
              const zi = [];
              for (; q() !== 19 && q() !== 4 && q() !== 1; )
                zi.push(t.getTokenText()), _n();
              const So = Kr === "link" ? h.createJSDocLink : Kr === "linkcode" ? h.createJSDocLinkCode : h.createJSDocLinkPlain;
              return rn(So(ii, zi.join("")), Dn, t.getTextPos());
            }
            function Zw() {
              if (v0(), q() === 18 && _n() === 59 && Yu(_n())) {
                const Dn = t.getTokenValue();
                if (ko(Dn))
                  return Dn;
              }
            }
            function ko(Dn) {
              return Dn === "link" || Dn === "linkcode" || Dn === "linkplain";
            }
            function El(Dn, Kr, Ur, ii) {
              return rn(h.createJSDocUnknownTag(Kr, Gf(Dn, Z(), Ur, ii)), Dn);
            }
            function b0(Dn) {
              Dn && (is ? is.push(Dn) : (is = [Dn], Od = Dn.pos), Op = Dn.end);
            }
            function Zy() {
              return v0(), q() === 18 ? $e() : void 0;
            }
            function eD() {
              const Dn = bS(22);
              Dn && op();
              const Kr = bS(61), Ur = mP();
              return Kr && qd(61), Dn && (op(), Yo(63) && cu(), wn(23)), { name: Ur, isBracketed: Dn };
            }
            function Pd(Dn) {
              switch (Dn.kind) {
                case 149:
                  return !0;
                case 185:
                  return Pd(Dn.elementType);
                default:
                  return q_(Dn) && je(Dn.typeName) && Dn.typeName.escapedText === "Object" && !Dn.typeArguments;
              }
            }
            function tD(Dn, Kr, Ur, ii) {
              let zi = Zy(), So = !zi;
              v0();
              const { name: Mo, isBracketed: bf } = eD(), sp = v0();
              So && !Xr(Zw) && (zi = Zy());
              const Wh = Gf(Dn, Z(), ii, sp), ah = Ur !== 4 && b(zi, Mo, Ur, ii);
              ah && (zi = ah, So = !0);
              const zh = Ur === 1 ? h.createJSDocPropertyTag(Kr, Mo, bf, zi, So, Wh) : h.createJSDocParameterTag(Kr, Mo, bf, zi, So, Wh);
              return rn(zh, Dn);
            }
            function b(Dn, Kr, Ur, ii) {
              if (Dn && Pd(Dn.type)) {
                const zi = Z();
                let So, Mo;
                for (; So = ss(() => AE(Ur, ii, Kr)); )
                  (So.kind === 344 || So.kind === 351) && (Mo = Fn(Mo, So));
                if (Mo) {
                  const bf = rn(h.createJSDocTypeLiteral(Mo, Dn.type.kind === 185), zi);
                  return rn(h.createJSDocTypeExpression(bf), zi);
                }
              }
            }
            function w(Dn, Kr, Ur, ii) {
              kt(is, K7) && it(Kr.pos, t.getTokenPos(), _._0_tag_already_specified, Kr.escapedText);
              const zi = Zy();
              return rn(h.createJSDocReturnTag(Kr, zi, Gf(Dn, Z(), Ur, ii)), Dn);
            }
            function F(Dn, Kr, Ur, ii) {
              kt(is, Uk) && it(Kr.pos, t.getTokenPos(), _._0_tag_already_specified, Kr.escapedText);
              const zi = $e(!0), So = Ur !== void 0 && ii !== void 0 ? Gf(Dn, Z(), Ur, ii) : void 0;
              return rn(h.createJSDocTypeTag(Kr, zi, So), Dn);
            }
            function se(Dn, Kr, Ur, ii) {
              const So = q() === 22 || Xr(() => _n() === 59 && Yu(_n()) && ko(t.getTokenValue())) ? void 0 : Tt(), Mo = Ur !== void 0 && ii !== void 0 ? Gf(Dn, Z(), Ur, ii) : void 0;
              return rn(h.createJSDocSeeTag(Kr, So, Mo), Dn);
            }
            function Je(Dn, Kr, Ur, ii) {
              const zi = Zy(), So = Gf(Dn, Z(), Ur, ii);
              return rn(h.createJSDocThrowsTag(Kr, zi, So), Dn);
            }
            function Kt(Dn, Kr, Ur, ii) {
              const zi = Z(), So = Gr();
              let Mo = t.getStartPos();
              const bf = Gf(Dn, Mo, Ur, ii);
              bf || (Mo = t.getStartPos());
              const sp = typeof bf != "string" ? Ks(va([rn(So, zi, Mo)], bf), zi) : So.text + bf;
              return rn(h.createJSDocAuthorTag(Kr, sp), Dn);
            }
            function Gr() {
              const Dn = [];
              let Kr = !1, Ur = t.getToken();
              for (; Ur !== 1 && Ur !== 4; ) {
                if (Ur === 29)
                  Kr = !0;
                else {
                  if (Ur === 59 && !Kr)
                    break;
                  if (Ur === 31 && Kr) {
                    Dn.push(t.getTokenText()), t.setTextPos(t.getTokenPos() + 1);
                    break;
                  }
                }
                Dn.push(t.getTokenText()), Ur = _n();
              }
              return h.createJSDocText(Dn.join(""));
            }
            function ea(Dn, Kr, Ur, ii) {
              const zi = Wg();
              return rn(h.createJSDocImplementsTag(Kr, zi, Gf(Dn, Z(), Ur, ii)), Dn);
            }
            function $a(Dn, Kr, Ur, ii) {
              const zi = Wg();
              return rn(h.createJSDocAugmentsTag(Kr, zi, Gf(Dn, Z(), Ur, ii)), Dn);
            }
            function vf(Dn, Kr, Ur, ii) {
              const zi = $e(!1), So = Ur !== void 0 && ii !== void 0 ? Gf(Dn, Z(), Ur, ii) : void 0;
              return rn(h.createJSDocSatisfiesTag(Kr, zi, So), Dn);
            }
            function Wg() {
              const Dn = La(18), Kr = Z(), Ur = zg(), ii = $d(), zi = h.createExpressionWithTypeArguments(Ur, ii), So = rn(zi, Kr);
              return Dn && wn(19), So;
            }
            function zg() {
              const Dn = Z();
              let Kr = S0();
              for (; La(24); ) {
                const Ur = S0();
                Kr = rn(te(Kr, Ur), Dn);
              }
              return Kr;
            }
            function qg(Dn, Kr, Ur, ii, zi) {
              return rn(Kr(Ur, Gf(Dn, Z(), ii, zi)), Dn);
            }
            function mre(Dn, Kr, Ur, ii) {
              const zi = $e(!0);
              return op(), rn(h.createJSDocThisTag(Kr, zi, Gf(Dn, Z(), Ur, ii)), Dn);
            }
            function hre(Dn, Kr, Ur, ii) {
              const zi = $e(!0);
              return op(), rn(h.createJSDocEnumTag(Kr, zi, Gf(Dn, Z(), Ur, ii)), Dn);
            }
            function gL(Dn, Kr, Ur, ii) {
              var zi;
              let So = Zy();
              v0();
              const Mo = nD();
              op();
              let bf = D2(Ur), sp;
              if (!So || Pd(So.type)) {
                let ah, zh, bL, zu = !1;
                for (; ah = ss(() => R2(Ur)); )
                  if (zu = !0, ah.kind === 347)
                    if (zh) {
                      const Db = mt(_.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags);
                      Db && Xo(Db, iC(qe, 0, 0, _.The_tag_was_first_specified_here));
                      break;
                    } else
                      zh = ah;
                  else
                    bL = Fn(bL, ah);
                if (zu) {
                  const Db = So && So.type.kind === 185, rD = h.createJSDocTypeLiteral(bL, Db);
                  So = zh && zh.typeExpression && !Pd(zh.typeExpression.type) ? zh.typeExpression : rn(rD, Dn), sp = So.end;
                }
              }
              sp = sp || bf !== void 0 ? Z() : ((zi = Mo ?? So) != null ? zi : Kr).end, bf || (bf = Gf(Dn, sp, Ur, ii));
              const Wh = h.createJSDocTypedefTag(Kr, So, Mo, bf);
              return rn(Wh, Dn, sp);
            }
            function nD(Dn) {
              const Kr = t.getTokenPos();
              if (!Yu(q()))
                return;
              const Ur = S0();
              if (La(24)) {
                const ii = nD(!0), zi = h.createModuleDeclaration(void 0, Ur, ii, Dn ? 4 : void 0);
                return rn(zi, Kr);
              }
              return Dn && (Ur.flags |= 2048), Ur;
            }
            function gre(Dn) {
              const Kr = Z();
              let Ur, ii;
              for (; Ur = ss(() => AE(4, Dn)); )
                ii = Fn(ii, Ur);
              return Ks(ii || [], Kr);
            }
            function yL(Dn, Kr) {
              const Ur = gre(Kr), ii = ss(() => {
                if (bS(59)) {
                  const zi = hL(Kr);
                  if (zi && zi.kind === 345)
                    return zi;
                }
              });
              return rn(h.createJSDocSignature(void 0, Ur, ii), Dn);
            }
            function ar(Dn, Kr, Ur, ii) {
              const zi = nD();
              op();
              let So = D2(Ur);
              const Mo = yL(Dn, Ur);
              So || (So = Gf(Dn, Z(), Ur, ii));
              const bf = So !== void 0 ? Z() : Mo.end;
              return rn(h.createJSDocCallbackTag(Kr, Mo, zi, So), Dn, bf);
            }
            function E0(Dn, Kr, Ur, ii) {
              op();
              let zi = D2(Ur);
              const So = yL(Dn, Ur);
              zi || (zi = Gf(Dn, Z(), Ur, ii));
              const Mo = zi !== void 0 ? Z() : So.end;
              return rn(h.createJSDocOverloadTag(Kr, So, zi), Dn, Mo);
            }
            function T0(Dn, Kr) {
              for (; !je(Dn) || !je(Kr); )
                if (!je(Dn) && !je(Kr) && Dn.right.escapedText === Kr.right.escapedText)
                  Dn = Dn.left, Kr = Kr.left;
                else
                  return !1;
              return Dn.escapedText === Kr.escapedText;
            }
            function R2(Dn) {
              return AE(1, Dn);
            }
            function AE(Dn, Kr, Ur) {
              let ii = !0, zi = !1;
              for (; ; )
                switch (_n()) {
                  case 59:
                    if (ii) {
                      const So = pP(Dn, Kr);
                      return So && (So.kind === 344 || So.kind === 351) && Dn !== 4 && Ur && (je(So.name) || !T0(Ur, So.name.left)) ? !1 : So;
                    }
                    zi = !1;
                    break;
                  case 4:
                    ii = !0, zi = !1;
                    break;
                  case 41:
                    zi && (ii = !1), zi = !0;
                    break;
                  case 79:
                    ii = !1;
                    break;
                  case 1:
                    return !1;
                }
            }
            function pP(Dn, Kr) {
              D.assert(q() === 59);
              const Ur = t.getStartPos();
              _n();
              const ii = S0();
              op();
              let zi;
              switch (ii.escapedText) {
                case "type":
                  return Dn === 1 && F(Ur, ii);
                case "prop":
                case "property":
                  zi = 1;
                  break;
                case "arg":
                case "argument":
                case "param":
                  zi = 6;
                  break;
                default:
                  return !1;
              }
              return Dn & zi ? tD(Ur, ii, Dn, Kr) : !1;
            }
            function vL() {
              const Dn = Z(), Kr = bS(22);
              Kr && op();
              const Ur = S0(_.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces);
              let ii;
              if (Kr && (op(), wn(63), ii = we(8388608, sc), wn(23)), !Al(Ur))
                return rn(h.createTypeParameterDeclaration(void 0, Ur, void 0, ii), Dn);
            }
            function bU() {
              const Dn = Z(), Kr = [];
              do {
                op();
                const Ur = vL();
                Ur !== void 0 && Kr.push(Ur), v0();
              } while (bS(27));
              return Ks(Kr, Dn);
            }
            function ev(Dn, Kr, Ur, ii) {
              const zi = q() === 18 ? $e() : void 0, So = bU();
              return rn(h.createJSDocTemplateTag(Kr, zi, So, Gf(Dn, Z(), Ur, ii)), Dn);
            }
            function bS(Dn) {
              return q() === Dn ? (_n(), !0) : !1;
            }
            function mP() {
              let Dn = S0();
              for (La(22) && wn(23); La(24); ) {
                const Kr = S0();
                La(22) && wn(23), Dn = x_(Dn, Kr);
              }
              return Dn;
            }
            function S0(Dn) {
              if (!Yu(q()))
                return jl(79, !Dn, Dn || _.Identifier_expected);
              sn++;
              const Kr = t.getTokenPos(), Ur = t.getTextPos(), ii = q(), zi = xu(t.getTokenValue()), So = rn(O(zi, ii), Kr, Ur);
              return _n(), So;
            }
          }
        })(k2 = e.JSDocParser || (e.JSDocParser = {}));
      })(jv || (jv = {})), ((e) => {
        function t(L, I, O, k) {
          if (k = k || D.shouldAssert(2), h(L, I, O, k), Jle(O))
            return L;
          if (L.statements.length === 0)
            return jv.parseSourceFile(L.fileName, I, L.languageVersion, void 0, !0, L.scriptKind, L.setExternalModuleIndicator);
          const G = L;
          D.assert(!G.hasBeenIncrementallyParsed), G.hasBeenIncrementallyParsed = !0, jv.fixupParentReferences(G);
          const V = L.text, H = E(L), te = d(L, O);
          h(L, I, te, k), D.assert(te.span.start <= O.span.start), D.assert(iu(te.span) === iu(O.span)), D.assert(iu(bI(te)) === iu(bI(O)));
          const X = bI(te).length - te.span.length;
          f(G, te.span.start, iu(te.span), iu(bI(te)), X, V, I, k);
          const Y = jv.parseSourceFile(L.fileName, I, L.languageVersion, H, !0, L.scriptKind, L.setExternalModuleIndicator);
          return Y.commentDirectives = r(L.commentDirectives, Y.commentDirectives, te.span.start, iu(te.span), X, V, I, k), Y.impliedNodeFormat = L.impliedNodeFormat, Y;
        }
        e.updateSourceFile = t;
        function r(L, I, O, k, G, V, H, te) {
          if (!L)
            return I;
          let X, Y = !1;
          for (const de of L) {
            const { range: re, type: ye } = de;
            if (re.end < O)
              X = Fn(X, de);
            else if (re.pos > k) {
              P();
              const ae = {
                range: { pos: re.pos + G, end: re.end + G },
                type: ye
              };
              X = Fn(X, ae), te && D.assert(V.substring(re.pos, re.end) === H.substring(ae.range.pos, ae.range.end));
            }
          }
          return P(), X;
          function P() {
            Y || (Y = !0, X ? I && X.push(...I) : X = I);
          }
        }
        function i(L, I, O, k, G, V) {
          I ? te(L) : H(L);
          return;
          function H(X) {
            let Y = "";
            if (V && o(X) && (Y = k.substring(X.pos, X.end)), X._children && (X._children = void 0), Vm(X, X.pos + O, X.end + O), V && o(X) && D.assert(Y === G.substring(X.pos, X.end)), Ma(X, H, te), xf(X))
              for (const P of X.jsDoc)
                H(P);
            c(X, V);
          }
          function te(X) {
            X._children = void 0, Vm(X, X.pos + O, X.end + O);
            for (const Y of X)
              H(Y);
          }
        }
        function o(L) {
          switch (L.kind) {
            case 10:
            case 8:
            case 79:
              return !0;
          }
          return !1;
        }
        function s(L, I, O, k, G) {
          D.assert(L.end >= I, "Adjusting an element that was entirely before the change range"), D.assert(L.pos <= O, "Adjusting an element that was entirely after the change range"), D.assert(L.pos <= L.end);
          const V = Math.min(L.pos, k), H = L.end >= O ? L.end + G : Math.min(L.end, k);
          D.assert(V <= H), L.parent && (D.assertGreaterThanOrEqual(V, L.parent.pos), D.assertLessThanOrEqual(H, L.parent.end)), Vm(L, V, H);
        }
        function c(L, I) {
          if (I) {
            let O = L.pos;
            const k = (G) => {
              D.assert(G.pos >= O), O = G.end;
            };
            if (xf(L))
              for (const G of L.jsDoc)
                k(G);
            Ma(L, k), D.assert(O <= L.end);
          }
        }
        function f(L, I, O, k, G, V, H, te) {
          X(L);
          return;
          function X(P) {
            if (D.assert(P.pos <= P.end), P.pos > O) {
              i(P, !1, G, V, H, te);
              return;
            }
            const de = P.end;
            if (de >= I) {
              if (P.intersectsChange = !0, P._children = void 0, s(P, I, O, k, G), Ma(P, X, Y), xf(P))
                for (const re of P.jsDoc)
                  X(re);
              c(P, te);
              return;
            }
            D.assert(de < I);
          }
          function Y(P) {
            if (D.assert(P.pos <= P.end), P.pos > O) {
              i(P, !0, G, V, H, te);
              return;
            }
            const de = P.end;
            if (de >= I) {
              P.intersectsChange = !0, P._children = void 0, s(P, I, O, k, G);
              for (const re of P)
                X(re);
              return;
            }
            D.assert(de < I);
          }
        }
        function d(L, I) {
          let k = I.span.start;
          for (let H = 0; k > 0 && H <= 1; H++) {
            const te = y(L, k);
            D.assert(te.pos <= k);
            const X = te.pos;
            k = Math.max(0, X - 1);
          }
          const G = hc(k, iu(I.span)), V = I.newLength + (I.span.start - k);
          return HR(G, V);
        }
        function y(L, I) {
          let O = L, k;
          if (Ma(L, V), k) {
            const H = G(k);
            H.pos > O.pos && (O = H);
          }
          return O;
          function G(H) {
            for (; ; ) {
              const te = nq(H);
              if (te)
                H = te;
              else
                return H;
            }
          }
          function V(H) {
            if (!Al(H))
              if (H.pos <= I) {
                if (H.pos >= O.pos && (O = H), I < H.end)
                  return Ma(H, V), !0;
                D.assert(H.end <= I), k = H;
              } else
                return D.assert(H.pos > I), !0;
          }
        }
        function h(L, I, O, k) {
          const G = L.text;
          if (O && (D.assert(G.length - O.span.length + O.newLength === I.length), k || D.shouldAssert(3))) {
            const V = G.substr(0, O.span.start), H = I.substr(0, O.span.start);
            D.assert(V === H);
            const te = G.substring(iu(O.span), G.length), X = I.substring(iu(bI(O)), I.length);
            D.assert(te === X);
          }
        }
        function E(L) {
          let I = L.statements, O = 0;
          D.assert(O < I.length);
          let k = I[O], G = -1;
          return {
            currentNode(H) {
              return H !== G && (k && k.end === H && O < I.length - 1 && (O++, k = I[O]), (!k || k.pos !== H) && V(H)), G = H, D.assert(!k || k.pos === H), k;
            }
          };
          function V(H) {
            I = void 0, O = -1, k = void 0, Ma(L, te, X);
            return;
            function te(Y) {
              return H >= Y.pos && H < Y.end ? (Ma(Y, te, X), !0) : !1;
            }
            function X(Y) {
              if (H >= Y.pos && H < Y.end)
                for (let P = 0; P < Y.length; P++) {
                  const de = Y[P];
                  if (de) {
                    if (de.pos === H)
                      return I = Y, O = P, k = de, !0;
                    if (de.pos < H && H < de.end)
                      return Ma(de, te, X), !0;
                  }
                }
              return !1;
            }
          }
        }
        e.createSyntaxCursor = E;
        let A;
        ((L) => {
          L[L.Value = -1] = "Value";
        })(A || (A = {}));
      })(o5 || (o5 = {})), s5 = /* @__PURE__ */ new Map(), tpe = /^\/\/\/\s*<(\S+)\s.*?\/>/im, npe = /^\/\/\/?\s*@(\S+)\s*(.*)\s*$/im;
    }
  });
  function l5(e) {
    const t = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
    return ze(e, (i) => {
      t.set(i.name.toLowerCase(), i), i.shortName && r.set(i.shortName, i.name);
    }), { optionsNameMap: t, shortOptionNames: r };
  }
  function OC() {
    return Rpe || (Rpe = l5(yg));
  }
  function QJ(e) {
    return rpe(e, Fs);
  }
  function rpe(e, t) {
    const r = Ro(e.type.keys()), i = (e.deprecatedKeys ? r.filter((o) => !e.deprecatedKeys.has(o)) : r).map((o) => `'${o}'`).join(", ");
    return t(_.Argument_for_0_option_must_be_Colon_1, `--${e.name}`, i);
  }
  function c5(e, t, r) {
    return Cpe(e, a1(t || ""), r);
  }
  function ipe(e, t = "", r) {
    if (t = a1(t), xa(t, "-"))
      return;
    if (e.type === "listOrElement" && !pu(t, ","))
      return NT(e, t, r);
    if (t === "")
      return [];
    const i = t.split(",");
    switch (e.element.type) {
      case "number":
        return ia(i, (o) => NT(e.element, parseInt(o), r));
      case "string":
        return ia(i, (o) => NT(e.element, o || "", r));
      case "boolean":
      case "object":
        return D.fail(`List of ${e.element.type} is not yet supported.`);
      default:
        return ia(i, (o) => c5(e.element, o, r));
    }
  }
  function ape(e) {
    return e.name;
  }
  function ZJ(e, t, r, i) {
    var o;
    if ((o = t.alternateMode) != null && o.getOptionsNameMap().optionsNameMap.has(e.toLowerCase()))
      return r(t.alternateMode.diagnostic, e);
    const s = sI(e, t.optionDeclarations, ape);
    return s ? r(t.unknownDidYouMeanDiagnostic, i || e, s.name) : r(t.unknownOptionDiagnostic, i || e);
  }
  function eK(e, t, r) {
    const i = {};
    let o;
    const s = [], c = [];
    return f(t), {
      options: i,
      watchOptions: o,
      fileNames: s,
      errors: c
    };
    function f(y) {
      let h = 0;
      for (; h < y.length; ) {
        const E = y[h];
        if (h++, E.charCodeAt(0) === 64)
          d(E.slice(1));
        else if (E.charCodeAt(0) === 45) {
          const A = E.slice(E.charCodeAt(1) === 45 ? 2 : 1), L = nK(e.getOptionsNameMap, A, !0);
          if (L)
            h = ope(y, h, e, L, i, c);
          else {
            const I = nK(_8.getOptionsNameMap, A, !0);
            I ? h = ope(y, h, _8, I, o || (o = {}), c) : c.push(ZJ(A, e, Fs, E));
          }
        } else
          s.push(E);
      }
    }
    function d(y) {
      const h = e8(y, r || ((L) => $c.readFile(L)));
      if (!Ha(h)) {
        c.push(h);
        return;
      }
      const E = [];
      let A = 0;
      for (; ; ) {
        for (; A < h.length && h.charCodeAt(A) <= 32; )
          A++;
        if (A >= h.length)
          break;
        const L = A;
        if (h.charCodeAt(L) === 34) {
          for (A++; A < h.length && h.charCodeAt(A) !== 34; )
            A++;
          A < h.length ? (E.push(h.substring(L + 1, A)), A++) : c.push(Fs(_.Unterminated_quoted_string_in_response_file_0, y));
        } else {
          for (; h.charCodeAt(A) > 32; )
            A++;
          E.push(h.substring(L, A));
        }
      }
      f(E);
    }
  }
  function ope(e, t, r, i, o, s) {
    if (i.isTSConfigOnly) {
      const c = e[t];
      c === "null" ? (o[i.name] = void 0, t++) : i.type === "boolean" ? c === "false" ? (o[i.name] = NT(i, !1, s), t++) : (c === "true" && t++, s.push(Fs(_.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line, i.name))) : (s.push(Fs(_.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line, i.name)), c && !xa(c, "-") && t++);
    } else if (!e[t] && i.type !== "boolean" && s.push(Fs(r.optionTypeMismatchDiagnostic, i.name, Hk(i))), e[t] !== "null")
      switch (i.type) {
        case "number":
          o[i.name] = NT(i, parseInt(e[t]), s), t++;
          break;
        case "boolean":
          const c = e[t];
          o[i.name] = NT(i, c !== "false", s), (c === "false" || c === "true") && t++;
          break;
        case "string":
          o[i.name] = NT(i, e[t] || "", s), t++;
          break;
        case "list":
          const f = ipe(i, e[t], s);
          o[i.name] = f || [], f && t++;
          break;
        case "listOrElement":
          D.fail("listOrElement not supported here");
          break;
        default:
          o[i.name] = c5(i, e[t], s), t++;
          break;
      }
    else
      o[i.name] = void 0, t++;
    return t;
  }
  function KPe(e, t) {
    return eK(f8, e, t);
  }
  function tK(e, t) {
    return nK(OC, e, t);
  }
  function nK(e, t, r = !1) {
    t = t.toLowerCase();
    const { optionsNameMap: i, shortOptionNames: o } = e();
    if (r) {
      const s = o.get(t);
      s !== void 0 && (t = s);
    }
    return i.get(t);
  }
  function spe() {
    return Ope || (Ope = l5(y5));
  }
  function XPe(e) {
    const { options: t, watchOptions: r, fileNames: i, errors: o } = eK(Mpe, e), s = t;
    return i.length === 0 && i.push("."), s.clean && s.force && o.push(Fs(_.Options_0_and_1_cannot_be_combined, "clean", "force")), s.clean && s.verbose && o.push(Fs(_.Options_0_and_1_cannot_be_combined, "clean", "verbose")), s.clean && s.watch && o.push(Fs(_.Options_0_and_1_cannot_be_combined, "clean", "watch")), s.watch && s.dry && o.push(Fs(_.Options_0_and_1_cannot_be_combined, "watch", "dry")), { buildOptions: s, watchOptions: r, projects: i, errors: o };
  }
  function YPe(e, ...t) {
    return Fs.apply(void 0, arguments).messageText;
  }
  function QO(e, t, r, i, o, s) {
    const c = e8(e, (y) => r.readFile(y));
    if (!Ha(c)) {
      r.onUnRecoverableConfigFileDiagnostic(c);
      return;
    }
    const f = $O(e, c), d = r.getCurrentDirectory();
    return f.path = zs(e, d, ru(r.useCaseSensitiveFileNames)), f.resolvedPath = f.path, f.originalFileName = f.fileName, n8(f, r, Pa(mi(e), d), t, Pa(e, d), void 0, s, i, o);
  }
  function ZO(e, t) {
    const r = e8(e, t);
    return Ha(r) ? rK(e, r) : { config: {}, error: r };
  }
  function rK(e, t) {
    const r = $O(e, t);
    return {
      config: _pe(r, r.parseDiagnostics, !1, void 0),
      error: r.parseDiagnostics.length ? r.parseDiagnostics[0] : void 0
    };
  }
  function lpe(e, t) {
    const r = e8(e, t);
    return Ha(r) ? $O(e, r) : { fileName: e, parseDiagnostics: [r] };
  }
  function e8(e, t) {
    let r;
    try {
      r = t(e);
    } catch (i) {
      return Fs(_.Cannot_read_file_0_Colon_1, e, i.message);
    }
    return r === void 0 ? Fs(_.Cannot_read_file_0, e) : r;
  }
  function u5(e) {
    return e1(e, ape);
  }
  function cpe() {
    return Fpe || (Fpe = l5(c8));
  }
  function upe() {
    return Bpe || (Bpe = u5(yg));
  }
  function dpe() {
    return Gpe || (Gpe = u5(c8));
  }
  function fpe() {
    return Upe || (Upe = u5(v5));
  }
  function $Pe() {
    return CK === void 0 && (CK = {
      name: void 0,
      type: "object",
      elementOptions: u5([
        {
          name: "compilerOptions",
          type: "object",
          elementOptions: upe(),
          extraKeyDiagnostics: f8
        },
        {
          name: "watchOptions",
          type: "object",
          elementOptions: dpe(),
          extraKeyDiagnostics: _8
        },
        {
          name: "typeAcquisition",
          type: "object",
          elementOptions: fpe(),
          extraKeyDiagnostics: AK
        },
        p8,
        {
          name: "references",
          type: "list",
          element: {
            name: "references",
            type: "object"
          },
          category: _.Projects
        },
        {
          name: "files",
          type: "list",
          element: {
            name: "files",
            type: "string"
          },
          category: _.File_Management
        },
        {
          name: "include",
          type: "list",
          element: {
            name: "include",
            type: "string"
          },
          category: _.File_Management,
          defaultValueDescription: _.if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk
        },
        {
          name: "exclude",
          type: "list",
          element: {
            name: "exclude",
            type: "string"
          },
          category: _.File_Management,
          defaultValueDescription: _.node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified
        },
        o8
      ])
    }), CK;
  }
  function _pe(e, t, r, i) {
    var o;
    const s = (o = e.statements[0]) == null ? void 0 : o.expression, c = r ? $Pe() : void 0;
    if (s && s.kind !== 207) {
      if (t.push(cd(e, s, _.The_root_value_of_a_0_file_must_be_an_object, mu(e.fileName) === "jsconfig.json" ? "jsconfig.json" : "tsconfig.json")), Bu(s)) {
        const f = nn(s.elements, Ls);
        if (f)
          return t8(e, f, t, !0, c, i);
      }
      return {};
    }
    return t8(e, s, t, !0, c, i);
  }
  function ppe(e, t) {
    var r;
    return t8(e, (r = e.statements[0]) == null ? void 0 : r.expression, t, !0, void 0, void 0);
  }
  function t8(e, t, r, i, o, s) {
    if (!t)
      return i ? {} : void 0;
    return y(t, o);
    function c(E) {
      return o && o.elementOptions === E;
    }
    function f(E, A, L, I) {
      const O = i ? {} : void 0;
      for (const k of E.properties) {
        if (k.kind !== 299) {
          r.push(cd(e, k, _.Property_assignment_expected));
          continue;
        }
        k.questionToken && r.push(cd(e, k.questionToken, _.The_0_modifier_can_only_be_used_in_TypeScript_files, "?")), h(k.name) || r.push(cd(e, k.name, _.String_literal_with_double_quotes_expected));
        const G = sN(k.name) ? void 0 : OA(k.name), V = G && ta(G), H = V && A ? A.get(V) : void 0;
        V && L && !H && (A ? r.push(ZJ(V, L, (X, Y, P) => cd(e, k.name, X, Y, P))) : r.push(cd(e, k.name, L.unknownOptionDiagnostic, V)));
        const te = y(k.initializer, H);
        if (typeof V < "u" && (i && (O[V] = te), s && (I || c(A)))) {
          const X = d5(H, te);
          I ? X && s.onSetValidOptionKeyValueInParent(I, H, te) : c(A) && (X ? s.onSetValidOptionKeyValueInRoot(V, k.name, te, k.initializer) : H || s.onSetUnknownOptionKeyValueInRoot(V, k.name, te, k.initializer));
        }
      }
      return O;
    }
    function d(E, A) {
      if (!i) {
        E.forEach((L) => y(L, A));
        return;
      }
      return lr(E.map((L) => y(L, A)), (L) => L !== void 0);
    }
    function y(E, A) {
      let L;
      switch (E.kind) {
        case 110:
          return O(A && A.type !== "boolean" && (A.type !== "listOrElement" || A.element.type !== "boolean")), I(!0);
        case 95:
          return O(A && A.type !== "boolean" && (A.type !== "listOrElement" || A.element.type !== "boolean")), I(!1);
        case 104:
          return O(A && A.name === "extends"), I(null);
        case 10:
          h(E) || r.push(cd(e, E, _.String_literal_with_double_quotes_expected)), O(A && Ha(A.type) && A.type !== "string" && (A.type !== "listOrElement" || Ha(A.element.type) && A.element.type !== "string"));
          const k = E.text;
          if (A && D.assert(A.type !== "listOrElement" || A.element.type === "string", "Only string or array of string is handled for now"), A && !Ha(A.type)) {
            const V = A;
            V.type.has(k.toLowerCase()) || (r.push(rpe(V, (H, te, X) => cd(e, E, H, te, X))), L = !0);
          }
          return I(k);
        case 8:
          return O(A && A.type !== "number" && (A.type !== "listOrElement" || A.element.type !== "number")), I(Number(E.text));
        case 221:
          if (E.operator !== 40 || E.operand.kind !== 8)
            break;
          return O(A && A.type !== "number" && (A.type !== "listOrElement" || A.element.type !== "number")), I(-Number(E.operand.text));
        case 207:
          O(A && A.type !== "object" && (A.type !== "listOrElement" || A.element.type !== "object"));
          const G = E;
          if (A) {
            const { elementOptions: V, extraKeyDiagnostics: H, name: te } = A;
            return I(f(G, V, H, te));
          } else
            return I(f(G, void 0, void 0, void 0));
        case 206:
          return O(A && A.type !== "list" && A.type !== "listOrElement"), I(d(E.elements, A && A.element));
      }
      A ? O(!0) : r.push(cd(e, E, _.Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal));
      return;
      function I(k) {
        var G;
        if (!L) {
          const V = (G = A == null ? void 0 : A.extraValidation) == null ? void 0 : G.call(A, k);
          if (V) {
            r.push(cd(e, E, ...V));
            return;
          }
        }
        return k;
      }
      function O(k) {
        k && (r.push(cd(e, E, _.Compiler_option_0_requires_a_value_of_type_1, A.name, Hk(A))), L = !0);
      }
    }
    function h(E) {
      return jo(E) && g3(E, e);
    }
  }
  function Hk(e) {
    return e.type === "listOrElement" ? `${Hk(e.element)} or Array` : e.type === "list" ? "Array" : Ha(e.type) ? e.type : "string";
  }
  function d5(e, t) {
    if (e) {
      if (PC(t))
        return !0;
      if (e.type === "list")
        return Va(t);
      if (e.type === "listOrElement")
        return Va(t) || d5(e.element, t);
      const r = Ha(e.type) ? e.type : "string";
      return typeof t === r;
    }
    return !1;
  }
  function QPe(e, t, r) {
    var i, o, s;
    const c = ru(r.useCaseSensitiveFileNames), f = jt(lr(e.fileNames, (o = (i = e.options.configFile) == null ? void 0 : i.configFileSpecs) != null && o.validatedIncludeSpecs ? e4e(t, e.options.configFile.configFileSpecs.validatedIncludeSpecs, e.options.configFile.configFileSpecs.validatedExcludeSpecs, r) : n1), (E) => NR(Pa(t, r.getCurrentDirectory()), Pa(E, r.getCurrentDirectory()), c)), d = oK(e.options, { configFilePath: Pa(t, r.getCurrentDirectory()), useCaseSensitiveFileNames: r.useCaseSensitiveFileNames }), y = e.watchOptions && t4e(e.watchOptions);
    return {
      compilerOptions: {
        ...iK(d),
        showConfig: void 0,
        configFile: void 0,
        configFilePath: void 0,
        help: void 0,
        init: void 0,
        listFiles: void 0,
        listEmittedFiles: void 0,
        project: void 0,
        build: void 0,
        version: void 0
      },
      watchOptions: y && iK(y),
      references: jt(e.projectReferences, (E) => ({ ...E, path: E.originalPath ? E.originalPath : "", originalPath: void 0 })),
      files: Le(f) ? f : void 0,
      ...(s = e.options.configFile) != null && s.configFileSpecs ? {
        include: ZPe(e.options.configFile.configFileSpecs.validatedIncludeSpecs),
        exclude: e.options.configFile.configFileSpecs.validatedExcludeSpecs
      } : {},
      compileOnSave: e.compileOnSave ? !0 : void 0
    };
  }
  function iK(e) {
    return {
      ...Ro(e.entries()).reduce((t, r) => ({ ...t, [r[0]]: r[1] }), {})
    };
  }
  function ZPe(e) {
    if (Le(e)) {
      if (Le(e) !== 1)
        return e;
      if (e[0] !== E5)
        return e;
    }
  }
  function e4e(e, t, r, i) {
    if (!t)
      return n1;
    const o = dk(e, r, t, i.useCaseSensitiveFileNames, i.getCurrentDirectory()), s = o.excludePattern && Pv(o.excludePattern, i.useCaseSensitiveFileNames), c = o.includeFilePattern && Pv(o.includeFilePattern, i.useCaseSensitiveFileNames);
    return c ? s ? (f) => !(c.test(f) && !s.test(f)) : (f) => !c.test(f) : s ? (f) => s.test(f) : n1;
  }
  function mpe(e) {
    switch (e.type) {
      case "string":
      case "number":
      case "boolean":
      case "object":
        return;
      case "list":
      case "listOrElement":
        return mpe(e.element);
      default:
        return e.type;
    }
  }
  function aK(e, t) {
    return of(t, (r, i) => {
      if (r === e)
        return i;
    });
  }
  function oK(e, t) {
    return hpe(e, OC(), t);
  }
  function t4e(e) {
    return hpe(e, cpe());
  }
  function hpe(e, { optionsNameMap: t }, r) {
    const i = /* @__PURE__ */ new Map(), o = r && ru(r.useCaseSensitiveFileNames);
    for (const s in e)
      if (Ps(e, s)) {
        if (t.has(s) && (t.get(s).category === _.Command_line_Options || t.get(s).category === _.Output_Formatting))
          continue;
        const c = e[s], f = t.get(s.toLowerCase());
        if (f) {
          D.assert(f.type !== "listOrElement");
          const d = mpe(f);
          d ? f.type === "list" ? i.set(s, c.map((y) => aK(y, d))) : i.set(s, aK(c, d)) : r && f.isFilePath ? i.set(s, NR(r.configFilePath, Pa(c, mi(r.configFilePath)), o)) : i.set(s, c);
        }
      }
    return i;
  }
  function n4e(e, t) {
    const r = gpe(e);
    return o();
    function i(s) {
      return Array(s + 1).join(" ");
    }
    function o() {
      const s = [], c = i(2);
      return m5.forEach((f) => {
        if (!r.has(f.name))
          return;
        const d = r.get(f.name), y = mK(f);
        d !== y ? s.push(`${c}${f.name}: ${d}`) : Ps(b5, f.name) && s.push(`${c}${f.name}: ${y}`);
      }), s.join(t) + t;
    }
  }
  function gpe(e) {
    const t = V4(e, b5);
    return oK(t);
  }
  function r4e(e, t, r) {
    const i = gpe(e);
    return c();
    function o(f) {
      return Array(f + 1).join(" ");
    }
    function s({ category: f, name: d, isCommandLineOnly: y }) {
      const h = [_.Command_line_Options, _.Editor_Support, _.Compiler_Diagnostics, _.Backwards_Compatibility, _.Watch_and_Build_Modes, _.Output_Formatting];
      return !y && f !== void 0 && (!h.includes(f) || i.has(d));
    }
    function c() {
      const f = /* @__PURE__ */ new Map();
      f.set(_.Projects, []), f.set(_.Language_and_Environment, []), f.set(_.Modules, []), f.set(_.JavaScript_Support, []), f.set(_.Emit, []), f.set(_.Interop_Constraints, []), f.set(_.Type_Checking, []), f.set(_.Completeness, []);
      for (const L of yg)
        if (s(L)) {
          let I = f.get(L.category);
          I || f.set(L.category, I = []), I.push(L);
        }
      let d = 0, y = 0;
      const h = [];
      f.forEach((L, I) => {
        h.length !== 0 && h.push({ value: "" }), h.push({ value: `/* ${Oo(I)} */` });
        for (const O of L) {
          let k;
          i.has(O.name) ? k = `"${O.name}": ${JSON.stringify(i.get(O.name))}${(y += 1) === i.size ? "" : ","}` : k = `// "${O.name}": ${JSON.stringify(mK(O))},`, h.push({
            value: k,
            description: `/* ${O.description && Oo(O.description) || O.name} */`
          }), d = Math.max(k.length, d);
        }
      });
      const E = o(2), A = [];
      A.push("{"), A.push(`${E}"compilerOptions": {`), A.push(`${E}${E}/* ${Oo(_.Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file)} */`), A.push("");
      for (const L of h) {
        const { value: I, description: O = "" } = L;
        A.push(I && `${E}${E}${I}${O && o(d - I.length + 2) + O}`);
      }
      if (t.length) {
        A.push(`${E}},`), A.push(`${E}"files": [`);
        for (let L = 0; L < t.length; L++)
          A.push(`${E}${E}${JSON.stringify(t[L])}${L === t.length - 1 ? "" : ","}`);
        A.push(`${E}]`);
      } else
        A.push(`${E}}`);
      return A.push("}"), A.join(r) + r;
    }
  }
  function sK(e, t) {
    const r = {}, i = OC().optionsNameMap;
    for (const o in e)
      Ps(e, o) && (r[o] = i4e(i.get(o.toLowerCase()), e[o], t));
    return r.configFilePath && (r.configFilePath = t(r.configFilePath)), r;
  }
  function i4e(e, t, r) {
    if (e && !PC(t)) {
      if (e.type === "list") {
        const i = t;
        if (e.element.isFilePath && i.length)
          return i.map(r);
      } else if (e.isFilePath)
        return r(t);
      D.assert(e.type !== "listOrElement");
    }
    return t;
  }
  function a4e(e, t, r, i, o, s, c, f, d) {
    return ype(e, void 0, t, r, i, d, o, s, c, f);
  }
  function n8(e, t, r, i, o, s, c, f, d) {
    var y, h;
    (y = bi) == null || y.push(bi.Phase.Parse, "parseJsonSourceFileConfigFileContent", { path: e.fileName });
    const E = ype(void 0, e, t, r, i, d, o, s, c, f);
    return (h = bi) == null || h.pop(), E;
  }
  function lK(e, t) {
    t && Object.defineProperty(e, "configFile", { enumerable: !1, writable: !1, value: t });
  }
  function PC(e) {
    return e == null;
  }
  function cK(e, t) {
    return mi(Pa(e, t));
  }
  function ype(e, t, r, i, o = {}, s, c, f = [], d = [], y) {
    D.assert(e === void 0 && t !== void 0 || e !== void 0 && t === void 0);
    const h = [], E = Epe(e, t, r, i, c, f, h, y), { raw: A } = E, L = V4(o, E.options || {}), I = s && E.watchOptions ? V4(s, E.watchOptions) : E.watchOptions || s;
    L.configFilePath = c && Qc(c);
    const O = G();
    t && (t.configFileSpecs = O), lK(L, t);
    const k = Jo(c ? cK(c, i) : i);
    return {
      options: L,
      watchOptions: I,
      fileNames: V(k),
      projectReferences: H(k),
      typeAcquisition: E.typeAcquisition || _5(),
      raw: A,
      errors: h,
      wildcardDirectories: m4e(O, k, r.useCaseSensitiveFileNames),
      compileOnSave: !!A.compileOnSave
    };
    function G() {
      const de = Y("references", (Te) => typeof Te == "object", "object"), re = te(X("files"));
      if (re) {
        const Te = de === "no-prop" || Va(de) && de.length === 0, ee = Ps(A, "extends");
        if (re.length === 0 && Te && !ee)
          if (t) {
            const Qe = c || "tsconfig.json", Ve = _.The_files_list_in_config_file_0_is_empty, Be = Jt(cN(t, "files"), (Oe) => Oe.initializer), qe = Be ? cd(t, Be, Ve, Qe) : Fs(Ve, Qe);
            h.push(qe);
          } else
            P(_.The_files_list_in_config_file_0_is_empty, c || "tsconfig.json");
      }
      let ye = te(X("include"));
      const ae = X("exclude");
      let W = !1, ce = te(ae);
      if (ae === "no-prop" && A.compilerOptions) {
        const Te = A.compilerOptions.outDir, ee = A.compilerOptions.declarationDir;
        (Te || ee) && (ce = [Te, ee].filter((Qe) => !!Qe));
      }
      re === void 0 && ye === void 0 && (ye = [E5], W = !0);
      let me, ve;
      return ye && (me = Dpe(ye, h, !0, t, "include")), ce && (ve = Dpe(ce, h, !1, t, "exclude")), {
        filesSpecs: re,
        includeSpecs: ye,
        excludeSpecs: ce,
        validatedFilesSpec: lr(re, Ha),
        validatedIncludeSpecs: me,
        validatedExcludeSpecs: ve,
        pathPatterns: void 0,
        isDefaultIncludeSpec: W
      };
    }
    function V(de) {
      const re = a8(O, de, L, r, d);
      return bpe(re, r8(A), f) && h.push(vpe(O, c)), re;
    }
    function H(de) {
      let re;
      const ye = Y("references", (ae) => typeof ae == "object", "object");
      if (Va(ye))
        for (const ae of ye)
          typeof ae.path != "string" ? P(_.Compiler_option_0_requires_a_value_of_type_1, "reference.path", "string") : (re || (re = [])).push({
            path: Pa(ae.path, de),
            originalPath: ae.path,
            prepend: ae.prepend,
            circular: ae.circular
          });
      return re;
    }
    function te(de) {
      return Va(de) ? de : void 0;
    }
    function X(de) {
      return Y(de, Ha, "string");
    }
    function Y(de, re, ye) {
      if (Ps(A, de) && !PC(A[de]))
        if (Va(A[de])) {
          const ae = A[de];
          return !t && !Yn(ae, re) && h.push(Fs(_.Compiler_option_0_requires_a_value_of_type_1, de, ye)), ae;
        } else
          return P(_.Compiler_option_0_requires_a_value_of_type_1, de, "Array"), "not-array";
      return "no-prop";
    }
    function P(de, re, ye) {
      t || h.push(Fs(de, re, ye));
    }
  }
  function o4e(e) {
    return e.code === _.No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2.code;
  }
  function vpe({ includeSpecs: e, excludeSpecs: t }, r) {
    return Fs(_.No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2, r || "tsconfig.json", JSON.stringify(e || []), JSON.stringify(t || []));
  }
  function bpe(e, t, r) {
    return e.length === 0 && t && (!r || r.length === 0);
  }
  function r8(e) {
    return !Ps(e, "files") && !Ps(e, "references");
  }
  function uK(e, t, r, i, o) {
    const s = i.length;
    return bpe(e, o) ? i.push(vpe(r, t)) : Ri(i, (c) => !o4e(c)), s !== i.length;
  }
  function s4e(e) {
    return !!e.options;
  }
  function Epe(e, t, r, i, o, s, c, f) {
    var d;
    i = Qc(i);
    const y = Pa(o || "", i);
    if (s.indexOf(y) >= 0)
      return c.push(Fs(_.Circularity_detected_while_resolving_configuration_Colon_0, [...s, y].join(" -> "))), { raw: e || ppe(t, c) };
    const h = e ? l4e(e, r, i, o, c) : c4e(t, r, i, o, c);
    if ((d = h.options) != null && d.paths && (h.options.pathsBasePath = i), h.extendedConfigPath) {
      s = s.concat([y]);
      const A = { options: {} };
      Ha(h.extendedConfigPath) ? E(A, h.extendedConfigPath) : h.extendedConfigPath.forEach((L) => E(A, L)), !h.raw.include && A.include && (h.raw.include = A.include), !h.raw.exclude && A.exclude && (h.raw.exclude = A.exclude), !h.raw.files && A.files && (h.raw.files = A.files), h.raw.compileOnSave === void 0 && A.compileOnSave && (h.raw.compileOnSave = A.compileOnSave), t && A.extendedSourceFiles && (t.extendedSourceFiles = Ro(A.extendedSourceFiles.keys())), h.options = fR(A.options, h.options), h.watchOptions = h.watchOptions && A.watchOptions ? fR(A.watchOptions, h.watchOptions) : h.watchOptions || A.watchOptions;
    }
    return h;
    function E(A, L) {
      const I = u4e(t, L, r, s, c, f, A);
      if (I && s4e(I)) {
        const O = I.raw;
        let k;
        const G = (V) => {
          O[V] && (A[V] = jt(O[V], (H) => km(H) ? H : Bi(k || (k = _I(mi(L), i, ru(r.useCaseSensitiveFileNames))), H)));
        };
        G("include"), G("exclude"), G("files"), O.compileOnSave !== void 0 && (A.compileOnSave = O.compileOnSave), fR(A.options, I.options), A.watchOptions = A.watchOptions && I.watchOptions ? fR({}, A.watchOptions, I.watchOptions) : A.watchOptions || I.watchOptions;
      }
    }
  }
  function l4e(e, t, r, i, o) {
    Ps(e, "excludes") && o.push(Fs(_.Unknown_option_excludes_Did_you_mean_exclude));
    const s = Spe(e.compilerOptions, r, o, i), c = xpe(e.typeAcquisition, r, o, i), f = p4e(e.watchOptions, r, o);
    e.compileOnSave = d4e(e, r, o);
    let d;
    if (e.extends || e.extends === "")
      if (!d5(p8, e.extends))
        o.push(Fs(_.Compiler_option_0_requires_a_value_of_type_1, "extends", Hk(p8)));
      else {
        const y = i ? cK(i, r) : r;
        if (Ha(e.extends))
          d = f5(e.extends, t, y, o, Fs);
        else {
          d = [];
          for (const h of e.extends)
            Ha(h) ? d = Fn(d, f5(h, t, y, o, Fs)) : o.push(Fs(_.Compiler_option_0_requires_a_value_of_type_1, "extends", Hk(p8.element)));
        }
      }
    return { raw: e, options: s, watchOptions: f, typeAcquisition: c, extendedConfigPath: d };
  }
  function c4e(e, t, r, i, o) {
    const s = Tpe(i);
    let c, f, d, y;
    const E = _pe(e, o, !0, {
      onSetValidOptionKeyValueInParent(A, L, I) {
        let O;
        switch (A) {
          case "compilerOptions":
            O = s;
            break;
          case "watchOptions":
            O = f || (f = {});
            break;
          case "typeAcquisition":
            O = c || (c = _5(i));
            break;
          default:
            D.fail("Unknown option");
        }
        O[L.name] = fK(L, r, I);
      },
      onSetValidOptionKeyValueInRoot(A, L, I, O) {
        switch (A) {
          case "extends":
            const k = i ? cK(i, r) : r;
            if (Ha(I))
              d = f5(I, t, k, o, (G, V) => cd(e, O, G, V));
            else {
              d = [];
              for (let G = 0; G < I.length; G++) {
                const V = I[G];
                Ha(V) && (d = Fn(d, f5(V, t, k, o, (H, te) => cd(e, O.elements[G], H, te))));
              }
            }
            return;
        }
      },
      onSetUnknownOptionKeyValueInRoot(A, L, I, O) {
        A === "excludes" && o.push(cd(e, L, _.Unknown_option_excludes_Did_you_mean_exclude)), nn(m5, (k) => k.name === A) && (y = Fn(y, L));
      }
    });
    return c || (c = _5(i)), y && E && E.compilerOptions === void 0 && o.push(cd(e, y[0], _._0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file, OA(y[0]))), { raw: E, options: s, watchOptions: f, typeAcquisition: c, extendedConfigPath: d };
  }
  function f5(e, t, r, i, o) {
    if (e = Qc(e), km(e) || xa(e, "./") || xa(e, "../")) {
      let c = Pa(e, r);
      if (!t.fileExists(c) && !ic(c, ".json") && (c = `${c}.json`, !t.fileExists(c))) {
        i.push(o(_.File_0_not_found, e));
        return;
      }
      return c;
    }
    const s = rme(e, Bi(r, "tsconfig.json"), t);
    if (s.resolvedModule)
      return s.resolvedModule.resolvedFileName;
    e === "" ? i.push(o(_.Compiler_option_0_cannot_be_given_an_empty_string, "extends")) : i.push(o(_.File_0_not_found, e));
  }
  function u4e(e, t, r, i, o, s, c) {
    var f;
    const d = r.useCaseSensitiveFileNames ? t : N_(t);
    let y, h, E;
    if (s && (y = s.get(d)) ? { extendedResult: h, extendedConfig: E } = y : (h = lpe(t, (A) => r.readFile(A)), h.parseDiagnostics.length || (E = Epe(void 0, h, r, mi(t), mu(t), i, o, s)), s && s.set(d, { extendedResult: h, extendedConfig: E })), e && (((f = c.extendedSourceFiles) != null ? f : c.extendedSourceFiles = /* @__PURE__ */ new Set()).add(h.fileName), h.extendedSourceFiles))
      for (const A of h.extendedSourceFiles)
        c.extendedSourceFiles.add(A);
    if (h.parseDiagnostics.length) {
      o.push(...h.parseDiagnostics);
      return;
    }
    return E;
  }
  function d4e(e, t, r) {
    if (!Ps(e, o8.name))
      return !1;
    const i = i8(o8, e.compileOnSave, t, r);
    return typeof i == "boolean" && i;
  }
  function f4e(e, t, r) {
    const i = [];
    return { options: Spe(e, t, i, r), errors: i };
  }
  function _4e(e, t, r) {
    const i = [];
    return { options: xpe(e, t, i, r), errors: i };
  }
  function Tpe(e) {
    return e && mu(e) === "jsconfig.json" ? { allowJs: !0, maxNodeModuleJsDepth: 2, allowSyntheticDefaultImports: !0, skipLibCheck: !0, noEmit: !0 } : {};
  }
  function Spe(e, t, r, i) {
    const o = Tpe(i);
    return dK(upe(), e, t, o, f8, r), i && (o.configFilePath = Qc(i)), o;
  }
  function _5(e) {
    return { enable: !!e && mu(e) === "jsconfig.json", include: [], exclude: [] };
  }
  function xpe(e, t, r, i) {
    const o = _5(i);
    return dK(fpe(), e, t, o, AK, r), o;
  }
  function p4e(e, t, r) {
    return dK(dpe(), e, t, void 0, _8, r);
  }
  function dK(e, t, r, i, o, s) {
    if (t) {
      for (const c in t) {
        const f = e.get(c);
        f ? (i || (i = {}))[f.name] = i8(f, t[c], r, s) : s.push(ZJ(c, o, Fs));
      }
      return i;
    }
  }
  function i8(e, t, r, i) {
    if (d5(e, t)) {
      const o = e.type;
      if (o === "list" && Va(t))
        return Lpe(e, t, r, i);
      if (o === "listOrElement")
        return Va(t) ? Lpe(e, t, r, i) : i8(e.element, t, r, i);
      if (!Ha(e.type))
        return Cpe(e, t, i);
      const s = NT(e, t, i);
      return PC(s) ? s : Ape(e, r, s);
    } else
      i.push(Fs(_.Compiler_option_0_requires_a_value_of_type_1, e.name, Hk(e)));
  }
  function fK(e, t, r) {
    if (!PC(r)) {
      if (e.type === "listOrElement" && !Va(r))
        return fK(e.element, t, r);
      if (e.type === "list" || e.type === "listOrElement") {
        const i = e;
        return i.element.isFilePath || !Ha(i.element.type) ? lr(jt(r, (o) => fK(i.element, t, o)), (o) => i.listPreserveFalsyValues ? !0 : !!o) : r;
      } else if (!Ha(e.type))
        return e.type.get(Ha(r) ? r.toLowerCase() : r);
      return Ape(e, t, r);
    }
  }
  function Ape(e, t, r) {
    return e.isFilePath && (r = Pa(r, t), r === "" && (r = ".")), r;
  }
  function NT(e, t, r) {
    var i;
    if (PC(t))
      return;
    const o = (i = e.extraValidation) == null ? void 0 : i.call(e, t);
    if (!o)
      return t;
    r.push(Fs(...o));
  }
  function Cpe(e, t, r) {
    if (PC(t))
      return;
    const i = t.toLowerCase(), o = e.type.get(i);
    if (o !== void 0)
      return NT(e, o, r);
    r.push(QJ(e));
  }
  function Lpe(e, t, r, i) {
    return lr(jt(t, (o) => i8(e.element, o, r, i)), (o) => e.listPreserveFalsyValues ? !0 : !!o);
  }
  function a8(e, t, r, i, o = rt) {
    t = Jo(t);
    const s = ru(i.useCaseSensitiveFileNames), c = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map(), { validatedFilesSpec: y, validatedIncludeSpecs: h, validatedExcludeSpecs: E } = e, A = fk(r, o), L = rO(r, A);
    if (y)
      for (const G of y) {
        const V = Pa(G, t);
        c.set(s(V), V);
      }
    let I;
    if (h && h.length > 0)
      for (const G of i.readDirectory(t, No(L), E, h, void 0)) {
        if (cc(G, ".json")) {
          if (!I) {
            const te = h.filter((Y) => ic(Y, ".json")), X = jt(z3(te, t, "files"), (Y) => `^${Y}$`);
            I = X ? X.map((Y) => Pv(Y, i.useCaseSensitiveFileNames)) : rt;
          }
          if (vi(I, (te) => te.test(G)) !== -1) {
            const te = s(G);
            !c.has(te) && !d.has(te) && d.set(te, G);
          }
          continue;
        }
        if (g4e(G, c, f, A, s))
          continue;
        y4e(G, f, A, s);
        const V = s(G);
        !c.has(V) && !f.has(V) && f.set(V, G);
      }
    const O = Ro(c.values()), k = Ro(f.values());
    return O.concat(k, Ro(d.values()));
  }
  function Ipe(e, t, r, i, o) {
    const { validatedFilesSpec: s, validatedIncludeSpecs: c, validatedExcludeSpecs: f } = t;
    if (!Le(c) || !Le(f))
      return !1;
    r = Jo(r);
    const d = ru(i);
    if (s) {
      for (const y of s)
        if (d(Pa(y, r)) === e)
          return !1;
    }
    return wpe(e, f, i, o, r);
  }
  function kpe(e) {
    const t = xa(e, "**/") ? 0 : e.indexOf("/**/");
    return t === -1 ? !1 : (ic(e, "/..") ? e.length : e.lastIndexOf("/../")) > t;
  }
  function p5(e, t, r, i) {
    return wpe(e, lr(t, (o) => !kpe(o)), r, i);
  }
  function wpe(e, t, r, i, o) {
    const s = uk(t, Bi(Jo(i), o), "exclude"), c = s && Pv(s, r);
    return c ? c.test(e) ? !0 : !bA(e) && c.test(Ou(e)) : !1;
  }
  function Dpe(e, t, r, i, o) {
    return e.filter((c) => {
      if (!Ha(c))
        return !1;
      const f = _K(c, r);
      return f !== void 0 && t.push(s(...f)), f === void 0;
    });
    function s(c, f) {
      const d = s3(i, o, f);
      return d ? cd(i, d, c, f) : Fs(c, f);
    }
  }
  function _K(e, t) {
    if (D.assert(typeof e == "string"), t && Vpe.test(e))
      return [_.File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0, e];
    if (kpe(e))
      return [_.File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0, e];
  }
  function m4e({ validatedIncludeSpecs: e, validatedExcludeSpecs: t }, r, i) {
    const o = uk(t, r, "exclude"), s = o && new RegExp(o, i ? "" : "i"), c = {};
    if (e !== void 0) {
      const f = [];
      for (const d of e) {
        const y = Jo(Bi(r, d));
        if (s && s.test(y))
          continue;
        const h = h4e(y, i);
        if (h) {
          const { key: E, flags: A } = h, L = c[E];
          (L === void 0 || L < A) && (c[E] = A, A === 1 && f.push(E));
        }
      }
      for (const d in c)
        if (Ps(c, d))
          for (const y of f)
            d !== y && Ev(y, d, r, !i) && delete c[d];
    }
    return c;
  }
  function h4e(e, t) {
    const r = jpe.exec(e);
    if (r) {
      const i = e.indexOf("?"), o = e.indexOf("*"), s = e.lastIndexOf(Ms);
      return {
        key: t ? r[0] : N_(r[0]),
        flags: i !== -1 && i < s || o !== -1 && o < s ? 1 : 0
      };
    }
    if (fq(e.substring(e.lastIndexOf(Ms) + 1)))
      return {
        key: $E(t ? e : N_(e)),
        flags: 1
      };
  }
  function g4e(e, t, r, i, o) {
    const s = ze(i, (c) => Tc(e, c) ? c : void 0);
    if (!s)
      return !1;
    for (const c of s) {
      if (cc(e, c))
        return !1;
      const f = o(L1(e, c));
      if (t.has(f) || r.has(f)) {
        if (c === ".d.ts" && (cc(e, ".js") || cc(e, ".jsx")))
          continue;
        return !0;
      }
    }
    return !1;
  }
  function y4e(e, t, r, i) {
    const o = ze(r, (s) => Tc(e, s) ? s : void 0);
    if (o)
      for (let s = o.length - 1; s >= 0; s--) {
        const c = o[s];
        if (cc(e, c))
          return;
        const f = i(L1(e, c));
        t.delete(f);
      }
  }
  function v4e(e) {
    const t = {};
    for (const r in e)
      if (Ps(e, r)) {
        const i = tK(r);
        i !== void 0 && (t[r] = pK(e[r], i));
      }
    return t;
  }
  function pK(e, t) {
    switch (t.type) {
      case "object":
        return "";
      case "string":
        return "";
      case "number":
        return typeof e == "number" ? e : "";
      case "boolean":
        return typeof e == "boolean" ? e : "";
      case "listOrElement":
        if (!Va(e))
          return pK(e, t.element);
      case "list":
        const r = t.element;
        return Va(e) ? e.map((i) => pK(i, r)) : "";
      default:
        return of(t.type, (i, o) => {
          if (i === e)
            return o;
        });
    }
  }
  function mK(e) {
    switch (e.type) {
      case "number":
        return 1;
      case "boolean":
        return !0;
      case "string":
        const t = e.defaultValueDescription;
        return e.isFilePath ? `./${t && typeof t == "string" ? t : ""}` : "";
      case "list":
        return [];
      case "listOrElement":
        return mK(e.element);
      case "object":
        return {};
      default:
        const r = U4(e.type.keys());
        return r !== void 0 ? r : D.fail("Expected 'option.type' to have entries.");
    }
  }
  var o8, hK, Wk, gK, s8, l8, c8, u8, d8, yK, m5, yg, vK, bK, EK, h5, g5, TK, SK, xK, y5, v5, Rpe, Npe, b5, f8, Ope, Ppe, Mpe, AK, Fpe, _8, Bpe, Gpe, Upe, p8, CK, E5, Vpe, jpe, b4e = C({
    "src/compiler/commandLineParser.ts"() {
      Oa(), o8 = {
        name: "compileOnSave",
        type: "boolean",
        defaultValueDescription: !1
      }, hK = new Map(Object.entries({
        preserve: 1,
        "react-native": 3,
        react: 2,
        "react-jsx": 4,
        "react-jsxdev": 5
      })), Wk = new Map(ao(hK.entries(), ([e, t]) => ["" + t, e])), gK = [
        ["es5", "lib.es5.d.ts"],
        ["es6", "lib.es2015.d.ts"],
        ["es2015", "lib.es2015.d.ts"],
        ["es7", "lib.es2016.d.ts"],
        ["es2016", "lib.es2016.d.ts"],
        ["es2017", "lib.es2017.d.ts"],
        ["es2018", "lib.es2018.d.ts"],
        ["es2019", "lib.es2019.d.ts"],
        ["es2020", "lib.es2020.d.ts"],
        ["es2021", "lib.es2021.d.ts"],
        ["es2022", "lib.es2022.d.ts"],
        ["es2023", "lib.es2023.d.ts"],
        ["esnext", "lib.esnext.d.ts"],
        ["dom", "lib.dom.d.ts"],
        ["dom.iterable", "lib.dom.iterable.d.ts"],
        ["webworker", "lib.webworker.d.ts"],
        ["webworker.importscripts", "lib.webworker.importscripts.d.ts"],
        ["webworker.iterable", "lib.webworker.iterable.d.ts"],
        ["scripthost", "lib.scripthost.d.ts"],
        ["es2015.core", "lib.es2015.core.d.ts"],
        ["es2015.collection", "lib.es2015.collection.d.ts"],
        ["es2015.generator", "lib.es2015.generator.d.ts"],
        ["es2015.iterable", "lib.es2015.iterable.d.ts"],
        ["es2015.promise", "lib.es2015.promise.d.ts"],
        ["es2015.proxy", "lib.es2015.proxy.d.ts"],
        ["es2015.reflect", "lib.es2015.reflect.d.ts"],
        ["es2015.symbol", "lib.es2015.symbol.d.ts"],
        ["es2015.symbol.wellknown", "lib.es2015.symbol.wellknown.d.ts"],
        ["es2016.array.include", "lib.es2016.array.include.d.ts"],
        ["es2017.object", "lib.es2017.object.d.ts"],
        ["es2017.sharedmemory", "lib.es2017.sharedmemory.d.ts"],
        ["es2017.string", "lib.es2017.string.d.ts"],
        ["es2017.intl", "lib.es2017.intl.d.ts"],
        ["es2017.typedarrays", "lib.es2017.typedarrays.d.ts"],
        ["es2018.asyncgenerator", "lib.es2018.asyncgenerator.d.ts"],
        ["es2018.asynciterable", "lib.es2018.asynciterable.d.ts"],
        ["es2018.intl", "lib.es2018.intl.d.ts"],
        ["es2018.promise", "lib.es2018.promise.d.ts"],
        ["es2018.regexp", "lib.es2018.regexp.d.ts"],
        ["es2019.array", "lib.es2019.array.d.ts"],
        ["es2019.object", "lib.es2019.object.d.ts"],
        ["es2019.string", "lib.es2019.string.d.ts"],
        ["es2019.symbol", "lib.es2019.symbol.d.ts"],
        ["es2019.intl", "lib.es2019.intl.d.ts"],
        ["es2020.bigint", "lib.es2020.bigint.d.ts"],
        ["es2020.date", "lib.es2020.date.d.ts"],
        ["es2020.promise", "lib.es2020.promise.d.ts"],
        ["es2020.sharedmemory", "lib.es2020.sharedmemory.d.ts"],
        ["es2020.string", "lib.es2020.string.d.ts"],
        ["es2020.symbol.wellknown", "lib.es2020.symbol.wellknown.d.ts"],
        ["es2020.intl", "lib.es2020.intl.d.ts"],
        ["es2020.number", "lib.es2020.number.d.ts"],
        ["es2021.promise", "lib.es2021.promise.d.ts"],
        ["es2021.string", "lib.es2021.string.d.ts"],
        ["es2021.weakref", "lib.es2021.weakref.d.ts"],
        ["es2021.intl", "lib.es2021.intl.d.ts"],
        ["es2022.array", "lib.es2022.array.d.ts"],
        ["es2022.error", "lib.es2022.error.d.ts"],
        ["es2022.intl", "lib.es2022.intl.d.ts"],
        ["es2022.object", "lib.es2022.object.d.ts"],
        ["es2022.sharedmemory", "lib.es2022.sharedmemory.d.ts"],
        ["es2022.string", "lib.es2022.string.d.ts"],
        ["es2022.regexp", "lib.es2022.regexp.d.ts"],
        ["es2023.array", "lib.es2023.array.d.ts"],
        ["esnext.array", "lib.es2023.array.d.ts"],
        ["esnext.symbol", "lib.es2019.symbol.d.ts"],
        ["esnext.asynciterable", "lib.es2018.asynciterable.d.ts"],
        ["esnext.intl", "lib.esnext.intl.d.ts"],
        ["esnext.bigint", "lib.es2020.bigint.d.ts"],
        ["esnext.string", "lib.es2022.string.d.ts"],
        ["esnext.promise", "lib.es2021.promise.d.ts"],
        ["esnext.weakref", "lib.es2021.weakref.d.ts"],
        ["decorators", "lib.decorators.d.ts"],
        ["decorators.legacy", "lib.decorators.legacy.d.ts"]
      ], s8 = gK.map((e) => e[0]), l8 = new Map(gK), c8 = [
        {
          name: "watchFile",
          type: new Map(Object.entries({
            fixedpollinginterval: 0,
            prioritypollinginterval: 1,
            dynamicprioritypolling: 2,
            fixedchunksizepolling: 3,
            usefsevents: 4,
            usefseventsonparentdirectory: 5
          })),
          category: _.Watch_and_Build_Modes,
          description: _.Specify_how_the_TypeScript_watch_mode_works,
          defaultValueDescription: 4
        },
        {
          name: "watchDirectory",
          type: new Map(Object.entries({
            usefsevents: 0,
            fixedpollinginterval: 1,
            dynamicprioritypolling: 2,
            fixedchunksizepolling: 3
          })),
          category: _.Watch_and_Build_Modes,
          description: _.Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality,
          defaultValueDescription: 0
        },
        {
          name: "fallbackPolling",
          type: new Map(Object.entries({
            fixedinterval: 0,
            priorityinterval: 1,
            dynamicpriority: 2,
            fixedchunksize: 3
          })),
          category: _.Watch_and_Build_Modes,
          description: _.Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers,
          defaultValueDescription: 1
        },
        {
          name: "synchronousWatchDirectory",
          type: "boolean",
          category: _.Watch_and_Build_Modes,
          description: _.Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively,
          defaultValueDescription: !1
        },
        {
          name: "excludeDirectories",
          type: "list",
          element: {
            name: "excludeDirectory",
            type: "string",
            isFilePath: !0,
            extraValidation: _K
          },
          category: _.Watch_and_Build_Modes,
          description: _.Remove_a_list_of_directories_from_the_watch_process
        },
        {
          name: "excludeFiles",
          type: "list",
          element: {
            name: "excludeFile",
            type: "string",
            isFilePath: !0,
            extraValidation: _K
          },
          category: _.Watch_and_Build_Modes,
          description: _.Remove_a_list_of_files_from_the_watch_mode_s_processing
        }
      ], u8 = [
        {
          name: "help",
          shortName: "h",
          type: "boolean",
          showInSimplifiedHelpView: !0,
          isCommandLineOnly: !0,
          category: _.Command_line_Options,
          description: _.Print_this_message,
          defaultValueDescription: !1
        },
        {
          name: "help",
          shortName: "?",
          type: "boolean",
          isCommandLineOnly: !0,
          category: _.Command_line_Options,
          defaultValueDescription: !1
        },
        {
          name: "watch",
          shortName: "w",
          type: "boolean",
          showInSimplifiedHelpView: !0,
          isCommandLineOnly: !0,
          category: _.Command_line_Options,
          description: _.Watch_input_files,
          defaultValueDescription: !1
        },
        {
          name: "preserveWatchOutput",
          type: "boolean",
          showInSimplifiedHelpView: !1,
          category: _.Output_Formatting,
          description: _.Disable_wiping_the_console_in_watch_mode,
          defaultValueDescription: !1
        },
        {
          name: "listFiles",
          type: "boolean",
          category: _.Compiler_Diagnostics,
          description: _.Print_all_of_the_files_read_during_the_compilation,
          defaultValueDescription: !1
        },
        {
          name: "explainFiles",
          type: "boolean",
          category: _.Compiler_Diagnostics,
          description: _.Print_files_read_during_the_compilation_including_why_it_was_included,
          defaultValueDescription: !1
        },
        {
          name: "listEmittedFiles",
          type: "boolean",
          category: _.Compiler_Diagnostics,
          description: _.Print_the_names_of_emitted_files_after_a_compilation,
          defaultValueDescription: !1
        },
        {
          name: "pretty",
          type: "boolean",
          showInSimplifiedHelpView: !0,
          category: _.Output_Formatting,
          description: _.Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read,
          defaultValueDescription: !0
        },
        {
          name: "traceResolution",
          type: "boolean",
          category: _.Compiler_Diagnostics,
          description: _.Log_paths_used_during_the_moduleResolution_process,
          defaultValueDescription: !1
        },
        {
          name: "diagnostics",
          type: "boolean",
          category: _.Compiler_Diagnostics,
          description: _.Output_compiler_performance_information_after_building,
          defaultValueDescription: !1
        },
        {
          name: "extendedDiagnostics",
          type: "boolean",
          category: _.Compiler_Diagnostics,
          description: _.Output_more_detailed_compiler_performance_information_after_building,
          defaultValueDescription: !1
        },
        {
          name: "generateCpuProfile",
          type: "string",
          isFilePath: !0,
          paramType: _.FILE_OR_DIRECTORY,
          category: _.Compiler_Diagnostics,
          description: _.Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging,
          defaultValueDescription: "profile.cpuprofile"
        },
        {
          name: "generateTrace",
          type: "string",
          isFilePath: !0,
          isCommandLineOnly: !0,
          paramType: _.DIRECTORY,
          category: _.Compiler_Diagnostics,
          description: _.Generates_an_event_trace_and_a_list_of_types
        },
        {
          name: "incremental",
          shortName: "i",
          type: "boolean",
          category: _.Projects,
          description: _.Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects,
          transpileOptionValue: void 0,
          defaultValueDescription: _.false_unless_composite_is_set
        },
        {
          name: "declaration",
          shortName: "d",
          type: "boolean",
          affectsBuildInfo: !0,
          showInSimplifiedHelpView: !0,
          category: _.Emit,
          transpileOptionValue: void 0,
          description: _.Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project,
          defaultValueDescription: _.false_unless_composite_is_set
        },
        {
          name: "declarationMap",
          type: "boolean",
          affectsBuildInfo: !0,
          showInSimplifiedHelpView: !0,
          category: _.Emit,
          transpileOptionValue: void 0,
          defaultValueDescription: !1,
          description: _.Create_sourcemaps_for_d_ts_files
        },
        {
          name: "emitDeclarationOnly",
          type: "boolean",
          affectsBuildInfo: !0,
          showInSimplifiedHelpView: !0,
          category: _.Emit,
          description: _.Only_output_d_ts_files_and_not_JavaScript_files,
          transpileOptionValue: void 0,
          defaultValueDescription: !1
        },
        {
          name: "sourceMap",
          type: "boolean",
          affectsBuildInfo: !0,
          showInSimplifiedHelpView: !0,
          category: _.Emit,
          defaultValueDescription: !1,
          description: _.Create_source_map_files_for_emitted_JavaScript_files
        },
        {
          name: "inlineSourceMap",
          type: "boolean",
          affectsBuildInfo: !0,
          category: _.Emit,
          description: _.Include_sourcemap_files_inside_the_emitted_JavaScript,
          defaultValueDescription: !1
        },
        {
          name: "assumeChangesOnlyAffectDirectDependencies",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsEmit: !0,
          affectsBuildInfo: !0,
          category: _.Watch_and_Build_Modes,
          description: _.Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it,
          defaultValueDescription: !1
        },
        {
          name: "locale",
          type: "string",
          category: _.Command_line_Options,
          isCommandLineOnly: !0,
          description: _.Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit,
          defaultValueDescription: _.Platform_specific
        }
      ], d8 = {
        name: "target",
        shortName: "t",
        type: new Map(Object.entries({
          es3: 0,
          es5: 1,
          es6: 2,
          es2015: 2,
          es2016: 3,
          es2017: 4,
          es2018: 5,
          es2019: 6,
          es2020: 7,
          es2021: 8,
          es2022: 9,
          esnext: 99
        })),
        affectsSourceFile: !0,
        affectsModuleResolution: !0,
        affectsEmit: !0,
        affectsBuildInfo: !0,
        paramType: _.VERSION,
        showInSimplifiedHelpView: !0,
        category: _.Language_and_Environment,
        description: _.Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations,
        defaultValueDescription: 1
      }, yK = {
        name: "module",
        shortName: "m",
        type: new Map(Object.entries({
          none: 0,
          commonjs: 1,
          amd: 2,
          system: 4,
          umd: 3,
          es6: 5,
          es2015: 5,
          es2020: 6,
          es2022: 7,
          esnext: 99,
          node16: 100,
          nodenext: 199
        })),
        affectsModuleResolution: !0,
        affectsEmit: !0,
        affectsBuildInfo: !0,
        paramType: _.KIND,
        showInSimplifiedHelpView: !0,
        category: _.Modules,
        description: _.Specify_what_module_code_is_generated,
        defaultValueDescription: void 0
      }, m5 = [
        {
          name: "all",
          type: "boolean",
          showInSimplifiedHelpView: !0,
          category: _.Command_line_Options,
          description: _.Show_all_compiler_options,
          defaultValueDescription: !1
        },
        {
          name: "version",
          shortName: "v",
          type: "boolean",
          showInSimplifiedHelpView: !0,
          category: _.Command_line_Options,
          description: _.Print_the_compiler_s_version,
          defaultValueDescription: !1
        },
        {
          name: "init",
          type: "boolean",
          showInSimplifiedHelpView: !0,
          category: _.Command_line_Options,
          description: _.Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file,
          defaultValueDescription: !1
        },
        {
          name: "project",
          shortName: "p",
          type: "string",
          isFilePath: !0,
          showInSimplifiedHelpView: !0,
          category: _.Command_line_Options,
          paramType: _.FILE_OR_DIRECTORY,
          description: _.Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json
        },
        {
          name: "build",
          type: "boolean",
          shortName: "b",
          showInSimplifiedHelpView: !0,
          category: _.Command_line_Options,
          description: _.Build_one_or_more_projects_and_their_dependencies_if_out_of_date,
          defaultValueDescription: !1
        },
        {
          name: "showConfig",
          type: "boolean",
          showInSimplifiedHelpView: !0,
          category: _.Command_line_Options,
          isCommandLineOnly: !0,
          description: _.Print_the_final_configuration_instead_of_building,
          defaultValueDescription: !1
        },
        {
          name: "listFilesOnly",
          type: "boolean",
          category: _.Command_line_Options,
          isCommandLineOnly: !0,
          description: _.Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing,
          defaultValueDescription: !1
        },
        d8,
        yK,
        {
          name: "lib",
          type: "list",
          element: {
            name: "lib",
            type: l8,
            defaultValueDescription: void 0
          },
          affectsProgramStructure: !0,
          showInSimplifiedHelpView: !0,
          category: _.Language_and_Environment,
          description: _.Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment,
          transpileOptionValue: void 0
        },
        {
          name: "allowJs",
          type: "boolean",
          affectsModuleResolution: !0,
          showInSimplifiedHelpView: !0,
          category: _.JavaScript_Support,
          description: _.Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these_files,
          defaultValueDescription: !1
        },
        {
          name: "checkJs",
          type: "boolean",
          showInSimplifiedHelpView: !0,
          category: _.JavaScript_Support,
          description: _.Enable_error_reporting_in_type_checked_JavaScript_files,
          defaultValueDescription: !1
        },
        {
          name: "jsx",
          type: hK,
          affectsSourceFile: !0,
          affectsEmit: !0,
          affectsBuildInfo: !0,
          affectsModuleResolution: !0,
          paramType: _.KIND,
          showInSimplifiedHelpView: !0,
          category: _.Language_and_Environment,
          description: _.Specify_what_JSX_code_is_generated,
          defaultValueDescription: void 0
        },
        {
          name: "outFile",
          type: "string",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          affectsDeclarationPath: !0,
          isFilePath: !0,
          paramType: _.FILE,
          showInSimplifiedHelpView: !0,
          category: _.Emit,
          description: _.Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output,
          transpileOptionValue: void 0
        },
        {
          name: "outDir",
          type: "string",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          affectsDeclarationPath: !0,
          isFilePath: !0,
          paramType: _.DIRECTORY,
          showInSimplifiedHelpView: !0,
          category: _.Emit,
          description: _.Specify_an_output_folder_for_all_emitted_files
        },
        {
          name: "rootDir",
          type: "string",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          affectsDeclarationPath: !0,
          isFilePath: !0,
          paramType: _.LOCATION,
          category: _.Modules,
          description: _.Specify_the_root_folder_within_your_source_files,
          defaultValueDescription: _.Computed_from_the_list_of_input_files
        },
        {
          name: "composite",
          type: "boolean",
          affectsBuildInfo: !0,
          isTSConfigOnly: !0,
          category: _.Projects,
          transpileOptionValue: void 0,
          defaultValueDescription: !1,
          description: _.Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references
        },
        {
          name: "tsBuildInfoFile",
          type: "string",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          isFilePath: !0,
          paramType: _.FILE,
          category: _.Projects,
          transpileOptionValue: void 0,
          defaultValueDescription: ".tsbuildinfo",
          description: _.Specify_the_path_to_tsbuildinfo_incremental_compilation_file
        },
        {
          name: "removeComments",
          type: "boolean",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          showInSimplifiedHelpView: !0,
          category: _.Emit,
          defaultValueDescription: !1,
          description: _.Disable_emitting_comments
        },
        {
          name: "noEmit",
          type: "boolean",
          showInSimplifiedHelpView: !0,
          category: _.Emit,
          description: _.Disable_emitting_files_from_a_compilation,
          transpileOptionValue: void 0,
          defaultValueDescription: !1
        },
        {
          name: "importHelpers",
          type: "boolean",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          category: _.Emit,
          description: _.Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file,
          defaultValueDescription: !1
        },
        {
          name: "importsNotUsedAsValues",
          type: new Map(Object.entries({
            remove: 0,
            preserve: 1,
            error: 2
          })),
          affectsEmit: !0,
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Emit,
          description: _.Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types,
          defaultValueDescription: 0
        },
        {
          name: "downlevelIteration",
          type: "boolean",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          category: _.Emit,
          description: _.Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration,
          defaultValueDescription: !1
        },
        {
          name: "isolatedModules",
          type: "boolean",
          category: _.Interop_Constraints,
          description: _.Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports,
          transpileOptionValue: !0,
          defaultValueDescription: !1
        },
        {
          name: "verbatimModuleSyntax",
          type: "boolean",
          category: _.Interop_Constraints,
          description: _.Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting,
          defaultValueDescription: !1
        },
        {
          name: "strict",
          type: "boolean",
          affectsBuildInfo: !0,
          showInSimplifiedHelpView: !0,
          category: _.Type_Checking,
          description: _.Enable_all_strict_type_checking_options,
          defaultValueDescription: !1
        },
        {
          name: "noImplicitAny",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          strictFlag: !0,
          category: _.Type_Checking,
          description: _.Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type,
          defaultValueDescription: _.false_unless_strict_is_set
        },
        {
          name: "strictNullChecks",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          strictFlag: !0,
          category: _.Type_Checking,
          description: _.When_type_checking_take_into_account_null_and_undefined,
          defaultValueDescription: _.false_unless_strict_is_set
        },
        {
          name: "strictFunctionTypes",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          strictFlag: !0,
          category: _.Type_Checking,
          description: _.When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible,
          defaultValueDescription: _.false_unless_strict_is_set
        },
        {
          name: "strictBindCallApply",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          strictFlag: !0,
          category: _.Type_Checking,
          description: _.Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function,
          defaultValueDescription: _.false_unless_strict_is_set
        },
        {
          name: "strictPropertyInitialization",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          strictFlag: !0,
          category: _.Type_Checking,
          description: _.Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor,
          defaultValueDescription: _.false_unless_strict_is_set
        },
        {
          name: "noImplicitThis",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          strictFlag: !0,
          category: _.Type_Checking,
          description: _.Enable_error_reporting_when_this_is_given_the_type_any,
          defaultValueDescription: _.false_unless_strict_is_set
        },
        {
          name: "useUnknownInCatchVariables",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          strictFlag: !0,
          category: _.Type_Checking,
          description: _.Default_catch_clause_variables_as_unknown_instead_of_any,
          defaultValueDescription: !1
        },
        {
          name: "alwaysStrict",
          type: "boolean",
          affectsSourceFile: !0,
          affectsEmit: !0,
          affectsBuildInfo: !0,
          strictFlag: !0,
          category: _.Type_Checking,
          description: _.Ensure_use_strict_is_always_emitted,
          defaultValueDescription: _.false_unless_strict_is_set
        },
        {
          name: "noUnusedLocals",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Type_Checking,
          description: _.Enable_error_reporting_when_local_variables_aren_t_read,
          defaultValueDescription: !1
        },
        {
          name: "noUnusedParameters",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Type_Checking,
          description: _.Raise_an_error_when_a_function_parameter_isn_t_read,
          defaultValueDescription: !1
        },
        {
          name: "exactOptionalPropertyTypes",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Type_Checking,
          description: _.Interpret_optional_property_types_as_written_rather_than_adding_undefined,
          defaultValueDescription: !1
        },
        {
          name: "noImplicitReturns",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Type_Checking,
          description: _.Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function,
          defaultValueDescription: !1
        },
        {
          name: "noFallthroughCasesInSwitch",
          type: "boolean",
          affectsBindDiagnostics: !0,
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Type_Checking,
          description: _.Enable_error_reporting_for_fallthrough_cases_in_switch_statements,
          defaultValueDescription: !1
        },
        {
          name: "noUncheckedIndexedAccess",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Type_Checking,
          description: _.Add_undefined_to_a_type_when_accessed_using_an_index,
          defaultValueDescription: !1
        },
        {
          name: "noImplicitOverride",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Type_Checking,
          description: _.Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier,
          defaultValueDescription: !1
        },
        {
          name: "noPropertyAccessFromIndexSignature",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          showInSimplifiedHelpView: !1,
          category: _.Type_Checking,
          description: _.Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type,
          defaultValueDescription: !1
        },
        {
          name: "moduleResolution",
          type: new Map(Object.entries({
            node10: 2,
            node: 2,
            classic: 1,
            node16: 3,
            nodenext: 99,
            bundler: 100
          })),
          deprecatedKeys: /* @__PURE__ */ new Set(["node"]),
          affectsModuleResolution: !0,
          paramType: _.STRATEGY,
          category: _.Modules,
          description: _.Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier,
          defaultValueDescription: _.module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node
        },
        {
          name: "baseUrl",
          type: "string",
          affectsModuleResolution: !0,
          isFilePath: !0,
          category: _.Modules,
          description: _.Specify_the_base_directory_to_resolve_non_relative_module_names
        },
        {
          name: "paths",
          type: "object",
          affectsModuleResolution: !0,
          isTSConfigOnly: !0,
          category: _.Modules,
          description: _.Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations,
          transpileOptionValue: void 0
        },
        {
          name: "rootDirs",
          type: "list",
          isTSConfigOnly: !0,
          element: {
            name: "rootDirs",
            type: "string",
            isFilePath: !0
          },
          affectsModuleResolution: !0,
          category: _.Modules,
          description: _.Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules,
          transpileOptionValue: void 0,
          defaultValueDescription: _.Computed_from_the_list_of_input_files
        },
        {
          name: "typeRoots",
          type: "list",
          element: {
            name: "typeRoots",
            type: "string",
            isFilePath: !0
          },
          affectsModuleResolution: !0,
          category: _.Modules,
          description: _.Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types
        },
        {
          name: "types",
          type: "list",
          element: {
            name: "types",
            type: "string"
          },
          affectsProgramStructure: !0,
          showInSimplifiedHelpView: !0,
          category: _.Modules,
          description: _.Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file,
          transpileOptionValue: void 0
        },
        {
          name: "allowSyntheticDefaultImports",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Interop_Constraints,
          description: _.Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export,
          defaultValueDescription: _.module_system_or_esModuleInterop
        },
        {
          name: "esModuleInterop",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsEmit: !0,
          affectsBuildInfo: !0,
          showInSimplifiedHelpView: !0,
          category: _.Interop_Constraints,
          description: _.Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility,
          defaultValueDescription: !1
        },
        {
          name: "preserveSymlinks",
          type: "boolean",
          category: _.Interop_Constraints,
          description: _.Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node,
          defaultValueDescription: !1
        },
        {
          name: "allowUmdGlobalAccess",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Modules,
          description: _.Allow_accessing_UMD_globals_from_modules,
          defaultValueDescription: !1
        },
        {
          name: "moduleSuffixes",
          type: "list",
          element: {
            name: "suffix",
            type: "string"
          },
          listPreserveFalsyValues: !0,
          affectsModuleResolution: !0,
          category: _.Modules,
          description: _.List_of_file_name_suffixes_to_search_when_resolving_a_module
        },
        {
          name: "allowImportingTsExtensions",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          category: _.Modules,
          description: _.Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set,
          defaultValueDescription: !1
        },
        {
          name: "resolvePackageJsonExports",
          type: "boolean",
          affectsModuleResolution: !0,
          category: _.Modules,
          description: _.Use_the_package_json_exports_field_when_resolving_package_imports,
          defaultValueDescription: _.true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false
        },
        {
          name: "resolvePackageJsonImports",
          type: "boolean",
          affectsModuleResolution: !0,
          category: _.Modules,
          description: _.Use_the_package_json_imports_field_when_resolving_imports,
          defaultValueDescription: _.true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false
        },
        {
          name: "customConditions",
          type: "list",
          element: {
            name: "condition",
            type: "string"
          },
          affectsModuleResolution: !0,
          category: _.Modules,
          description: _.Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports
        },
        {
          name: "sourceRoot",
          type: "string",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          paramType: _.LOCATION,
          category: _.Emit,
          description: _.Specify_the_root_path_for_debuggers_to_find_the_reference_source_code
        },
        {
          name: "mapRoot",
          type: "string",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          paramType: _.LOCATION,
          category: _.Emit,
          description: _.Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations
        },
        {
          name: "inlineSources",
          type: "boolean",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          category: _.Emit,
          description: _.Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript,
          defaultValueDescription: !1
        },
        {
          name: "experimentalDecorators",
          type: "boolean",
          affectsEmit: !0,
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Language_and_Environment,
          description: _.Enable_experimental_support_for_legacy_experimental_decorators,
          defaultValueDescription: !1
        },
        {
          name: "emitDecoratorMetadata",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsEmit: !0,
          affectsBuildInfo: !0,
          category: _.Language_and_Environment,
          description: _.Emit_design_type_metadata_for_decorated_declarations_in_source_files,
          defaultValueDescription: !1
        },
        {
          name: "jsxFactory",
          type: "string",
          category: _.Language_and_Environment,
          description: _.Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h,
          defaultValueDescription: "`React.createElement`"
        },
        {
          name: "jsxFragmentFactory",
          type: "string",
          category: _.Language_and_Environment,
          description: _.Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment,
          defaultValueDescription: "React.Fragment"
        },
        {
          name: "jsxImportSource",
          type: "string",
          affectsSemanticDiagnostics: !0,
          affectsEmit: !0,
          affectsBuildInfo: !0,
          affectsModuleResolution: !0,
          category: _.Language_and_Environment,
          description: _.Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk,
          defaultValueDescription: "react"
        },
        {
          name: "resolveJsonModule",
          type: "boolean",
          affectsModuleResolution: !0,
          category: _.Modules,
          description: _.Enable_importing_json_files,
          defaultValueDescription: !1
        },
        {
          name: "allowArbitraryExtensions",
          type: "boolean",
          affectsProgramStructure: !0,
          category: _.Modules,
          description: _.Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present,
          defaultValueDescription: !1
        },
        {
          name: "out",
          type: "string",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          affectsDeclarationPath: !0,
          isFilePath: !1,
          category: _.Backwards_Compatibility,
          paramType: _.FILE,
          transpileOptionValue: void 0,
          description: _.Deprecated_setting_Use_outFile_instead
        },
        {
          name: "reactNamespace",
          type: "string",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          category: _.Language_and_Environment,
          description: _.Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit,
          defaultValueDescription: "`React`"
        },
        {
          name: "skipDefaultLibCheck",
          type: "boolean",
          affectsBuildInfo: !0,
          category: _.Completeness,
          description: _.Skip_type_checking_d_ts_files_that_are_included_with_TypeScript,
          defaultValueDescription: !1
        },
        {
          name: "charset",
          type: "string",
          category: _.Backwards_Compatibility,
          description: _.No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files,
          defaultValueDescription: "utf8"
        },
        {
          name: "emitBOM",
          type: "boolean",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          category: _.Emit,
          description: _.Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files,
          defaultValueDescription: !1
        },
        {
          name: "newLine",
          type: new Map(Object.entries({
            crlf: 0,
            lf: 1
          })),
          affectsEmit: !0,
          affectsBuildInfo: !0,
          paramType: _.NEWLINE,
          category: _.Emit,
          description: _.Set_the_newline_character_for_emitting_files,
          defaultValueDescription: "lf"
        },
        {
          name: "noErrorTruncation",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Output_Formatting,
          description: _.Disable_truncating_types_in_error_messages,
          defaultValueDescription: !1
        },
        {
          name: "noLib",
          type: "boolean",
          category: _.Language_and_Environment,
          affectsProgramStructure: !0,
          description: _.Disable_including_any_library_files_including_the_default_lib_d_ts,
          transpileOptionValue: !0,
          defaultValueDescription: !1
        },
        {
          name: "noResolve",
          type: "boolean",
          affectsModuleResolution: !0,
          category: _.Modules,
          description: _.Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project,
          transpileOptionValue: !0,
          defaultValueDescription: !1
        },
        {
          name: "stripInternal",
          type: "boolean",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          category: _.Emit,
          description: _.Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments,
          defaultValueDescription: !1
        },
        {
          name: "disableSizeLimit",
          type: "boolean",
          affectsProgramStructure: !0,
          category: _.Editor_Support,
          description: _.Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server,
          defaultValueDescription: !1
        },
        {
          name: "disableSourceOfProjectReferenceRedirect",
          type: "boolean",
          isTSConfigOnly: !0,
          category: _.Projects,
          description: _.Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects,
          defaultValueDescription: !1
        },
        {
          name: "disableSolutionSearching",
          type: "boolean",
          isTSConfigOnly: !0,
          category: _.Projects,
          description: _.Opt_a_project_out_of_multi_project_reference_checking_when_editing,
          defaultValueDescription: !1
        },
        {
          name: "disableReferencedProjectLoad",
          type: "boolean",
          isTSConfigOnly: !0,
          category: _.Projects,
          description: _.Reduce_the_number_of_projects_loaded_automatically_by_TypeScript,
          defaultValueDescription: !1
        },
        {
          name: "noImplicitUseStrict",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Backwards_Compatibility,
          description: _.Disable_adding_use_strict_directives_in_emitted_JavaScript_files,
          defaultValueDescription: !1
        },
        {
          name: "noEmitHelpers",
          type: "boolean",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          category: _.Emit,
          description: _.Disable_generating_custom_helper_functions_like_extends_in_compiled_output,
          defaultValueDescription: !1
        },
        {
          name: "noEmitOnError",
          type: "boolean",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          category: _.Emit,
          transpileOptionValue: void 0,
          description: _.Disable_emitting_files_if_any_type_checking_errors_are_reported,
          defaultValueDescription: !1
        },
        {
          name: "preserveConstEnums",
          type: "boolean",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          category: _.Emit,
          description: _.Disable_erasing_const_enum_declarations_in_generated_code,
          defaultValueDescription: !1
        },
        {
          name: "declarationDir",
          type: "string",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          affectsDeclarationPath: !0,
          isFilePath: !0,
          paramType: _.DIRECTORY,
          category: _.Emit,
          transpileOptionValue: void 0,
          description: _.Specify_the_output_directory_for_generated_declaration_files
        },
        {
          name: "skipLibCheck",
          type: "boolean",
          affectsBuildInfo: !0,
          category: _.Completeness,
          description: _.Skip_type_checking_all_d_ts_files,
          defaultValueDescription: !1
        },
        {
          name: "allowUnusedLabels",
          type: "boolean",
          affectsBindDiagnostics: !0,
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Type_Checking,
          description: _.Disable_error_reporting_for_unused_labels,
          defaultValueDescription: void 0
        },
        {
          name: "allowUnreachableCode",
          type: "boolean",
          affectsBindDiagnostics: !0,
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Type_Checking,
          description: _.Disable_error_reporting_for_unreachable_code,
          defaultValueDescription: void 0
        },
        {
          name: "suppressExcessPropertyErrors",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Backwards_Compatibility,
          description: _.Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals,
          defaultValueDescription: !1
        },
        {
          name: "suppressImplicitAnyIndexErrors",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Backwards_Compatibility,
          description: _.Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures,
          defaultValueDescription: !1
        },
        {
          name: "forceConsistentCasingInFileNames",
          type: "boolean",
          affectsModuleResolution: !0,
          category: _.Interop_Constraints,
          description: _.Ensure_that_casing_is_correct_in_imports,
          defaultValueDescription: !0
        },
        {
          name: "maxNodeModuleJsDepth",
          type: "number",
          affectsModuleResolution: !0,
          category: _.JavaScript_Support,
          description: _.Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs,
          defaultValueDescription: 0
        },
        {
          name: "noStrictGenericChecks",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsBuildInfo: !0,
          category: _.Backwards_Compatibility,
          description: _.Disable_strict_checking_of_generic_signatures_in_function_types,
          defaultValueDescription: !1
        },
        {
          name: "useDefineForClassFields",
          type: "boolean",
          affectsSemanticDiagnostics: !0,
          affectsEmit: !0,
          affectsBuildInfo: !0,
          category: _.Language_and_Environment,
          description: _.Emit_ECMAScript_standard_compliant_class_fields,
          defaultValueDescription: _.true_for_ES2022_and_above_including_ESNext
        },
        {
          name: "preserveValueImports",
          type: "boolean",
          affectsEmit: !0,
          affectsBuildInfo: !0,
          category: _.Emit,
          description: _.Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed,
          defaultValueDescription: !1
        },
        {
          name: "keyofStringsOnly",
          type: "boolean",
          category: _.Backwards_Compatibility,
          description: _.Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option,
          defaultValueDescription: !1
        },
        {
          name: "plugins",
          type: "list",
          isTSConfigOnly: !0,
          element: {
            name: "plugin",
            type: "object"
          },
          description: _.Specify_a_list_of_language_service_plugins_to_include,
          category: _.Editor_Support
        },
        {
          name: "moduleDetection",
          type: new Map(Object.entries({
            auto: 2,
            legacy: 1,
            force: 3
          })),
          affectsModuleResolution: !0,
          description: _.Control_what_method_is_used_to_detect_module_format_JS_files,
          category: _.Language_and_Environment,
          defaultValueDescription: _.auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules
        },
        {
          name: "ignoreDeprecations",
          type: "string",
          defaultValueDescription: void 0
        }
      ], yg = [
        ...u8,
        ...m5
      ], vK = yg.filter((e) => !!e.affectsSemanticDiagnostics), bK = yg.filter((e) => !!e.affectsEmit), EK = yg.filter((e) => !!e.affectsDeclarationPath), h5 = yg.filter((e) => !!e.affectsModuleResolution), g5 = yg.filter((e) => !!e.affectsSourceFile || !!e.affectsModuleResolution || !!e.affectsBindDiagnostics), TK = yg.filter((e) => !!e.affectsProgramStructure), SK = yg.filter((e) => Ps(e, "transpileOptionValue")), xK = [
        {
          name: "verbose",
          shortName: "v",
          category: _.Command_line_Options,
          description: _.Enable_verbose_logging,
          type: "boolean",
          defaultValueDescription: !1
        },
        {
          name: "dry",
          shortName: "d",
          category: _.Command_line_Options,
          description: _.Show_what_would_be_built_or_deleted_if_specified_with_clean,
          type: "boolean",
          defaultValueDescription: !1
        },
        {
          name: "force",
          shortName: "f",
          category: _.Command_line_Options,
          description: _.Build_all_projects_including_those_that_appear_to_be_up_to_date,
          type: "boolean",
          defaultValueDescription: !1
        },
        {
          name: "clean",
          category: _.Command_line_Options,
          description: _.Delete_the_outputs_of_all_projects,
          type: "boolean",
          defaultValueDescription: !1
        }
      ], y5 = [
        ...u8,
        ...xK
      ], v5 = [
        {
          name: "enable",
          type: "boolean",
          defaultValueDescription: !1
        },
        {
          name: "include",
          type: "list",
          element: {
            name: "include",
            type: "string"
          }
        },
        {
          name: "exclude",
          type: "list",
          element: {
            name: "exclude",
            type: "string"
          }
        },
        {
          name: "disableFilenameBasedTypeAcquisition",
          type: "boolean",
          defaultValueDescription: !1
        }
      ], Npe = {
        diagnostic: _.Compiler_option_0_may_only_be_used_with_build,
        getOptionsNameMap: spe
      }, b5 = {
        module: 1,
        target: 3,
        strict: !0,
        esModuleInterop: !0,
        forceConsistentCasingInFileNames: !0,
        skipLibCheck: !0
      }, f8 = {
        alternateMode: Npe,
        getOptionsNameMap: OC,
        optionDeclarations: yg,
        unknownOptionDiagnostic: _.Unknown_compiler_option_0,
        unknownDidYouMeanDiagnostic: _.Unknown_compiler_option_0_Did_you_mean_1,
        optionTypeMismatchDiagnostic: _.Compiler_option_0_expects_an_argument
      }, Ppe = {
        diagnostic: _.Compiler_option_0_may_not_be_used_with_build,
        getOptionsNameMap: OC
      }, Mpe = {
        alternateMode: Ppe,
        getOptionsNameMap: spe,
        optionDeclarations: y5,
        unknownOptionDiagnostic: _.Unknown_build_option_0,
        unknownDidYouMeanDiagnostic: _.Unknown_build_option_0_Did_you_mean_1,
        optionTypeMismatchDiagnostic: _.Build_option_0_requires_a_value_of_type_1
      }, AK = {
        optionDeclarations: v5,
        unknownOptionDiagnostic: _.Unknown_type_acquisition_option_0,
        unknownDidYouMeanDiagnostic: _.Unknown_type_acquisition_option_0_Did_you_mean_1
      }, _8 = {
        getOptionsNameMap: cpe,
        optionDeclarations: c8,
        unknownOptionDiagnostic: _.Unknown_watch_option_0,
        unknownDidYouMeanDiagnostic: _.Unknown_watch_option_0_Did_you_mean_1,
        optionTypeMismatchDiagnostic: _.Watch_option_0_requires_a_value_of_type_1
      }, p8 = {
        name: "extends",
        type: "listOrElement",
        element: {
          name: "extends",
          type: "string"
        },
        category: _.File_Management
      }, E5 = "**/*", Vpe = /(^|\/)\*\*\/?$/, jpe = /^[^*?]*(?=\/[^/]*[*?])/;
    }
  });
  function ha(e) {
    e.trace(oq.apply(void 0, arguments));
  }
  function Hv(e, t) {
    return !!e.traceResolution && t.trace !== void 0;
  }
  function MC(e, t) {
    let r;
    if (t && e) {
      const i = e.contents.packageJsonContent;
      typeof i.name == "string" && typeof i.version == "string" && (r = {
        name: i.name,
        subModuleName: t.path.slice(e.packageDirectory.length + Ms.length),
        version: i.version
      });
    }
    return t && { path: t.path, extension: t.ext, packageId: r, resolvedUsingTsExtension: t.resolvedUsingTsExtension };
  }
  function T5(e) {
    return MC(void 0, e);
  }
  function Hpe(e) {
    if (e)
      return D.assert(e.packageId === void 0), { path: e.path, ext: e.extension, resolvedUsingTsExtension: e.resolvedUsingTsExtension };
  }
  function Wpe(e) {
    const t = [];
    return e & 1 && t.push("TypeScript"), e & 2 && t.push("JavaScript"), e & 4 && t.push("Declaration"), e & 8 && t.push("JSON"), t.join(", ");
  }
  function zpe(e) {
    if (e)
      return D.assert(K3(e.extension)), { fileName: e.path, packageId: e.packageId };
  }
  function qpe(e, t, r, i, o, s, c, f) {
    if (!c.resultFromCache && !c.compilerOptions.preserveSymlinks && t && r && !t.originalPath && !Gc(e)) {
      const { resolvedFileName: d, originalPath: y } = Xpe(t.path, c.host, c.traceEnabled);
      y && (t = { ...t, path: d, originalPath: y });
    }
    return Jpe(t, r, i, o, s, c.resultFromCache, f);
  }
  function Jpe(e, t, r, i, o, s, c) {
    return s ? (s.failedLookupLocations = FC(s.failedLookupLocations, r), s.affectingLocations = FC(s.affectingLocations, i), s.resolutionDiagnostics = FC(s.resolutionDiagnostics, o), s) : {
      resolvedModule: e && {
        resolvedFileName: e.path,
        originalPath: e.originalPath === !0 ? void 0 : e.originalPath,
        extension: e.extension,
        isExternalLibraryImport: t,
        packageId: e.packageId,
        resolvedUsingTsExtension: !!e.resolvedUsingTsExtension
      },
      failedLookupLocations: zk(r),
      affectingLocations: zk(i),
      resolutionDiagnostics: zk(o),
      node10Result: c
    };
  }
  function zk(e) {
    return e.length ? e : void 0;
  }
  function FC(e, t) {
    return t != null && t.length ? e != null && e.length ? (e.push(...t), e) : t : e;
  }
  function Kpe(e, t, r, i) {
    if (!Ps(e, t)) {
      i.traceEnabled && ha(i.host, _.package_json_does_not_have_a_0_field, t);
      return;
    }
    const o = e[t];
    if (typeof o !== r || o === null) {
      i.traceEnabled && ha(i.host, _.Expected_type_of_0_field_in_package_json_to_be_1_got_2, t, r, o === null ? "null" : typeof o);
      return;
    }
    return o;
  }
  function S5(e, t, r, i) {
    const o = Kpe(e, t, "string", i);
    if (o === void 0)
      return;
    if (!o) {
      i.traceEnabled && ha(i.host, _.package_json_had_a_falsy_0_field, t);
      return;
    }
    const s = Jo(Bi(r, o));
    return i.traceEnabled && ha(i.host, _.package_json_has_0_field_1_that_references_2, t, o, s), s;
  }
  function E4e(e, t, r) {
    return S5(e, "typings", t, r) || S5(e, "types", t, r);
  }
  function T4e(e, t, r) {
    return S5(e, "tsconfig", t, r);
  }
  function S4e(e, t, r) {
    return S5(e, "main", t, r);
  }
  function x4e(e, t) {
    const r = Kpe(e, "typesVersions", "object", t);
    if (r !== void 0)
      return t.traceEnabled && ha(t.host, _.package_json_has_a_typesVersions_field_with_version_specific_path_mappings), r;
  }
  function A4e(e, t) {
    const r = x4e(e, t);
    if (r === void 0)
      return;
    if (t.traceEnabled)
      for (const c in r)
        Ps(r, c) && !yA.tryParse(c) && ha(t.host, _.package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range, c);
    const i = x5(r);
    if (!i) {
      t.traceEnabled && ha(t.host, _.package_json_does_not_have_a_typesVersions_entry_that_matches_version_0, pe);
      return;
    }
    const { version: o, paths: s } = i;
    if (typeof s != "object") {
      t.traceEnabled && ha(t.host, _.Expected_type_of_0_field_in_package_json_to_be_1_got_2, `typesVersions['${o}']`, "object", typeof s);
      return;
    }
    return i;
  }
  function x5(e) {
    VK || (VK = new O_(Se));
    for (const t in e) {
      if (!Ps(e, t))
        continue;
      const r = yA.tryParse(t);
      if (r !== void 0 && r.test(VK))
        return { version: t, paths: e[t] };
    }
  }
  function m8(e, t) {
    if (e.typeRoots)
      return e.typeRoots;
    let r;
    if (e.configFilePath ? r = mi(e.configFilePath) : t.getCurrentDirectory && (r = t.getCurrentDirectory()), r !== void 0)
      return C4e(r, t);
  }
  function C4e(e, t) {
    if (!t.directoryExists)
      return [Bi(e, jK)];
    let r;
    return rg(Jo(e), (i) => {
      const o = Bi(i, jK);
      t.directoryExists(o) && (r || (r = [])).push(o);
    }), r;
  }
  function L4e(e, t, r) {
    const i = typeof r.useCaseSensitiveFileNames == "function" ? r.useCaseSensitiveFileNames() : r.useCaseSensitiveFileNames;
    return QE(e, t, !i) === 0;
  }
  function Xpe(e, t, r) {
    const i = V4e(e, t, r), o = L4e(e, i, t);
    return {
      resolvedFileName: o ? e : i,
      originalPath: o ? void 0 : e
    };
  }
  function LK(e, t, r, i, o, s, c) {
    D.assert(typeof e == "string", "Non-string value passed to `ts.resolveTypeReferenceDirective`, likely by a wrapping package working with an outdated `resolveTypeReferenceDirectives` signature. This is probably not a problem in TS itself.");
    const f = Hv(r, i);
    o && (r = o.commandLine.options);
    const d = t ? mi(t) : void 0;
    let y = d ? s == null ? void 0 : s.getFromDirectoryCache(e, c, d, o) : void 0;
    if (!y && d && !Gc(e) && (y = s == null ? void 0 : s.getFromNonRelativeNameCache(e, c, d, o)), y)
      return f && (ha(i, _.Resolving_type_reference_directive_0_containing_file_1, e, t), o && ha(i, _.Using_compiler_options_of_project_reference_redirect_0, o.sourceFile.fileName), ha(i, _.Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1, e, d), te(y)), y;
    const h = m8(r, i);
    f && (t === void 0 ? h === void 0 ? ha(i, _.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set, e) : ha(i, _.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1, e, h) : h === void 0 ? ha(i, _.Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set, e, t) : ha(i, _.Resolving_type_reference_directive_0_containing_file_1_root_directory_2, e, t, h), o && ha(i, _.Using_compiler_options_of_project_reference_redirect_0, o.sourceFile.fileName));
    const E = [], A = [];
    let L = IK(r);
    c === 99 && (vl(r) === 3 || vl(r) === 99) && (L |= 32);
    const I = L & 8 ? BC(r, !!(L & 32)) : [], O = [], k = {
      compilerOptions: r,
      host: i,
      traceEnabled: f,
      failedLookupLocations: E,
      affectingLocations: A,
      packageJsonInfoCache: s,
      features: L,
      conditions: I,
      requestContainingDirectory: d,
      reportDiagnostic: (P) => void O.push(P),
      isConfigLookup: !1,
      candidateIsFromPackageJsonField: !1
    };
    let G = X(), V = !0;
    G || (G = Y(), V = !1);
    let H;
    if (G) {
      const { fileName: P, packageId: de } = G;
      let re = P, ye;
      r.preserveSymlinks || ({ resolvedFileName: re, originalPath: ye } = Xpe(P, i, f)), H = {
        primary: V,
        resolvedFileName: re,
        originalPath: ye,
        packageId: de,
        isExternalLibraryImport: Gx(P)
      };
    }
    return y = {
      resolvedTypeReferenceDirective: H,
      failedLookupLocations: zk(E),
      affectingLocations: zk(A),
      resolutionDiagnostics: zk(O)
    }, d && (s == null || s.getOrCreateCacheForDirectory(d, o).set(e, c, y), Gc(e) || s == null || s.getOrCreateCacheForNonRelativeName(e, c, o).set(d, y)), f && te(y), y;
    function te(P) {
      var de;
      (de = P.resolvedTypeReferenceDirective) != null && de.resolvedFileName ? P.resolvedTypeReferenceDirective.packageId ? ha(i, _.Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3, e, P.resolvedTypeReferenceDirective.resolvedFileName, oT(P.resolvedTypeReferenceDirective.packageId), P.resolvedTypeReferenceDirective.primary) : ha(i, _.Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2, e, P.resolvedTypeReferenceDirective.resolvedFileName, P.resolvedTypeReferenceDirective.primary) : ha(i, _.Type_reference_directive_0_was_not_resolved, e);
    }
    function X() {
      if (h && h.length)
        return f && ha(i, _.Resolving_with_primary_search_path_0, h.join(", ")), Jt(h, (P) => {
          const de = Bi(P, e), re = mi(de), ye = Yp(re, i);
          return !ye && f && ha(i, _.Directory_0_does_not_exist_skipping_all_lookups_in_it, re), zpe(cme(4, de, !ye, k));
        });
      f && ha(i, _.Root_directory_cannot_be_determined_skipping_primary_search_paths);
    }
    function Y() {
      const P = t && mi(t);
      if (P !== void 0) {
        f && ha(i, _.Looking_up_in_node_modules_folder_initial_location_0, P);
        let de;
        if (Gc(e)) {
          const { path: re } = ime(P, e);
          de = I5(4, re, !1, k, !0);
        } else {
          const re = fme(4, e, P, k, void 0, void 0);
          de = re && re.value;
        }
        return zpe(de);
      } else
        f && ha(i, _.Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder);
    }
  }
  function IK(e) {
    let t = 0;
    switch (vl(e)) {
      case 3:
        t = 30;
        break;
      case 99:
        t = 30;
        break;
      case 100:
        t = 30;
        break;
    }
    return e.resolvePackageJsonExports ? t |= 8 : e.resolvePackageJsonExports === !1 && (t &= -9), e.resolvePackageJsonImports ? t |= 2 : e.resolvePackageJsonImports === !1 && (t &= -3), t;
  }
  function BC(e, t) {
    const r = t || vl(e) === 100 ? ["import"] : ["require"];
    return e.noDtsResolution || r.push("types"), vl(e) !== 100 && r.push("node"), va(r, e.customConditions);
  }
  function I4e(e, t, r, i, o) {
    const s = k5(o == null ? void 0 : o.getPackageJsonInfoCache(), i, r);
    return rg(t, (c) => {
      if (mu(c) !== "node_modules") {
        const f = Bi(c, "node_modules"), d = Bi(f, e);
        return Ux(d, !1, s);
      }
    });
  }
  function A5(e, t) {
    if (e.types)
      return e.types;
    const r = [];
    if (t.directoryExists && t.getDirectories) {
      const i = m8(e, t);
      if (i) {
        for (const o of i)
          if (t.directoryExists(o))
            for (const s of t.getDirectories(o)) {
              const c = Jo(s), f = Bi(o, c, "package.json");
              if (!(t.fileExists(f) && nk(f, t).typings === null)) {
                const y = mu(c);
                y.charCodeAt(0) !== 46 && r.push(y);
              }
            }
      }
    }
    return r;
  }
  function kK(e) {
    var t;
    if (e === null || typeof e != "object")
      return "" + e;
    if (Va(e))
      return `[${(t = e.map((i) => kK(i))) == null ? void 0 : t.join(",")}]`;
    let r = "{";
    for (const i in e)
      Ps(e, i) && (r += `${i}: ${kK(e[i])}`);
    return r + "}";
  }
  function wK(e, t) {
    return t.map((r) => kK(j3(e, r))).join("|") + (e.pathsBasePath ? `|${e.pathsBasePath}` : void 0);
  }
  function DK(e) {
    const t = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
    let o = /* @__PURE__ */ new Map();
    return e && t.set(e, o), {
      getMapOfCacheRedirects: s,
      getOrCreateMapOfCacheRedirects: c,
      update: f,
      clear: y
    };
    function s(E) {
      return E ? d(E.commandLine.options, !1) : o;
    }
    function c(E) {
      return E ? d(E.commandLine.options, !0) : o;
    }
    function f(E) {
      e !== E && (e ? o = d(E, !0) : t.set(E, o), e = E);
    }
    function d(E, A) {
      let L = t.get(E);
      if (L)
        return L;
      const I = h(E);
      if (L = i.get(I), !L) {
        if (e) {
          const O = h(e);
          O === I ? L = o : i.has(O) || i.set(O, o);
        }
        A && (L ?? (L = /* @__PURE__ */ new Map())), L && i.set(I, L);
      }
      return L && t.set(E, L), L;
    }
    function y() {
      const E = e && r.get(e);
      o.clear(), t.clear(), r.clear(), i.clear(), e && (E && r.set(e, E), t.set(e, o));
    }
    function h(E) {
      let A = r.get(E);
      return A || r.set(E, A = wK(E, h5)), A;
    }
  }
  function k4e(e, t) {
    let r;
    return { getPackageJsonInfo: i, setPackageJsonInfo: o, clear: s, entries: c, getInternalMap: f };
    function i(d) {
      return r == null ? void 0 : r.get(zs(d, e, t));
    }
    function o(d, y) {
      (r || (r = /* @__PURE__ */ new Map())).set(zs(d, e, t), y);
    }
    function s() {
      r = void 0;
    }
    function c() {
      const d = r == null ? void 0 : r.entries();
      return d ? Ro(d) : [];
    }
    function f() {
      return r;
    }
  }
  function Ype(e, t, r, i) {
    const o = e.getOrCreateMapOfCacheRedirects(t);
    let s = o.get(r);
    return s || (s = i(), o.set(r, s)), s;
  }
  function w4e(e, t, r) {
    const i = DK(r);
    return {
      getFromDirectoryCache: f,
      getOrCreateCacheForDirectory: c,
      clear: o,
      update: s
    };
    function o() {
      i.clear();
    }
    function s(d) {
      i.update(d);
    }
    function c(d, y) {
      const h = zs(d, e, t);
      return Ype(i, y, h, () => OT());
    }
    function f(d, y, h, E) {
      var A, L;
      const I = zs(h, e, t);
      return (L = (A = i.getMapOfCacheRedirects(E)) == null ? void 0 : A.get(I)) == null ? void 0 : L.get(d, y);
    }
  }
  function qk(e, t) {
    return t === void 0 ? e : `${t}|${e}`;
  }
  function OT() {
    const e = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), r = {
      get(o, s) {
        return e.get(i(o, s));
      },
      set(o, s, c) {
        return e.set(i(o, s), c), r;
      },
      delete(o, s) {
        return e.delete(i(o, s)), r;
      },
      has(o, s) {
        return e.has(i(o, s));
      },
      forEach(o) {
        return e.forEach((s, c) => {
          const [f, d] = t.get(c);
          return o(s, f, d);
        });
      },
      size() {
        return e.size;
      }
    };
    return r;
    function i(o, s) {
      const c = qk(o, s);
      return t.set(c, [o, s]), c;
    }
  }
  function RK(e, t, r, i) {
    D.assert(t.length === r.length);
    const o = OT();
    for (let s = 0; s < t.length; ++s) {
      const c = t[s];
      o.set(i.getName(c), i.getMode(c, e), r[s]);
    }
    return o;
  }
  function D4e(e) {
    return e.resolvedModule && (e.resolvedModule.originalPath || e.resolvedModule.resolvedFileName);
  }
  function R4e(e) {
    return e.resolvedTypeReferenceDirective && (e.resolvedTypeReferenceDirective.originalPath || e.resolvedTypeReferenceDirective.resolvedFileName);
  }
  function N4e(e, t, r, i) {
    const o = DK(r);
    return {
      getFromNonRelativeNameCache: f,
      getOrCreateCacheForNonRelativeName: d,
      clear: s,
      update: c
    };
    function s() {
      o.clear();
    }
    function c(h) {
      o.update(h);
    }
    function f(h, E, A, L) {
      var I, O;
      return D.assert(!Gc(h)), (O = (I = o.getMapOfCacheRedirects(L)) == null ? void 0 : I.get(qk(h, E))) == null ? void 0 : O.get(A);
    }
    function d(h, E, A) {
      return D.assert(!Gc(h)), Ype(o, A, qk(h, E), y);
    }
    function y() {
      const h = /* @__PURE__ */ new Map();
      return { get: E, set: A };
      function E(I) {
        return h.get(zs(I, e, t));
      }
      function A(I, O) {
        const k = zs(I, e, t);
        if (h.has(k))
          return;
        h.set(k, O);
        const G = i(O), V = G && L(k, G);
        let H = k;
        for (; H !== V; ) {
          const te = mi(H);
          if (te === H || h.has(te))
            break;
          h.set(te, O), H = te;
        }
      }
      function L(I, O) {
        const k = zs(mi(O), e, t);
        let G = 0;
        const V = Math.min(I.length, k.length);
        for (; G < V && I.charCodeAt(G) === k.charCodeAt(G); )
          G++;
        if (G === I.length && (k.length === G || k[G] === Ms))
          return I;
        const H = qp(I);
        if (G < H)
          return;
        const te = I.lastIndexOf(Ms, G - 1);
        if (te !== -1)
          return I.substr(0, Math.max(te, H));
      }
    }
  }
  function $pe(e, t, r, i, o) {
    const s = w4e(e, t, r), c = N4e(e, t, r, o);
    return i ?? (i = k4e(e, t)), {
      ...i,
      ...s,
      ...c,
      clear: f,
      update: y,
      getPackageJsonInfoCache: () => i,
      clearAllExceptPackageJsonInfoCache: d
    };
    function f() {
      d(), i.clear();
    }
    function d() {
      s.clear(), c.clear();
    }
    function y(h) {
      s.update(h), c.update(h);
    }
  }
  function C5(e, t, r) {
    const i = $pe(e, t, r, void 0, D4e);
    return i.getOrCreateCacheForModuleName = (o, s, c) => i.getOrCreateCacheForNonRelativeName(o, s, c), i;
  }
  function L5(e, t, r, i) {
    return $pe(e, t, r, i, R4e);
  }
  function O4e(e, t, r, i) {
    const o = mi(t);
    return r.getFromDirectoryCache(e, i, o, void 0);
  }
  function Jk(e, t, r, i, o, s, c) {
    const f = Hv(r, i);
    s && (r = s.commandLine.options), f && (ha(i, _.Resolving_module_0_from_1, e, t), s && ha(i, _.Using_compiler_options_of_project_reference_redirect_0, s.sourceFile.fileName));
    const d = mi(t);
    let y = o == null ? void 0 : o.getFromDirectoryCache(e, c, d, s);
    if (y)
      f && ha(i, _.Resolution_for_module_0_was_found_in_cache_from_location_1, e, d);
    else {
      let h = r.moduleResolution;
      if (h === void 0) {
        switch (au(r)) {
          case 1:
            h = 2;
            break;
          case 100:
            h = 3;
            break;
          case 199:
            h = 99;
            break;
          default:
            h = 1;
            break;
        }
        f && ha(i, _.Module_resolution_kind_is_not_specified_using_0, SR[h]);
      } else
        f && ha(i, _.Explicitly_specified_module_resolution_kind_Colon_0, SR[h]);
      switch (zp.logStartResolveModule(e), h) {
        case 3:
          y = B4e(e, t, r, i, o, s, c);
          break;
        case 99:
          y = G4e(e, t, r, i, o, s, c);
          break;
        case 2:
          y = nme(e, t, r, i, o, s);
          break;
        case 1:
          y = gme(e, t, r, i, o, s);
          break;
        case 100:
          y = tme(e, t, r, i, o, s);
          break;
        default:
          return D.fail(`Unexpected moduleResolution: ${h}`);
      }
      y && y.resolvedModule && zp.logInfoEvent(`Module "${e}" resolved to "${y.resolvedModule.resolvedFileName}"`), zp.logStopResolveModule(y && y.resolvedModule ? "" + y.resolvedModule.resolvedFileName : "null"), o == null || o.getOrCreateCacheForDirectory(d, s).set(e, c, y), Gc(e) || o == null || o.getOrCreateCacheForNonRelativeName(e, c, s).set(d, y);
    }
    return f && (y.resolvedModule ? y.resolvedModule.packageId ? ha(i, _.Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2, e, y.resolvedModule.resolvedFileName, oT(y.resolvedModule.packageId)) : ha(i, _.Module_name_0_was_successfully_resolved_to_1, e, y.resolvedModule.resolvedFileName) : ha(i, _.Module_name_0_was_not_resolved, e)), y;
  }
  function Qpe(e, t, r, i, o) {
    const s = P4e(e, t, i, o);
    return s ? s.value : Gc(t) ? M4e(e, t, r, i, o) : F4e(e, t, i, o);
  }
  function P4e(e, t, r, i) {
    var o;
    const { baseUrl: s, paths: c, configFile: f } = i.compilerOptions;
    if (c && !Sf(t)) {
      i.traceEnabled && (s && ha(i.host, _.baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1, s, t), ha(i.host, _.paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0, t));
      const d = Fz(i.compilerOptions, i.host), y = f != null && f.configFileSpecs ? (o = f.configFileSpecs).pathPatterns || (o.pathPatterns = J3(c)) : void 0;
      return UK(e, t, d, c, y, r, !1, i);
    }
  }
  function M4e(e, t, r, i, o) {
    if (!o.compilerOptions.rootDirs)
      return;
    o.traceEnabled && ha(o.host, _.rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0, t);
    const s = Jo(Bi(r, t));
    let c, f;
    for (const d of o.compilerOptions.rootDirs) {
      let y = Jo(d);
      ic(y, Ms) || (y += Ms);
      const h = xa(s, y) && (f === void 0 || f.length < y.length);
      o.traceEnabled && ha(o.host, _.Checking_if_0_is_the_longest_matching_prefix_for_1_2, y, s, h), h && (f = y, c = d);
    }
    if (f) {
      o.traceEnabled && ha(o.host, _.Longest_matching_prefix_for_0_is_1, s, f);
      const d = s.substr(f.length);
      o.traceEnabled && ha(o.host, _.Loading_0_from_the_root_dir_1_candidate_location_2, d, f, s);
      const y = i(e, s, !Yp(r, o.host), o);
      if (y)
        return y;
      o.traceEnabled && ha(o.host, _.Trying_other_entries_in_rootDirs);
      for (const h of o.compilerOptions.rootDirs) {
        if (h === c)
          continue;
        const E = Bi(Jo(h), d);
        o.traceEnabled && ha(o.host, _.Loading_0_from_the_root_dir_1_candidate_location_2, d, h, E);
        const A = mi(E), L = i(e, E, !Yp(A, o.host), o);
        if (L)
          return L;
      }
      o.traceEnabled && ha(o.host, _.Module_resolution_using_rootDirs_has_failed);
    }
  }
  function F4e(e, t, r, i) {
    const { baseUrl: o } = i.compilerOptions;
    if (!o)
      return;
    i.traceEnabled && ha(i.host, _.baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1, o, t);
    const s = Jo(Bi(o, t));
    return i.traceEnabled && ha(i.host, _.Resolving_module_name_0_relative_to_base_url_1_2, t, o, s), r(e, s, !Yp(mi(s), i.host), i);
  }
  function Zpe(e, t, r) {
    const { resolvedModule: i, failedLookupLocations: o } = U4e(e, t, r);
    if (!i)
      throw new Error(`Could not resolve JS module '${e}' starting at '${t}'. Looked in: ${o == null ? void 0 : o.join(", ")}`);
    return i.resolvedFileName;
  }
  function B4e(e, t, r, i, o, s, c) {
    return eme(30, e, t, r, i, o, s, c);
  }
  function G4e(e, t, r, i, o, s, c) {
    return eme(30, e, t, r, i, o, s, c);
  }
  function eme(e, t, r, i, o, s, c, f) {
    const d = mi(r), y = f === 99 ? 32 : 0;
    let h = i.noDtsResolution ? 3 : 7;
    return TT(i) && (h |= 8), Kk(e | y, t, d, i, o, s, h, !1, c);
  }
  function U4e(e, t, r) {
    return Kk(0, e, t, { moduleResolution: 2, allowJs: !0 }, r, void 0, 2, !1, void 0);
  }
  function tme(e, t, r, i, o, s) {
    const c = mi(t);
    let f = r.noDtsResolution ? 3 : 7;
    return TT(r) && (f |= 8), Kk(IK(r), e, c, r, i, o, f, !1, s);
  }
  function nme(e, t, r, i, o, s, c) {
    let f;
    return c ? f = 8 : r.noDtsResolution ? (f = 3, TT(r) && (f |= 8)) : f = TT(r) ? 15 : 7, Kk(0, e, mi(t), r, i, o, f, !!c, s);
  }
  function rme(e, t, r) {
    return Kk(8, e, mi(t), { moduleResolution: 99 }, r, void 0, 8, !0, void 0);
  }
  function Kk(e, t, r, i, o, s, c, f, d) {
    var y, h, E, A;
    const L = Hv(i, o), I = [], O = [], k = BC(i, !!(e & 32)), G = [], V = {
      compilerOptions: i,
      host: o,
      traceEnabled: L,
      failedLookupLocations: I,
      affectingLocations: O,
      packageJsonInfoCache: s,
      features: e,
      conditions: k,
      requestContainingDirectory: r,
      reportDiagnostic: (Y) => void G.push(Y),
      isConfigLookup: f,
      candidateIsFromPackageJsonField: !1
    };
    L && _x(vl(i)) && ha(o, _.Resolving_in_0_mode_with_conditions_1, e & 32 ? "ESM" : "CJS", k.map((Y) => `'${Y}'`).join(", "));
    let H;
    if (vl(i) === 2) {
      const Y = c & 5, P = c & -6;
      H = Y && X(Y, V) || P && X(P, V) || void 0;
    } else
      H = X(c, V);
    let te;
    if ((y = H == null ? void 0 : H.value) != null && y.isExternalLibraryImport && !f && c & 5 && e & 8 && !Gc(t) && !MK(5, H.value.resolved.extension) && k.indexOf("import") > -1) {
      M1(V, _.Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_if_npm_library_needs_configuration_update);
      const Y = {
        ...V,
        features: V.features & -9,
        failedLookupLocations: [],
        affectingLocations: [],
        reportDiagnostic: so
      }, P = X(c & 5, Y);
      (h = P == null ? void 0 : P.value) != null && h.isExternalLibraryImport && (te = P.value.resolved.path);
    }
    return qpe(t, (E = H == null ? void 0 : H.value) == null ? void 0 : E.resolved, (A = H == null ? void 0 : H.value) == null ? void 0 : A.isExternalLibraryImport, I, O, G, V, te);
    function X(Y, P) {
      const re = Qpe(Y, t, r, (ye, ae, W, ce) => I5(ye, ae, W, ce, !0), P);
      if (re)
        return n_({ resolved: re, isExternalLibraryImport: Gx(re.path) });
      if (Gc(t)) {
        const { path: ye, parts: ae } = ime(r, t), W = I5(Y, ye, !1, P, !0);
        return W && n_({ resolved: W, isExternalLibraryImport: jr(ae, "node_modules") });
      } else {
        let ye;
        return e & 2 && xa(t, "#") && (ye = J4e(Y, t, r, P, s, d)), !ye && e & 4 && (ye = q4e(Y, t, r, P, s, d)), ye || (L && ha(o, _.Loading_module_0_from_node_modules_folder_target_file_types_Colon_1, t, Wpe(Y)), ye = fme(Y, t, r, P, s, d)), ye && { value: ye.value && { resolved: ye.value, isExternalLibraryImport: !0 } };
      }
    }
  }
  function ime(e, t) {
    const r = Bi(e, t), i = ld(r), o = tl(i);
    return { path: o === "." || o === ".." ? Ou(Jo(r)) : Jo(r), parts: i };
  }
  function V4e(e, t, r) {
    if (!t.realpath)
      return e;
    const i = Jo(t.realpath(e));
    return r && ha(t, _.Resolving_real_path_for_0_result_1, e, i), D.assert(t.fileExists(i), `${e} linked to nonexistent file ${i}`), i;
  }
  function I5(e, t, r, i, o) {
    if (i.traceEnabled && ha(i.host, _.Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1, t, Wpe(e)), !vv(t)) {
      if (!r) {
        const c = mi(t);
        Yp(c, i.host) || (i.traceEnabled && ha(i.host, _.Directory_0_does_not_exist_skipping_all_lookups_in_it, c), r = !0);
      }
      const s = Xk(e, t, r, i);
      if (s) {
        const c = o ? NK(s.path) : void 0, f = c ? Ux(c, !1, i) : void 0;
        return MC(f, s);
      }
    }
    if (r || Yp(t, i.host) || (i.traceEnabled && ha(i.host, _.Directory_0_does_not_exist_skipping_all_lookups_in_it, t), r = !0), !(i.features & 32))
      return cme(e, t, r, i, o);
  }
  function Gx(e) {
    return pu(e, Cy);
  }
  function NK(e) {
    const t = Jo(e), r = t.lastIndexOf(Cy);
    if (r === -1)
      return;
    const i = r + Cy.length;
    let o = ame(t, i);
    return t.charCodeAt(i) === 64 && (o = ame(t, o)), t.slice(0, o);
  }
  function ame(e, t) {
    const r = e.indexOf(Ms, t + 1);
    return r === -1 ? t : r;
  }
  function OK(e, t, r, i) {
    return T5(Xk(e, t, r, i));
  }
  function Xk(e, t, r, i) {
    const o = ome(e, t, r, i);
    if (o)
      return o;
    if (!(i.features & 32)) {
      const s = sme(t, e, "", r, i);
      if (s)
        return s;
    }
  }
  function ome(e, t, r, i) {
    if (mu(t).indexOf(".") === -1)
      return;
    let s = Ud(t);
    s === t && (s = t.substring(0, t.lastIndexOf(".")));
    const c = t.substring(s.length);
    return i.traceEnabled && ha(i.host, _.File_name_0_has_a_1_extension_stripping_it, t, c), sme(s, e, c, r, i);
  }
  function PK(e, t, r, i) {
    return e & 1 && Tc(t, i7) || e & 4 && Tc(t, r7) ? h8(t, r, i) !== void 0 ? { path: t, ext: N3(t), resolvedUsingTsExtension: void 0 } : void 0 : i.isConfigLookup && e === 8 && cc(t, ".json") ? h8(t, r, i) !== void 0 ? { path: t, ext: ".json", resolvedUsingTsExtension: void 0 } : void 0 : ome(e, t, r, i);
  }
  function sme(e, t, r, i, o) {
    if (!i) {
      const c = mi(e);
      c && (i = !Yp(c, o.host));
    }
    switch (r) {
      case ".mjs":
      case ".mts":
      case ".d.mts":
        return t & 1 && s(".mts", r === ".mts" || r === ".d.mts") || t & 4 && s(".d.mts", r === ".mts" || r === ".d.mts") || t & 2 && s(".mjs") || void 0;
      case ".cjs":
      case ".cts":
      case ".d.cts":
        return t & 1 && s(".cts", r === ".cts" || r === ".d.cts") || t & 4 && s(".d.cts", r === ".cts" || r === ".d.cts") || t & 2 && s(".cjs") || void 0;
      case ".json":
        return t & 4 && s(".d.json.ts") || t & 8 && s(".json") || void 0;
      case ".tsx":
      case ".jsx":
        return t & 1 && (s(".tsx", r === ".tsx") || s(".ts", r === ".tsx")) || t & 4 && s(".d.ts", r === ".tsx") || t & 2 && (s(".jsx") || s(".js")) || void 0;
      case ".ts":
      case ".d.ts":
      case ".js":
      case "":
        return t & 1 && (s(".ts", r === ".ts" || r === ".d.ts") || s(".tsx", r === ".ts" || r === ".d.ts")) || t & 4 && s(".d.ts", r === ".ts" || r === ".d.ts") || t & 2 && (s(".js") || s(".jsx")) || o.isConfigLookup && s(".json") || void 0;
      default:
        return t & 4 && !fd(e + r) && s(`.d${r}.ts`) || void 0;
    }
    function s(c, f) {
      const d = h8(e + c, i, o);
      return d === void 0 ? void 0 : { path: d, ext: c, resolvedUsingTsExtension: !o.candidateIsFromPackageJsonField && f };
    }
  }
  function h8(e, t, r) {
    var i, o;
    if (!((i = r.compilerOptions.moduleSuffixes) != null && i.length))
      return lme(e, t, r);
    const s = (o = Sh(e)) != null ? o : "", c = s ? oO(e, s) : e;
    return ze(r.compilerOptions.moduleSuffixes, (f) => lme(c + f + s, t, r));
  }
  function lme(e, t, r) {
    if (!t) {
      if (r.host.fileExists(e))
        return r.traceEnabled && ha(r.host, _.File_0_exists_use_it_as_a_name_resolution_result, e), e;
      r.traceEnabled && ha(r.host, _.File_0_does_not_exist, e);
    }
    r.failedLookupLocations.push(e);
  }
  function cme(e, t, r, i, o = !0) {
    const s = o ? Ux(t, r, i) : void 0, c = s && s.contents.packageJsonContent, f = s && g8(s, i);
    return MC(s, D5(e, t, r, i, c, f));
  }
  function j4e(e, t, r, i, o) {
    if (!o && e.contents.resolvedEntrypoints !== void 0)
      return e.contents.resolvedEntrypoints;
    let s;
    const c = 5 | (o ? 2 : 0), f = IK(t), d = k5(i == null ? void 0 : i.getPackageJsonInfoCache(), r, t);
    d.conditions = BC(t), d.requestContainingDirectory = e.packageDirectory;
    const y = D5(c, e.packageDirectory, !1, d, e.contents.packageJsonContent, g8(e, d));
    if (s = Fn(s, y == null ? void 0 : y.path), f & 8 && e.contents.packageJsonContent.exports) {
      const h = mA([BC(t, !0), BC(t, !1)], Hp);
      for (const E of h) {
        const A = { ...d, failedLookupLocations: [], conditions: E }, L = H4e(e, e.contents.packageJsonContent.exports, A, c);
        if (L)
          for (const I of L)
            s = oy(s, I.path);
      }
    }
    return e.contents.resolvedEntrypoints = s || !1;
  }
  function H4e(e, t, r, i) {
    let o;
    if (Va(t))
      for (const c of t)
        s(c);
    else if (typeof t == "object" && t !== null && R5(t))
      for (const c in t)
        s(t[c]);
    else
      s(t);
    return o;
    function s(c) {
      var f, d;
      if (typeof c == "string" && xa(c, "./") && c.indexOf("*") === -1) {
        const y = ld(c).slice(2);
        if (y.indexOf("..") >= 0 || y.indexOf(".") >= 0 || y.indexOf("node_modules") >= 0)
          return !1;
        const h = Bi(e.packageDirectory, c), E = Pa(h, (d = (f = r.host).getCurrentDirectory) == null ? void 0 : d.call(f)), A = PK(i, E, !1, r);
        if (A)
          return o = oy(o, A, (L, I) => L.path === I.path), !0;
      } else if (Array.isArray(c)) {
        for (const y of c)
          if (s(y))
            return !0;
      } else if (typeof c == "object" && c !== null)
        return ze(tg(c), (y) => {
          if (y === "default" || jr(r.conditions, y) || y8(r.conditions, y))
            return s(c[y]), !0;
        });
    }
  }
  function k5(e, t, r) {
    return {
      host: t,
      compilerOptions: r,
      traceEnabled: Hv(r, t),
      failedLookupLocations: $4,
      affectingLocations: $4,
      packageJsonInfoCache: e,
      features: 0,
      conditions: rt,
      requestContainingDirectory: void 0,
      reportDiagnostic: so,
      isConfigLookup: !1,
      candidateIsFromPackageJsonField: !1
    };
  }
  function w5(e, t) {
    const r = ld(e);
    for (r.pop(); r.length > 0; ) {
      const i = Ux(l1(r), !1, t);
      if (i)
        return i;
      r.pop();
    }
  }
  function g8(e, t) {
    return e.contents.versionPaths === void 0 && (e.contents.versionPaths = A4e(e.contents.packageJsonContent, t) || !1), e.contents.versionPaths || void 0;
  }
  function Ux(e, t, r) {
    var i, o, s;
    const { host: c, traceEnabled: f } = r, d = Bi(e, "package.json");
    if (t) {
      r.failedLookupLocations.push(d);
      return;
    }
    const y = (i = r.packageJsonInfoCache) == null ? void 0 : i.getPackageJsonInfo(d);
    if (y !== void 0) {
      if (typeof y != "boolean")
        return f && ha(c, _.File_0_exists_according_to_earlier_cached_lookups, d), r.affectingLocations.push(d), y.packageDirectory === e ? y : { packageDirectory: e, contents: y.contents };
      y && f && ha(c, _.File_0_does_not_exist_according_to_earlier_cached_lookups, d), r.failedLookupLocations.push(d);
      return;
    }
    const h = Yp(e, c);
    if (h && c.fileExists(d)) {
      const E = nk(d, c);
      f && ha(c, _.Found_package_json_at_0, d);
      const A = { packageDirectory: e, contents: { packageJsonContent: E, versionPaths: void 0, resolvedEntrypoints: void 0 } };
      return (o = r.packageJsonInfoCache) == null || o.setPackageJsonInfo(d, A), r.affectingLocations.push(d), A;
    } else
      h && f && ha(c, _.File_0_does_not_exist, d), (s = r.packageJsonInfoCache) == null || s.setPackageJsonInfo(d, h), r.failedLookupLocations.push(d);
  }
  function D5(e, t, r, i, o, s) {
    let c;
    o && (i.isConfigLookup ? c = T4e(o, t, i) : c = e & 4 && E4e(o, t, i) || e & 7 && S4e(o, t, i) || void 0);
    const f = (A, L, I, O) => {
      const k = h8(L, I, O);
      if (k) {
        const X = W4e(A, k);
        if (X)
          return T5(X);
        O.traceEnabled && ha(O.host, _.File_0_has_an_unsupported_extension_so_skipping_it, k);
      }
      const G = A === 4 ? 5 : A, V = O.features, H = O.candidateIsFromPackageJsonField;
      O.candidateIsFromPackageJsonField = !0, (o == null ? void 0 : o.type) !== "module" && (O.features &= -33);
      const te = I5(G, L, I, O, !1);
      return O.features = V, O.candidateIsFromPackageJsonField = H, te;
    }, d = c ? !Yp(mi(c), i.host) : void 0, y = r || !Yp(t, i.host), h = Bi(t, i.isConfigLookup ? "tsconfig" : "index");
    if (s && (!c || Ev(t, c))) {
      const A = wm(t, c || h, !1);
      i.traceEnabled && ha(i.host, _.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2, s.version, Se, A);
      const L = UK(e, A, t, s.paths, void 0, f, d || y, i);
      if (L)
        return Hpe(L.value);
    }
    const E = c && Hpe(f(e, c, d, i));
    if (E)
      return E;
    if (!(i.features & 32))
      return Xk(e, h, y, i);
  }
  function W4e(e, t, r) {
    const i = Sh(t);
    return i !== void 0 && MK(e, i) ? { path: t, ext: i, resolvedUsingTsExtension: r } : void 0;
  }
  function MK(e, t) {
    return e & 2 && (t === ".js" || t === ".jsx" || t === ".mjs" || t === ".cjs") || e & 1 && (t === ".ts" || t === ".tsx" || t === ".mts" || t === ".cts") || e & 4 && (t === ".d.ts" || t === ".d.mts" || t === ".d.cts") || e & 8 && t === ".json" || !1;
  }
  function FK(e) {
    let t = e.indexOf(Ms);
    return e[0] === "@" && (t = e.indexOf(Ms, t + 1)), t === -1 ? { packageName: e, rest: "" } : { packageName: e.slice(0, t), rest: e.slice(t + 1) };
  }
  function R5(e) {
    return Yn(tg(e), (t) => xa(t, "."));
  }
  function z4e(e) {
    return !kt(tg(e), (t) => xa(t, "."));
  }
  function q4e(e, t, r, i, o, s) {
    var c, f;
    const d = Pa(Bi(r, "dummy"), (f = (c = i.host).getCurrentDirectory) == null ? void 0 : f.call(c)), y = w5(d, i);
    if (!y || !y.contents.packageJsonContent.exports || typeof y.contents.packageJsonContent.name != "string")
      return;
    const h = ld(t), E = ld(y.contents.packageJsonContent.name);
    if (!Yn(E, (k, G) => h[G] === k))
      return;
    const A = h.slice(E.length), L = Le(A) ? `.${Ms}${A.join(Ms)}` : ".", I = e & 5, O = e & -6;
    return BK(y, I, L, i, o, s) || BK(y, O, L, i, o, s);
  }
  function BK(e, t, r, i, o, s) {
    if (e.contents.packageJsonContent.exports) {
      if (r === ".") {
        let c;
        if (typeof e.contents.packageJsonContent.exports == "string" || Array.isArray(e.contents.packageJsonContent.exports) || typeof e.contents.packageJsonContent.exports == "object" && z4e(e.contents.packageJsonContent.exports) ? c = e.contents.packageJsonContent.exports : Ps(e.contents.packageJsonContent.exports, ".") && (c = e.contents.packageJsonContent.exports["."]), c)
          return dme(t, i, o, s, r, e, !1)(c, "", !1, ".");
      } else if (R5(e.contents.packageJsonContent.exports)) {
        if (typeof e.contents.packageJsonContent.exports != "object")
          return i.traceEnabled && ha(i.host, _.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1, r, e.packageDirectory), n_(void 0);
        const c = ume(t, i, o, s, r, e.contents.packageJsonContent.exports, e, !1);
        if (c)
          return c;
      }
      return i.traceEnabled && ha(i.host, _.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1, r, e.packageDirectory), n_(void 0);
    }
  }
  function J4e(e, t, r, i, o, s) {
    var c, f;
    if (t === "#" || xa(t, "#/"))
      return i.traceEnabled && ha(i.host, _.Invalid_import_specifier_0_has_no_possible_resolutions, t), n_(void 0);
    const d = Pa(Bi(r, "dummy"), (f = (c = i.host).getCurrentDirectory) == null ? void 0 : f.call(c)), y = w5(d, i);
    if (!y)
      return i.traceEnabled && ha(i.host, _.Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve, d), n_(void 0);
    if (!y.contents.packageJsonContent.imports)
      return i.traceEnabled && ha(i.host, _.package_json_scope_0_has_no_imports_defined, y.packageDirectory), n_(void 0);
    const h = ume(e, i, o, s, t, y.contents.packageJsonContent.imports, y, !0);
    return h || (i.traceEnabled && ha(i.host, _.Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1, t, y.packageDirectory), n_(void 0));
  }
  function GK(e, t) {
    const r = e.indexOf("*"), i = t.indexOf("*"), o = r === -1 ? e.length : r + 1, s = i === -1 ? t.length : i + 1;
    return o > s ? -1 : s > o || r === -1 ? 1 : i === -1 || e.length > t.length ? -1 : t.length > e.length ? 1 : 0;
  }
  function ume(e, t, r, i, o, s, c, f) {
    const d = dme(e, t, r, i, o, c, f);
    if (!ic(o, Ms) && o.indexOf("*") === -1 && Ps(s, o)) {
      const E = s[o];
      return d(E, "", !1, o);
    }
    const y = aI(lr(tg(s), (E) => E.indexOf("*") !== -1 || ic(E, "/")), GK);
    for (const E of y)
      if (t.features & 16 && h(E, o)) {
        const A = s[E], L = E.indexOf("*"), I = o.substring(E.substring(0, L).length, o.length - (E.length - 1 - L));
        return d(A, I, !0, E);
      } else if (ic(E, "*") && xa(o, E.substring(0, E.length - 1))) {
        const A = s[E], L = o.substring(E.length - 1);
        return d(A, L, !0, E);
      } else if (xa(o, E)) {
        const A = s[E], L = o.substring(E.length);
        return d(A, L, !1, E);
      }
    function h(E, A) {
      if (ic(E, "*"))
        return !1;
      const L = E.indexOf("*");
      return L === -1 ? !1 : xa(A, E.substring(0, L)) && ic(A, E.substring(L + 1));
    }
  }
  function dme(e, t, r, i, o, s, c) {
    return f;
    function f(d, y, h, E) {
      if (typeof d == "string") {
        if (!h && y.length > 0 && !ic(d, "/"))
          return t.traceEnabled && ha(t.host, _.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, s.packageDirectory, o), n_(void 0);
        if (!xa(d, "./")) {
          if (c && !xa(d, "../") && !xa(d, "/") && !km(d)) {
            const Y = h ? d.replace(/\*/g, y) : d + y;
            M1(t, _.Using_0_subpath_1_with_target_2, "imports", E, Y), M1(t, _.Resolving_module_0_from_1, Y, s.packageDirectory + "/");
            const P = Kk(t.features, Y, s.packageDirectory + "/", t.compilerOptions, t.host, r, e, !1, i);
            return n_(P.resolvedModule ? {
              path: P.resolvedModule.resolvedFileName,
              extension: P.resolvedModule.extension,
              packageId: P.resolvedModule.packageId,
              originalPath: P.resolvedModule.originalPath,
              resolvedUsingTsExtension: P.resolvedModule.resolvedUsingTsExtension
            } : void 0);
          }
          return t.traceEnabled && ha(t.host, _.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, s.packageDirectory, o), n_(void 0);
        }
        const G = (Sf(d) ? ld(d).slice(1) : ld(d)).slice(1);
        if (G.indexOf("..") >= 0 || G.indexOf(".") >= 0 || G.indexOf("node_modules") >= 0)
          return t.traceEnabled && ha(t.host, _.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, s.packageDirectory, o), n_(void 0);
        const V = Bi(s.packageDirectory, d), H = ld(y);
        if (H.indexOf("..") >= 0 || H.indexOf(".") >= 0 || H.indexOf("node_modules") >= 0)
          return t.traceEnabled && ha(t.host, _.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, s.packageDirectory, o), n_(void 0);
        t.traceEnabled && ha(t.host, _.Using_0_subpath_1_with_target_2, c ? "imports" : "exports", E, h ? d.replace(/\*/g, y) : d + y);
        const te = A(h ? V.replace(/\*/g, y) : V + y), X = O(te, y, Bi(s.packageDirectory, "package.json"), c);
        return X || n_(MC(s, PK(e, te, !1, t)));
      } else if (typeof d == "object" && d !== null)
        if (Array.isArray(d)) {
          if (!Le(d))
            return t.traceEnabled && ha(t.host, _.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, s.packageDirectory, o), n_(void 0);
          for (const k of d) {
            const G = f(k, y, h, E);
            if (G)
              return G;
          }
        } else {
          M1(t, _.Entering_conditional_exports);
          for (const k of tg(d))
            if (k === "default" || t.conditions.indexOf(k) >= 0 || y8(t.conditions, k)) {
              M1(t, _.Matched_0_condition_1, c ? "imports" : "exports", k);
              const G = d[k], V = f(G, y, h, E);
              if (V)
                return M1(t, _.Resolved_under_condition_0, k), M1(t, _.Exiting_conditional_exports), V;
              M1(t, _.Failed_to_resolve_under_condition_0, k);
            } else
              M1(t, _.Saw_non_matching_condition_0, k);
          M1(t, _.Exiting_conditional_exports);
          return;
        }
      else if (d === null)
        return t.traceEnabled && ha(t.host, _.package_json_scope_0_explicitly_maps_specifier_1_to_null, s.packageDirectory, o), n_(void 0);
      return t.traceEnabled && ha(t.host, _.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, s.packageDirectory, o), n_(void 0);
      function A(k) {
        var G, V;
        return k === void 0 ? k : Pa(k, (V = (G = t.host).getCurrentDirectory) == null ? void 0 : V.call(G));
      }
      function L(k, G) {
        return Ou(Bi(k, G));
      }
      function I() {
        return t.host.useCaseSensitiveFileNames ? typeof t.host.useCaseSensitiveFileNames == "boolean" ? t.host.useCaseSensitiveFileNames : t.host.useCaseSensitiveFileNames() : !0;
      }
      function O(k, G, V, H) {
        var te, X, Y, P;
        if (!t.isConfigLookup && (t.compilerOptions.declarationDir || t.compilerOptions.outDir) && k.indexOf("/node_modules/") === -1 && (!t.compilerOptions.configFile || Ev(s.packageDirectory, A(t.compilerOptions.configFile.fileName), !I()))) {
          const re = J0({ useCaseSensitiveFileNames: I }), ye = [];
          if (t.compilerOptions.rootDir || t.compilerOptions.composite && t.compilerOptions.configFilePath) {
            const ae = A(w8(t.compilerOptions, () => [], ((X = (te = t.host).getCurrentDirectory) == null ? void 0 : X.call(te)) || "", re));
            ye.push(ae);
          } else if (t.requestContainingDirectory) {
            const ae = A(Bi(t.requestContainingDirectory, "index.ts")), W = A(w8(t.compilerOptions, () => [ae, A(V)], ((P = (Y = t.host).getCurrentDirectory) == null ? void 0 : P.call(Y)) || "", re));
            ye.push(W);
            let ce = Ou(W);
            for (; ce && ce.length > 1; ) {
              const me = ld(ce);
              me.pop();
              const ve = l1(me);
              ye.unshift(ve), ce = Ou(ve);
            }
          }
          ye.length > 1 && t.reportDiagnostic(Fs(H ? _.The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate : _.The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate, G === "" ? "." : G, V));
          for (const ae of ye) {
            const W = de(ae);
            for (const ce of W)
              if (Ev(ce, k, !I())) {
                const me = k.slice(ce.length + 1), ve = Bi(ae, me), Te = [".mjs", ".cjs", ".js", ".json", ".d.mts", ".d.cts", ".d.ts"];
                for (const ee of Te)
                  if (cc(ve, ee)) {
                    const Qe = Wue(ve);
                    for (const Ve of Qe) {
                      if (!MK(e, Ve))
                        continue;
                      const Be = KH(ve, Ve, ee, !I());
                      if (t.host.fileExists(Be))
                        return n_(MC(s, PK(e, Be, !1, t)));
                    }
                  }
              }
          }
        }
        return;
        function de(re) {
          var ye, ae;
          const W = t.compilerOptions.configFile ? ((ae = (ye = t.host).getCurrentDirectory) == null ? void 0 : ae.call(ye)) || "" : re, ce = [];
          return t.compilerOptions.declarationDir && ce.push(A(L(W, t.compilerOptions.declarationDir))), t.compilerOptions.outDir && t.compilerOptions.outDir !== t.compilerOptions.declarationDir && ce.push(A(L(W, t.compilerOptions.outDir))), ce;
        }
      }
    }
  }
  function y8(e, t) {
    if (e.indexOf("types") === -1 || !xa(t, "types@"))
      return !1;
    const r = yA.tryParse(t.substring(6));
    return r ? r.test(Se) : !1;
  }
  function fme(e, t, r, i, o, s) {
    return _me(e, t, r, i, !1, o, s);
  }
  function K4e(e, t, r) {
    return _me(4, e, t, r, !0, void 0, void 0);
  }
  function _me(e, t, r, i, o, s, c) {
    const f = i.features === 0 ? void 0 : i.features & 32 ? 99 : 1, d = e & 5, y = e & -6;
    if (d) {
      const E = h(d);
      if (E)
        return E;
    }
    if (y && !o)
      return h(y);
    function h(E) {
      return rg(Qc(r), (A) => {
        if (mu(A) !== "node_modules") {
          const L = hme(s, t, f, A, c, i);
          return L || n_(pme(E, t, A, i, o, s, c));
        }
      });
    }
  }
  function pme(e, t, r, i, o, s, c) {
    const f = Bi(r, "node_modules"), d = Yp(f, i.host);
    if (!d && i.traceEnabled && ha(i.host, _.Directory_0_does_not_exist_skipping_all_lookups_in_it, f), !o) {
      const y = mme(e, t, f, d, i, s, c);
      if (y)
        return y;
    }
    if (e & 4) {
      const y = Bi(f, "@types");
      let h = d;
      return d && !Yp(y, i.host) && (i.traceEnabled && ha(i.host, _.Directory_0_does_not_exist_skipping_all_lookups_in_it, y), h = !1), mme(4, X4e(t, i), y, h, i, s, c);
    }
  }
  function mme(e, t, r, i, o, s, c) {
    var f, d, y;
    const h = Jo(Bi(r, t)), { packageName: E, rest: A } = FK(t), L = Bi(r, E);
    let I, O = Ux(h, !i, o);
    if (A !== "" && O && (!(o.features & 8) || !Ps((d = (f = I = Ux(L, !i, o)) == null ? void 0 : f.contents.packageJsonContent) != null ? d : rt, "exports"))) {
      const V = Xk(e, h, !i, o);
      if (V)
        return T5(V);
      const H = D5(e, h, !i, o, O.contents.packageJsonContent, g8(O, o));
      return MC(O, H);
    }
    const k = (V, H, te, X) => {
      let Y = Xk(V, H, te, X) || D5(V, H, te, X, O && O.contents.packageJsonContent, O && g8(O, X));
      return !Y && O && (O.contents.packageJsonContent.exports === void 0 || O.contents.packageJsonContent.exports === null) && X.features & 32 && (Y = Xk(V, Bi(H, "index.js"), te, X)), MC(O, Y);
    };
    if (A !== "" && (O = I ?? Ux(L, !i, o)), O && O.contents.packageJsonContent.exports && o.features & 8)
      return (y = BK(O, e, Bi(".", A), o, s, c)) == null ? void 0 : y.value;
    const G = A !== "" && O ? g8(O, o) : void 0;
    if (G) {
      o.traceEnabled && ha(o.host, _.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2, G.version, Se, A);
      const V = i && Yp(L, o.host), H = UK(e, A, L, G.paths, void 0, k, !V, o);
      if (H)
        return H.value;
    }
    return k(e, h, !i, o);
  }
  function UK(e, t, r, i, o, s, c, f) {
    o || (o = J3(i));
    const d = yq(o, t);
    if (d) {
      const y = Ha(d) ? void 0 : Vse(d, t), h = Ha(d) ? d : Use(d);
      return f.traceEnabled && ha(f.host, _.Module_name_0_matched_pattern_1, t, h), { value: ze(i[h], (A) => {
        const L = y ? A.replace("*", y) : A, I = Jo(Bi(r, L));
        f.traceEnabled && ha(f.host, _.Trying_substitution_0_candidate_module_location_Colon_1, A, L);
        const O = Sh(A);
        if (O !== void 0) {
          const k = h8(I, c, f);
          if (k !== void 0)
            return T5({ path: k, ext: O, resolvedUsingTsExtension: void 0 });
        }
        return s(e, I, c || !Yp(mi(I), f.host), f);
      }) };
    }
  }
  function X4e(e, t) {
    const r = Yk(e);
    return t.traceEnabled && r !== e && ha(t.host, _.Scoped_package_detected_looking_in_0, r), r;
  }
  function N5(e) {
    return `@types/${Yk(e)}`;
  }
  function Yk(e) {
    if (xa(e, "@")) {
      const t = e.replace(Ms, P5);
      if (t !== e)
        return t.slice(1);
    }
    return e;
  }
  function v8(e) {
    const t = lI(e, "@types/");
    return t !== e ? O5(t) : e;
  }
  function O5(e) {
    return pu(e, P5) ? "@" + e.replace(P5, Ms) : e;
  }
  function hme(e, t, r, i, o, s) {
    const c = e && e.getFromNonRelativeNameCache(t, r, i, o);
    if (c)
      return s.traceEnabled && ha(s.host, _.Resolution_for_module_0_was_found_in_cache_from_location_1, t, i), s.resultFromCache = c, {
        value: c.resolvedModule && {
          path: c.resolvedModule.resolvedFileName,
          originalPath: c.resolvedModule.originalPath || !0,
          extension: c.resolvedModule.extension,
          packageId: c.resolvedModule.packageId,
          resolvedUsingTsExtension: c.resolvedModule.resolvedUsingTsExtension
        }
      };
  }
  function gme(e, t, r, i, o, s) {
    const c = Hv(r, i), f = [], d = [], y = mi(t), h = [], E = {
      compilerOptions: r,
      host: i,
      traceEnabled: c,
      failedLookupLocations: f,
      affectingLocations: d,
      packageJsonInfoCache: o,
      features: 0,
      conditions: [],
      requestContainingDirectory: y,
      reportDiagnostic: (I) => void h.push(I),
      isConfigLookup: !1,
      candidateIsFromPackageJsonField: !1
    }, A = L(5) || L(2 | (r.resolveJsonModule ? 8 : 0));
    return qpe(e, A && A.value, (A == null ? void 0 : A.value) && Gx(A.value.path), f, d, h, E);
    function L(I) {
      const O = Qpe(I, e, y, OK, E);
      if (O)
        return { value: O };
      if (Gc(e)) {
        const k = Jo(Bi(y, e));
        return n_(OK(I, k, !1, E));
      } else {
        const k = rg(y, (G) => {
          const V = hme(o, e, void 0, G, s, E);
          if (V)
            return V;
          const H = Jo(Bi(G, e));
          return n_(OK(I, H, !1, E));
        });
        if (k)
          return k;
        if (I & 5)
          return K4e(e, y, E);
      }
    }
  }
  function $k(e, t) {
    return !!e.allowImportingTsExtensions || t && fd(t);
  }
  function yme(e, t, r, i, o, s) {
    const c = Hv(r, i);
    c && ha(i, _.Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2, t, e, o);
    const f = [], d = [], y = [], h = {
      compilerOptions: r,
      host: i,
      traceEnabled: c,
      failedLookupLocations: f,
      affectingLocations: d,
      packageJsonInfoCache: s,
      features: 0,
      conditions: [],
      requestContainingDirectory: void 0,
      reportDiagnostic: (A) => void y.push(A),
      isConfigLookup: !1,
      candidateIsFromPackageJsonField: !1
    }, E = pme(4, e, o, h, !1, void 0, void 0);
    return Jpe(E, !0, f, d, y, h.resultFromCache);
  }
  function n_(e) {
    return e !== void 0 ? { value: e } : void 0;
  }
  function M1(e, t, ...r) {
    e.traceEnabled && ha(e.host, t, ...r);
  }
  var VK, jK, HK, Cy, P5, Y4e = C({
    "src/compiler/moduleNameResolver.ts"() {
      Oa(), jK = Bi("node_modules", "@types"), HK = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Imports = 2] = "Imports", e[e.SelfName = 4] = "SelfName", e[e.Exports = 8] = "Exports", e[e.ExportsPatternTrailers = 16] = "ExportsPatternTrailers", e[e.AllFeatures = 30] = "AllFeatures", e[e.Node16Default = 30] = "Node16Default", e[e.NodeNextDefault = 30] = "NodeNextDefault", e[e.BundlerDefault = 30] = "BundlerDefault", e[e.EsmMode = 32] = "EsmMode", e))(HK || {}), Cy = "/node_modules/", P5 = "__";
    }
  });
  function vg(e, t) {
    return e.body && !e.body.parent && (Vo(e.body, e), Mv(e.body, !1)), e.body ? WK(e.body, t) : 1;
  }
  function WK(e, t = /* @__PURE__ */ new Map()) {
    const r = ps(e);
    if (t.has(r))
      return t.get(r) || 0;
    t.set(r, void 0);
    const i = $4e(e, t);
    return t.set(r, i), i;
  }
  function $4e(e, t) {
    switch (e.kind) {
      case 261:
      case 262:
        return 0;
      case 263:
        if (y1(e))
          return 2;
        break;
      case 269:
      case 268:
        if (!Yr(e, 1))
          return 0;
        break;
      case 275:
        const r = e;
        if (!r.moduleSpecifier && r.exportClause && r.exportClause.kind === 276) {
          let i = 0;
          for (const o of r.exportClause.elements) {
            const s = Q4e(o, t);
            if (s > i && (i = s), i === 1)
              return i;
          }
          return i;
        }
        break;
      case 265: {
        let i = 0;
        return Ma(e, (o) => {
          const s = WK(o, t);
          switch (s) {
            case 0:
              return;
            case 2:
              i = 2;
              return;
            case 1:
              return i = 1, !0;
            default:
              D.assertNever(s);
          }
        }), i;
      }
      case 264:
        return vg(e, t);
      case 79:
        if (e.flags & 2048)
          return 0;
    }
    return 1;
  }
  function Q4e(e, t) {
    const r = e.propertyName || e.name;
    let i = e.parent;
    for (; i; ) {
      if (co(i) || tm(i) || qi(i)) {
        const o = i.statements;
        let s;
        for (const c of o)
          if (WR(c, r)) {
            c.parent || (Vo(c, i), Mv(c, !1));
            const f = WK(c, t);
            if ((s === void 0 || f > s) && (s = f), s === 1)
              return s;
          }
        if (s !== void 0)
          return s;
      }
      i = i.parent;
    }
    return 1;
  }
  function PT(e) {
    return D.attachFlowNodeDebugInfo(e), e;
  }
  function vme(e, t) {
    al("beforeBind"), zp.logStartBindFile("" + e.fileName), Tme(e, t), zp.logStopBindFile(), al("afterBind"), Jf("Bind", "beforeBind", "afterBind");
  }
  function Z4e() {
    var e, t, r, i, o, s, c, f, d, y, h, E, A, L, I, O, k, G, V, H, te, X, Y = !1, P = 0, de, re, ye = { flags: 1 }, ae = { flags: 1 }, W = zt();
    return me;
    function ce(U, et, qt, Xn, Da) {
      return cd(Zn(U) || e, U, et, qt, Xn, Da);
    }
    function me(U, et) {
      var qt, Xn;
      e = U, t = et, r = ts(t), X = ve(e, et), re = /* @__PURE__ */ new Set(), P = 0, de = jc.getSymbolConstructor(), D.attachFlowNodeDebugInfo(ye), D.attachFlowNodeDebugInfo(ae), e.locals || ((qt = bi) == null || qt.push(bi.Phase.Bind, "bindSourceFile", { path: e.path }, !0), xt(e), (Xn = bi) == null || Xn.pop(), e.symbolCount = P, e.classifiableNames = re, Ul()), e = void 0, t = void 0, r = void 0, i = void 0, o = void 0, s = void 0, c = void 0, f = void 0, d = void 0, y = !1, h = void 0, E = void 0, A = void 0, L = void 0, I = void 0, O = void 0, k = void 0, V = void 0, H = !1, Y = !1, te = 0;
    }
    function ve(U, et) {
      return y_(et, "alwaysStrict") && !U.isDeclarationFile ? !0 : !!U.externalModuleIndicator;
    }
    function Te(U, et) {
      return P++, new de(U, et);
    }
    function ee(U, et, qt) {
      U.flags |= qt, et.symbol = U, U.declarations = oy(U.declarations, et), qt & 1955 && !U.exports && (U.exports = lo()), qt & 6240 && !U.members && (U.members = lo()), U.constEnumOnlyModule && U.flags & 304 && (U.constEnumOnlyModule = !1), qt & 111551 && SN(U, et);
    }
    function Qe(U) {
      if (U.kind === 274)
        return U.isExportEquals ? "export=" : "default";
      const et = ka(U);
      if (et) {
        if (Pu(U)) {
          const qt = U_(et);
          return Kp(U) ? "__global" : `"${qt}"`;
        }
        if (et.kind === 164) {
          const qt = et.expression;
          if (Xf(qt))
            return sl(qt.text);
          if (A3(qt))
            return yo(qt.operator) + qt.operand.text;
          D.fail("Only computed properties with literal names have declaration names");
        }
        if (Ni(et)) {
          const qt = xc(U);
          if (!qt)
            return;
          const Xn = qt.symbol;
          return MN(Xn, et.escapedText);
        }
        return G_(et) ? qI(et) : void 0;
      }
      switch (U.kind) {
        case 173:
          return "__constructor";
        case 181:
        case 176:
        case 326:
          return "__call";
        case 182:
        case 177:
          return "__new";
        case 178:
          return "__index";
        case 275:
          return "__export";
        case 308:
          return "export=";
        case 223:
          if (Cl(U) === 2)
            return "export=";
          D.fail("Unknown binary declaration kind");
          break;
        case 320:
          return zA(U) ? "__new" : "__call";
        case 166:
          return D.assert(U.parent.kind === 320, "Impossible parameter parent kind", () => `parent is: ${D.formatSyntaxKind(U.parent.kind)}, expected JSDocFunctionType`), "arg" + U.parent.parameters.indexOf(U);
      }
    }
    function Ve(U) {
      return gu(U) ? ws(U.name) : ta(D.checkDefined(Qe(U)));
    }
    function Be(U, et, qt, Xn, Da, Ia, Ie) {
      D.assert(Ie || !Rv(qt));
      const Ue = Yr(qt, 1024) || dd(qt) && qt.name.escapedText === "default", Lt = Ie ? "__computed" : Ue && et ? "default" : Qe(qt);
      let Ot;
      if (Lt === void 0)
        Ot = Te(0, "__missing");
      else if (Ot = U.get(Lt), Xn & 2885600 && re.add(Lt), !Ot)
        U.set(Lt, Ot = Te(0, Lt)), Ia && (Ot.isReplaceableByMethod = !0);
      else {
        if (Ia && !Ot.isReplaceableByMethod)
          return Ot;
        if (Ot.flags & Da) {
          if (Ot.isReplaceableByMethod)
            U.set(Lt, Ot = Te(0, Lt));
          else if (!(Xn & 3 && Ot.flags & 67108864)) {
            gu(qt) && Vo(qt.name, qt);
            let hn = Ot.flags & 2 ? _.Cannot_redeclare_block_scoped_variable_0 : _.Duplicate_identifier_0, bn = !0;
            (Ot.flags & 384 || Xn & 384) && (hn = _.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations, bn = !1);
            let Tn = !1;
            Le(Ot.declarations) && (Ue || Ot.declarations && Ot.declarations.length && qt.kind === 274 && !qt.isExportEquals) && (hn = _.A_module_cannot_have_multiple_default_exports, bn = !1, Tn = !0);
            const Hn = [];
            em(qt) && Al(qt.type) && Yr(qt, 1) && Ot.flags & 2887656 && Hn.push(ce(qt, _.Did_you_mean_0, `export type { ${ta(qt.name.escapedText)} }`));
            const qr = ka(qt) || qt;
            ze(Ot.declarations, (tr, pn) => {
              const dr = ka(tr) || tr, Aa = ce(dr, hn, bn ? Ve(tr) : void 0);
              e.bindDiagnostics.push(Tn ? Xo(Aa, ce(qr, pn === 0 ? _.Another_export_default_is_here : _.and_here)) : Aa), Tn && Hn.push(ce(dr, _.The_first_export_default_is_here));
            });
            const Ji = ce(qr, hn, bn ? Ve(qt) : void 0);
            e.bindDiagnostics.push(Xo(Ji, ...Hn)), Ot = Te(0, Lt);
          }
        }
      }
      return ee(Ot, qt, Xn), Ot.parent ? D.assert(Ot.parent === et, "Existing symbol parent should match new one") : Ot.parent = et, Ot;
    }
    function qe(U, et, qt) {
      const Xn = !!(_y(U) & 1) || Oe(U);
      if (et & 2097152)
        return U.kind === 278 || U.kind === 268 && Xn ? Be(o.symbol.exports, o.symbol, U, et, qt) : (D.assertNode(o, Nm), Be(o.locals, void 0, U, et, qt));
      if (m_(U) && D.assert(fr(U)), !Pu(U) && (Xn || o.flags & 64)) {
        if (!Nm(o) || !o.locals || Yr(U, 1024) && !Qe(U))
          return Be(o.symbol.exports, o.symbol, U, et, qt);
        const Da = et & 111551 ? 1048576 : 0, Ia = Be(o.locals, void 0, U, Da, qt);
        return Ia.exportSymbol = Be(o.symbol.exports, o.symbol, U, et, qt), U.localSymbol = Ia, Ia;
      } else
        return D.assertNode(o, Nm), Be(o.locals, void 0, U, et, qt);
    }
    function Oe(U) {
      if (U.parent && Jl(U) && (U = U.parent), !m_(U))
        return !1;
      if (!GO(U) && U.fullName)
        return !0;
      const et = ka(U);
      return et ? !!(KN(et.parent) && ni(et.parent) || vu(et.parent) && _y(et.parent) & 1) : !1;
    }
    function Me(U, et) {
      const qt = o, Xn = s, Da = c;
      if (et & 1 ? (U.kind !== 216 && (s = o), o = c = U, et & 32 && (o.locals = lo(), To(o))) : et & 2 && (c = U, et & 32 && (c.locals = void 0)), et & 4) {
        const Ia = h, Ie = E, Ue = A, Lt = L, Ot = k, hn = V, bn = H, Tn = et & 16 && !Yr(U, 512) && !U.asteriskToken && !!dT(U) || U.kind === 172;
        Tn || (h = PT({ flags: 2 }), et & 144 && (h.node = U)), L = Tn || U.kind === 173 || fr(U) && (U.kind === 259 || U.kind === 215) ? On() : void 0, k = void 0, E = void 0, A = void 0, V = void 0, H = !1, st(U), U.flags &= -2817, !(h.flags & 1) && et & 8 && __(U.body) && (U.flags |= 256, H && (U.flags |= 512), U.endFlowNode = h), U.kind === 308 && (U.flags |= te, U.endFlowNode = h), L && (_r(L, h), h = At(L), (U.kind === 173 || U.kind === 172 || fr(U) && (U.kind === 259 || U.kind === 215)) && (U.returnFlowNode = h)), Tn || (h = Ia), E = Ie, A = Ue, L = Lt, k = Ot, V = hn, H = bn;
      } else
        et & 64 ? (y = !1, st(U), D.assertNotNode(U, je), U.flags = y ? U.flags | 128 : U.flags & -129) : st(U);
      o = qt, s = Xn, c = Da;
    }
    function Ye(U) {
      We(U, (et) => et.kind === 259 ? xt(et) : void 0), We(U, (et) => et.kind !== 259 ? xt(et) : void 0);
    }
    function We(U, et = xt) {
      U !== void 0 && ze(U, et);
    }
    function Fe(U) {
      Ma(U, xt, We);
    }
    function st(U) {
      const et = Y;
      if (Y = !1, Ip(U)) {
        Fe(U), mn(U), Y = et;
        return;
      }
      switch (U.kind >= 240 && U.kind <= 256 && !t.allowUnreachableCode && (U.flowNode = h), U.kind) {
        case 244:
          an(U);
          break;
        case 243:
          Pn(U);
          break;
        case 245:
          Ar(U);
          break;
        case 246:
        case 247:
          Hr(U);
          break;
        case 242:
          we(U);
          break;
        case 250:
        case 254:
          yt(U);
          break;
        case 249:
        case 248:
          pt(U);
          break;
        case 255:
          _e(U);
          break;
        case 252:
          ie(U);
          break;
        case 266:
          he(U);
          break;
        case 292:
          j(U);
          break;
        case 241:
          He(U);
          break;
        case 253:
          Xe(U);
          break;
        case 221:
          Er(U);
          break;
        case 222:
          ue(U);
          break;
        case 223:
          if (vy(U)) {
            Y = et, mt(U);
            return;
          }
          W(U);
          break;
        case 217:
          it(U);
          break;
        case 224:
          K(U);
          break;
        case 257:
          Z(U);
          break;
        case 208:
        case 209:
          ji(U);
          break;
        case 210:
          mo(U);
          break;
        case 232:
          Ci(U);
          break;
        case 349:
        case 341:
        case 343:
          gt(U);
          break;
        case 308: {
          Ye(U.statements), xt(U.endOfFileToken);
          break;
        }
        case 238:
        case 265:
          Ye(U.statements);
          break;
        case 205:
          Re(U);
          break;
        case 166:
          q(U);
          break;
        case 207:
        case 206:
        case 299:
        case 227:
          Y = et;
        default:
          Fe(U);
          break;
      }
      mn(U), Y = et;
    }
    function Ct(U) {
      switch (U.kind) {
        case 79:
        case 80:
        case 108:
        case 208:
        case 209:
          return Vt(U);
        case 210:
          return tt(U);
        case 214:
        case 232:
          return Ct(U.expression);
        case 223:
          return sn(U);
        case 221:
          return U.operator === 53 && Ct(U.operand);
        case 218:
          return Ct(U.expression);
      }
      return !1;
    }
    function Et(U) {
      return ek(U) || (Fr(U) || Ix(U) || Vd(U)) && Et(U.expression) || br(U) && U.operatorToken.kind === 27 && Et(U.right) || cl(U) && (Xf(U.argumentExpression) || zl(U.argumentExpression)) && Et(U.expression) || ed(U) && Et(U.left);
    }
    function Vt(U) {
      return Et(U) || yu(U) && Vt(U.expression);
    }
    function tt(U) {
      if (U.arguments) {
        for (const et of U.arguments)
          if (Vt(et))
            return !0;
      }
      return !!(U.expression.kind === 208 && Vt(U.expression.expression));
    }
    function at(U, et) {
      return EC(U) && Qt(U.expression) && xs(et);
    }
    function sn(U) {
      switch (U.operatorToken.kind) {
        case 63:
        case 75:
        case 76:
        case 77:
          return Vt(U.left);
        case 34:
        case 35:
        case 36:
        case 37:
          return Qt(U.left) || Qt(U.right) || at(U.right, U.left) || at(U.left, U.right);
        case 102:
          return Qt(U.left);
        case 101:
          return Ct(U.right);
        case 27:
          return Ct(U.right);
      }
      return !1;
    }
    function Qt(U) {
      switch (U.kind) {
        case 214:
          return Qt(U.expression);
        case 223:
          switch (U.operatorToken.kind) {
            case 63:
              return Qt(U.left);
            case 27:
              return Qt(U.right);
          }
      }
      return Vt(U);
    }
    function On() {
      return PT({ flags: 4, antecedents: void 0 });
    }
    function jn() {
      return PT({ flags: 8, antecedents: void 0 });
    }
    function In(U, et, qt) {
      return PT({ flags: 1024, target: U, antecedents: et, antecedent: qt });
    }
    function Zt(U) {
      U.flags |= U.flags & 2048 ? 4096 : 2048;
    }
    function _r(U, et) {
      !(et.flags & 1) && !jr(U.antecedents, et) && ((U.antecedents || (U.antecedents = [])).push(et), Zt(et));
    }
    function Ii(U, et, qt) {
      return et.flags & 1 ? et : qt ? (qt.kind === 110 && U & 64 || qt.kind === 95 && U & 32) && !NM(qt) && !mW(qt.parent) ? ye : Ct(qt) ? (Zt(et), PT({ flags: U, antecedent: et, node: qt })) : et : U & 32 ? et : ye;
    }
    function $i(U, et, qt, Xn) {
      return Zt(U), PT({ flags: 128, antecedent: U, switchStatement: et, clauseStart: qt, clauseEnd: Xn });
    }
    function Qi(U, et, qt) {
      Zt(et);
      const Xn = PT({ flags: U, antecedent: et, node: qt });
      return k && _r(k, Xn), Xn;
    }
    function Or(U, et) {
      return Zt(U), PT({ flags: 512, antecedent: U, node: et });
    }
    function At(U) {
      const et = U.antecedents;
      return et ? et.length === 1 ? et[0] : U : ye;
    }
    function vn(U) {
      const et = U.parent;
      switch (et.kind) {
        case 242:
        case 244:
        case 243:
          return et.expression === U;
        case 245:
        case 224:
          return et.condition === U;
      }
      return !1;
    }
    function Wt(U) {
      for (; ; )
        if (U.kind === 214)
          U = U.expression;
        else if (U.kind === 221 && U.operator === 53)
          U = U.operand;
        else
          return qN(U);
    }
    function fn(U) {
      return qz(js(U));
    }
    function rr(U) {
      for (; Vd(U.parent) || Bv(U.parent) && U.parent.operator === 53; )
        U = U.parent;
      return !vn(U) && !Wt(U.parent) && !(yu(U.parent) && U.parent.expression === U);
    }
    function cr(U, et, qt, Xn) {
      const Da = I, Ia = O;
      I = qt, O = Xn, U(et), I = Da, O = Ia;
    }
    function Pi(U, et, qt) {
      cr(xt, U, et, qt), (!U || !fn(U) && !Wt(U) && !(yu(U) && AI(U))) && (_r(et, Ii(32, h, U)), _r(qt, Ii(64, h, U)));
    }
    function hi(U, et, qt) {
      const Xn = E, Da = A;
      E = et, A = qt, xt(U), E = Xn, A = Da;
    }
    function Rn(U, et) {
      let qt = V;
      for (; qt && U.parent.kind === 253; )
        qt.continueTarget = et, qt = qt.next, U = U.parent;
      return et;
    }
    function an(U) {
      const et = Rn(U, jn()), qt = On(), Xn = On();
      _r(et, h), h = et, Pi(U.expression, qt, Xn), h = At(qt), hi(U.statement, Xn, et), _r(et, h), h = At(Xn);
    }
    function Pn(U) {
      const et = jn(), qt = Rn(U, On()), Xn = On();
      _r(et, h), h = et, hi(U.statement, Xn, qt), _r(qt, h), h = At(qt), Pi(U.expression, et, Xn), h = At(Xn);
    }
    function Ar(U) {
      const et = Rn(U, jn()), qt = On(), Xn = On();
      xt(U.initializer), _r(et, h), h = et, Pi(U.condition, qt, Xn), h = At(qt), hi(U.statement, Xn, et), xt(U.incrementor), _r(et, h), h = At(Xn);
    }
    function Hr(U) {
      const et = Rn(U, jn()), qt = On();
      xt(U.expression), _r(et, h), h = et, U.kind === 247 && xt(U.awaitModifier), _r(qt, h), xt(U.initializer), U.initializer.kind !== 258 && cn(U.initializer), hi(U.statement, qt, et), _r(et, h), h = At(qt);
    }
    function we(U) {
      const et = On(), qt = On(), Xn = On();
      Pi(U.expression, et, qt), h = At(et), xt(U.thenStatement), _r(Xn, h), h = At(qt), xt(U.elseStatement), _r(Xn, h), h = At(Xn);
    }
    function yt(U) {
      xt(U.expression), U.kind === 250 && (H = !0, L && _r(L, h)), h = ye;
    }
    function Nt(U) {
      for (let et = V; et; et = et.next)
        if (et.name === U)
          return et;
    }
    function Ce(U, et, qt) {
      const Xn = U.kind === 249 ? et : qt;
      Xn && (_r(Xn, h), h = ye);
    }
    function pt(U) {
      if (xt(U.label), U.label) {
        const et = Nt(U.label.escapedText);
        et && (et.referenced = !0, Ce(U, et.breakTarget, et.continueTarget));
      } else
        Ce(U, E, A);
    }
    function _e(U) {
      const et = L, qt = k, Xn = On(), Da = On();
      let Ia = On();
      if (U.finallyBlock && (L = Da), _r(Ia, h), k = Ia, xt(U.tryBlock), _r(Xn, h), U.catchClause && (h = At(Ia), Ia = On(), _r(Ia, h), k = Ia, xt(U.catchClause), _r(Xn, h)), L = et, k = qt, U.finallyBlock) {
        const Ie = On();
        Ie.antecedents = va(va(Xn.antecedents, Ia.antecedents), Da.antecedents), h = Ie, xt(U.finallyBlock), h.flags & 1 ? h = ye : (L && Da.antecedents && _r(L, In(Ie, Da.antecedents, h)), k && Ia.antecedents && _r(k, In(Ie, Ia.antecedents, h)), h = Xn.antecedents ? In(Ie, Xn.antecedents, h) : ye);
      } else
        h = At(Xn);
    }
    function ie(U) {
      const et = On();
      xt(U.expression);
      const qt = E, Xn = G;
      E = et, G = h, xt(U.caseBlock), _r(et, h);
      const Da = ze(U.caseBlock.clauses, (Ia) => Ia.kind === 293);
      U.possiblyExhaustive = !Da && !et.antecedents, Da || _r(et, $i(G, U, 0, 0)), E = qt, G = Xn, h = At(et);
    }
    function he(U) {
      const et = U.clauses, qt = Ct(U.parent.expression);
      let Xn = ye;
      for (let Da = 0; Da < et.length; Da++) {
        const Ia = Da;
        for (; !et[Da].statements.length && Da + 1 < et.length; )
          xt(et[Da]), Da++;
        const Ie = On();
        _r(Ie, qt ? $i(G, U.parent, Ia, Da + 1) : G), _r(Ie, Xn), h = At(Ie);
        const Ue = et[Da];
        xt(Ue), Xn = h, !(h.flags & 1) && Da !== et.length - 1 && t.noFallthroughCasesInSwitch && (Ue.fallthroughFlowNode = h);
      }
    }
    function j(U) {
      const et = h;
      h = G, xt(U.expression), h = et, We(U.statements);
    }
    function He(U) {
      xt(U.expression), Ze(U.expression);
    }
    function Ze(U) {
      if (U.kind === 210) {
        const et = U;
        et.expression.kind !== 106 && ek(et.expression) && (h = Or(h, et));
      }
    }
    function Xe(U) {
      const et = On();
      V = {
        next: V,
        name: U.label.escapedText,
        breakTarget: et,
        continueTarget: void 0,
        referenced: !1
      }, xt(U.label), xt(U.statement), !V.referenced && !t.allowUnusedLabels && Ht(Ode(t), U.label, _.Unused_label), V = V.next, _r(et, h), h = At(et);
    }
    function Ut(U) {
      U.kind === 223 && U.operatorToken.kind === 63 ? cn(U.left) : cn(U);
    }
    function cn(U) {
      if (Et(U))
        h = Qi(16, h, U);
      else if (U.kind === 206)
        for (const et of U.elements)
          et.kind === 227 ? cn(et.expression) : Ut(et);
      else if (U.kind === 207)
        for (const et of U.properties)
          et.kind === 299 ? Ut(et.initializer) : et.kind === 300 ? cn(et.name) : et.kind === 301 && cn(et.expression);
    }
    function Sn(U, et, qt) {
      const Xn = On();
      U.operatorToken.kind === 55 || U.operatorToken.kind === 76 ? Pi(U.left, Xn, qt) : Pi(U.left, et, Xn), h = At(Xn), xt(U.operatorToken), ZI(U.operatorToken.kind) ? (cr(xt, U.right, et, qt), cn(U.left), _r(et, Ii(32, h, U)), _r(qt, Ii(64, h, U))) : Pi(U.right, et, qt);
    }
    function Er(U) {
      if (U.operator === 53) {
        const et = I;
        I = O, O = et, Fe(U), O = I, I = et;
      } else
        Fe(U), (U.operator === 45 || U.operator === 46) && cn(U.operand);
    }
    function ue(U) {
      Fe(U), (U.operator === 45 || U.operator === 46) && cn(U.operand);
    }
    function mt(U) {
      Y ? (Y = !1, xt(U.operatorToken), xt(U.right), Y = !0, xt(U.left)) : (Y = !0, xt(U.left), Y = !1, xt(U.operatorToken), xt(U.right)), cn(U.left);
    }
    function zt() {
      return n5(U, et, qt, Xn, Da, void 0);
      function U(Ie, Ue) {
        if (Ue) {
          Ue.stackIndex++, Vo(Ie, i);
          const Ot = X;
          Ta(Ie);
          const hn = i;
          i = Ie, Ue.skip = !1, Ue.inStrictModeStack[Ue.stackIndex] = Ot, Ue.parentStack[Ue.stackIndex] = hn;
        } else
          Ue = {
            stackIndex: 0,
            skip: !1,
            inStrictModeStack: [void 0],
            parentStack: [void 0]
          };
        const Lt = Ie.operatorToken.kind;
        if (zN(Lt) || ZI(Lt)) {
          if (rr(Ie)) {
            const Ot = On();
            Sn(Ie, Ot, Ot), h = At(Ot);
          } else
            Sn(Ie, I, O);
          Ue.skip = !0;
        }
        return Ue;
      }
      function et(Ie, Ue, Lt) {
        if (!Ue.skip) {
          const Ot = Ia(Ie);
          return Lt.operatorToken.kind === 27 && Ze(Ie), Ot;
        }
      }
      function qt(Ie, Ue, Lt) {
        Ue.skip || xt(Ie);
      }
      function Xn(Ie, Ue, Lt) {
        if (!Ue.skip) {
          const Ot = Ia(Ie);
          return Lt.operatorToken.kind === 27 && Ze(Ie), Ot;
        }
      }
      function Da(Ie, Ue) {
        if (!Ue.skip) {
          const hn = Ie.operatorToken.kind;
          if (yy(hn) && !bh(Ie) && (cn(Ie.left), hn === 63 && Ie.left.kind === 209)) {
            const bn = Ie.left;
            Qt(bn.expression) && (h = Qi(256, h, Ie));
          }
        }
        const Lt = Ue.inStrictModeStack[Ue.stackIndex], Ot = Ue.parentStack[Ue.stackIndex];
        Lt !== void 0 && (X = Lt), Ot !== void 0 && (i = Ot), Ue.skip = !1, Ue.stackIndex--;
      }
      function Ia(Ie) {
        if (Ie && br(Ie) && !vy(Ie))
          return Ie;
        xt(Ie);
      }
    }
    function it(U) {
      Fe(U), U.expression.kind === 208 && cn(U.expression);
    }
    function K(U) {
      const et = On(), qt = On(), Xn = On();
      Pi(U.condition, et, qt), h = At(et), xt(U.questionToken), xt(U.whenTrue), _r(Xn, h), h = At(qt), xt(U.colonToken), xt(U.whenFalse), _r(Xn, h), h = At(Xn);
    }
    function Pe(U) {
      const et = Rc(U) ? void 0 : U.name;
      if (Xa(et))
        for (const qt of et.elements)
          Pe(qt);
      else
        h = Qi(16, h, U);
    }
    function Z(U) {
      Fe(U), (U.initializer || kA(U.parent.parent)) && Pe(U);
    }
    function Re(U) {
      xt(U.dotDotDotToken), xt(U.propertyName), Rt(U.initializer), xt(U.name);
    }
    function q(U) {
      We(U.modifiers), xt(U.dotDotDotToken), xt(U.questionToken), xt(U.type), Rt(U.initializer), xt(U.name);
    }
    function Rt(U) {
      if (!U)
        return;
      const et = h;
      if (xt(U), et === ye || et === h)
        return;
      const qt = On();
      _r(qt, et), _r(qt, h), h = At(qt);
    }
    function gt(U) {
      xt(U.tagName), U.kind !== 343 && U.fullName && (Vo(U.fullName, U), Mv(U.fullName, !1)), typeof U.comment != "string" && We(U.comment);
    }
    function ft(U) {
      Fe(U);
      const et = z0(U);
      et && et.kind !== 171 && ee(et.symbol, et, 32);
    }
    function _n(U, et, qt) {
      cr(xt, U, et, qt), (!yu(U) || AI(U)) && (_r(et, Ii(32, h, U)), _r(qt, Ii(64, h, U)));
    }
    function $n(U) {
      switch (U.kind) {
        case 208:
          xt(U.questionDotToken), xt(U.name);
          break;
        case 209:
          xt(U.questionDotToken), xt(U.argumentExpression);
          break;
        case 210:
          xt(U.questionDotToken), We(U.typeArguments), We(U.arguments);
          break;
      }
    }
    function oi(U, et, qt) {
      const Xn = xI(U) ? On() : void 0;
      _n(U.expression, Xn || et, qt), Xn && (h = At(Xn)), cr($n, U, et, qt), AI(U) && (_r(et, Ii(32, h, U)), _r(qt, Ii(64, h, U)));
    }
    function Ai(U) {
      if (rr(U)) {
        const et = On();
        oi(U, et, et), h = At(et);
      } else
        oi(U, I, O);
    }
    function Ci(U) {
      yu(U) ? Ai(U) : Fe(U);
    }
    function ji(U) {
      yu(U) ? Ai(U) : Fe(U);
    }
    function mo(U) {
      if (yu(U))
        Ai(U);
      else {
        const et = js(U.expression);
        et.kind === 215 || et.kind === 216 ? (We(U.typeArguments), We(U.arguments), xt(U.expression)) : (Fe(U), U.expression.kind === 106 && (h = Or(h, U)));
      }
      if (U.expression.kind === 208) {
        const et = U.expression;
        je(et.name) && Qt(et.expression) && Cz(et.name) && (h = Qi(256, h, U));
      }
    }
    function To(U) {
      f && (f.nextContainer = U), f = U;
    }
    function io(U, et, qt) {
      switch (o.kind) {
        case 264:
          return qe(U, et, qt);
        case 308:
          return Hi(U, et, qt);
        case 228:
        case 260:
          return ua(U, et, qt);
        case 263:
          return Be(o.symbol.exports, o.symbol, U, et, qt);
        case 184:
        case 325:
        case 207:
        case 261:
        case 289:
          return Be(o.symbol.members, o.symbol, U, et, qt);
        case 181:
        case 182:
        case 176:
        case 177:
        case 326:
        case 178:
        case 171:
        case 170:
        case 173:
        case 174:
        case 175:
        case 259:
        case 215:
        case 216:
        case 320:
        case 172:
        case 262:
        case 197:
          return o.locals && D.assertNode(o, Nm), Be(o.locals, void 0, U, et, qt);
      }
    }
    function ua(U, et, qt) {
      return Ja(U) ? Be(o.symbol.exports, o.symbol, U, et, qt) : Be(o.symbol.members, o.symbol, U, et, qt);
    }
    function Hi(U, et, qt) {
      return Zl(e) ? qe(U, et, qt) : Be(e.locals, void 0, U, et, qt);
    }
    function Xr(U) {
      const et = qi(U) ? U : ai(U.body, tm);
      return !!et && et.statements.some((qt) => eu(qt) || Bl(qt));
    }
    function ss(U) {
      U.flags & 16777216 && !Xr(U) ? U.flags |= 64 : U.flags &= -65;
    }
    function _i(U) {
      if (ss(U), Pu(U))
        if (Yr(U, 1) && It(U, _.export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible), KW(U))
          da(U);
        else {
          let et;
          if (U.name.kind === 10) {
            const { text: Xn } = U.name;
            et = aC(Xn), et === void 0 && It(U.name, _.Pattern_0_can_have_at_most_one_Asterisk_character, Xn);
          }
          const qt = io(U, 512, 110735);
          e.patternAmbientModules = Fn(e.patternAmbientModules, et && !Ha(et) ? { pattern: et, symbol: qt } : void 0);
        }
      else {
        const et = da(U);
        if (et !== 0) {
          const { symbol: qt } = U;
          qt.constEnumOnlyModule = !(qt.flags & 304) && et === 2 && qt.constEnumOnlyModule !== !1;
        }
      }
    }
    function da(U) {
      const et = vg(U), qt = et !== 0;
      return io(U, qt ? 512 : 1024, qt ? 110735 : 0), et;
    }
    function wn(U) {
      const et = Te(131072, Qe(U));
      ee(et, U, 131072);
      const qt = Te(2048, "__type");
      ee(qt, U, 2048), qt.members = lo(), qt.members.set(et.escapedName, et);
    }
    function pa(U) {
      return Gl(U, 4096, "__object");
    }
    function ec(U) {
      return Gl(U, 4096, "__jsxAttributes");
    }
    function rl(U, et, qt) {
      return io(U, et, qt);
    }
    function Gl(U, et, qt) {
      const Xn = Te(et, qt);
      return et & 106508 && (Xn.parent = o.symbol), ee(Xn, U, et), Xn;
    }
    function Xl(U, et, qt) {
      switch (c.kind) {
        case 264:
          qe(U, et, qt);
          break;
        case 308:
          if (sf(o)) {
            qe(U, et, qt);
            break;
          }
        default:
          D.assertNode(c, Nm), c.locals || (c.locals = lo(), To(c)), Be(c.locals, void 0, U, et, qt);
      }
    }
    function Ul() {
      if (!d)
        return;
      const U = o, et = f, qt = c, Xn = i, Da = h;
      for (const Ia of d) {
        const Ie = Ia.parent.parent;
        o = nr(Ie.parent, (Lt) => !!(Eme(Lt) & 1)) || e, c = Mm(Ie) || e, h = PT({ flags: 2 }), i = Ia, xt(Ia.typeExpression);
        const Ue = ka(Ia);
        if ((GO(Ia) || !Ia.fullName) && Ue && KN(Ue.parent)) {
          const Lt = ni(Ue.parent);
          if (Lt) {
            Vn(e.symbol, Ue.parent, Lt, !!nr(Ue, (hn) => Fr(hn) && hn.name.escapedText === "prototype"), !1);
            const Ot = o;
            switch (EN(Ue.parent)) {
              case 1:
              case 2:
                sf(e) ? o = e : o = void 0;
                break;
              case 4:
                o = Ue.parent.expression;
                break;
              case 3:
                o = Ue.parent.expression.name;
                break;
              case 5:
                o = F1(e, Ue.parent.expression) ? e : Fr(Ue.parent.expression) ? Ue.parent.expression.name : Ue.parent.expression;
                break;
              case 0:
                return D.fail("Shouldn't have detected typedef or enum on non-assignment declaration");
            }
            o && qe(Ia, 524288, 788968), o = Ot;
          }
        } else
          GO(Ia) || !Ia.fullName || Ia.fullName.kind === 79 ? (i = Ia.parent, Xl(Ia, 524288, 788968)) : xt(Ia.fullName);
      }
      o = U, f = et, c = qt, i = Xn, h = Da;
    }
    function Co(U) {
      if (!e.parseDiagnostics.length && !(U.flags & 16777216) && !(U.flags & 8388608) && !Oue(U)) {
        const et = U0(U);
        if (et === void 0)
          return;
        X && et >= 117 && et <= 125 ? e.bindDiagnostics.push(ce(U, La(U), ws(U))) : et === 133 ? Zl(e) && c3(U) ? e.bindDiagnostics.push(ce(U, _.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module, ws(U))) : U.flags & 32768 && e.bindDiagnostics.push(ce(U, _.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here, ws(U))) : et === 125 && U.flags & 8192 && e.bindDiagnostics.push(ce(U, _.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here, ws(U)));
      }
    }
    function La(U) {
      return xc(U) ? _.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode : e.externalModuleIndicator ? _.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode : _.Identifier_expected_0_is_a_reserved_word_in_strict_mode;
    }
    function Yo(U) {
      U.escapedText === "#constructor" && (e.parseDiagnostics.length || e.bindDiagnostics.push(ce(U, _.constructor_is_a_reserved_word, ws(U))));
    }
    function Vl(U) {
      X && Td(U.left) && yy(U.operatorToken.kind) && Jc(U, U.left);
    }
    function tu(U) {
      X && U.variableDeclaration && Jc(U, U.variableDeclaration.name);
    }
    function qd(U) {
      if (X && U.expression.kind === 79) {
        const et = g1(e, U.expression);
        e.bindDiagnostics.push(Dc(e, et.start, et.length, _.delete_cannot_be_called_on_an_identifier_in_strict_mode));
      }
    }
    function oc(U) {
      return je(U) && (U.escapedText === "eval" || U.escapedText === "arguments");
    }
    function Jc(U, et) {
      if (et && et.kind === 79) {
        const qt = et;
        if (oc(qt)) {
          const Xn = g1(e, et);
          e.bindDiagnostics.push(Dc(e, Xn.start, Xn.length, Ds(U), Mr(qt)));
        }
      }
    }
    function Ds(U) {
      return xc(U) ? _.Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode : e.externalModuleIndicator ? _.Invalid_use_of_0_Modules_are_automatically_in_strict_mode : _.Invalid_use_of_0_in_strict_mode;
    }
    function hl(U) {
      X && Jc(U, U.name);
    }
    function el(U) {
      return xc(U) ? _.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode : e.externalModuleIndicator ? _.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode : _.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5;
    }
    function Ks(U) {
      if (r < 2 && c.kind !== 308 && c.kind !== 264 && !CA(c)) {
        const et = g1(e, U);
        e.bindDiagnostics.push(Dc(e, et.start, et.length, el(U)));
      }
    }
    function rn(U) {
      r < 1 && X && U.numericLiteralFlags & 32 && e.bindDiagnostics.push(ce(U, _.Octal_literals_are_not_allowed_in_strict_mode));
    }
    function jl(U) {
      X && Jc(U, U.operand);
    }
    function xu(U) {
      X && (U.operator === 45 || U.operator === 46) && Jc(U, U.operand);
    }
    function Wu(U) {
      X && It(U, _.with_statements_are_not_allowed_in_strict_mode);
    }
    function fe(U) {
      X && ts(t) >= 2 && (Dce(U.statement) || uc(U.statement)) && It(U.label, _.A_label_is_not_allowed_here);
    }
    function It(U, et, qt, Xn, Da) {
      const Ia = gy(e, U.pos);
      e.bindDiagnostics.push(Dc(e, Ia.start, Ia.length, et, qt, Xn, Da));
    }
    function Ht(U, et, qt) {
      Q(U, et, et, qt);
    }
    function Q(U, et, qt, Xn) {
      ot(U, { pos: sT(et, e), end: qt.end }, Xn);
    }
    function ot(U, et, qt) {
      const Xn = Dc(e, et.pos, et.end - et.pos, qt);
      U ? e.bindDiagnostics.push(Xn) : e.bindSuggestionDiagnostics = Fn(e.bindSuggestionDiagnostics, { ...Xn, category: 2 });
    }
    function xt(U) {
      if (!U)
        return;
      Vo(U, i), bi && (U.tracingPath = e.path);
      const et = X;
      if (Ta(U), U.kind > 162) {
        const qt = i;
        i = U;
        const Xn = Eme(U);
        Xn === 0 ? st(U) : Me(U, Xn), i = qt;
      } else {
        const qt = i;
        U.kind === 1 && (i = U), mn(U), i = qt;
      }
      X = et;
    }
    function mn(U) {
      if (xf(U))
        if (fr(U))
          for (const et of U.jsDoc)
            xt(et);
        else
          for (const et of U.jsDoc)
            Vo(et, U), Mv(et, !1);
    }
    function Dr(U) {
      if (!X)
        for (const et of U) {
          if (!gp(et))
            return;
          if (Pr(et)) {
            X = !0;
            return;
          }
        }
    }
    function Pr(U) {
      const et = m1(e, U.expression);
      return et === '"use strict"' || et === "'use strict'";
    }
    function Ta(U) {
      switch (U.kind) {
        case 79:
          if (U.flags & 2048) {
            let Ie = U.parent;
            for (; Ie && !m_(Ie); )
              Ie = Ie.parent;
            Xl(Ie, 524288, 788968);
            break;
          }
        case 108:
          return h && (vt(U) || i.kind === 300) && (U.flowNode = h), Co(U);
        case 163:
          h && p3(U) && (U.flowNode = h);
          break;
        case 233:
        case 106:
          U.flowNode = h;
          break;
        case 80:
          return Yo(U);
        case 208:
        case 209:
          const et = U;
          h && Et(et) && (et.flowNode = h), Sue(et) && Xi(et), fr(et) && e.commonJsModuleIndicator && vh(et) && !b8(c, "module") && Be(e.locals, void 0, et.expression, 134217729, 111550);
          break;
        case 223:
          switch (Cl(U)) {
            case 1:
              Jd(U);
              break;
            case 2:
              Hl(U);
              break;
            case 3:
              ut(U.left, U);
              break;
            case 6:
              Lo(U);
              break;
            case 4:
              xe(U);
              break;
            case 5:
              const Ie = U.left.expression;
              if (fr(U) && je(Ie)) {
                const Ue = b8(c, Ie.escapedText);
                if (u3(Ue == null ? void 0 : Ue.valueDeclaration)) {
                  xe(U);
                  break;
                }
              }
              Pt(U);
              break;
            case 0:
              break;
            default:
              D.fail("Unknown binary expression special property assignment kind");
          }
          return Vl(U);
        case 295:
          return tu(U);
        case 217:
          return qd(U);
        case 8:
          return rn(U);
        case 222:
          return jl(U);
        case 221:
          return xu(U);
        case 251:
          return Wu(U);
        case 253:
          return fe(U);
        case 194:
          y = !0;
          return;
        case 179:
          break;
        case 165:
          return mf(U);
        case 166:
          return Au(U);
        case 257:
          return Kd(U);
        case 205:
          return U.flowNode = h, Kd(U);
        case 169:
        case 168:
          return ls(U);
        case 299:
        case 300:
          return $o(U, 4, 0);
        case 302:
          return $o(U, 8, 900095);
        case 176:
        case 177:
        case 178:
          return io(U, 131072, 0);
        case 171:
        case 170:
          return $o(U, 8192 | (U.questionToken ? 16777216 : 0), B_(U) ? 0 : 103359);
        case 259:
          return pf(U);
        case 173:
          return io(U, 16384, 0);
        case 174:
          return $o(U, 32768, 46015);
        case 175:
          return $o(U, 65536, 78783);
        case 181:
        case 320:
        case 326:
        case 182:
          return wn(U);
        case 184:
        case 325:
        case 197:
          return ho(U);
        case 335:
          return ft(U);
        case 207:
          return pa(U);
        case 215:
        case 216:
          return S_(U);
        case 210:
          switch (Cl(U)) {
            case 7:
              return Mt(U);
            case 8:
              return fl(U);
            case 9:
              return oe(U);
            case 0:
              break;
            default:
              return D.fail("Unknown call expression assignment declaration kind");
          }
          fr(U) && pd(U);
          break;
        case 228:
        case 260:
          return X = !0, _f(U);
        case 261:
          return Xl(U, 64, 788872);
        case 262:
          return Xl(U, 524288, 788968);
        case 263:
          return tc(U);
        case 264:
          return _i(U);
        case 289:
          return ec(U);
        case 288:
          return rl(U, 4, 0);
        case 268:
        case 271:
        case 273:
        case 278:
          return io(U, 2097152, 2097152);
        case 267:
          return dc(U);
        case 270:
          return Es(U);
        case 275:
          return _d(U);
        case 274:
          return dl(U);
        case 308:
          return Dr(U.statements), Ho();
        case 238:
          if (!CA(U.parent))
            return;
        case 265:
          return Dr(U.statements);
        case 344:
          if (U.parent.kind === 326)
            return Au(U);
          if (U.parent.kind !== 325)
            break;
        case 351:
          const Da = U, Ia = Da.isBracketed || Da.typeExpression && Da.typeExpression.type.kind === 319 ? 16777220 : 4;
          return io(Da, Ia, 0);
        case 349:
        case 341:
        case 343:
          return (d || (d = [])).push(U);
        case 342:
          return xt(U.typeExpression);
      }
    }
    function ls(U) {
      const et = af(U), qt = et ? 98304 : 4, Xn = et ? 13247 : 0;
      return $o(U, qt | (U.questionToken ? 16777216 : 0), Xn);
    }
    function ho(U) {
      return Gl(U, 2048, "__type");
    }
    function Ho() {
      if (ss(e), Zl(e))
        Ya();
      else if (p_(e)) {
        Ya();
        const U = e.symbol;
        Be(e.symbol.exports, e.symbol, e, 4, 67108863), e.symbol = U;
      }
    }
    function Ya() {
      Gl(e, 512, `"${Ud(e.fileName)}"`);
    }
    function dl(U) {
      if (!o.symbol || !o.symbol.exports)
        Gl(U, 111551, Qe(U));
      else {
        const et = KA(U) ? 2097152 : 4, qt = Be(o.symbol.exports, o.symbol, U, et, 67108863);
        U.isExportEquals && SN(qt, U);
      }
    }
    function dc(U) {
      kt(U.modifiers) && e.bindDiagnostics.push(ce(U, _.Modifiers_cannot_appear_here));
      const et = qi(U.parent) ? Zl(U.parent) ? U.parent.isDeclarationFile ? void 0 : _.Global_module_exports_may_only_appear_in_declaration_files : _.Global_module_exports_may_only_appear_in_module_files : _.Global_module_exports_may_only_appear_at_top_level;
      et ? e.bindDiagnostics.push(ce(U, et)) : (e.symbol.globalExports = e.symbol.globalExports || lo(), Be(e.symbol.globalExports, e.symbol, U, 2097152, 2097152));
    }
    function _d(U) {
      !o.symbol || !o.symbol.exports ? Gl(U, 8388608, Qe(U)) : U.exportClause ? Ih(U.exportClause) && (Vo(U.exportClause, U), Be(o.symbol.exports, o.symbol, U.exportClause, 2097152, 2097152)) : Be(o.symbol.exports, o.symbol, U, 8388608, 0);
    }
    function Es(U) {
      U.name && io(U, 2097152, 2097152);
    }
    function ds(U) {
      return e.externalModuleIndicator && e.externalModuleIndicator !== !0 ? !1 : (e.commonJsModuleIndicator || (e.commonJsModuleIndicator = U, e.externalModuleIndicator || Ya()), !0);
    }
    function fl(U) {
      if (!ds(U))
        return;
      const et = Xs(U.arguments[0], void 0, (qt, Xn) => (Xn && ee(Xn, qt, 67110400), Xn));
      et && Be(et.exports, et, U, 1048580, 0);
    }
    function Jd(U) {
      if (!ds(U))
        return;
      const et = Xs(U.left.expression, void 0, (qt, Xn) => (Xn && ee(Xn, qt, 67110400), Xn));
      if (et) {
        const Xn = ON(U.right) && (fT(U.left.expression) || vh(U.left.expression)) ? 2097152 : 1048580;
        Vo(U.left, U), Be(et.exports, et, U.left, Xn, 0);
      }
    }
    function Hl(U) {
      if (!ds(U))
        return;
      const et = yN(U.right);
      if (Xz(et) || o === e && F1(e, et))
        return;
      if (Ls(et) && Yn(et.properties, t_)) {
        ze(et.properties, Nf);
        return;
      }
      const qt = KA(U) ? 2097152 : 1049092, Xn = Be(e.symbol.exports, e.symbol, U, qt | 67108864, 0);
      SN(Xn, U);
    }
    function Nf(U) {
      Be(e.symbol.exports, e.symbol, U, 69206016, 0);
    }
    function xe(U) {
      if (D.assert(fr(U)), br(U) && Fr(U.left) && Ni(U.left.name) || Fr(U) && Ni(U.name))
        return;
      const qt = Sd(U, !1, !1);
      switch (qt.kind) {
        case 259:
        case 215:
          let Xn = qt.symbol;
          if (br(qt.parent) && qt.parent.operatorToken.kind === 63) {
            const Ie = qt.parent.left;
            _T(Ie) && K0(Ie.expression) && (Xn = Ts(Ie.expression.expression, s));
          }
          Xn && Xn.valueDeclaration && (Xn.members = Xn.members || lo(), Rv(U) ? Dt(U, Xn, Xn.members) : Be(Xn.members, Xn, U, 67108868, 0), ee(Xn, Xn.valueDeclaration, 32));
          break;
        case 173:
        case 169:
        case 171:
        case 174:
        case 175:
        case 172:
          const Da = qt.parent, Ia = Ja(qt) ? Da.symbol.exports : Da.symbol.members;
          Rv(U) ? Dt(U, Da.symbol, Ia) : Be(Ia, Da.symbol, U, 67108868, 0, !0);
          break;
        case 308:
          if (Rv(U))
            break;
          qt.commonJsModuleIndicator ? Be(qt.symbol.exports, qt.symbol, U, 1048580, 0) : io(U, 1, 111550);
          break;
        default:
          D.failBadSyntaxKind(qt);
      }
    }
    function Dt(U, et, qt) {
      Be(qt, et, U, 4, 0, !0, !0), Nn(U, et);
    }
    function Nn(U, et) {
      et && (et.assignmentDeclarationMembers || (et.assignmentDeclarationMembers = /* @__PURE__ */ new Map())).set(ps(U), U);
    }
    function Xi(U) {
      U.expression.kind === 108 ? xe(U) : _T(U) && U.parent.parent.kind === 308 && (K0(U.expression) ? ut(U, U.parent) : un(U));
    }
    function Lo(U) {
      Vo(U.left, U), Vo(U.right, U), Mi(U.left.expression, U.left, !1, !0);
    }
    function oe(U) {
      const et = Ts(U.arguments[0].expression);
      et && et.valueDeclaration && ee(et, et.valueDeclaration, 32), Rr(U, et, !0);
    }
    function ut(U, et) {
      const qt = U.expression, Xn = qt.expression;
      Vo(Xn, qt), Vo(qt, U), Vo(U, et), Mi(Xn, U, !0, !0);
    }
    function Mt(U) {
      let et = Ts(U.arguments[0]);
      const qt = U.parent.parent.kind === 308;
      et = Vn(et, U.arguments[0], qt, !1, !1), Rr(U, et, !1);
    }
    function Pt(U) {
      var et;
      const qt = Ts(U.left.expression, o) || Ts(U.left.expression, c);
      if (!fr(U) && !xue(qt))
        return;
      const Xn = sk(U.left);
      if (!(je(Xn) && ((et = b8(o, Xn.escapedText)) == null ? void 0 : et.flags) & 2097152))
        if (Vo(U.left, U), Vo(U.right, U), je(U.left.expression) && o === e && F1(e, U.left.expression))
          Jd(U);
        else if (Rv(U)) {
          Gl(U, 67108868, "__computed");
          const Da = Vn(qt, U.left.expression, ni(U.left), !1, !1);
          Nn(U, Da);
        } else
          un(oo(U.left, tx));
    }
    function un(U) {
      D.assert(!je(U)), Vo(U.expression, U), Mi(U.expression, U, !1, !1);
    }
    function Vn(U, et, qt, Xn, Da) {
      return (U == null ? void 0 : U.flags) & 2097152 || (qt && !Xn && (U = Xs(et, U, (Ue, Lt, Ot) => {
        if (Lt)
          return ee(Lt, Ue, 67110400), Lt;
        {
          const hn = Ot ? Ot.exports : e.jsGlobalAugmentations || (e.jsGlobalAugmentations = lo());
          return Be(hn, Ot, Ue, 67110400, 110735);
        }
      })), Da && U && U.valueDeclaration && ee(U, U.valueDeclaration, 32)), U;
    }
    function Rr(U, et, qt) {
      if (!et || !ja(et))
        return;
      const Xn = qt ? et.members || (et.members = lo()) : et.exports || (et.exports = lo());
      let Da = 0, Ia = 0;
      Qs(ZS(U)) ? (Da = 8192, Ia = 103359) : no(U) && ex(U) && (kt(U.arguments[2].properties, (Ie) => {
        const Ue = ka(Ie);
        return !!Ue && je(Ue) && Mr(Ue) === "set";
      }) && (Da |= 65540, Ia |= 78783), kt(U.arguments[2].properties, (Ie) => {
        const Ue = ka(Ie);
        return !!Ue && je(Ue) && Mr(Ue) === "get";
      }) && (Da |= 32772, Ia |= 46015)), Da === 0 && (Da = 4, Ia = 0), Be(Xn, et, U, Da | 67108864, Ia & -67108865);
    }
    function ni(U) {
      return br(U.parent) ? Wo(U.parent).parent.kind === 308 : U.parent.parent.kind === 308;
    }
    function Mi(U, et, qt, Xn) {
      let Da = Ts(U, o) || Ts(U, c);
      const Ia = ni(et);
      Da = Vn(Da, et.expression, Ia, qt, Xn), Rr(et, Da, qt);
    }
    function ja(U) {
      if (U.flags & 1072)
        return !0;
      const et = U.valueDeclaration;
      if (et && no(et))
        return !!ZS(et);
      let qt = et ? Ki(et) ? et.initializer : br(et) ? et.right : Fr(et) && br(et.parent) ? et.parent.right : void 0 : void 0;
      if (qt = qt && yN(qt), qt) {
        const Xn = K0(Ki(et) ? et.name : br(et) ? et.left : et);
        return !!W0(br(qt) && (qt.operatorToken.kind === 56 || qt.operatorToken.kind === 60) ? qt.right : qt, Xn);
      }
      return !1;
    }
    function Wo(U) {
      for (; br(U.parent); )
        U = U.parent;
      return U.parent;
    }
    function Ts(U, et = o) {
      if (je(U))
        return b8(et, U.escapedText);
      {
        const qt = Ts(U.expression);
        return qt && qt.exports && qt.exports.get(fg(U));
      }
    }
    function Xs(U, et, qt) {
      if (F1(e, U))
        return e.symbol;
      if (je(U))
        return qt(U, Ts(U), et);
      {
        const Xn = Xs(U.expression, et, qt), Da = bN(U);
        return Ni(Da) && D.fail("unexpected PrivateIdentifier"), qt(Da, Xn && Xn.exports && Xn.exports.get(fg(U)), Xn);
      }
    }
    function pd(U) {
      !e.commonJsModuleIndicator && xd(U, !1) && ds(U);
    }
    function _f(U) {
      if (U.kind === 260)
        Xl(U, 32, 899503);
      else {
        const Da = U.name ? U.name.escapedText : "__class";
        Gl(U, 32, Da), U.name && re.add(U.name.escapedText);
      }
      const { symbol: et } = U, qt = Te(4194308, "prototype"), Xn = et.exports.get(qt.escapedName);
      Xn && (U.name && Vo(U.name, U), e.bindDiagnostics.push(ce(Xn.declarations[0], _.Duplicate_identifier_0, Ml(qt)))), et.exports.set(qt.escapedName, qt), qt.parent = et;
    }
    function tc(U) {
      return y1(U) ? Xl(U, 128, 899967) : Xl(U, 256, 899327);
    }
    function Kd(U) {
      if (X && Jc(U, U.name), !Xa(U.name)) {
        const et = U.kind === 257 ? U : U.parent.parent;
        fr(U) && vl(t) !== 100 && b1(et) && !u1(U) && !(_y(U) & 1) ? io(U, 2097152, 2097152) : zW(U) ? Xl(U, 2, 111551) : hT(U) ? io(U, 1, 111551) : io(U, 1, 111550);
      }
    }
    function Au(U) {
      if (!(U.kind === 344 && o.kind !== 326) && (X && !(U.flags & 16777216) && Jc(U, U.name), Xa(U.name) ? Gl(U, 1, "__" + U.parent.parameters.indexOf(U)) : io(U, 1, 111551), nf(U, U.parent))) {
        const et = U.parent.parent;
        Be(et.symbol.members, et.symbol, U, 4 | (U.questionToken ? 16777216 : 0), 0);
      }
    }
    function pf(U) {
      !e.isDeclarationFile && !(U.flags & 16777216) && $A(U) && (te |= 2048), hl(U), X ? (Ks(U), Xl(U, 16, 110991)) : io(U, 16, 110991);
    }
    function S_(U) {
      !e.isDeclarationFile && !(U.flags & 16777216) && $A(U) && (te |= 2048), h && (U.flowNode = h), hl(U);
      const et = U.name ? U.name.escapedText : "__function";
      return Gl(U, 16, et);
    }
    function $o(U, et, qt) {
      return !e.isDeclarationFile && !(U.flags & 16777216) && $A(U) && (te |= 2048), h && o3(U) && (U.flowNode = h), Rv(U) ? Gl(U, et, "__computed") : io(U, et, qt);
    }
    function x_(U) {
      const et = nr(U, (qt) => qt.parent && yC(qt.parent) && qt.parent.extendsType === qt);
      return et && et.parent;
    }
    function mf(U) {
      var et, qt;
      if (Ep(U.parent)) {
        const Xn = T3(U.parent);
        Xn ? (D.assertNode(Xn, Nm), (et = Xn.locals) != null || (Xn.locals = lo()), Be(Xn.locals, void 0, U, 262144, 526824)) : io(U, 262144, 526824);
      } else if (U.parent.kind === 192) {
        const Xn = x_(U.parent);
        Xn ? (D.assertNode(Xn, Nm), (qt = Xn.locals) != null || (Xn.locals = lo()), Be(Xn.locals, void 0, U, 262144, 526824)) : Gl(U, 262144, Qe(U));
      } else
        io(U, 262144, 526824);
    }
    function Q_(U) {
      const et = vg(U);
      return et === 1 || et === 2 && C1(t);
    }
    function Ip(U) {
      if (!(h.flags & 1))
        return !1;
      if (h === ye && (eN(U) && U.kind !== 239 || U.kind === 260 || U.kind === 264 && Q_(U)) && (h = ae, !t.allowUnreachableCode)) {
        const qt = Nde(t) && !(U.flags & 16777216) && (!uc(U) || !!(hp(U.declarationList) & 3) || U.declarationList.declarations.some((Xn) => !!Xn.initializer));
        eMe(U, (Xn, Da) => Q(qt, Xn, Da, _.Unreachable_code_detected));
      }
      return !0;
    }
  }
  function eMe(e, t) {
    if (wa(e) && bme(e) && co(e.parent)) {
      const { statements: r } = e.parent, i = vq(r, e);
      vj(i, bme, (o, s) => t(i[o], i[s - 1]));
    } else
      t(e, e);
  }
  function bme(e) {
    return !yc(e) && !tMe(e) && !eb(e) && !(uc(e) && !(hp(e) & 3) && e.declarationList.declarations.some((t) => !t.initializer));
  }
  function tMe(e) {
    switch (e.kind) {
      case 261:
      case 262:
        return !0;
      case 264:
        return vg(e) !== 1;
      case 263:
        return Yr(e, 2048);
      default:
        return !1;
    }
  }
  function F1(e, t) {
    let r = 0;
    const i = Lj();
    for (i.enqueue(t); !i.isEmpty() && r < 100; ) {
      if (r++, t = i.dequeue(), fT(t) || vh(t))
        return !0;
      if (je(t)) {
        const o = b8(e, t.escapedText);
        if (o && o.valueDeclaration && Ki(o.valueDeclaration) && o.valueDeclaration.initializer) {
          const s = o.valueDeclaration.initializer;
          i.enqueue(s), ed(s, !0) && (i.enqueue(s.left), i.enqueue(s.right));
        }
      }
    }
    return !1;
  }
  function Eme(e) {
    switch (e.kind) {
      case 228:
      case 260:
      case 263:
      case 207:
      case 184:
      case 325:
      case 289:
        return 1;
      case 261:
        return 65;
      case 264:
      case 262:
      case 197:
      case 178:
        return 33;
      case 308:
        return 37;
      case 174:
      case 175:
      case 171:
        if (o3(e))
          return 173;
      case 173:
      case 259:
      case 170:
      case 176:
      case 326:
      case 320:
      case 181:
      case 177:
      case 182:
      case 172:
        return 45;
      case 215:
      case 216:
        return 61;
      case 265:
        return 4;
      case 169:
        return e.initializer ? 4 : 0;
      case 295:
      case 245:
      case 246:
      case 247:
      case 266:
        return 34;
      case 238:
        return Ka(e.parent) || Il(e.parent) ? 0 : 34;
    }
    return 0;
  }
  function b8(e, t) {
    var r, i, o, s, c;
    const f = (i = (r = ai(e, Nm)) == null ? void 0 : r.locals) == null ? void 0 : i.get(t);
    if (f)
      return (o = f.exportSymbol) != null ? o : f;
    if (qi(e) && e.jsGlobalAugmentations && e.jsGlobalAugmentations.has(t))
      return e.jsGlobalAugmentations.get(t);
    if (Rm(e))
      return (c = (s = e.symbol) == null ? void 0 : s.exports) == null ? void 0 : c.get(t);
  }
  var zK, Tme, nMe = C({
    "src/compiler/binder.ts"() {
      Oa(), s1(), zK = /* @__PURE__ */ ((e) => (e[e.NonInstantiated = 0] = "NonInstantiated", e[e.Instantiated = 1] = "Instantiated", e[e.ConstEnumOnly = 2] = "ConstEnumOnly", e))(zK || {}), Tme = Z4e();
    }
  });
  function Sme(e, t, r, i, o, s, c, f, d, y) {
    return h;
    function h(E = () => !0) {
      const A = [], L = [];
      return {
        walkType: (re) => {
          try {
            return I(re), { visitedTypes: MS(A), visitedSymbols: MS(L) };
          } finally {
            Fi(A), Fi(L);
          }
        },
        walkSymbol: (re) => {
          try {
            return de(re), { visitedTypes: MS(A), visitedSymbols: MS(L) };
          } finally {
            Fi(A), Fi(L);
          }
        }
      };
      function I(re) {
        if (!(!re || A[re.id] || (A[re.id] = re, de(re.symbol)))) {
          if (re.flags & 524288) {
            const ae = re, W = ae.objectFlags;
            W & 4 && O(re), W & 32 && te(re), W & 3 && Y(re), W & 24 && P(ae);
          }
          re.flags & 262144 && k(re), re.flags & 3145728 && G(re), re.flags & 4194304 && V(re), re.flags & 8388608 && H(re);
        }
      }
      function O(re) {
        I(re.target), ze(y(re), I);
      }
      function k(re) {
        I(f(re));
      }
      function G(re) {
        ze(re.types, I);
      }
      function V(re) {
        I(re.type);
      }
      function H(re) {
        I(re.objectType), I(re.indexType), I(re.constraint);
      }
      function te(re) {
        I(re.typeParameter), I(re.constraintType), I(re.templateType), I(re.modifiersType);
      }
      function X(re) {
        const ye = t(re);
        ye && I(ye.type), ze(re.typeParameters, I);
        for (const ae of re.parameters)
          de(ae);
        I(e(re)), I(r(re));
      }
      function Y(re) {
        P(re), ze(re.typeParameters, I), ze(i(re), I), I(re.thisType);
      }
      function P(re) {
        const ye = o(re);
        for (const ae of ye.indexInfos)
          I(ae.keyType), I(ae.type);
        for (const ae of ye.callSignatures)
          X(ae);
        for (const ae of ye.constructSignatures)
          X(ae);
        for (const ae of ye.properties)
          de(ae);
      }
      function de(re) {
        if (!re)
          return !1;
        const ye = bo(re);
        if (L[ye])
          return !1;
        if (L[ye] = re, !E(re))
          return !0;
        const ae = s(re);
        return I(ae), re.exports && re.exports.forEach(de), ze(re.declarations, (W) => {
          if (W.type && W.type.kind === 183) {
            const ce = W.type, me = c(d(ce.exprName));
            de(me);
          }
        }), !1;
      }
    }
  }
  var rMe = C({
    "src/compiler/symbolWalker.ts"() {
      Oa();
    }
  });
  function M5({ importModuleSpecifierPreference: e, importModuleSpecifierEnding: t }, r, i, o) {
    const s = c();
    return {
      relativePreference: o !== void 0 ? Gc(o) ? 0 : 1 : e === "relative" ? 0 : e === "non-relative" ? 1 : e === "project-relative" ? 3 : 2,
      getAllowedEndingsInPreferredOrder: (f) => {
        if ((f ?? i.impliedNodeFormat) === 99)
          return $k(r, i.fileName) ? [3, 2] : [2];
        if (vl(r) === 1)
          return [1, 2];
        switch (s) {
          case 2:
            return [2, 0, 1];
          case 3:
            return [3, 0, 2, 1];
          case 1:
            return [1, 0, 2];
          case 0:
            return [0, 1, 2];
          default:
            D.assertNever(s);
        }
      }
    };
    function c() {
      if (o !== void 0) {
        if (px(o))
          return 2;
        if (ic(o, "/index"))
          return 1;
      }
      return gq(t, i.impliedNodeFormat, r, i);
    }
  }
  function iMe(e, t, r, i, o, s, c = {}) {
    const f = xme(e, t, r, i, o, M5({}, e, t, s), {}, c);
    if (f !== s)
      return f;
  }
  function F5(e, t, r, i, o, s = {}) {
    return xme(e, t, r, i, o, M5({}, e, t), {}, s);
  }
  function aMe(e, t, r, i, o, s = {}) {
    const c = qK(t.path, i), f = Rme(t.path, r, i, o, s);
    return Jt(f, (d) => JK(d, c, t, i, e, o, !0, s.overrideImportMode));
  }
  function xme(e, t, r, i, o, s, c, f = {}) {
    const d = qK(r, o), y = Rme(r, i, o, c, f);
    return Jt(y, (h) => JK(h, d, t, o, e, c, void 0, f.overrideImportMode)) || Ime(i, d, e, o, f.overrideImportMode || t.impliedNodeFormat, s);
  }
  function oMe(e, t, r, i, o = {}) {
    return Ame(e, t, r, i, o)[0];
  }
  function Ame(e, t, r, i, o = {}) {
    var s;
    const c = zM(e);
    if (!c)
      return rt;
    const f = (s = r.getModuleSpecifierCache) == null ? void 0 : s.call(r), d = f == null ? void 0 : f.get(t.path, c.path, i, o);
    return [d == null ? void 0 : d.moduleSpecifiers, c, d == null ? void 0 : d.modulePaths, f];
  }
  function Cme(e, t, r, i, o, s, c = {}) {
    return Lme(e, t, r, i, o, s, c).moduleSpecifiers;
  }
  function Lme(e, t, r, i, o, s, c = {}) {
    let f = !1;
    const d = lMe(e, t);
    if (d)
      return { moduleSpecifiers: [d], computedWithoutCache: f };
    let [y, h, E, A] = Ame(e, i, o, s, c);
    if (y)
      return { moduleSpecifiers: y, computedWithoutCache: f };
    if (!h)
      return { moduleSpecifiers: rt, computedWithoutCache: f };
    f = !0, E || (E = Nme(i.path, h.originalFileName, o));
    const L = sMe(E, r, i, o, s, c);
    return A == null || A.set(i.path, h.path, s, c, E, L), { moduleSpecifiers: L, computedWithoutCache: f };
  }
  function sMe(e, t, r, i, o, s = {}) {
    const c = qK(r.path, i), f = M5(o, t, r), d = ze(e, (I) => ze(i.getFileIncludeReasons().get(zs(I.path, i.getCurrentDirectory(), c.getCanonicalFileName)), (O) => {
      if (O.kind !== 3 || O.file !== r.path || r.impliedNodeFormat && r.impliedNodeFormat !== HX(r, O.index))
        return;
      const k = pF(r, O.index).text;
      return f.relativePreference !== 1 || !Sf(k) ? k : void 0;
    }));
    if (d)
      return [d];
    const y = kt(e, (I) => I.isInNodeModules);
    let h, E, A, L;
    for (const I of e) {
      const O = I.isInNodeModules ? JK(I, c, r, i, t, o, void 0, s.overrideImportMode) : void 0;
      if (h = Fn(h, O), O && I.isRedirect)
        return h;
      if (!O) {
        const k = Ime(I.path, c, t, i, s.overrideImportMode || r.impliedNodeFormat, f, I.isRedirect);
        if (!k)
          continue;
        I.isRedirect ? A = Fn(A, k) : qH(k) ? E = Fn(E, k) : (!y || I.isInNodeModules) && (L = Fn(L, k));
      }
    }
    return E != null && E.length ? E : A != null && A.length ? A : h != null && h.length ? h : D.checkDefined(L);
  }
  function qK(e, t) {
    const r = ru(t.useCaseSensitiveFileNames ? t.useCaseSensitiveFileNames() : !0), i = mi(e);
    return { getCanonicalFileName: r, importingSourceFileName: e, sourceDirectory: i };
  }
  function Ime(e, t, r, i, o, { getAllowedEndingsInPreferredOrder: s, relativePreference: c }, f) {
    const { baseUrl: d, paths: y, rootDirs: h } = r;
    if (f && !y)
      return;
    const { sourceDirectory: E, getCanonicalFileName: A } = t, L = s(o), I = h && cMe(h, e, E, A, L, r) || Qk(c1(wm(E, e, A)), L, r);
    if (!d && !y || c === 0)
      return f ? void 0 : I;
    const O = Pa(Fz(r, i) || d, i.getCurrentDirectory()), k = Fme(e, O, A);
    if (!k)
      return f ? void 0 : I;
    const G = y && Ome(k, y, L, i, r);
    if (f)
      return G;
    const V = G === void 0 && d !== void 0 ? Qk(k, L, r) : G;
    if (!V)
      return I;
    if (c === 1 && !Sf(V))
      return V;
    if (c === 3 && !Sf(V)) {
      const H = r.configFilePath ? zs(mi(r.configFilePath), i.getCurrentDirectory(), t.getCanonicalFileName) : t.getCanonicalFileName(i.getCurrentDirectory()), te = zs(e, H, A), X = xa(E, H), Y = xa(te, H);
      if (X && !Y || !X && Y)
        return V;
      const P = wme(i, mi(te));
      return wme(i, E) !== P ? V : I;
    }
    return Bme(V) || E8(I) < E8(V) ? I : V;
  }
  function E8(e) {
    let t = 0;
    for (let r = xa(e, "./") ? 2 : 0; r < e.length; r++)
      e.charCodeAt(r) === 47 && t++;
    return t;
  }
  function kme(e, t) {
    return r1(t.isRedirect, e.isRedirect) || aO(e.path, t.path);
  }
  function wme(e, t) {
    return e.getNearestAncestorDirectoryWithPackageJson ? e.getNearestAncestorDirectoryWithPackageJson(t) : !!rg(t, (r) => e.fileExists(Bi(r, "package.json")) ? !0 : void 0);
  }
  function Dme(e, t, r, i, o) {
    var s;
    const c = J0(r), f = r.getCurrentDirectory(), d = r.isSourceOfProjectReferenceRedirect(t) ? r.getProjectReferenceRedirect(t) : void 0, y = zs(t, f, c), h = r.redirectTargetsMap.get(y) || rt, A = [...d ? [d] : rt, t, ...h].map((G) => Pa(G, f));
    let L = !Yn(A, gk);
    if (!i) {
      const G = ze(A, (V) => !(L && gk(V)) && o(V, d === V));
      if (G)
        return G;
    }
    const I = (s = r.getSymlinkCache) == null ? void 0 : s.call(r).getSymlinkedDirectoriesByRealpath(), O = Pa(t, f);
    return I && rg(mi(O), (G) => {
      const V = I.get(Ou(zs(G, f, c)));
      if (V)
        return YH(e, G, c) ? !1 : ze(A, (H) => {
          if (!YH(H, G, c))
            return;
          const te = wm(G, H, c);
          for (const X of V) {
            const Y = bv(X, te), P = o(Y, H === d);
            if (L = !0, P)
              return P;
          }
        });
    }) || (i ? ze(A, (G) => L && gk(G) ? void 0 : o(G, G === d)) : void 0);
  }
  function Rme(e, t, r, i, o = {}) {
    var s;
    const c = zs(t, r.getCurrentDirectory(), J0(r)), f = (s = r.getModuleSpecifierCache) == null ? void 0 : s.call(r);
    if (f) {
      const y = f.get(e, c, i, o);
      if (y != null && y.modulePaths)
        return y.modulePaths;
    }
    const d = Nme(e, t, r);
    return f && f.setModulePaths(e, c, i, o, d), d;
  }
  function Nme(e, t, r) {
    const i = J0(r), o = /* @__PURE__ */ new Map();
    Dme(e, t, r, !0, (c, f) => {
      const d = Gx(c);
      o.set(c, { path: i(c), isRedirect: f, isInNodeModules: d });
    });
    const s = [];
    for (let c = mi(e); o.size !== 0; ) {
      const f = Ou(c);
      let d;
      o.forEach(({ path: h, isRedirect: E, isInNodeModules: A }, L) => {
        xa(h, f) && ((d || (d = [])).push({ path: L, isRedirect: E, isInNodeModules: A }), o.delete(L));
      }), d && (d.length > 1 && d.sort(kme), s.push(...d));
      const y = mi(c);
      if (y === c)
        break;
      c = y;
    }
    if (o.size) {
      const c = Ro(o.values());
      c.length > 1 && c.sort(kme), s.push(...c);
    }
    return s;
  }
  function lMe(e, t) {
    var r;
    const i = (r = e.declarations) == null ? void 0 : r.find((c) => JW(c) && (!h1(c) || !Gc(U_(c.name))));
    if (i)
      return i.name.text;
    const s = ia(e.declarations, (c) => {
      var f, d, y, h;
      if (!Jl(c))
        return;
      const E = O(c);
      if (!((f = E == null ? void 0 : E.parent) != null && f.parent && tm(E.parent) && Pu(E.parent.parent) && qi(E.parent.parent.parent)))
        return;
      const A = (h = (y = (d = E.parent.parent.symbol.exports) == null ? void 0 : d.get("export=")) == null ? void 0 : y.valueDeclaration) == null ? void 0 : h.expression;
      if (!A)
        return;
      const L = t.getSymbolAtLocation(A);
      if (!L)
        return;
      if (((L == null ? void 0 : L.flags) & 2097152 ? t.getAliasedSymbol(L) : L) === c.symbol)
        return E.parent.parent;
      function O(k) {
        for (; k.flags & 4; )
          k = k.parent;
        return k;
      }
    })[0];
    if (s)
      return s.name.text;
  }
  function Ome(e, t, r, i, o) {
    for (const c in t)
      for (const f of t[c]) {
        const d = Jo(f), y = d.indexOf("*"), h = r.map((E) => ({
          ending: E,
          value: Qk(e, [E], o)
        }));
        if (Sh(d) && h.push({ ending: void 0, value: e }), y !== -1) {
          const E = d.substring(0, y), A = d.substring(y + 1);
          for (const { ending: L, value: I } of h)
            if (I.length >= E.length + A.length && xa(I, E) && ic(I, A) && s({ ending: L, value: I })) {
              const O = I.substring(E.length, I.length - A.length);
              return c.replace("*", O);
            }
        } else if (kt(h, (E) => E.ending !== 0 && d === E.value) || kt(h, (E) => E.ending === 0 && d === E.value && s(E)))
          return c;
      }
    function s({ ending: c, value: f }) {
      return c !== 0 || f === Qk(e, [c], o, i);
    }
  }
  function B5(e, t, r, i, o, s, c = 0) {
    if (typeof o == "string") {
      const f = Pa(Bi(r, o), void 0), d = iO(t) ? Ud(t) + G5(t, e) : void 0;
      switch (c) {
        case 0:
          if (QE(t, f) === 0 || d && QE(d, f) === 0)
            return { moduleFileToTry: i };
          break;
        case 1:
          if (Ev(f, t)) {
            const A = wm(f, t, !1);
            return { moduleFileToTry: Pa(Bi(Bi(i, o), A), void 0) };
          }
          break;
        case 2:
          const y = f.indexOf("*"), h = f.slice(0, y), E = f.slice(y + 1);
          if (xa(t, h) && ic(t, E)) {
            const A = t.slice(h.length, t.length - E.length);
            return { moduleFileToTry: i.replace("*", A) };
          }
          if (d && xa(d, h) && ic(d, E)) {
            const A = d.slice(h.length, d.length - E.length);
            return { moduleFileToTry: i.replace("*", A) };
          }
          break;
      }
    } else {
      if (Array.isArray(o))
        return ze(o, (f) => B5(e, t, r, i, f, s));
      if (typeof o == "object" && o !== null) {
        if (R5(o))
          return ze(tg(o), (f) => {
            const d = Pa(Bi(i, f), void 0), y = ic(f, "/") ? 1 : pu(f, "*") ? 2 : 0;
            return B5(e, t, r, d, o[f], s, y);
          });
        for (const f of tg(o))
          if (f === "default" || s.indexOf(f) >= 0 || y8(s, f)) {
            const d = o[f], y = B5(e, t, r, i, d, s);
            if (y)
              return y;
          }
      }
    }
  }
  function cMe(e, t, r, i, o, s) {
    const c = Pme(t, e, i);
    if (c === void 0)
      return;
    const f = Pme(r, e, i), d = ca(f, (h) => jt(c, (E) => c1(wm(h, E, i)))), y = Ij(d, aO);
    if (y)
      return Qk(y, o, s);
  }
  function JK({ path: e, isRedirect: t }, { getCanonicalFileName: r, sourceDirectory: i }, o, s, c, f, d, y) {
    if (!s.fileExists || !s.readFile)
      return;
    const h = Cq(e);
    if (!h)
      return;
    const A = M5(f, c, o).getAllowedEndingsInPreferredOrder();
    let L = e, I = !1;
    if (!d) {
      let te = h.packageRootIndex, X;
      for (; ; ) {
        const { moduleFileToTry: Y, packageRootPath: P, blockedByExports: de, verbatimFromExports: re } = H(te);
        if (vl(c) !== 1) {
          if (de)
            return;
          if (re)
            return Y;
        }
        if (P) {
          L = P, I = !0;
          break;
        }
        if (X || (X = Y), te = e.indexOf(Ms, te + 1), te === -1) {
          L = Qk(X, A, c, s);
          break;
        }
      }
    }
    if (t && !I)
      return;
    const O = s.getGlobalTypingsCacheLocation && s.getGlobalTypingsCacheLocation(), k = r(L.substring(0, h.topLevelNodeModulesIndex));
    if (!(xa(i, k) || O && xa(r(O), k)))
      return;
    const G = L.substring(h.topLevelPackageNameIndex + 1), V = v8(G);
    return vl(c) === 1 && V === G ? void 0 : V;
    function H(te) {
      var X, Y;
      const P = e.substring(0, te), de = Bi(P, "package.json");
      let re = e, ye = !1;
      const ae = (Y = (X = s.getPackageJsonInfoCache) == null ? void 0 : X.call(s)) == null ? void 0 : Y.getPackageJsonInfo(de);
      if (typeof ae == "object" || ae === void 0 && s.fileExists(de)) {
        const W = (ae == null ? void 0 : ae.contents.packageJsonContent) || JSON.parse(s.readFile(de)), ce = y || o.impliedNodeFormat;
        if (lq(c)) {
          const Te = P.substring(h.topLevelPackageNameIndex + 1), ee = v8(Te), Qe = BC(c, ce === 99), Ve = W.exports ? B5(c, e, P, ee, W.exports, Qe) : void 0;
          if (Ve)
            return { ...iO(Ve.moduleFileToTry) ? { moduleFileToTry: Ud(Ve.moduleFileToTry) + G5(Ve.moduleFileToTry, c) } : Ve, verbatimFromExports: !0 };
          if (W.exports)
            return { moduleFileToTry: e, blockedByExports: !0 };
        }
        const me = W.typesVersions ? x5(W.typesVersions) : void 0;
        if (me) {
          const Te = e.slice(P.length + 1), ee = Ome(Te, me.paths, A, s, c);
          ee === void 0 ? ye = !0 : re = Bi(P, ee);
        }
        const ve = W.typings || W.types || W.main || "index.js";
        if (Ha(ve) && !(ye && yq(J3(me.paths), ve))) {
          const Te = zs(ve, P, r);
          if (Ud(Te) === Ud(r(re)))
            return { packageRootPath: P, moduleFileToTry: re };
        }
      } else {
        const W = r(re.substring(h.packageRootIndex + 1));
        if (W === "index.d.ts" || W === "index.js" || W === "index.ts" || W === "index.tsx")
          return { moduleFileToTry: re, packageRootPath: P };
      }
      return { moduleFileToTry: re };
    }
  }
  function uMe(e, t) {
    if (!e.fileExists)
      return;
    const r = No(fk({ allowJs: !0 }, [{ extension: "node", isMixedContent: !1 }, { extension: "json", isMixedContent: !1, scriptKind: 6 }]));
    for (const i of r) {
      const o = t + i;
      if (e.fileExists(o))
        return o;
    }
  }
  function Pme(e, t, r) {
    return ia(t, (i) => {
      const o = Fme(e, i, r);
      return o !== void 0 && Bme(o) ? void 0 : o;
    });
  }
  function Qk(e, t, r, i) {
    if (Tc(e, [".json", ".mjs", ".cjs"]))
      return e;
    const o = Ud(e);
    if (e === o)
      return e;
    if (Tc(e, [".d.mts", ".mts", ".d.cts", ".cts"]))
      return o + KK(e, r);
    if (!Tc(e, [".d.ts"]) && Tc(e, [".ts"]) && pu(e, ".d."))
      return Mme(e);
    switch (t[0]) {
      case 0:
        const s = gA(o, "/index");
        return i && s !== o && uMe(i, s) ? o : s;
      case 1:
        return o;
      case 2:
        return o + KK(e, r);
      case 3:
        if (fd(e)) {
          const c = t.findIndex((d) => d === 0 || d === 1), f = t.indexOf(2);
          return c !== -1 && c < f ? o : o + KK(e, r);
        }
        return e;
      default:
        return D.assertNever(t[0]);
    }
  }
  function Mme(e) {
    const t = mu(e);
    if (!ic(e, ".ts") || !pu(t, ".d.") || Tc(t, [".d.ts"]))
      return;
    const r = oO(e, ".ts"), i = r.substring(r.lastIndexOf("."));
    return r.substring(0, r.indexOf(".d.")) + i;
  }
  function KK(e, t) {
    var r;
    return (r = G5(e, t)) != null ? r : D.fail(`Extension ${lO(e)} is unsupported:: FileName:: ${e}`);
  }
  function G5(e, t) {
    const r = Sh(e);
    switch (r) {
      case ".ts":
      case ".d.ts":
        return ".js";
      case ".tsx":
        return t.jsx === 1 ? ".jsx" : ".js";
      case ".js":
      case ".jsx":
      case ".json":
        return r;
      case ".d.mts":
      case ".mts":
      case ".mjs":
        return ".mjs";
      case ".d.cts":
      case ".cts":
      case ".cjs":
        return ".cjs";
      default:
        return;
    }
  }
  function Fme(e, t, r) {
    const i = zS(t, e, t, r, !1);
    return km(i) ? void 0 : i;
  }
  function Bme(e) {
    return xa(e, "..");
  }
  var Gme = C({
    "src/compiler/moduleSpecifiers.ts"() {
      Oa();
    }
  }), B1 = {};
  ne(B1, {
    countPathComponents: () => E8,
    forEachFileNameOfModule: () => Dme,
    getModuleSpecifier: () => F5,
    getModuleSpecifiers: () => Cme,
    getModuleSpecifiersWithCacheInfo: () => Lme,
    getNodeModulesPackageName: () => aMe,
    tryGetJSExtensionForFile: () => G5,
    tryGetModuleSpecifiersFromCache: () => oMe,
    tryGetRealFileNameForNonJsDeclarationFileName: () => Mme,
    updateModuleSpecifier: () => iMe
  });
  var XK = C({
    "src/compiler/_namespaces/ts.moduleSpecifiers.ts"() {
      Gme();
    }
  });
  function dMe() {
    this.flags = 0;
  }
  function ps(e) {
    return e.id || (e.id = ZK, ZK++), e.id;
  }
  function bo(e) {
    return e.id || (e.id = QK, QK++), e.id;
  }
  function YK(e, t) {
    const r = vg(e);
    return r === 1 || t && r === 2;
  }
  function Ume(e) {
    var t = Ed(() => {
      var n = /* @__PURE__ */ new Map();
      return e.getSourceFiles().forEach((a) => {
        a.resolvedModules && a.resolvedModules.forEach(({ resolvedModule: l }) => {
          l != null && l.packageId && n.set(l.packageId.name, l.extension === ".d.ts" || !!n.get(l.packageId.name));
        });
      }), n;
    }), r = [], i = (n) => {
      r.push(n);
    }, o, s = /* @__PURE__ */ new Set(), c, f, d = jc.getSymbolConstructor(), y = jc.getTypeConstructor(), h = jc.getSignatureConstructor(), E = 0, A = 0, L = 0, I = 0, O = 0, k = 0, G, V, H = !1, te = lo(), X = [1], Y = e.getCompilerOptions(), P = ts(Y), de = au(Y), re = !!Y.experimentalDecorators, ye = nO(Y), ae = ET(Y), W = y_(Y, "strictNullChecks"), ce = y_(Y, "strictFunctionTypes"), me = y_(Y, "strictBindCallApply"), ve = y_(Y, "strictPropertyInitialization"), Te = y_(Y, "noImplicitAny"), ee = y_(Y, "noImplicitThis"), Qe = y_(Y, "useUnknownInCatchVariables"), Ve = !!Y.keyofStringsOnly, Be = Y.suppressExcessPropertyErrors ? 0 : 8192, qe = Y.exactOptionalPropertyTypes, Oe = Mrt(), Me = _st(), Ye = _o(), We = lo(), Fe = ns(4, "undefined");
    Fe.declarations = [];
    var st = ns(1536, "globalThis", 8);
    st.exports = We, st.declarations = [], We.set(st.escapedName, st);
    var Ct = ns(4, "arguments"), Et = ns(4, "require"), Vt = Y.verbatimModuleSyntax ? "verbatimModuleSyntax" : "isolatedModules", tt;
    const at = {
      getNodeCount: () => Ru(e.getSourceFiles(), (n, a) => n + a.nodeCount, 0),
      getIdentifierCount: () => Ru(e.getSourceFiles(), (n, a) => n + a.identifierCount, 0),
      getSymbolCount: () => Ru(e.getSourceFiles(), (n, a) => n + a.symbolCount, A),
      getTypeCount: () => E,
      getInstantiationCount: () => L,
      getRelationCacheSizes: () => ({
        assignable: kd.size,
        identity: Dd.size,
        subtype: $m.size,
        strictSubtype: tp.size
      }),
      isUndefinedSymbol: (n) => n === Fe,
      isArgumentsSymbol: (n) => n === Ct,
      isUnknownSymbol: (n) => n === an,
      getMergedSymbol: as,
      getDiagnostics: eDe,
      getGlobalDiagnostics: Dot,
      getRecursionIdentity: IL,
      getUnmatchedProperties: Jie,
      getTypeOfSymbolAtLocation: (n, a) => {
        const l = Ea(a);
        return l ? Det(n, l) : Ce;
      },
      getTypeOfSymbol: ar,
      getSymbolsOfParameterPropertyDeclaration: (n, a) => {
        const l = Ea(n, Ba);
        return l === void 0 ? D.fail("Cannot get symbols of a synthetic parameter that cannot be resolved to a parse-tree node.") : (D.assert(nf(l, l.parent)), iE(l, sl(a)));
      },
      getDeclaredTypeOfSymbol: Us,
      getPropertiesOfType: ms,
      getPropertyOfType: (n, a) => uo(n, sl(a)),
      getPrivateIdentifierPropertyOfType: (n, a, l) => {
        const u = Ea(l);
        if (!u)
          return;
        const p = sl(a), g = TV(p, u);
        return g ? kae(n, g) : void 0;
      },
      getTypeOfPropertyOfType: (n, a) => fc(n, sl(a)),
      getIndexInfoOfType: (n, a) => sh(n, a === 0 ? ue : mt),
      getIndexInfosOfType: Lu,
      getIndexInfosOfIndexSymbol: Wre,
      getSignaturesOfType: za,
      getIndexTypeOfType: (n, a) => Jg(n, a === 0 ? ue : mt),
      getIndexType: (n) => gm(n),
      getBaseTypes: Mo,
      getBaseTypeOfLiteralType: dv,
      getWidenedType: ef,
      getTypeFromTypeNode: (n) => {
        const a = Ea(n, Gi);
        return a ? fi(a) : Ce;
      },
      getParameterType: fp,
      getParameterIdentifierNameAtPosition: Qnt,
      getPromisedTypeOfPromise: VD,
      getAwaitedType: (n) => HE(n),
      getReturnTypeOfSignature: ys,
      isNullableType: EV,
      getNullableType: QU,
      getNonNullableType: Zg,
      getNonOptionalType: Bie,
      getTypeArguments: hs,
      typeToTypeNode: Ye.typeToTypeNode,
      indexInfoToIndexSignatureDeclaration: Ye.indexInfoToIndexSignatureDeclaration,
      signatureToSignatureDeclaration: Ye.signatureToSignatureDeclaration,
      symbolToEntityName: Ye.symbolToEntityName,
      symbolToExpression: Ye.symbolToExpression,
      symbolToNode: Ye.symbolToNode,
      symbolToTypeParameterDeclarations: Ye.symbolToTypeParameterDeclarations,
      symbolToParameterDeclaration: Ye.symbolToParameterDeclaration,
      typeParameterToDeclaration: Ye.typeParameterToDeclaration,
      getSymbolsInScope: (n, a) => {
        const l = Ea(n);
        return l ? Rot(l, a) : [];
      },
      getSymbolAtLocation: (n) => {
        const a = Ea(n);
        return a ? D_(a, !0) : void 0;
      },
      getIndexInfosAtLocation: (n) => {
        const a = Ea(n);
        return a ? Got(a) : void 0;
      },
      getShorthandAssignmentValueSymbol: (n) => {
        const a = Ea(n);
        return a ? Uot(a) : void 0;
      },
      getExportSpecifierLocalTargetSymbol: (n) => {
        const a = Ea(n, dd);
        return a ? Vot(a) : void 0;
      },
      getExportSymbolOfSymbol(n) {
        return as(n.exportSymbol || n);
      },
      getTypeAtLocation: (n) => {
        const a = Ea(n);
        return a ? IS(a) : Ce;
      },
      getTypeOfAssignmentPattern: (n) => {
        const a = Ea(n, kI);
        return a && YV(a) || Ce;
      },
      getPropertySymbolOfDestructuringAssignment: (n) => {
        const a = Ea(n, je);
        return a ? jot(a) : void 0;
      },
      signatureToString: (n, a, l, u) => le(n, Ea(a), l, u),
      typeToString: (n, a, l) => ke(n, Ea(a), l),
      symbolToString: (n, a, l, u) => S(n, Ea(a), l, u),
      typePredicateToString: (n, a, l) => nu(n, Ea(a), l),
      writeSignature: (n, a, l, u, p) => le(n, Ea(a), l, u, p),
      writeType: (n, a, l, u) => ke(n, Ea(a), l, u),
      writeSymbol: (n, a, l, u, p) => S(n, Ea(a), l, u, p),
      writeTypePredicate: (n, a, l, u) => nu(n, Ea(a), l, u),
      getAugmentedPropertiesOfType: Ioe,
      getRootSymbols: sDe,
      getSymbolOfExpando: wV,
      getContextualType: (n, a) => {
        const l = Ea(n, vt);
        if (l)
          return a & 4 ? Qt(l, () => ad(l, a)) : ad(l, a);
      },
      getContextualTypeForObjectLiteralElement: (n) => {
        const a = Ea(n, my);
        return a ? hae(a, void 0) : void 0;
      },
      getContextualTypeForArgumentAtIndex: (n, a) => {
        const l = Ea(n, YS);
        return l && mae(l, a);
      },
      getContextualTypeForJsxAttribute: (n) => {
        const a = Ea(n, VM);
        return a && xIe(a, void 0);
      },
      isContextSensitive: k_,
      getTypeOfPropertyOfContextualType: UE,
      getFullyQualifiedName: Fh,
      getResolvedSignature: (n, a, l) => On(n, a, l, 0),
      getResolvedSignatureForStringLiteralCompletions: (n, a, l) => Qt(a, () => On(n, l, void 0, 32)),
      getResolvedSignatureForSignatureHelp: (n, a, l) => sn(n, () => On(n, a, l, 16)),
      getExpandedParameters: NAe,
      hasEffectiveRestParameter: Em,
      containsArgumentsReference: Ure,
      getConstantValue: (n) => {
        const a = Ea(n, fDe);
        return a ? koe(a) : void 0;
      },
      isValidPropertyAccess: (n, a) => {
        const l = Ea(n, Tce);
        return !!l && unt(l, sl(a));
      },
      isValidPropertyAccessForCompletions: (n, a, l) => {
        const u = Ea(n, Fr);
        return !!u && eke(u, a, l);
      },
      getSignatureFromDeclaration: (n) => {
        const a = Ea(n, Ka);
        return a ? Mp(a) : void 0;
      },
      isImplementationOfOverload: (n) => {
        const a = Ea(n, Ka);
        return a ? uDe(a) : void 0;
      },
      getImmediateAliasedSymbol: bae,
      getAliasedSymbol: nc,
      getEmitResolver: dL,
      getExportsOfModule: Hy,
      getExportsAndPropertiesOfModule: hS,
      forEachExportAndPropertyOfModule: f0,
      getSymbolWalker: Sme(QYe, a_, ys, Mo, cp, ar, w_, Cu, Lf, hs),
      getAmbientModules: rlt,
      getJsxIntrinsicTagNamesAt: Htt,
      isOptionalParameter: (n) => {
        const a = Ea(n, Ba);
        return a ? lD(a) : !1;
      },
      tryGetMemberInModuleExports: (n, a) => Bg(sl(n), a),
      tryGetMemberInModuleExportsAndProperties: (n, a) => Mf(sl(n), a),
      tryFindAmbientModule: (n) => Gre(n, !0),
      tryFindAmbientModuleWithoutAugmentations: (n) => Gre(n, !1),
      getApparentType: Ju,
      getUnionType: Qr,
      isTypeAssignableTo: xo,
      createAnonymousType: Ns,
      createSignature: oh,
      createSymbol: ns,
      createIndexInfo: hm,
      getAnyType: () => we,
      getStringType: () => ue,
      getNumberType: () => mt,
      createPromiseType: l4,
      createArrayType: Iu,
      getElementTypeOfArrayType: Nie,
      getBooleanType: () => Re,
      getFalseType: (n) => n ? it : K,
      getTrueType: (n) => n ? Pe : Z,
      getVoidType: () => Rt,
      getUndefinedType: () => He,
      getNullType: () => Sn,
      getESSymbolType: () => q,
      getNeverType: () => gt,
      getOptionalType: () => cn,
      getPromiseType: () => CP(!1),
      getPromiseLikeType: () => hCe(!1),
      getAsyncIterableType: () => {
        const n = kU(!1);
        if (n !== Co)
          return n;
      },
      isSymbolAccessible: Jy,
      isArrayType: Hf,
      isTupleType: Fo,
      isArrayLikeType: w0,
      isEmptyAnonymousObjectType: Yh,
      isTypeInvalidDueToUnionDiscriminant: OYe,
      getExactOptionalProperties: aZe,
      getAllPossiblePropertiesOfTypes: PYe,
      getSuggestedSymbolForNonexistentProperty: Rae,
      getSuggestionForNonexistentProperty: Nae,
      getSuggestedSymbolForNonexistentJSXAttribute: QIe,
      getSuggestedSymbolForNonexistentSymbol: (n, a, l) => Oae(n, sl(a), l),
      getSuggestionForNonexistentSymbol: (n, a, l) => ont(n, sl(a), l),
      getSuggestedSymbolForNonexistentModule: xV,
      getSuggestionForNonexistentExport: snt,
      getSuggestedSymbolForNonexistentClassMember: $Ie,
      getBaseConstraintOfType: qu,
      getDefaultFromTypeParameter: (n) => n && n.flags & 262144 ? IE(n) : void 0,
      resolveName(n, a, l, u) {
        return _l(a, sl(n), l, void 0, void 0, !1, u);
      },
      getJsxNamespace: (n) => ta(hb(n)),
      getJsxFragmentFactory: (n) => {
        const a = Doe(n);
        return a && ta(Lf(a).escapedText);
      },
      getAccessibleSymbolChain: m0,
      getTypePredicateOfSignature: a_,
      resolveExternalModuleName: (n) => {
        const a = Ea(n, vt);
        return a && du(a, a, !0);
      },
      resolveExternalModuleSymbol: hd,
      tryGetThisTypeAt: (n, a, l) => {
        const u = Ea(n);
        return u && uae(u, a, l);
      },
      getTypeArgumentConstraint: (n) => {
        const a = Ea(n, Gi);
        return a && mit(a);
      },
      getSuggestionDiagnostics: (n, a) => {
        const l = Ea(n, qi) || D.fail("Could not determine parsed source file.");
        if (_k(l, Y, e))
          return rt;
        let u;
        try {
          return o = a, Coe(l), D.assert(!!(Jr(l).flags & 1)), u = Ti(u, tE.getDiagnostics(l.fileName)), pwe(Zwe(l), (p, g, x) => {
            !iN(p) && !Qwe(g, !!(p.flags & 16777216)) && (u || (u = [])).push({ ...x, category: 2 });
          }), u || rt;
        } finally {
          o = void 0;
        }
      },
      runWithCancellationToken: (n, a) => {
        try {
          return o = n, a(at);
        } finally {
          o = void 0;
        }
      },
      getLocalTypeParametersOfClassOrInterfaceOrTypeAlias: ev,
      isDeclarationVisible: L_,
      isPropertyAccessible: Mae,
      getTypeOnlyAliasDeclaration: Rd,
      getMemberOverrideModifierStatus: qat,
      isTypeParameterPossiblyReferenced: RP,
      typeHasCallOrConstructSignatures: $V
    };
    function sn(n, a) {
      const l = nr(n, YS), u = l && Jr(l).resolvedSignature;
      l && (Jr(l).resolvedSignature = void 0);
      const p = a();
      return l && (Jr(l).resolvedSignature = u), p;
    }
    function Qt(n, a) {
      const l = nr(n, YS);
      if (l) {
        let p = n;
        do
          Jr(p).skipDirectInference = !0, p = p.parent;
        while (p && p !== l);
      }
      H = !0;
      const u = sn(n, a);
      if (H = !1, l) {
        let p = n;
        do
          Jr(p).skipDirectInference = void 0, p = p.parent;
        while (p && p !== l);
      }
      return u;
    }
    function On(n, a, l, u) {
      const p = Ea(n, YS);
      tt = l;
      const g = p ? GL(p, a, u) : void 0;
      return tt = void 0, g;
    }
    var jn = /* @__PURE__ */ new Map(), In = /* @__PURE__ */ new Map(), Zt = /* @__PURE__ */ new Map(), _r = /* @__PURE__ */ new Map(), Ii = /* @__PURE__ */ new Map(), $i = /* @__PURE__ */ new Map(), Qi = /* @__PURE__ */ new Map(), Or = /* @__PURE__ */ new Map(), At = /* @__PURE__ */ new Map(), vn = /* @__PURE__ */ new Map(), Wt = /* @__PURE__ */ new Map(), fn = /* @__PURE__ */ new Map(), rr = /* @__PURE__ */ new Map(), cr = /* @__PURE__ */ new Map(), Pi = [], hi = /* @__PURE__ */ new Map(), Rn = /* @__PURE__ */ new Set(), an = ns(4, "unknown"), Pn = ns(0, "__resolving__"), Ar = /* @__PURE__ */ new Map(), Hr = /* @__PURE__ */ new Map(), we = $l(1, "any"), yt = $l(1, "any", 262144), Nt = $l(1, "any"), Ce = $l(1, "error"), pt = $l(1, "unresolved"), _e = $l(1, "any", 65536), ie = $l(1, "intrinsic"), he = $l(2, "unknown"), j = $l(2, "unknown"), He = $l(32768, "undefined"), Ze = W ? He : $l(32768, "undefined", 65536), Xe = $l(32768, "undefined"), Ut = qe ? Xe : He, cn = $l(32768, "undefined"), Sn = $l(65536, "null"), Er = W ? Sn : $l(65536, "null", 65536), ue = $l(4, "string"), mt = $l(8, "number"), zt = $l(64, "bigint"), it = $l(512, "false"), K = $l(512, "false"), Pe = $l(512, "true"), Z = $l(512, "true");
    Pe.regularType = Z, Pe.freshType = Pe, Z.regularType = Z, Z.freshType = Pe, it.regularType = K, it.freshType = it, K.regularType = K, K.freshType = it;
    var Re = Qr([K, Z]), q = $l(4096, "symbol"), Rt = $l(16384, "void"), gt = $l(131072, "never"), ft = $l(131072, "never", 262144), _n = $l(131072, "never"), $n = $l(131072, "never"), oi = $l(67108864, "object"), Ai = Qr([ue, mt]), Ci = Qr([ue, mt, q]), ji = Ve ? ue : Ci, mo = Qr([mt, zt]), To = Qr([ue, mt, Re, zt, Sn, He]), io = wE(["", ""], [mt]), ua = DP((n) => n.flags & 262144 ? RQe(n) : n, () => "(restrictive mapper)"), Hi = DP((n) => n.flags & 262144 ? Nt : n, () => "(permissive mapper)"), Xr = $l(131072, "never"), ss = DP((n) => n.flags & 262144 ? Xr : n, () => "(unique literal mapper)"), _i, da = DP((n) => (_i && (n === qd || n === oc || n === Jc) && _i(!0), n), () => "(unmeasurable reporter)"), wn = DP((n) => (_i && (n === qd || n === oc || n === Jc) && _i(!1), n), () => "(unreliable reporter)"), pa = Ns(void 0, te, rt, rt, rt), ec = Ns(void 0, te, rt, rt, rt);
    ec.objectFlags |= 2048;
    var rl = ns(2048, "__type");
    rl.members = lo();
    var Gl = Ns(rl, te, rt, rt, rt), Xl = Ns(void 0, te, rt, rt, rt), Ul = W ? Qr([He, Sn, Xl]) : he, Co = Ns(void 0, te, rt, rt, rt);
    Co.instantiations = /* @__PURE__ */ new Map();
    var La = Ns(void 0, te, rt, rt, rt);
    La.objectFlags |= 262144;
    var Yo = Ns(void 0, te, rt, rt, rt), Vl = Ns(void 0, te, rt, rt, rt), tu = Ns(void 0, te, rt, rt, rt), qd = Nd(), oc = Nd();
    oc.constraint = qd;
    var Jc = Nd(), Ds = Nd(), hl = Nd();
    hl.constraint = Ds;
    var el = xP(1, "<<unresolved>>", 0, we), Ks = oh(void 0, void 0, void 0, rt, we, void 0, 0, 0), rn = oh(void 0, void 0, void 0, rt, Ce, void 0, 0, 0), jl = oh(void 0, void 0, void 0, rt, we, void 0, 0, 0), xu = oh(void 0, void 0, void 0, rt, ft, void 0, 0, 0), Wu = hm(mt, ue, !0), fe = /* @__PURE__ */ new Map(), It = {
      get yieldType() {
        return D.fail("Not supported");
      },
      get returnType() {
        return D.fail("Not supported");
      },
      get nextType() {
        return D.fail("Not supported");
      }
    }, Ht = ny(we, we, we), Q = ny(we, we, he), ot = ny(gt, we, He), xt = {
      iterableCacheKey: "iterationTypesOfAsyncIterable",
      iteratorCacheKey: "iterationTypesOfAsyncIterator",
      iteratorSymbolName: "asyncIterator",
      getGlobalIteratorType: _$e,
      getGlobalIterableType: kU,
      getGlobalIterableIteratorType: p$e,
      getGlobalGeneratorType: m$e,
      resolveIterationType: HE,
      mustHaveANextMethodDiagnostic: _.An_async_iterator_must_have_a_next_method,
      mustBeAMethodDiagnostic: _.The_0_property_of_an_async_iterator_must_be_a_method,
      mustHaveAValueDiagnostic: _.The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property
    }, mn = {
      iterableCacheKey: "iterationTypesOfIterable",
      iteratorCacheKey: "iterationTypesOfIterator",
      iteratorSymbolName: "iterator",
      getGlobalIteratorType: h$e,
      getGlobalIterableType: Qre,
      getGlobalIterableIteratorType: g$e,
      getGlobalGeneratorType: y$e,
      resolveIterationType: (n, a) => n,
      mustHaveANextMethodDiagnostic: _.An_iterator_must_have_a_next_method,
      mustBeAMethodDiagnostic: _.The_0_property_of_an_iterator_must_be_a_method,
      mustHaveAValueDiagnostic: _.The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property
    }, Dr, Pr = /* @__PURE__ */ new Map(), Ta = !1, ls, ho, Ho, Ya, dl, dc, _d, Es, ds, fl, Jd, Hl, Nf, xe, Dt, Nn, Xi, Lo, oe, ut, Mt, Pt, un, Vn, Rr, ni, Mi, ja, Wo, Ts, Xs, pd, _f, tc, Kd, Au, pf, S_, $o, x_, mf, Q_, Ip, U, et, qt, Xn, Da, Ia, Ie, Ue, Lt, Ot, hn, bn = /* @__PURE__ */ new Map(), Tn = 0, Hn = 0, qr = 0, Ji = !1, tr = 0, pn, dr, Aa, Ys = [], sc = [], Ym = [], xg = 0, Z_ = [], ub = [], Qv = 0, u2 = jf(""), rS = Bp(0), d2 = PU({ negative: !1, base10Value: "0" }), Ag = [], ep = [], Zv = [], Oh = 0, kp = 10, e0 = [], X1 = [], db = [], Cg = [], iS = [], Y1 = [], $1 = [], Q1 = [], t0 = [], f2 = [], Z1 = [], eE = [], n0 = [], fb = [], r0 = [], aS = [], Lg = [], Qo = QA(), tE = QA(), uL = rh(), Py, Ig, $m = /* @__PURE__ */ new Map(), tp = /* @__PURE__ */ new Map(), kd = /* @__PURE__ */ new Map(), wd = /* @__PURE__ */ new Map(), Dd = /* @__PURE__ */ new Map(), _b = /* @__PURE__ */ new Map(), pb = lo();
    pb.set(Fe.escapedName, Fe);
    var _2 = [
      [".mts", ".mjs"],
      [".ts", ".js"],
      [".cts", ".cjs"],
      [".mjs", ".mjs"],
      [".js", ".js"],
      [".cjs", ".cjs"],
      [".tsx", Y.jsx === 1 ? ".jsx" : ".js"],
      [".jsx", ".jsx"],
      [".json", ".json"]
    ];
    return pst(), at;
    function mb(n) {
      return n ? cr.get(n) : void 0;
    }
    function kg(n, a) {
      return n && cr.set(n, a), a;
    }
    function hb(n) {
      if (n) {
        const a = Zn(n);
        if (a)
          if (Nx(n)) {
            if (a.localJsxFragmentNamespace)
              return a.localJsxFragmentNamespace;
            const l = a.pragmas.get("jsxfrag");
            if (l) {
              const p = Va(l) ? l[0] : l;
              if (a.localJsxFragmentFactory = Bx(p.arguments.factory, P), lt(a.localJsxFragmentFactory, gb, rf), a.localJsxFragmentFactory)
                return a.localJsxFragmentNamespace = Lf(a.localJsxFragmentFactory).escapedText;
            }
            const u = Doe(n);
            if (u)
              return a.localJsxFragmentFactory = u, a.localJsxFragmentNamespace = Lf(u).escapedText;
          } else {
            const l = oS(a);
            if (l)
              return a.localJsxNamespace = l;
          }
      }
      return Py || (Py = "React", Y.jsxFactory ? (Ig = Bx(Y.jsxFactory, P), lt(Ig, gb), Ig && (Py = Lf(Ig).escapedText)) : Y.reactNamespace && (Py = sl(Y.reactNamespace))), Ig || (Ig = N.createQualifiedName(N.createIdentifier(ta(Py)), "createElement")), Py;
    }
    function oS(n) {
      if (n.localJsxNamespace)
        return n.localJsxNamespace;
      const a = n.pragmas.get("jsx");
      if (a) {
        const l = Va(a) ? a[0] : a;
        if (n.localJsxFactory = Bx(l.arguments.factory, P), lt(n.localJsxFactory, gb, rf), n.localJsxFactory)
          return n.localJsxNamespace = Lf(n.localJsxFactory).escapedText;
      }
    }
    function gb(n) {
      return Vm(n, -1, -1), Bn(n, gb, bg);
    }
    function dL(n, a) {
      return eDe(n, a), Me;
    }
    function p2(n, a, l, u, p, g) {
      const x = n ? Nr(n, a, l, u, p, g) : Fs(a, l, u, p, g), R = Qo.lookup(x);
      return R || (Qo.add(x), x);
    }
    function i0(n, a, l, u, p, g, x) {
      const R = Ke(a, l, u, p, g, x);
      return R.skippedOn = n, R;
    }
    function nE(n, a, l, u, p, g) {
      return n ? Nr(n, a, l, u, p, g) : Fs(a, l, u, p, g);
    }
    function Ke(n, a, l, u, p, g) {
      const x = nE(n, a, l, u, p, g);
      return Qo.add(x), x;
    }
    function My(n, a) {
      n ? Qo.add(a) : tE.add({ ...a, category: 2 });
    }
    function om(n, a, l, u, p, g, x) {
      if (a.pos < 0 || a.end < 0) {
        if (!n)
          return;
        const R = Zn(a);
        My(n, "message" in l ? Dc(R, 0, 0, l, u, p, g, x) : nz(R, l));
        return;
      }
      My(n, "message" in l ? Nr(a, l, u, p, g, x) : cg(Zn(a), a, l));
    }
    function a0(n, a, l, u, p, g, x) {
      const R = Ke(n, l, u, p, g, x);
      if (a) {
        const M = Nr(n, _.Did_you_forget_to_use_await);
        Xo(R, M);
      }
      return R;
    }
    function yb(n, a) {
      const l = Array.isArray(n) ? ze(n, uW) : uW(n);
      return l && Xo(a, Nr(l, _.The_declaration_was_marked_as_deprecated_here)), tE.add(a), a;
    }
    function o0(n) {
      if (Le(n.declarations) > 1) {
        const a = gd(n);
        if (a && a.flags & 64)
          return kt(n.declarations, (l) => !!(hp(l) & 268435456));
      }
      return !!(bV(n) & 268435456);
    }
    function wg(n, a, l) {
      const u = Nr(n, _._0_is_deprecated, l);
      return yb(a, u);
    }
    function sS(n, a, l, u) {
      const p = l ? Nr(n, _.The_signature_0_of_1_is_deprecated, u, l) : Nr(n, _._0_is_deprecated, u);
      return yb(a, p);
    }
    function ns(n, a, l) {
      A++;
      const u = new d(n | 33554432, a);
      return u.links = new nX(), u.links.checkFlags = l || 0, u;
    }
    function np(n, a) {
      const l = ns(1, n);
      return l.links.type = a, l;
    }
    function rE(n, a) {
      const l = ns(4, n);
      return l.links.type = a, l;
    }
    function vc(n) {
      let a = 0;
      return n & 2 && (a |= 111551), n & 1 && (a |= 111550), n & 4 && (a |= 0), n & 8 && (a |= 900095), n & 16 && (a |= 110991), n & 32 && (a |= 899503), n & 64 && (a |= 788872), n & 256 && (a |= 899327), n & 128 && (a |= 899967), n & 512 && (a |= 110735), n & 8192 && (a |= 103359), n & 32768 && (a |= 46015), n & 65536 && (a |= 78783), n & 262144 && (a |= 526824), n & 524288 && (a |= 788968), n & 2097152 && (a |= 2097152), a;
    }
    function Ph(n, a) {
      a.mergeId || (a.mergeId = eX, eX++), e0[a.mergeId] = n;
    }
    function vb(n) {
      const a = ns(n.flags, n.escapedName);
      return a.declarations = n.declarations ? n.declarations.slice() : [], a.parent = n.parent, n.valueDeclaration && (a.valueDeclaration = n.valueDeclaration), n.constEnumOnlyModule && (a.constEnumOnlyModule = !0), n.members && (a.members = new Map(n.members)), n.exports && (a.exports = new Map(n.exports)), Ph(a, n), a;
    }
    function rp(n, a, l = !1) {
      if (!(n.flags & vc(a.flags)) || (a.flags | n.flags) & 67108864) {
        if (a === n)
          return n;
        if (!(n.flags & 33554432)) {
          const p = Yl(n);
          if (p === an)
            return a;
          n = vb(p);
        }
        a.flags & 512 && n.flags & 512 && n.constEnumOnlyModule && !a.constEnumOnlyModule && (n.constEnumOnlyModule = !1), n.flags |= a.flags, a.valueDeclaration && SN(n, a.valueDeclaration), Ti(n.declarations, a.declarations), a.members && (n.members || (n.members = lo()), Pc(n.members, a.members, l)), a.exports && (n.exports || (n.exports = lo()), Pc(n.exports, a.exports, l)), l || Ph(n, a);
      } else if (n.flags & 1024)
        n !== st && Ke(a.declarations && ka(a.declarations[0]), _.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity, S(n));
      else {
        const p = !!(n.flags & 384 || a.flags & 384), g = !!(n.flags & 2 || a.flags & 2), x = p ? _.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations : g ? _.Cannot_redeclare_block_scoped_variable_0 : _.Duplicate_identifier_0, R = a.declarations && Zn(a.declarations[0]), M = n.declarations && Zn(n.declarations[0]), J = qM(R, Y.checkJs), $ = qM(M, Y.checkJs), ge = S(a);
        if (R && M && Dr && !p && R !== M) {
          const Ne = QE(R.path, M.path) === -1 ? R : M, De = Ne === R ? M : R, _t = pA(Dr, `${Ne.path}|${De.path}`, () => ({ firstFile: Ne, secondFile: De, conflictingSymbols: /* @__PURE__ */ new Map() })), Bt = pA(_t.conflictingSymbols, ge, () => ({ isBlockScoped: g, firstFileLocations: [], secondFileLocations: [] }));
          J || u(Bt.firstFileLocations, a), $ || u(Bt.secondFileLocations, n);
        } else
          J || bb(a, x, ge, n), $ || bb(n, x, ge, a);
      }
      return n;
      function u(p, g) {
        if (g.declarations)
          for (const x of g.declarations)
            d_(p, x);
      }
    }
    function bb(n, a, l, u) {
      ze(n.declarations, (p) => {
        cu(p, a, l, u.declarations);
      });
    }
    function cu(n, a, l, u) {
      const p = (W0(n, !1) ? mz(n) : ka(n)) || n, g = p2(p, a, l);
      for (const x of u || rt) {
        const R = (W0(x, !1) ? mz(x) : ka(x)) || x;
        if (R === p)
          continue;
        g.relatedInformation = g.relatedInformation || [];
        const M = Nr(R, _._0_was_also_declared_here, l), J = Nr(R, _.and_here);
        Le(g.relatedInformation) >= 5 || kt(g.relatedInformation, ($) => ck($, J) === 0 || ck($, M) === 0) || Xo(g, Le(g.relatedInformation) ? J : M);
      }
    }
    function Dg(n, a) {
      if (!(n != null && n.size))
        return a;
      if (!(a != null && a.size))
        return n;
      const l = lo();
      return Pc(l, n), Pc(l, a), l;
    }
    function Pc(n, a, l = !1) {
      a.forEach((u, p) => {
        const g = n.get(p);
        n.set(p, g ? rp(g, u, l) : as(u));
      });
    }
    function lS(n) {
      var a, l, u;
      const p = n.parent;
      if (((a = p.symbol.declarations) == null ? void 0 : a[0]) !== p) {
        D.assert(p.symbol.declarations.length > 1);
        return;
      }
      if (Kp(p))
        Pc(We, p.symbol.exports);
      else {
        const g = n.parent.parent.flags & 16777216 ? void 0 : _.Invalid_module_name_in_augmentation_module_0_cannot_be_found;
        let x = Gh(n, n, g, !0);
        if (!x)
          return;
        if (x = hd(x), x.flags & 1920)
          if (kt(ho, (R) => x === R.symbol)) {
            const R = rp(p.symbol, x, !0);
            Ho || (Ho = /* @__PURE__ */ new Map()), Ho.set(n.text, R);
          } else {
            if ((l = x.exports) != null && l.get("__export") && ((u = p.symbol.exports) != null && u.size)) {
              const R = bre(x, "resolvedExports");
              for (const [M, J] of Ro(p.symbol.exports.entries()))
                R.has(M) && !x.exports.has(M) && rp(R.get(M), J);
            }
            rp(x, p.symbol);
          }
        else
          Ke(n, _.Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity, n.text);
      }
    }
    function fL(n, a, l) {
      a.forEach((p, g) => {
        const x = n.get(g);
        x ? ze(x.declarations, u(ta(g), l)) : n.set(g, p);
      });
      function u(p, g) {
        return (x) => Qo.add(Nr(x, g, p));
      }
    }
    function Wi(n) {
      var a;
      if (n.flags & 33554432)
        return n.links;
      const l = bo(n);
      return (a = X1[l]) != null ? a : X1[l] = new nX();
    }
    function Jr(n) {
      const a = ps(n);
      return db[a] || (db[a] = new dMe());
    }
    function Qm(n) {
      return n.kind === 308 && !sf(n);
    }
    function Xd(n, a, l) {
      if (l) {
        const u = as(n.get(a));
        if (u && (D.assert((Ll(u) & 1) === 0, "Should never get an instantiated symbol here."), u.flags & l || u.flags & 2097152 && uu(u) & l))
          return u;
      }
    }
    function iE(n, a) {
      const l = n.parent, u = n.parent.parent, p = Xd(l.locals, a, 111551), g = Xd(tv(u.symbol), a, 111551);
      return p && g ? [p, g] : D.fail("There should exist two symbols, one as property declaration and one as parameter declaration");
    }
    function Rg(n, a) {
      const l = Zn(n), u = Zn(a), p = Mm(n);
      if (l !== u) {
        if (de && (l.externalModuleIndicator || u.externalModuleIndicator) || !qs(Y) || RL(a) || n.flags & 16777216 || x(a, n))
          return !0;
        const M = e.getSourceFiles();
        return M.indexOf(l) <= M.indexOf(u);
      }
      if (n.pos <= a.pos && !(to(n) && dN(a.parent) && !n.initializer && !n.exclamationToken)) {
        if (n.kind === 205) {
          const M = q0(a, 205);
          return M ? nr(M, _s) !== nr(n, _s) || n.pos < M.pos : Rg(q0(n, 257), a);
        } else {
          if (n.kind === 257)
            return !g(n, a);
          if (Nc(n))
            return !nr(a, (M) => As(M) && M.parent.parent === n);
          if (to(n))
            return !R(n, a, !1);
          if (nf(n, n.parent))
            return !(ts(Y) === 99 && ye && xc(n) === xc(a) && x(a, n));
        }
        return !0;
      }
      if (a.parent.kind === 278 || a.parent.kind === 274 && a.parent.isExportEquals || a.kind === 274 && a.isExportEquals || a.flags & 8388608 || RL(a) || ULe(a))
        return !0;
      if (x(a, n))
        return ts(Y) === 99 && ye && xc(n) && (to(n) || nf(n, n.parent)) ? !R(n, a, !0) : !0;
      return !1;
      function g(M, J) {
        switch (M.parent.parent.kind) {
          case 240:
          case 245:
          case 247:
            if (sm(J, M, p))
              return !0;
            break;
        }
        const $ = M.parent.parent;
        return kA($) && sm(J, $.expression, p);
      }
      function x(M, J) {
        return !!nr(M, ($) => {
          if ($ === p)
            return "quit";
          if (Ka($))
            return !0;
          if (Il($))
            return J.pos < M.pos;
          const ge = ai($.parent, to);
          if (ge && ge.initializer === $) {
            if (Ja($.parent)) {
              if (J.kind === 171)
                return !0;
              if (to(J) && xc(M) === xc(J)) {
                const De = J.name;
                if (je(De) || Ni(De)) {
                  const _t = ar(Ir(J)), Bt = lr(J.parent.members, Il);
                  if (Qat(De, _t, Bt, J.parent.pos, $.pos))
                    return !0;
                }
              }
            } else if (!(J.kind === 169 && !Ja(J)) || xc(M) !== xc(J))
              return !0;
          }
          return !1;
        });
      }
      function R(M, J, $) {
        return J.end > M.end ? !1 : nr(J, (Ne) => {
          if (Ne === M)
            return "quit";
          switch (Ne.kind) {
            case 216:
              return !0;
            case 169:
              return $ && (to(M) && Ne.parent === M.parent || nf(M, M.parent) && Ne.parent === M.parent.parent) ? "quit" : !0;
            case 238:
              switch (Ne.parent.kind) {
                case 174:
                case 171:
                case 175:
                  return !0;
                default:
                  return !1;
              }
            default:
              return !1;
          }
        }) === void 0;
      }
    }
    function Mh(n, a, l) {
      const u = ts(Y), p = a;
      if (Ba(l) && p.body && n.valueDeclaration && n.valueDeclaration.pos >= p.body.pos && n.valueDeclaration.end <= p.body.end && u >= 2) {
        const R = Jr(p);
        return R.declarationRequiresScopeChange === void 0 && (R.declarationRequiresScopeChange = ze(p.parameters, g) || !1), !R.declarationRequiresScopeChange;
      }
      return !1;
      function g(R) {
        return x(R.name) || !!R.initializer && x(R.initializer);
      }
      function x(R) {
        switch (R.kind) {
          case 216:
          case 215:
          case 259:
          case 173:
            return !1;
          case 171:
          case 174:
          case 175:
          case 299:
            return x(R.name);
          case 169:
            return gc(R) ? u < 99 || !ye : x(R.name);
          default:
            return mW(R) || yu(R) ? u < 7 : _s(R) && R.dotDotDotToken && Hm(R.parent) ? u < 4 : Gi(R) ? !1 : Ma(R, x) || !1;
        }
      }
    }
    function Zm(n) {
      return iT(n) && sg(n.type) || Uk(n) && sg(n.typeExpression);
    }
    function _l(n, a, l, u, p, g, x = !1, R = !0) {
      return Eb(n, a, l, u, p, g, x, R, Xd);
    }
    function Eb(n, a, l, u, p, g, x, R, M) {
      var J, $, ge;
      const Ne = n;
      let De, _t, Bt, Mn, An, Kn = !1;
      const gn = n;
      let xn, yr = !1;
      e:
        for (; n; ) {
          if (a === "const" && Zm(n))
            return;
          if (Nm(n) && n.locals && !Qm(n) && (De = M(n.locals, a, l))) {
            let Gn = !0;
            if (Ka(n) && _t && _t !== n.body ? (l & De.flags & 788968 && _t.kind !== 323 && (Gn = De.flags & 262144 ? _t === n.type || _t.kind === 166 || _t.kind === 344 || _t.kind === 345 || _t.kind === 165 : !1), l & De.flags & 3 && (Mh(De, n, _t) ? Gn = !1 : De.flags & 1 && (Gn = _t.kind === 166 || _t === n.type && !!nr(De.valueDeclaration, Ba)))) : n.kind === 191 && (Gn = _t === n.trueType), Gn)
              break e;
            De = void 0;
          }
          switch (Kn = Kn || Tb(n, _t), n.kind) {
            case 308:
              if (!sf(n))
                break;
              yr = !0;
            case 264:
              const Gn = ((J = Ir(n)) == null ? void 0 : J.exports) || te;
              if (n.kind === 308 || Jl(n) && n.flags & 16777216 && !Kp(n)) {
                if (De = Gn.get("default")) {
                  const ri = tC(De);
                  if (ri && De.flags & l && ri.escapedName === a)
                    break e;
                  De = void 0;
                }
                const Zr = Gn.get(a);
                if (Zr && Zr.flags === 2097152 && (xl(Zr, 278) || xl(Zr, 277)))
                  break;
              }
              if (a !== "default" && (De = M(Gn, a, l & 2623475)))
                if (qi(n) && n.commonJsModuleIndicator && !(($ = De.declarations) != null && $.some(m_)))
                  De = void 0;
                else
                  break e;
              break;
            case 263:
              if (De = M(((ge = Ir(n)) == null ? void 0 : ge.exports) || te, a, l & 8)) {
                u && j_(Y) && !(n.flags & 16777216) && Zn(n) !== Zn(De.valueDeclaration) && Ke(gn, _.Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead, ta(a), Vt, `${ta(Yd(n).escapedName)}.${ta(a)}`);
                break e;
              }
              break;
            case 169:
              if (!Ja(n)) {
                const Zr = p0(n.parent);
                Zr && Zr.locals && M(Zr.locals, a, l & 111551) && (D.assertNode(n, to), Mn = n);
              }
              break;
            case 260:
            case 228:
            case 261:
              if (De = M(Ir(n).members || te, a, l & 788968)) {
                if (!m2(De, n)) {
                  De = void 0;
                  break;
                }
                if (_t && Ja(_t)) {
                  u && Ke(gn, _.Static_members_cannot_reference_class_type_parameters);
                  return;
                }
                break e;
              }
              if (Gu(n) && l & 32) {
                const Zr = n.name;
                if (Zr && a === Zr.escapedText) {
                  De = n.symbol;
                  break e;
                }
              }
              break;
            case 230:
              if (_t === n.expression && n.parent.token === 94) {
                const Zr = n.parent.parent;
                if (di(Zr) && (De = M(Ir(Zr).members, a, l & 788968))) {
                  u && Ke(gn, _.Base_class_expressions_cannot_reference_class_type_parameters);
                  return;
                }
              }
              break;
            case 164:
              if (xn = n.parent.parent, (di(xn) || xn.kind === 261) && (De = M(Ir(xn).members, a, l & 788968))) {
                u && Ke(gn, _.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type);
                return;
              }
              break;
            case 216:
              if (ts(Y) >= 2)
                break;
            case 171:
            case 173:
            case 174:
            case 175:
            case 259:
              if (l & 3 && a === "arguments") {
                De = Ct;
                break e;
              }
              break;
            case 215:
              if (l & 3 && a === "arguments") {
                De = Ct;
                break e;
              }
              if (l & 16) {
                const Zr = n.name;
                if (Zr && a === Zr.escapedText) {
                  De = n.symbol;
                  break e;
                }
              }
              break;
            case 167:
              n.parent && n.parent.kind === 166 && (n = n.parent), n.parent && (Uc(n.parent) || n.parent.kind === 260) && (n = n.parent);
              break;
            case 349:
            case 341:
            case 343:
              const qn = HI(n);
              qn && (n = qn.parent);
              break;
            case 166:
              _t && (_t === n.initializer || _t === n.name && Xa(_t)) && (An || (An = n));
              break;
            case 205:
              _t && (_t === n.initializer || _t === n.name && Xa(_t)) && hT(n) && !An && (An = n);
              break;
            case 192:
              if (l & 262144) {
                const Zr = n.typeParameter.name;
                if (Zr && a === Zr.escapedText) {
                  De = n.typeParameter.symbol;
                  break e;
                }
              }
              break;
          }
          uS(n) && (Bt = n), _t = n, n = Ep(n) ? T3(n) || n.parent : (rm(n) || K7(n)) && z0(n) || n.parent;
        }
      if (g && De && (!Bt || De !== Bt.symbol) && (De.isReferenced |= l), !De) {
        if (_t && (D.assertNode(_t, qi), _t.commonJsModuleIndicator && a === "exports" && l & _t.symbol.flags))
          return _t.symbol;
        x || (De = M(We, a, l));
      }
      if (!De && Ne && fr(Ne) && Ne.parent && xd(Ne.parent, !1))
        return Et;
      function ln() {
        return Mn && !(ye && ts(Y) >= 9) ? (Ke(gn, gn && Mn.type && CM(Mn.type, gn.pos) ? _.Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor : _.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor, ws(Mn.name), r_(p)), !0) : !1;
      }
      if (De) {
        if (u && ln())
          return;
      } else {
        u && i(() => {
          if (!gn || !h2(gn, a, p) && !ln() && !s0(gn) && !fS(gn, a, l) && !_S(gn, a) && !y2(gn, a, l) && !Of(gn, a, l) && !g2(gn, a, l)) {
            let Gn, qn;
            if (p && (qn = int(p), qn && Ke(gn, u, r_(p), qn)), !qn && R && Oh < kp && (Gn = Oae(Ne, a, l), (Gn == null ? void 0 : Gn.valueDeclaration) && Pu(Gn.valueDeclaration) && Kp(Gn.valueDeclaration) && (Gn = void 0), Gn)) {
              const ri = S(Gn), ma = Dae(Ne, Gn, !1), Qa = l === 1920 || p && typeof p != "string" && Zs(p) ? _.Cannot_find_namespace_0_Did_you_mean_1 : ma ? _.Could_not_find_name_0_Did_you_mean_1 : _.Cannot_find_name_0_Did_you_mean_1, Ec = nE(gn, Qa, r_(p), ri);
              My(!ma, Ec), Gn.valueDeclaration && Xo(Ec, Nr(Gn.valueDeclaration, _._0_is_declared_here, ri));
            }
            !Gn && !qn && p && Ke(gn, u, r_(p)), Oh++;
          }
        });
        return;
      }
      return u && i(() => {
        if (gn && (l & 2 || (l & 32 || l & 384) && (l & 111551) === 111551)) {
          const Gn = Np(De);
          (Gn.flags & 2 || Gn.flags & 32 || Gn.flags & 384) && xb(Gn, gn);
        }
        if (De && yr && (l & 111551) === 111551 && !(Ne.flags & 8388608)) {
          const Gn = as(De);
          Le(Gn.declarations) && Yn(Gn.declarations, (qn) => FO(qn) || qi(qn) && !!qn.symbol.globalExports) && om(!Y.allowUmdGlobalAccess, gn, _._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead, ta(a));
        }
        if (De && An && !Kn && (l & 111551) === 111551) {
          const Gn = as(EU(De)), qn = Fm(An);
          Gn === Ir(An) ? Ke(gn, _.Parameter_0_cannot_reference_itself, ws(An.name)) : Gn.valueDeclaration && Gn.valueDeclaration.pos > An.pos && qn.parent.locals && M(qn.parent.locals, Gn.escapedName, l) === Gn && Ke(gn, _.Parameter_0_cannot_reference_identifier_1_declared_after_it, ws(An.name), ws(gn));
        }
        if (De && gn && l & 111551 && De.flags & 2097152 && !(De.flags & 111551) && !mx(gn)) {
          const Gn = Rd(De, 111551);
          if (Gn) {
            const qn = Gn.kind === 278 || Gn.kind === 275 || Gn.kind === 277 ? _._0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type : _._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type, Zr = ta(a);
            cS(Ke(gn, qn, Zr), Gn, Zr);
          }
        }
      }), De;
    }
    function cS(n, a, l) {
      return a ? Xo(n, Nr(a, a.kind === 278 || a.kind === 275 || a.kind === 277 ? _._0_was_exported_here : _._0_was_imported_here, l)) : n;
    }
    function Tb(n, a) {
      return n.kind !== 216 && n.kind !== 215 ? kk(n) || (Qs(n) || n.kind === 169 && !Ja(n)) && (!a || a !== n.name) : a && a === n.name ? !1 : n.asteriskToken || Yr(n, 512) ? !0 : !dT(n);
    }
    function uS(n) {
      switch (n.kind) {
        case 259:
        case 260:
        case 261:
        case 263:
        case 262:
        case 264:
          return !0;
        default:
          return !1;
      }
    }
    function r_(n) {
      return Ha(n) ? ta(n) : ws(n);
    }
    function m2(n, a) {
      if (n.declarations) {
        for (const l of n.declarations)
          if (l.kind === 165 && (Ep(l.parent) ? ix(l.parent) : l.parent) === a)
            return !(Ep(l.parent) && nn(l.parent.parent.tags, m_));
      }
      return !1;
    }
    function h2(n, a, l) {
      if (!je(n) || n.escapedText !== a || tDe(n) || RL(n))
        return !1;
      const u = Sd(n, !1, !1);
      let p = u;
      for (; p; ) {
        if (di(p.parent)) {
          const g = Ir(p.parent);
          if (!g)
            break;
          const x = ar(g);
          if (uo(x, a))
            return Ke(n, _.Cannot_find_name_0_Did_you_mean_the_static_member_1_0, r_(l), S(g)), !0;
          if (p === u && !Ja(p)) {
            const R = Us(g).thisType;
            if (uo(R, a))
              return Ke(n, _.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0, r_(l)), !0;
          }
        }
        p = p.parent;
      }
      return !1;
    }
    function s0(n) {
      const a = dS(n);
      return a && Rl(a, 64, !0) ? (Ke(n, _.Cannot_extend_an_interface_0_Did_you_mean_implements, Sc(a)), !0) : !1;
    }
    function dS(n) {
      switch (n.kind) {
        case 79:
        case 208:
          return n.parent ? dS(n.parent) : void 0;
        case 230:
          if (zl(n.expression))
            return n.expression;
        default:
          return;
      }
    }
    function fS(n, a, l) {
      const u = 1920 | (fr(n) ? 111551 : 0);
      if (l === u) {
        const p = Yl(_l(n, a, 788968 & ~u, void 0, void 0, !1)), g = n.parent;
        if (p) {
          if (Cd(g)) {
            D.assert(g.left === n, "Should only be resolving left side of qualified name as a namespace");
            const x = g.right.escapedText;
            if (uo(Us(p), x))
              return Ke(g, _.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1, ta(a), ta(x)), !0;
          }
          return Ke(n, _._0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here, ta(a)), !0;
        }
      }
      return !1;
    }
    function g2(n, a, l) {
      if (l & 788584) {
        const u = Yl(_l(n, a, 111127, void 0, void 0, !1));
        if (u && !(u.flags & 1920))
          return Ke(n, _._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0, ta(a)), !0;
      }
      return !1;
    }
    function Sb(n) {
      return n === "any" || n === "string" || n === "number" || n === "boolean" || n === "never" || n === "unknown";
    }
    function _S(n, a) {
      return Sb(a) && n.parent.kind === 278 ? (Ke(n, _.Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module, a), !0) : !1;
    }
    function Of(n, a, l) {
      if (l & 111551) {
        if (Sb(a))
          return Ng(n) ? Ke(n, _.An_interface_cannot_extend_a_primitive_type_like_0_an_interface_can_only_extend_named_types_and_classes, ta(a)) : Ke(n, _._0_only_refers_to_a_type_but_is_being_used_as_a_value_here, ta(a)), !0;
        const u = Yl(_l(n, a, 788544, void 0, void 0, !1)), p = u && uu(u);
        if (u && p !== void 0 && !(p & 111551)) {
          const g = ta(a);
          return ip(a) ? Ke(n, _._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later, g) : wp(n, u) ? Ke(n, _._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0, g, g === "K" ? "P" : "K") : Ke(n, _._0_only_refers_to_a_type_but_is_being_used_as_a_value_here, g), !0;
        }
      }
      return !1;
    }
    function Ng(n) {
      const a = n.parent.parent, l = a.parent;
      if (a && l) {
        const u = jd(a) && a.token === 94, p = nd(l);
        return u && p;
      }
      return !1;
    }
    function wp(n, a) {
      const l = nr(n.parent, (u) => As(u) || If(u) ? !1 : uf(u) || "quit");
      if (l && l.members.length === 1) {
        const u = Us(a);
        return !!(u.flags & 1048576) && d4(u, 384, !0);
      }
      return !1;
    }
    function ip(n) {
      switch (n) {
        case "Promise":
        case "Symbol":
        case "Map":
        case "WeakMap":
        case "Set":
        case "WeakSet":
          return !0;
      }
      return !1;
    }
    function y2(n, a, l) {
      if (l & 111127) {
        if (Yl(_l(n, a, 1024, void 0, void 0, !1)))
          return Ke(n, _.Cannot_use_namespace_0_as_a_value, ta(a)), !0;
      } else if (l & 788544 && Yl(_l(n, a, 1536, void 0, void 0, !1)))
        return Ke(n, _.Cannot_use_namespace_0_as_a_type, ta(a)), !0;
      return !1;
    }
    function xb(n, a) {
      var l;
      if (D.assert(!!(n.flags & 2 || n.flags & 32 || n.flags & 384)), n.flags & 67108881 && n.flags & 32)
        return;
      const u = (l = n.declarations) == null ? void 0 : l.find((p) => zW(p) || di(p) || p.kind === 263);
      if (u === void 0)
        return D.fail("checkResolvedBlockScopedVariable could not find block-scoped declaration");
      if (!(u.flags & 16777216) && !Rg(u, a)) {
        let p;
        const g = ws(ka(u));
        n.flags & 2 ? p = Ke(a, _.Block_scoped_variable_0_used_before_its_declaration, g) : n.flags & 32 ? p = Ke(a, _.Class_0_used_before_its_declaration, g) : n.flags & 256 ? p = Ke(a, _.Enum_0_used_before_its_declaration, g) : (D.assert(!!(n.flags & 128)), C1(Y) && (p = Ke(a, _.Enum_0_used_before_its_declaration, g))), p && Xo(p, Nr(u, _._0_is_declared_here, g));
      }
    }
    function sm(n, a, l) {
      return !!a && !!nr(n, (u) => u === a || (u === l || Ka(u) && (!dT(u) || $A(u)) ? "quit" : !1));
    }
    function pS(n) {
      switch (n.kind) {
        case 268:
          return n;
        case 270:
          return n.parent;
        case 271:
          return n.parent.parent;
        case 273:
          return n.parent.parent.parent;
        default:
          return;
      }
    }
    function md(n) {
      return n.declarations && Li(n.declarations, Og);
    }
    function Og(n) {
      return n.kind === 268 || n.kind === 267 || n.kind === 270 && !!n.name || n.kind === 271 || n.kind === 277 || n.kind === 273 || n.kind === 278 || n.kind === 274 && KA(n) || br(n) && Cl(n) === 2 && KA(n) || ll(n) && br(n.parent) && n.parent.left === n && n.parent.operatorToken.kind === 63 && lm(n.parent.right) || n.kind === 300 || n.kind === 299 && lm(n.initializer) || n.kind === 257 && b1(n) || n.kind === 205 && b1(n.parent.parent);
    }
    function lm(n) {
      return ON(n) || Bs(n) && Up(n);
    }
    function cm(n, a) {
      const l = Gy(n);
      if (l) {
        const p = sk(l.expression).arguments[0];
        return je(l.name) ? Yl(uo(KAe(p), l.name.escapedText)) : void 0;
      }
      if (Ki(n) || n.moduleReference.kind === 280) {
        const p = du(n, dz(n) || VI(n)), g = hd(p);
        return C_(n, p, g, !1), g;
      }
      const u = Rp(n.moduleReference, a);
      return Pg(n, u), u;
    }
    function Pg(n, a) {
      if (C_(n, void 0, a, !1) && !n.isTypeOnly) {
        const l = Rd(Ir(n)), u = l.kind === 278 || l.kind === 275, p = u ? _.An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type : _.An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type, g = u ? _._0_was_exported_here : _._0_was_imported_here, x = l.kind === 275 ? "*" : ta(l.name.escapedText);
        Xo(Ke(n.moduleReference, p), Nr(l, g, x));
      }
    }
    function aE(n, a, l, u) {
      const p = n.exports.get("export="), g = p ? uo(ar(p), a, !0) : n.exports.get(a), x = Yl(g, u);
      return C_(l, g, x, !1), x;
    }
    function mS(n) {
      return Bl(n) && !n.isExportEquals || Yr(n, 1024) || dd(n);
    }
    function Fy(n) {
      return xs(n) ? Tp(Zn(n), n) : void 0;
    }
    function oE(n, a) {
      return n === 99 && a === 1;
    }
    function Rs(n) {
      return Fy(n) === 99 && ic(n.text, ".json");
    }
    function By(n, a, l, u) {
      const p = n && Fy(u);
      if (n && p !== void 0) {
        const g = oE(p, n.impliedNodeFormat);
        if (p === 99 || g)
          return g;
      }
      if (!ae)
        return !1;
      if (!n || n.isDeclarationFile) {
        const g = aE(a, "default", void 0, !0);
        return !(g && kt(g.declarations, mS) || aE(a, sl("__esModule"), void 0, l));
      }
      return Zu(n) ? typeof n.externalModuleIndicator != "object" && !aE(a, sl("__esModule"), void 0, l) : dE(a);
    }
    function v2(n, a) {
      const l = du(n, n.parent.moduleSpecifier);
      if (l)
        return Ab(l, n, a);
    }
    function Ab(n, a, l) {
      var u;
      let p;
      MI(n) ? p = n : p = aE(n, "default", a, l);
      const g = (u = n.declarations) == null ? void 0 : u.find(qi), x = Cb(a);
      if (!x)
        return p;
      const R = Rs(x), M = By(g, n, l, x);
      if (!p && !M && !R)
        if (dE(n) && !(ET(Y) || H_(Y))) {
          const J = de >= 5 ? "allowSyntheticDefaultImports" : "esModuleInterop", ge = n.exports.get("export=").valueDeclaration, Ne = Ke(a.name, _.Module_0_can_only_be_default_imported_using_the_1_flag, S(n), J);
          ge && Xo(Ne, Nr(ge, _.This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag, J));
        } else
          Wm(a) ? b2(n, a) : l0(n, n, a, JS(a) && a.propertyName || a.name);
      else if (M || R) {
        const J = hd(n, l) || Yl(n, l);
        return C_(a, n, J, !1), J;
      }
      return C_(a, p, void 0, !1), p;
    }
    function Cb(n) {
      switch (n.kind) {
        case 270:
          return n.parent.moduleSpecifier;
        case 268:
          return zm(n.moduleReference) ? n.moduleReference.expression : void 0;
        case 271:
          return n.parent.parent.moduleSpecifier;
        case 273:
          return n.parent.parent.parent.moduleSpecifier;
        case 278:
          return n.parent.parent.moduleSpecifier;
        default:
          return D.assertNever(n);
      }
    }
    function b2(n, a) {
      var l, u, p;
      if ((l = n.exports) != null && l.has(a.symbol.escapedName))
        Ke(a.name, _.Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead, S(n), S(a.symbol));
      else {
        const g = Ke(a.name, _.Module_0_has_no_default_export, S(n)), x = (u = n.exports) == null ? void 0 : u.get("__export");
        if (x) {
          const R = (p = x.declarations) == null ? void 0 : p.find((M) => {
            var J, $;
            return !!(eu(M) && M.moduleSpecifier && (($ = (J = du(M, M.moduleSpecifier)) == null ? void 0 : J.exports) != null && $.has("default")));
          });
          R && Xo(g, Nr(R, _.export_Asterisk_does_not_re_export_a_default));
        }
      }
    }
    function _L(n, a) {
      const l = n.parent.parent.moduleSpecifier, u = du(n, l), p = wb(u, l, a, !1);
      return C_(n, u, p, !1), p;
    }
    function E2(n, a) {
      const l = n.parent.moduleSpecifier, u = l && du(n, l), p = l && wb(u, l, a, !1);
      return C_(n, u, p, !1), p;
    }
    function pr(n, a) {
      if (n === an && a === an)
        return an;
      if (n.flags & 790504)
        return n;
      const l = ns(n.flags | a.flags, n.escapedName);
      return D.assert(n.declarations || a.declarations), l.declarations = mA(va(n.declarations, a.declarations), F0), l.parent = n.parent || a.parent, n.valueDeclaration && (l.valueDeclaration = n.valueDeclaration), a.members && (l.members = new Map(a.members)), n.exports && (l.exports = new Map(n.exports)), l;
    }
    function Dl(n, a, l, u) {
      var p;
      if (n.flags & 1536) {
        const g = hf(n).get(a.escapedText), x = Yl(g, u), R = (p = Wi(n).typeOnlyExportStarMap) == null ? void 0 : p.get(a.escapedText);
        return C_(l, g, x, !1, R, a.escapedText), x;
      }
    }
    function fa(n, a) {
      if (n.flags & 3) {
        const l = n.valueDeclaration.type;
        if (l)
          return Yl(uo(fi(l), a));
      }
    }
    function Pf(n, a, l = !1) {
      var u;
      const p = dz(n) || n.moduleSpecifier, g = du(n, p), x = !Fr(a) && a.propertyName || a.name;
      if (!je(x))
        return;
      const R = x.escapedText === "default" && !!(Y.allowSyntheticDefaultImports || H_(Y)), M = wb(g, p, !1, R);
      if (M && x.escapedText) {
        if (MI(g))
          return g;
        let J;
        g && g.exports && g.exports.get("export=") ? J = uo(ar(M), x.escapedText, !0) : J = fa(M, x.escapedText), J = Yl(J, l);
        let $ = Dl(M, x, a, l);
        if ($ === void 0 && x.escapedText === "default") {
          const Ne = (u = g.declarations) == null ? void 0 : u.find(qi);
          (Rs(p) || By(Ne, g, l, p)) && ($ = hd(g, l) || Yl(g, l));
        }
        const ge = $ && J && $ !== J ? pr(J, $) : $ || J;
        return ge || l0(g, M, n, x), ge;
      }
    }
    function l0(n, a, l, u) {
      var p;
      const g = Fh(n, l), x = ws(u), R = xV(u, a);
      if (R !== void 0) {
        const M = S(R), J = Ke(u, _._0_has_no_exported_member_named_1_Did_you_mean_2, g, x, M);
        R.valueDeclaration && Xo(J, Nr(R.valueDeclaration, _._0_is_declared_here, M));
      } else
        (p = n.exports) != null && p.has("default") ? Ke(u, _.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead, g, x) : eh(l, u, x, n, g);
    }
    function eh(n, a, l, u, p) {
      var g, x;
      const R = (x = (g = ai(u.valueDeclaration, Nm)) == null ? void 0 : g.locals) == null ? void 0 : x.get(a.escapedText), M = u.exports;
      if (R) {
        const J = M == null ? void 0 : M.get("export=");
        if (J)
          um(J, R) ? ir(n, a, l, p) : Ke(a, _.Module_0_has_no_exported_member_1, p, l);
        else {
          const $ = M ? nn(Bre(M), (Ne) => !!um(Ne, R)) : void 0, ge = $ ? Ke(a, _.Module_0_declares_1_locally_but_it_is_exported_as_2, p, l, S($)) : Ke(a, _.Module_0_declares_1_locally_but_it_is_not_exported, p, l);
          R.declarations && Xo(ge, ...jt(R.declarations, (Ne, De) => Nr(Ne, De === 0 ? _._0_is_declared_here : _.and_here, l)));
        }
      } else
        Ke(a, _.Module_0_has_no_exported_member_1, p, l);
    }
    function ir(n, a, l, u) {
      if (de >= 5) {
        const p = H_(Y) ? _._0_can_only_be_imported_by_using_a_default_import : _._0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;
        Ke(a, p, l);
      } else if (fr(n)) {
        const p = H_(Y) ? _._0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import : _._0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;
        Ke(a, p, l);
      } else {
        const p = H_(Y) ? _._0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import : _._0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;
        Ke(a, p, l, l, u);
      }
    }
    function T2(n, a) {
      if (Ld(n) && Mr(n.propertyName || n.name) === "default") {
        const x = Cb(n), R = x && du(n, x);
        if (R)
          return Ab(R, n, a);
      }
      const l = _s(n) ? Fm(n) : n.parent.parent.parent, u = Gy(l), p = Pf(l, u || n, a), g = n.propertyName || n.name;
      return u && p && je(g) ? Yl(uo(ar(p), g.escapedText), a) : (C_(n, void 0, p, !1), p);
    }
    function Gy(n) {
      if (Ki(n) && n.initializer && Fr(n.initializer))
        return n.initializer;
    }
    function Lc(n, a) {
      if (Rm(n.parent)) {
        const l = hd(n.parent.symbol, a);
        return C_(n, void 0, l, !1), l;
      }
    }
    function A_(n, a, l) {
      if (Mr(n.propertyName || n.name) === "default") {
        const p = Cb(n), g = p && du(n, p);
        if (g)
          return Ab(g, n, !!l);
      }
      const u = n.parent.parent.moduleSpecifier ? Pf(n.parent.parent, n, l) : Rl(n.propertyName || n.name, a, !1, l);
      return C_(n, void 0, u, !1), u;
    }
    function Dp(n, a) {
      const l = Bl(n) ? n.expression : n.right, u = Uy(l, a);
      return C_(n, void 0, u, !1), u;
    }
    function Uy(n, a) {
      if (Gu(n))
        return Ql(n).symbol;
      if (!rf(n) && !zl(n))
        return;
      const l = Rl(n, 901119, !0, a);
      return l || (Ql(n), Jr(n).resolvedSymbol);
    }
    function sE(n, a) {
      if (br(n.parent) && n.parent.left === n && n.parent.operatorToken.kind === 63)
        return Uy(n.parent.right, a);
    }
    function ap(n, a = !1) {
      switch (n.kind) {
        case 268:
        case 257:
          return cm(n, a);
        case 270:
          return v2(n, a);
        case 271:
          return _L(n, a);
        case 277:
          return E2(n, a);
        case 273:
        case 205:
          return T2(n, a);
        case 278:
          return A_(n, 901119, a);
        case 274:
        case 223:
          return Dp(n, a);
        case 267:
          return Lc(n, a);
        case 300:
          return Rl(n.name, 901119, !0, a);
        case 299:
          return Uy(n.initializer, a);
        case 209:
        case 208:
          return sE(n, a);
        default:
          return D.fail();
      }
    }
    function Vy(n, a = 901119) {
      return n ? (n.flags & (2097152 | a)) === 2097152 || !!(n.flags & 2097152 && n.flags & 67108864) : !1;
    }
    function Yl(n, a) {
      return !a && Vy(n) ? nc(n) : n;
    }
    function nc(n) {
      D.assert((n.flags & 2097152) !== 0, "Should only get Alias here.");
      const a = Wi(n);
      if (a.aliasTarget)
        a.aliasTarget === Pn && (a.aliasTarget = an);
      else {
        a.aliasTarget = Pn;
        const l = md(n);
        if (!l)
          return D.fail();
        const u = ap(l);
        a.aliasTarget === Pn ? a.aliasTarget = u || an : Ke(l, _.Circular_definition_of_import_alias_0, S(n));
      }
      return a.aliasTarget;
    }
    function Mg(n) {
      if (Wi(n).aliasTarget !== Pn)
        return nc(n);
    }
    function uu(n) {
      let a = n.flags, l;
      for (; n.flags & 2097152; ) {
        const u = nc(n);
        if (u === an)
          return 67108863;
        if (u === n || l != null && l.has(u))
          break;
        u.flags & 2097152 && (l ? l.add(u) : l = /* @__PURE__ */ new Set([n, u])), a |= u.flags, n = u;
      }
      return a;
    }
    function C_(n, a, l, u, p, g) {
      if (!n || Fr(n))
        return !1;
      const x = Ir(n);
      if (_1(n)) {
        const M = Wi(x);
        return M.typeOnlyDeclaration = n, !0;
      }
      if (p) {
        const M = Wi(x);
        return M.typeOnlyDeclaration = p, x.escapedName !== g && (M.typeOnlyExportStarName = g), !0;
      }
      const R = Wi(x);
      return th(R, a, u) || th(R, l, u);
    }
    function th(n, a, l) {
      var u, p, g;
      if (a && (n.typeOnlyDeclaration === void 0 || l && n.typeOnlyDeclaration === !1)) {
        const x = (p = (u = a.exports) == null ? void 0 : u.get("export=")) != null ? p : a, R = x.declarations && nn(x.declarations, _1);
        n.typeOnlyDeclaration = (g = R ?? Wi(x).typeOnlyDeclaration) != null ? g : !1;
      }
      return !!n.typeOnlyDeclaration;
    }
    function Rd(n, a) {
      if (!(n.flags & 2097152))
        return;
      const l = Wi(n);
      if (a === void 0)
        return l.typeOnlyDeclaration || void 0;
      if (l.typeOnlyDeclaration) {
        const u = l.typeOnlyDeclaration.kind === 275 ? Yl(Vh(l.typeOnlyDeclaration.symbol.parent).get(l.typeOnlyExportStarName || n.escapedName)) : nc(l.typeOnlyDeclaration.symbol);
        return uu(u) & a ? l.typeOnlyDeclaration : void 0;
      }
    }
    function lE(n) {
      if (Y.verbatimModuleSyntax)
        return;
      const a = Ir(n), l = nc(a);
      l && (l === an || uu(l) & 111551 && !qD(l) && !Rd(a, 111551)) && Lb(a);
    }
    function Lb(n) {
      D.assert(!Y.verbatimModuleSyntax);
      const a = Wi(n);
      if (!a.referenced) {
        a.referenced = !0;
        const l = md(n);
        if (!l)
          return D.fail();
        VA(l) && uu(Yl(n)) & 111551 && Ql(l.moduleReference);
      }
    }
    function Ib(n) {
      const a = Wi(n);
      a.constEnumReferenced || (a.constEnumReferenced = !0);
    }
    function Rp(n, a) {
      return n.kind === 79 && tk(n) && (n = n.parent), n.kind === 79 || n.parent.kind === 163 ? Rl(n, 1920, !1, a) : (D.assert(n.parent.kind === 268), Rl(n, 901119, !1, a));
    }
    function Fh(n, a) {
      return n.parent ? Fh(n.parent, a) + "." + S(n) : S(n, a, void 0, 36);
    }
    function cE(n) {
      for (; Cd(n.parent); )
        n = n.parent;
      return n;
    }
    function jy(n) {
      let a = Lf(n), l = _l(a, a.escapedText, 111551, void 0, a, !0);
      if (l) {
        for (; Cd(a.parent); ) {
          const u = ar(l);
          if (l = uo(u, a.parent.right.escapedText), !l)
            return;
          a = a.parent;
        }
        return l;
      }
    }
    function Rl(n, a, l, u, p) {
      if (Al(n))
        return;
      const g = 1920 | (fr(n) ? a & 111551 : 0);
      let x;
      if (n.kind === 79) {
        const R = a === g || Zs(n) ? _.Cannot_find_namespace_0 : GLe(Lf(n)), M = fr(n) && !Zs(n) ? Fg(n, a) : void 0;
        if (x = as(_l(p || n, n.escapedText, a, l || M ? void 0 : R, n, !0, !1)), !x)
          return as(M);
      } else if (n.kind === 163 || n.kind === 208) {
        const R = n.kind === 163 ? n.left : n.expression, M = n.kind === 163 ? n.right : n.name;
        let J = Rl(R, g, l, !1, p);
        if (!J || Al(M))
          return;
        if (J === an)
          return J;
        if (J.valueDeclaration && fr(J.valueDeclaration) && vl(Y) !== 100 && Ki(J.valueDeclaration) && J.valueDeclaration.initializer && Tke(J.valueDeclaration.initializer)) {
          const $ = J.valueDeclaration.initializer.arguments[0], ge = du($, $);
          if (ge) {
            const Ne = hd(ge);
            Ne && (J = Ne);
          }
        }
        if (x = as(Xd(hf(J), M.escapedText, a)), !x) {
          if (!l) {
            const $ = Fh(J), ge = ws(M), Ne = xV(M, J);
            if (Ne) {
              Ke(M, _._0_has_no_exported_member_named_1_Did_you_mean_2, $, ge, S(Ne));
              return;
            }
            const De = Cd(n) && cE(n);
            if (Ya && a & 788968 && De && !EC(De.parent) && jy(De)) {
              Ke(De, _._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0, Af(De));
              return;
            }
            if (a & 1920 && Cd(n.parent)) {
              const Bt = as(Xd(hf(J), M.escapedText, 788968));
              if (Bt) {
                Ke(n.parent.right, _.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1, S(Bt), ta(n.parent.right.escapedText));
                return;
              }
            }
            Ke(M, _.Namespace_0_has_no_exported_member_1, $, ge);
          }
          return;
        }
      } else
        throw D.assertNever(n, "Unknown entity name kind.");
      return D.assert((Ll(x) & 1) === 0, "Should never get an instantiated symbol here."), !Zs(n) && rf(n) && (x.flags & 2097152 || n.parent.kind === 274) && C_(Sz(n), x, void 0, !0), x.flags & a || u ? x : nc(x);
    }
    function Fg(n, a) {
      if (LU(n.parent)) {
        const l = Bh(n.parent);
        if (l)
          return _l(l, n.escapedText, a, void 0, n, !0);
      }
    }
    function Bh(n) {
      if (nr(n, (p) => wA(p) || p.flags & 8388608 ? m_(p) : "quit"))
        return;
      const l = ix(n);
      if (l && ou(l) && TN(l.expression)) {
        const p = Ir(l.expression.left);
        if (p)
          return c0(p);
      }
      if (l && Bs(l) && TN(l.parent) && ou(l.parent.parent)) {
        const p = Ir(l.parent.left);
        if (p)
          return c0(p);
      }
      if (l && (B_(l) || zc(l)) && br(l.parent.parent) && Cl(l.parent.parent) === 6) {
        const p = Ir(l.parent.parent.left);
        if (p)
          return c0(p);
      }
      const u = JA(n);
      if (u && Ka(u)) {
        const p = Ir(u);
        return p && p.valueDeclaration;
      }
    }
    function c0(n) {
      const a = n.parent.valueDeclaration;
      return a ? (jI(a) ? ZS(a) : aT(a) ? gN(a) : void 0) || a : void 0;
    }
    function u0(n) {
      const a = n.valueDeclaration;
      if (!a || !fr(a) || n.flags & 524288 || W0(a, !1))
        return;
      const l = Ki(a) ? gN(a) : ZS(a);
      if (l) {
        const u = Yd(l);
        if (u)
          return Wae(u, n);
      }
    }
    function du(n, a, l) {
      const p = vl(Y) === 1 ? _.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option : _.Cannot_find_module_0_or_its_corresponding_type_declarations;
      return Gh(n, a, l ? void 0 : p);
    }
    function Gh(n, a, l, u = !1) {
      return xs(a) ? bc(n, a.text, l, a, u) : void 0;
    }
    function bc(n, a, l, u, p = !1) {
      var g, x, R, M, J, $, ge, Ne, De;
      if (xa(a, "@types/")) {
        const Gn = _.Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1, qn = lI(a, "@types/");
        Ke(u, Gn, qn, a);
      }
      const _t = Gre(a, !0);
      if (_t)
        return _t;
      const Bt = Zn(n), Mn = xs(n) ? n : ((g = nr(n, lf)) == null ? void 0 : g.arguments[0]) || ((x = nr(n, Wc)) == null ? void 0 : x.moduleSpecifier) || ((R = nr(n, H0)) == null ? void 0 : R.moduleReference.expression) || ((M = nr(n, eu)) == null ? void 0 : M.moduleSpecifier) || ((J = Jl(n) ? n : n.parent && Jl(n.parent) && n.parent.name === n ? n.parent : void 0) == null ? void 0 : J.name) || (($ = j0(n) ? n : void 0) == null ? void 0 : $.argument.literal), An = Mn && xs(Mn) ? Tp(Bt, Mn) : Bt.impliedNodeFormat, Kn = vl(Y), gn = RA(Bt, a, An), xn = gn && $X(Y, gn, Bt), yr = gn && (!xn || xn === _.Module_0_was_resolved_to_1_but_jsx_is_not_set) && e.getSourceFile(gn.resolvedFileName);
      if (yr) {
        if (xn && Ke(u, xn, a, gn.resolvedFileName), gn.resolvedUsingTsExtension && fd(a)) {
          const Gn = ((ge = nr(n, Wc)) == null ? void 0 : ge.importClause) || nr(n, Im(su, eu));
          (Gn && !Gn.isTypeOnly || nr(n, lf)) && Ke(u, _.A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead, ln(D.checkDefined(N3(a))));
        } else if (gn.resolvedUsingTsExtension && !$k(Y, Bt.fileName)) {
          const Gn = D.checkDefined(N3(a));
          Ke(u, _.An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled, Gn);
        }
        if (yr.symbol) {
          if (gn.isExternalLibraryImport && !sO(gn.extension) && uE(!1, u, Bt, An, gn, a), Kn === 3 || Kn === 99) {
            const Gn = Bt.impliedNodeFormat === 1 && !nr(n, lf) || !!nr(n, su), qn = nr(n, (ri) => gg(ri) || eu(ri) || Wc(ri)), Zr = qn && gg(qn) ? (Ne = qn.assertions) == null ? void 0 : Ne.assertClause : qn == null ? void 0 : qn.assertClause;
            if (Gn && yr.impliedNodeFormat === 99 && !Vx(Zr))
              if (nr(n, su))
                Ke(u, _.Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead, a);
              else {
                let ri;
                const ma = Sh(Bt.fileName);
                if (ma === ".ts" || ma === ".js" || ma === ".tsx" || ma === ".jsx") {
                  const Qa = Bt.packageJsonScope, Ec = ma === ".ts" ? ".mts" : ma === ".js" ? ".mjs" : void 0;
                  Qa && !Qa.contents.packageJsonContent.type ? Ec ? ri = Na(void 0, _.To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Colon_module_to_1, Ec, Bi(Qa.packageDirectory, "package.json")) : ri = Na(void 0, _.To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0, Bi(Qa.packageDirectory, "package.json")) : Ec ? ri = Na(void 0, _.To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_package_json_file_with_type_Colon_module, Ec) : ri = Na(void 0, _.To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module);
                }
                Qo.add(cg(Zn(u), u, Na(ri, _.The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_referenced_file_is_an_ECMAScript_module_and_cannot_be_imported_with_require_Consider_writing_a_dynamic_import_0_call_instead, a)));
              }
          }
          return as(yr.symbol);
        }
        l && Ke(u, _.File_0_is_not_a_module, yr.fileName);
        return;
      }
      if (ho) {
        const Gn = wj(ho, (qn) => qn.pattern, a);
        if (Gn) {
          const qn = Ho && Ho.get(a);
          return as(qn || Gn.symbol);
        }
      }
      if (gn && !sO(gn.extension) && xn === void 0 || xn === _.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type) {
        if (p) {
          const Gn = _.Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented;
          Ke(u, Gn, a, gn.resolvedFileName);
        } else
          uE(Te && !!l, u, Bt, An, gn, a);
        return;
      }
      if (l) {
        if (gn) {
          const Gn = e.getProjectReferenceRedirect(gn.resolvedFileName);
          if (Gn) {
            Ke(u, _.Output_file_0_has_not_been_built_from_source_file_1, Gn, gn.resolvedFileName);
            return;
          }
        }
        if (xn)
          Ke(u, xn, a, gn.resolvedFileName);
        else {
          const Gn = Sf(a) && !bA(a), qn = Kn === 3 || Kn === 99;
          if (!TT(Y) && cc(a, ".json") && Kn !== 1 && G3(Y))
            Ke(u, _.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension, a);
          else if (An === 99 && qn && Gn) {
            const Zr = Pa(a, mi(Bt.path)), ri = (De = _2.find(([ma, Qa]) => e.fileExists(Zr + ma))) == null ? void 0 : De[1];
            ri ? Ke(u, _.Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0, a + ri) : Ke(u, _.Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path);
          } else
            Ke(u, l, a);
        }
      }
      return;
      function ln(Gn) {
        const qn = oO(a, Gn);
        if (sq(de) || An === 99) {
          const Zr = fd(a) && $k(Y);
          return qn + (Gn === ".mts" || Gn === ".d.mts" ? Zr ? ".mts" : ".mjs" : Gn === ".cts" || Gn === ".d.mts" ? Zr ? ".cts" : ".cjs" : Zr ? ".ts" : ".js");
        }
        return qn;
      }
    }
    function uE(n, a, l, u, { packageId: p, resolvedFileName: g }, x) {
      var R, M;
      let J;
      if (!Gc(x) && p) {
        const $ = (M = (R = l.resolvedModules) == null ? void 0 : R.get(x, u)) == null ? void 0 : M.node10Result;
        J = $ ? Na(void 0, _.There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings, $, $.indexOf(Cy + "@types/") > -1 ? `@types/${Yk(p.name)}` : p.name) : Uh(p.name) ? Na(void 0, _.If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1, p.name, Yk(p.name)) : kb(p.name) ? Na(void 0, _.If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1, p.name, x) : Na(void 0, _.Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0, x, Yk(p.name));
      }
      om(n, a, Na(J, _.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type, x, g));
    }
    function Uh(n) {
      return t().has(N5(n));
    }
    function kb(n) {
      return !!t().get(n);
    }
    function hd(n, a) {
      if (n != null && n.exports) {
        const l = Yl(n.exports.get("export="), a), u = nh(as(l), as(n));
        return as(u) || n;
      }
    }
    function nh(n, a) {
      if (!n || n === an || n === a || a.exports.size === 1 || n.flags & 2097152)
        return n;
      const l = Wi(n);
      if (l.cjsExportMerged)
        return l.cjsExportMerged;
      const u = n.flags & 33554432 ? n : vb(n);
      return u.flags = u.flags | 512, u.exports === void 0 && (u.exports = lo()), a.exports.forEach((p, g) => {
        g !== "export=" && u.exports.set(g, u.exports.has(g) ? rp(u.exports.get(g), p) : p);
      }), Wi(u).cjsExportMerged = u, l.cjsExportMerged = u;
    }
    function wb(n, a, l, u) {
      var p;
      const g = hd(n, l);
      if (!l && g) {
        if (!u && !(g.flags & 1539) && !xl(g, 308)) {
          const R = de >= 5 ? "allowSyntheticDefaultImports" : "esModuleInterop";
          return Ke(a, _.This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export, R), g;
        }
        const x = a.parent;
        if (Wc(x) && WA(x) || lf(x)) {
          const R = lf(x) ? x.arguments[0] : x.moduleSpecifier, M = ar(g), J = bke(M, g, n, R);
          if (J)
            return d0(g, J, x);
          const $ = (p = n == null ? void 0 : n.declarations) == null ? void 0 : p.find(qi), ge = $ && oE(Fy(R), $.impliedNodeFormat);
          if (H_(Y) || ge) {
            let Ne = TP(M, 0);
            if ((!Ne || !Ne.length) && (Ne = TP(M, 1)), Ne && Ne.length || uo(M, "default", !0) || ge) {
              const De = Eke(M, g, n, R);
              return d0(g, De, x);
            }
          }
        }
      }
      return g;
    }
    function d0(n, a, l) {
      const u = ns(n.flags, n.escapedName);
      u.declarations = n.declarations ? n.declarations.slice() : [], u.parent = n.parent, u.links.target = n, u.links.originatingImport = l, n.valueDeclaration && (u.valueDeclaration = n.valueDeclaration), n.constEnumOnlyModule && (u.constEnumOnlyModule = !0), n.members && (u.members = new Map(n.members)), n.exports && (u.exports = new Map(n.exports));
      const p = cp(a);
      return u.links.type = Ns(u, p.members, rt, rt, p.indexInfos), u;
    }
    function dE(n) {
      return n.exports.get("export=") !== void 0;
    }
    function Hy(n) {
      return Bre(Vh(n));
    }
    function hS(n) {
      const a = Hy(n), l = hd(n);
      if (l !== n) {
        const u = ar(l);
        fE(u) && Ti(a, ms(u));
      }
      return a;
    }
    function f0(n, a) {
      Vh(n).forEach((p, g) => {
        pE(g) || a(p, g);
      });
      const u = hd(n);
      if (u !== n) {
        const p = ar(u);
        fE(p) && NYe(p, (g, x) => {
          a(g, x);
        });
      }
    }
    function Bg(n, a) {
      const l = Vh(a);
      if (l)
        return l.get(n);
    }
    function Mf(n, a) {
      const l = Bg(n, a);
      if (l)
        return l;
      const u = hd(a);
      if (u === a)
        return;
      const p = ar(u);
      return fE(p) ? uo(p, n) : void 0;
    }
    function fE(n) {
      return !(n.flags & 134348796 || ti(n) & 1 || Hf(n) || Fo(n));
    }
    function hf(n) {
      return n.flags & 6256 ? bre(n, "resolvedExports") : n.flags & 1536 ? Vh(n) : n.exports || te;
    }
    function Vh(n) {
      const a = Wi(n);
      if (!a.resolvedExports) {
        const { exports: l, typeOnlyExportStarMap: u } = S2(n);
        a.resolvedExports = l, a.typeOnlyExportStarMap = u;
      }
      return a.resolvedExports;
    }
    function _0(n, a, l, u) {
      a && a.forEach((p, g) => {
        if (g === "default")
          return;
        const x = n.get(g);
        if (!x)
          n.set(g, p), l && u && l.set(g, {
            specifierText: Sc(u.moduleSpecifier)
          });
        else if (l && u && x && Yl(x) !== Yl(p)) {
          const R = l.get(g);
          R.exportsWithDuplicate ? R.exportsWithDuplicate.push(u) : R.exportsWithDuplicate = [u];
        }
      });
    }
    function S2(n) {
      const a = [];
      let l;
      const u = /* @__PURE__ */ new Set();
      n = hd(n);
      const p = g(n) || te;
      return l && u.forEach((x) => l.delete(x)), {
        exports: p,
        typeOnlyExportStarMap: l
      };
      function g(x, R, M) {
        if (!M && (x != null && x.exports) && x.exports.forEach((ge, Ne) => u.add(Ne)), !(x && x.exports && d_(a, x)))
          return;
        const J = new Map(x.exports), $ = x.exports.get("__export");
        if ($) {
          const ge = lo(), Ne = /* @__PURE__ */ new Map();
          if ($.declarations)
            for (const De of $.declarations) {
              const _t = du(De, De.moduleSpecifier), Bt = g(_t, De, M || De.isTypeOnly);
              _0(ge, Bt, Ne, De);
            }
          Ne.forEach(({ exportsWithDuplicate: De }, _t) => {
            if (!(_t === "export=" || !(De && De.length) || J.has(_t)))
              for (const Bt of De)
                Qo.add(Nr(Bt, _.Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity, Ne.get(_t).specifierText, ta(_t)));
          }), _0(J, ge);
        }
        return R != null && R.isTypeOnly && (l ?? (l = /* @__PURE__ */ new Map()), J.forEach((ge, Ne) => l.set(Ne, R))), J;
      }
    }
    function as(n) {
      let a;
      return n && n.mergeId && (a = e0[n.mergeId]) ? a : n;
    }
    function Ir(n) {
      return as(n.symbol && EU(n.symbol));
    }
    function Yd(n) {
      return Rm(n) ? Ir(n) : void 0;
    }
    function gd(n) {
      return as(n.parent && EU(n.parent));
    }
    function gS(n, a) {
      const l = Zn(a), u = ps(l), p = Wi(n);
      let g;
      if (p.extendedContainersByFile && (g = p.extendedContainersByFile.get(u)))
        return g;
      if (l && l.imports) {
        for (const R of l.imports) {
          if (Zs(R))
            continue;
          const M = du(a, R, !0);
          !M || !zy(M, n) || (g = Fn(g, M));
        }
        if (Le(g))
          return (p.extendedContainersByFile || (p.extendedContainersByFile = /* @__PURE__ */ new Map())).set(u, g), g;
      }
      if (p.extendedContainers)
        return p.extendedContainers;
      const x = e.getSourceFiles();
      for (const R of x) {
        if (!Zl(R))
          continue;
        const M = Ir(R);
        zy(M, n) && (g = Fn(g, M));
      }
      return p.extendedContainers = g || rt;
    }
    function _E(n, a, l) {
      const u = gd(n);
      if (u && !(n.flags & 262144)) {
        const x = ia(u.declarations, g), R = a && gS(n, a), M = Wy(u, l);
        if (a && u.flags & Vg(l) && m0(u, a, 1920, !1))
          return Fn(va(va([u], x), R), M);
        const J = !(u.flags & Vg(l)) && u.flags & 788968 && Us(u).flags & 524288 && l === 111551 ? hE(a, (ge) => of(ge, (Ne) => {
          if (Ne.flags & Vg(l) && ar(Ne) === Us(u))
            return Ne;
        })) : void 0;
        let $ = J ? [J, ...x, u] : [...x, u];
        return $ = Fn($, M), $ = Ti($, R), $;
      }
      const p = ia(n.declarations, (x) => {
        if (!Pu(x) && x.parent) {
          if (jg(x.parent))
            return Ir(x.parent);
          if (tm(x.parent) && x.parent.parent && hd(Ir(x.parent.parent)) === n)
            return Ir(x.parent.parent);
        }
        if (Gu(x) && br(x.parent) && x.parent.operatorToken.kind === 63 && ll(x.parent.left) && zl(x.parent.left.expression))
          return vh(x.parent.left) || fT(x.parent.left.expression) ? Ir(Zn(x)) : (Ql(x.parent.left.expression), Jr(x.parent.left.expression).resolvedSymbol);
      });
      if (!Le(p))
        return;
      return ia(p, (x) => zy(x, n) ? x : void 0);
      function g(x) {
        return u && x2(x, u);
      }
    }
    function Wy(n, a) {
      const l = !!Le(n.declarations) && us(n.declarations);
      if (a & 111551 && l && l.parent && Ki(l.parent) && (Ls(l) && l === l.parent.initializer || uf(l) && l === l.parent.type))
        return Ir(l.parent);
    }
    function x2(n, a) {
      const l = Hh(n), u = l && l.exports && l.exports.get("export=");
      return u && um(u, a) ? l : void 0;
    }
    function zy(n, a) {
      if (n === gd(a))
        return a;
      const l = n.exports && n.exports.get("export=");
      if (l && um(l, a))
        return n;
      const u = hf(n), p = u.get(a.escapedName);
      return p && um(p, a) ? p : of(u, (g) => {
        if (um(g, a))
          return g;
      });
    }
    function um(n, a) {
      if (as(Yl(as(n))) === as(Yl(as(a))))
        return n;
    }
    function Np(n) {
      return as(n && (n.flags & 1048576) !== 0 && n.exportSymbol || n);
    }
    function Gg(n, a) {
      return !!(n.flags & 111551 || n.flags & 2097152 && uu(n) & 111551 && (a || !Rd(n)));
    }
    function p0(n) {
      const a = n.members;
      for (const l of a)
        if (l.kind === 173 && __(l.body))
          return l;
    }
    function jh(n) {
      var a;
      const l = new y(at, n);
      return E++, l.id = E, (a = bi) == null || a.recordType(l), l;
    }
    function dm(n, a) {
      const l = jh(n);
      return l.symbol = a, l;
    }
    function yS(n) {
      return new y(at, n);
    }
    function $l(n, a, l = 0) {
      const u = jh(n);
      return u.intrinsicName = a, u.objectFlags = l, u;
    }
    function gf(n, a) {
      const l = dm(524288, a);
      return l.objectFlags = n, l.members = void 0, l.properties = void 0, l.callSignatures = void 0, l.constructSignatures = void 0, l.indexInfos = void 0, l;
    }
    function rh() {
      return Qr(Ro(j5.keys(), jf));
    }
    function Nd(n) {
      return dm(262144, n);
    }
    function pE(n) {
      return n.charCodeAt(0) === 95 && n.charCodeAt(1) === 95 && n.charCodeAt(2) !== 95 && n.charCodeAt(2) !== 64 && n.charCodeAt(2) !== 35;
    }
    function qy(n) {
      let a;
      return n.forEach((l, u) => {
        Ug(l, u) && (a || (a = [])).push(l);
      }), a || rt;
    }
    function Ug(n, a) {
      return !pE(a) && Gg(n);
    }
    function A2(n) {
      const a = qy(n), l = Hre(n);
      return l ? va(a, [l]) : a;
    }
    function Ff(n, a, l, u, p) {
      const g = n;
      return g.members = a, g.properties = rt, g.callSignatures = l, g.constructSignatures = u, g.indexInfos = p, a !== te && (g.properties = qy(a)), g;
    }
    function Ns(n, a, l, u, p) {
      return Ff(gf(16, n), a, l, u, p);
    }
    function mE(n) {
      if (n.constructSignatures.length === 0)
        return n;
      if (n.objectTypeWithoutAbstractConstructSignatures)
        return n.objectTypeWithoutAbstractConstructSignatures;
      const a = lr(n.constructSignatures, (u) => !(u.flags & 4));
      if (n.constructSignatures === a)
        return n;
      const l = Ns(n.symbol, n.members, n.callSignatures, kt(a) ? a : rt, n.indexInfos);
      return n.objectTypeWithoutAbstractConstructSignatures = l, l.objectTypeWithoutAbstractConstructSignatures = l, l;
    }
    function hE(n, a) {
      let l;
      for (let u = n; u; u = u.parent) {
        if (Nm(u) && u.locals && !Qm(u) && (l = a(u.locals, void 0, !0, u)))
          return l;
        switch (u.kind) {
          case 308:
            if (!sf(u))
              break;
          case 264:
            const p = Ir(u);
            if (l = a((p == null ? void 0 : p.exports) || te, void 0, !0, u))
              return l;
            break;
          case 260:
          case 228:
          case 261:
            let g;
            if ((Ir(u).members || te).forEach((x, R) => {
              x.flags & 788968 && (g || (g = lo())).set(R, x);
            }), g && (l = a(g, void 0, !1, u)))
              return l;
            break;
        }
      }
      return a(We, void 0, !0);
    }
    function Vg(n) {
      return n === 111551 ? 111551 : 1920;
    }
    function m0(n, a, l, u, p = /* @__PURE__ */ new Map()) {
      if (!(n && !gE(n)))
        return;
      const g = Wi(n), x = g.accessibleChainCache || (g.accessibleChainCache = /* @__PURE__ */ new Map()), R = hE(a, (An, Kn, gn, xn) => xn), M = `${u ? 0 : 1}|${R && ps(R)}|${l}`;
      if (x.has(M))
        return x.get(M);
      const J = bo(n);
      let $ = p.get(J);
      $ || p.set(J, $ = []);
      const ge = hE(a, Ne);
      return x.set(M, ge), ge;
      function Ne(An, Kn, gn) {
        if (!d_($, An))
          return;
        const xn = Bt(An, Kn, gn);
        return $.pop(), xn;
      }
      function De(An, Kn) {
        return !vS(An, a, Kn) || !!m0(An.parent, a, Vg(Kn), u, p);
      }
      function _t(An, Kn, gn) {
        return (n === (Kn || An) || as(n) === as(Kn || An)) && !kt(An.declarations, jg) && (gn || De(as(An), l));
      }
      function Bt(An, Kn, gn) {
        return _t(An.get(n.escapedName), void 0, Kn) ? [n] : of(An, (yr) => {
          if (yr.flags & 2097152 && yr.escapedName !== "export=" && yr.escapedName !== "default" && !(M3(yr) && a && Zl(Zn(a))) && (!u || kt(yr.declarations, H0)) && (!gn || !kt(yr.declarations, vue)) && (Kn || !xl(yr, 278))) {
            const ln = nc(yr), Gn = Mn(yr, ln, Kn);
            if (Gn)
              return Gn;
          }
          if (yr.escapedName === n.escapedName && yr.exportSymbol && _t(as(yr.exportSymbol), void 0, Kn))
            return [n];
        }) || (An === We ? Mn(st, st, Kn) : void 0);
      }
      function Mn(An, Kn, gn) {
        if (_t(An, Kn, gn))
          return [An];
        const xn = hf(Kn), yr = xn && Ne(xn, !0);
        if (yr && De(An, Vg(l)))
          return [An].concat(yr);
      }
    }
    function vS(n, a, l) {
      let u = !1;
      return hE(a, (p) => {
        let g = as(p.get(n.escapedName));
        if (!g)
          return !1;
        if (g === n)
          return !0;
        const x = g.flags & 2097152 && !xl(g, 278);
        return g = x ? nc(g) : g, (x ? uu(g) : g.flags) & l ? (u = !0, !0) : !1;
      }), u;
    }
    function gE(n) {
      if (n.declarations && n.declarations.length) {
        for (const a of n.declarations)
          switch (a.kind) {
            case 169:
            case 171:
            case 174:
            case 175:
              continue;
            default:
              return !1;
          }
        return !0;
      }
      return !1;
    }
    function yE(n, a) {
      return $d(n, a, 788968, !1, !0).accessibility === 0;
    }
    function vE(n, a) {
      return $d(n, a, 111551, !1, !0).accessibility === 0;
    }
    function bE(n, a, l) {
      return $d(n, a, l, !1, !1).accessibility === 0;
    }
    function EE(n, a, l, u, p, g) {
      if (!Le(n))
        return;
      let x, R = !1;
      for (const M of n) {
        const J = m0(M, a, u, !1);
        if (J) {
          x = M;
          const Ne = C2(J[0], p);
          if (Ne)
            return Ne;
        }
        if (g && kt(M.declarations, jg)) {
          if (p) {
            R = !0;
            continue;
          }
          return {
            accessibility: 0
          };
        }
        const $ = _E(M, a, u), ge = EE($, a, l, l === M ? Vg(u) : u, p, g);
        if (ge)
          return ge;
      }
      if (R)
        return {
          accessibility: 0
        };
      if (x)
        return {
          accessibility: 1,
          errorSymbolName: S(l, a, u),
          errorModuleName: x !== l ? S(x, a, 1920) : void 0
        };
    }
    function Jy(n, a, l, u) {
      return $d(n, a, l, u, !0);
    }
    function $d(n, a, l, u, p) {
      if (n && a) {
        const g = EE([n], a, n, l, u, p);
        if (g)
          return g;
        const x = ze(n.declarations, Hh);
        if (x) {
          const R = Hh(a);
          if (x !== R)
            return {
              accessibility: 2,
              errorSymbolName: S(n, a, l),
              errorModuleName: S(x),
              errorNode: fr(a) ? a : void 0
            };
        }
        return {
          accessibility: 1,
          errorSymbolName: S(n, a, l)
        };
      }
      return { accessibility: 0 };
    }
    function Hh(n) {
      const a = nr(n, pL);
      return a && Ir(a);
    }
    function pL(n) {
      return Pu(n) || n.kind === 308 && sf(n);
    }
    function jg(n) {
      return YM(n) || n.kind === 308 && sf(n);
    }
    function C2(n, a) {
      let l;
      if (!Yn(lr(n.declarations, (g) => g.kind !== 79), u))
        return;
      return { accessibility: 0, aliasesToMakeVisible: l };
      function u(g) {
        var x, R;
        if (!L_(g)) {
          const M = pS(g);
          if (M && !Yr(M, 1) && L_(M.parent))
            return p(g, M);
          if (Ki(g) && uc(g.parent.parent) && !Yr(g.parent.parent, 1) && L_(g.parent.parent.parent))
            return p(g, g.parent.parent);
          if ($M(g) && !Yr(g, 1) && L_(g.parent))
            return p(g, g);
          if (_s(g)) {
            if (n.flags & 2097152 && fr(g) && ((x = g.parent) != null && x.parent) && Ki(g.parent.parent) && ((R = g.parent.parent.parent) != null && R.parent) && uc(g.parent.parent.parent.parent) && !Yr(g.parent.parent.parent.parent, 1) && g.parent.parent.parent.parent.parent && L_(g.parent.parent.parent.parent.parent))
              return p(g, g.parent.parent.parent.parent);
            if (n.flags & 2) {
              const J = nr(g, uc);
              return Yr(J, 1) ? !0 : L_(J.parent) ? p(g, J) : !1;
            }
          }
          return !1;
        }
        return !0;
      }
      function p(g, x) {
        return a && (Jr(g).isVisible = !0, l = oy(l, x)), !0;
      }
    }
    function L2(n, a) {
      let l;
      n.parent.kind === 183 || n.parent.kind === 230 && !yh(n.parent) || n.parent.kind === 164 ? l = 1160127 : n.kind === 163 || n.kind === 208 || n.parent.kind === 268 ? l = 1920 : l = 788968;
      const u = Lf(n), p = _l(a, u.escapedText, l, void 0, void 0, !1);
      return p && p.flags & 262144 && l & 788968 ? { accessibility: 0 } : !p && yT(u) && Jy(Ir(Sd(u, !1, !1)), u, l, !1).accessibility === 0 ? { accessibility: 0 } : p && C2(p, !0) || {
        accessibility: 1,
        errorSymbolName: Sc(u),
        errorNode: u
      };
    }
    function S(n, a, l, u = 4, p) {
      let g = 70221824;
      u & 2 && (g |= 128), u & 1 && (g |= 512), u & 8 && (g |= 16384), u & 32 && (g |= 134217728), u & 16 && (g |= 1073741824);
      const x = u & 4 ? Ye.symbolToNode : Ye.symbolToEntityName;
      return p ? R(p).getText() : NI(R);
      function R(M) {
        const J = x(n, l, a, g), $ = (a == null ? void 0 : a.kind) === 308 ? NX() : H1(), ge = a && Zn(a);
        return $.writeNode(4, J, ge, M), M;
      }
    }
    function le(n, a, l = 0, u, p) {
      return p ? g(p).getText() : NI(g);
      function g(x) {
        let R;
        l & 262144 ? R = u === 1 ? 182 : 181 : R = u === 1 ? 177 : 176;
        const M = Ye.signatureToSignatureDeclaration(n, R, a, li(l) | 70221824 | 512), J = R8(), $ = a && Zn(a);
        return J.writeNode(4, M, $, Nz(x)), x;
      }
    }
    function ke(n, a, l = 1064960, u = HN("")) {
      const p = Y.noErrorTruncation || l & 1, g = Ye.typeToTypeNode(n, a, li(l) | 70221824 | (p ? 1 : 0));
      if (g === void 0)
        return D.fail("should always get typenode");
      const x = n !== pt ? H1() : RX(), R = a && Zn(a);
      x.writeNode(4, g, R, u);
      const M = u.getText(), J = p ? e7 * 2 : _O * 2;
      return J && M && M.length >= J ? M.substr(0, J - 3) + "..." : M;
    }
    function on(n, a) {
      let l = Si(n.symbol) ? ke(n, n.symbol.valueDeclaration) : ke(n), u = Si(a.symbol) ? ke(a, a.symbol.valueDeclaration) : ke(a);
      return l === u && (l = Cr(n), u = Cr(a)), [l, u];
    }
    function Cr(n) {
      return ke(n, void 0, 64);
    }
    function Si(n) {
      return n && !!n.valueDeclaration && vt(n.valueDeclaration) && !k_(n.valueDeclaration);
    }
    function li(n = 0) {
      return n & 848330091;
    }
    function Vi(n) {
      return !!n.symbol && !!(n.symbol.flags & 32) && (n === zu(n.symbol) || !!(n.flags & 524288) && !!(ti(n) & 16777216));
    }
    function _o() {
      return {
        typeToTypeNode: (dt, Ee, er, Qn) => a(Ee, er, Qn, (Tr) => u(dt, Tr)),
        indexInfoToIndexSignatureDeclaration: (dt, Ee, er, Qn) => a(Ee, er, Qn, (Tr) => $(dt, Tr, void 0)),
        signatureToSignatureDeclaration: (dt, Ee, er, Qn, Tr) => a(er, Qn, Tr, (wr) => ge(dt, Ee, wr)),
        symbolToEntityName: (dt, Ee, er, Qn, Tr) => a(er, Qn, Tr, (wr) => ma(dt, wr, Ee, !1)),
        symbolToExpression: (dt, Ee, er, Qn, Tr) => a(er, Qn, Tr, (wr) => Qa(dt, wr, Ee)),
        symbolToTypeParameterDeclarations: (dt, Ee, er, Qn) => a(Ee, er, Qn, (Tr) => gn(dt, Tr)),
        symbolToParameterDeclaration: (dt, Ee, er, Qn) => a(Ee, er, Qn, (Tr) => Bt(dt, Tr)),
        typeParameterToDeclaration: (dt, Ee, er, Qn) => a(Ee, er, Qn, (Tr) => _t(dt, Tr)),
        symbolTableToDeclarationStatements: (dt, Ee, er, Qn, Tr) => a(Ee, er, Qn, (wr) => Ku(dt, wr, Tr)),
        symbolToNode: (dt, Ee, er, Qn, Tr) => a(er, Qn, Tr, (wr) => n(dt, wr, Ee))
      };
      function n(dt, Ee, er) {
        if (Ee.flags & 1073741824) {
          if (dt.valueDeclaration) {
            const Tr = ka(dt.valueDeclaration);
            if (Tr && As(Tr))
              return Tr;
          }
          const Qn = Wi(dt).nameType;
          if (Qn && Qn.flags & 9216)
            return Ee.enclosingDeclaration = Qn.symbol.valueDeclaration, N.createComputedPropertyName(Qa(Qn.symbol, Ee, er));
        }
        return Qa(dt, Ee, er);
      }
      function a(dt, Ee, er, Qn) {
        D.assert(dt === void 0 || (dt.flags & 8) === 0);
        const Tr = er != null && er.trackSymbol ? er.moduleResolverHost : Ee & 134217728 ? _Me(e) : void 0, wr = {
          enclosingDeclaration: dt,
          flags: Ee || 0,
          tracker: void 0,
          encounteredError: !1,
          reportedDiagnostic: !1,
          visitedTypes: void 0,
          symbolDepth: void 0,
          inferTypeParameters: void 0,
          approximateLength: 0
        };
        wr.tracker = new x8(wr, er, Tr);
        const Ra = Qn(wr);
        return wr.truncating && wr.flags & 1 && wr.tracker.reportTruncationError(), wr.encounteredError ? void 0 : Ra;
      }
      function l(dt) {
        return dt.truncating ? dt.truncating : dt.truncating = dt.approximateLength > (dt.flags & 1 ? e7 : _O);
      }
      function u(dt, Ee) {
        const er = Ee.flags, Qn = p(dt, Ee);
        return Ee.flags = er, Qn;
      }
      function p(dt, Ee) {
        var er, Qn;
        o && o.throwIfCancellationRequested && o.throwIfCancellationRequested();
        const Tr = Ee.flags & 8388608;
        if (Ee.flags &= -8388609, !dt) {
          if (!(Ee.flags & 262144)) {
            Ee.encounteredError = !0;
            return;
          }
          return Ee.approximateLength += 3, N.createKeywordTypeNode(131);
        }
        if (Ee.flags & 536870912 || (dt = up(dt)), dt.flags & 1)
          return dt.aliasSymbol ? N.createTypeReferenceNode(Gn(dt.aliasSymbol), M(dt.aliasTypeArguments, Ee)) : dt === pt ? TO(N.createKeywordTypeNode(131), 3, "unresolved") : (Ee.approximateLength += 3, N.createKeywordTypeNode(dt === ie ? 139 : 131));
        if (dt.flags & 2)
          return N.createKeywordTypeNode(157);
        if (dt.flags & 4)
          return Ee.approximateLength += 6, N.createKeywordTypeNode(152);
        if (dt.flags & 8)
          return Ee.approximateLength += 6, N.createKeywordTypeNode(148);
        if (dt.flags & 64)
          return Ee.approximateLength += 6, N.createKeywordTypeNode(160);
        if (dt.flags & 16 && !dt.aliasSymbol)
          return Ee.approximateLength += 7, N.createKeywordTypeNode(134);
        if (dt.flags & 1056) {
          if (dt.symbol.flags & 8) {
            const yn = gd(dt.symbol), ur = qn(yn, Ee, 788968);
            if (Us(yn) === dt)
              return ur;
            const ei = Ml(dt.symbol);
            return P_(ei, 0) ? zn(ur, N.createTypeReferenceNode(ei, void 0)) : gg(ur) ? (ur.isTypeOf = !0, N.createIndexedAccessTypeNode(ur, N.createLiteralTypeNode(N.createStringLiteral(ei)))) : q_(ur) ? N.createIndexedAccessTypeNode(N.createTypeQueryNode(ur.typeName), N.createLiteralTypeNode(N.createStringLiteral(ei))) : D.fail("Unhandled type node kind returned from `symbolToTypeNode`.");
          }
          return qn(dt.symbol, Ee, 788968);
        }
        if (dt.flags & 128)
          return Ee.approximateLength += dt.value.length + 2, N.createLiteralTypeNode(or(N.createStringLiteral(dt.value, !!(Ee.flags & 268435456)), 33554432));
        if (dt.flags & 256) {
          const yn = dt.value;
          return Ee.approximateLength += ("" + yn).length, N.createLiteralTypeNode(yn < 0 ? N.createPrefixUnaryExpression(40, N.createNumericLiteral(-yn)) : N.createNumericLiteral(yn));
        }
        if (dt.flags & 2048)
          return Ee.approximateLength += I1(dt.value).length + 1, N.createLiteralTypeNode(N.createBigIntLiteral(dt.value));
        if (dt.flags & 512)
          return Ee.approximateLength += dt.intrinsicName.length, N.createLiteralTypeNode(dt.intrinsicName === "true" ? N.createTrue() : N.createFalse());
        if (dt.flags & 8192) {
          if (!(Ee.flags & 1048576)) {
            if (vE(dt.symbol, Ee.enclosingDeclaration))
              return Ee.approximateLength += 6, qn(dt.symbol, Ee, 111551);
            Ee.tracker.reportInaccessibleUniqueSymbolError && Ee.tracker.reportInaccessibleUniqueSymbolError();
          }
          return Ee.approximateLength += 13, N.createTypeOperatorNode(156, N.createKeywordTypeNode(153));
        }
        if (dt.flags & 16384)
          return Ee.approximateLength += 4, N.createKeywordTypeNode(114);
        if (dt.flags & 32768)
          return Ee.approximateLength += 9, N.createKeywordTypeNode(155);
        if (dt.flags & 65536)
          return Ee.approximateLength += 4, N.createLiteralTypeNode(N.createNull());
        if (dt.flags & 131072)
          return Ee.approximateLength += 5, N.createKeywordTypeNode(144);
        if (dt.flags & 4096)
          return Ee.approximateLength += 6, N.createKeywordTypeNode(153);
        if (dt.flags & 67108864)
          return Ee.approximateLength += 6, N.createKeywordTypeNode(149);
        if (vk(dt))
          return Ee.flags & 4194304 && (!Ee.encounteredError && !(Ee.flags & 32768) && (Ee.encounteredError = !0), (Qn = (er = Ee.tracker).reportInaccessibleThisError) == null || Qn.call(er)), Ee.approximateLength += 4, N.createThisTypeNode();
        if (!Tr && dt.aliasSymbol && (Ee.flags & 16384 || yE(dt.aliasSymbol, Ee.enclosingDeclaration))) {
          const yn = M(dt.aliasTypeArguments, Ee);
          return pE(dt.aliasSymbol.escapedName) && !(dt.aliasSymbol.flags & 32) ? N.createTypeReferenceNode(N.createIdentifier(""), yn) : Le(yn) === 1 && dt.aliasSymbol === Es.symbol ? N.createArrayTypeNode(yn[0]) : qn(dt.aliasSymbol, Ee, 788968, yn);
        }
        const wr = ti(dt);
        if (wr & 4)
          return D.assert(!!(dt.flags & 524288)), dt.node ? en(dt, kn) : kn(dt);
        if (dt.flags & 262144 || wr & 3) {
          if (dt.flags & 262144 && jr(Ee.inferTypeParameters, dt)) {
            Ee.approximateLength += Ml(dt.symbol).length + 6;
            let ur;
            const ei = Cu(dt);
            if (ei) {
              const vr = ZAe(dt, !0);
              vr && Kh(ei, vr) || (Ee.approximateLength += 9, ur = ei && u(ei, Ee));
            }
            return N.createInferTypeNode(De(dt, Ee, ur));
          }
          if (Ee.flags & 4 && dt.flags & 262144 && !yE(dt.symbol, Ee.enclosingDeclaration)) {
            const ur = ri(dt, Ee);
            return Ee.approximateLength += Mr(ur).length, N.createTypeReferenceNode(N.createIdentifier(Mr(ur)), void 0);
          }
          if (dt.symbol)
            return qn(dt.symbol, Ee, 788968);
          const yn = (dt === Ds || dt === hl) && V && V.symbol ? (dt === hl ? "sub-" : "super-") + Ml(V.symbol) : "?";
          return N.createTypeReferenceNode(N.createIdentifier(yn), void 0);
        }
        if (dt.flags & 1048576 && dt.origin && (dt = dt.origin), dt.flags & 3145728) {
          const yn = dt.flags & 1048576 ? Qd(dt.types) : dt.types;
          if (Le(yn) === 1)
            return u(yn[0], Ee);
          const ur = M(yn, Ee, !0);
          if (ur && ur.length > 0)
            return dt.flags & 1048576 ? N.createUnionTypeNode(ur) : N.createIntersectionTypeNode(ur);
          !Ee.encounteredError && !(Ee.flags & 262144) && (Ee.encounteredError = !0);
          return;
        }
        if (wr & 48)
          return D.assert(!!(dt.flags & 524288)), Ft(dt);
        if (dt.flags & 4194304) {
          const yn = dt.type;
          Ee.approximateLength += 6;
          const ur = u(yn, Ee);
          return N.createTypeOperatorNode(141, ur);
        }
        if (dt.flags & 134217728) {
          const yn = dt.texts, ur = dt.types, ei = N.createTemplateHead(yn[0]), vr = N.createNodeArray(jt(ur, (Sa, cs) => N.createTemplateLiteralTypeSpan(u(Sa, Ee), (cs < ur.length - 1 ? N.createTemplateMiddle : N.createTemplateTail)(yn[cs + 1]))));
          return Ee.approximateLength += 2, N.createTemplateLiteralType(ei, vr);
        }
        if (dt.flags & 268435456) {
          const yn = u(dt.type, Ee);
          return qn(dt.symbol, Ee, 788968, [yn]);
        }
        if (dt.flags & 8388608) {
          const yn = u(dt.objectType, Ee), ur = u(dt.indexType, Ee);
          return Ee.approximateLength += 2, N.createIndexedAccessTypeNode(yn, ur);
        }
        if (dt.flags & 16777216)
          return en(dt, (yn) => Ra(yn));
        if (dt.flags & 33554432)
          return u(dt.baseType, Ee);
        return D.fail("Should be unreachable.");
        function Ra(yn) {
          const ur = u(yn.checkType, Ee);
          if (Ee.approximateLength += 15, Ee.flags & 4 && yn.root.isDistributive && !(yn.checkType.flags & 262144)) {
            const Gs = Nd(ns(262144, "T")), Vs = ri(Gs, Ee), bd = N.createTypeReferenceNode(Vs);
            Ee.approximateLength += 37;
            const nt = SS(yn.root.checkType, Gs, yn.mapper), St = Ee.inferTypeParameters;
            Ee.inferTypeParameters = yn.root.inferTypeParameters;
            const tn = u(Yi(yn.root.extendsType, nt), Ee);
            Ee.inferTypeParameters = St;
            const Wn = Di(Yi(fi(yn.root.node.trueType), nt)), mr = Di(Yi(fi(yn.root.node.falseType), nt));
            return N.createConditionalTypeNode(ur, N.createInferTypeNode(N.createTypeParameterDeclaration(void 0, N.cloneNode(bd.typeName))), N.createConditionalTypeNode(N.createTypeReferenceNode(N.cloneNode(Vs)), u(yn.checkType, Ee), N.createConditionalTypeNode(bd, tn, Wn, mr), N.createKeywordTypeNode(144)), N.createKeywordTypeNode(144));
          }
          const ei = Ee.inferTypeParameters;
          Ee.inferTypeParameters = yn.root.inferTypeParameters;
          const vr = u(yn.extendsType, Ee);
          Ee.inferTypeParameters = ei;
          const Sa = Di(C0(yn)), cs = Di(L0(yn));
          return N.createConditionalTypeNode(ur, vr, Sa, cs);
        }
        function Di(yn) {
          var ur, ei, vr;
          return yn.flags & 1048576 ? (ur = Ee.visitedTypes) != null && ur.has(ku(yn)) ? (Ee.flags & 131072 || (Ee.encounteredError = !0, (vr = (ei = Ee.tracker) == null ? void 0 : ei.reportCyclicStructureError) == null || vr.call(ei)), g(Ee)) : en(yn, (Sa) => u(Sa, Ee)) : u(yn, Ee);
        }
        function Lr(yn) {
          return oD(yn) && !(EL(yn).flags & 262144);
        }
        function bt(yn) {
          D.assert(!!(yn.flags & 524288));
          const ur = yn.declaration.readonlyToken ? N.createToken(yn.declaration.readonlyToken.kind) : void 0, ei = yn.declaration.questionToken ? N.createToken(yn.declaration.questionToken.kind) : void 0;
          let vr, Sa;
          if (oD(yn)) {
            if (Lr(yn) && Ee.flags & 4) {
              const St = Nd(ns(262144, "T")), tn = ri(St, Ee);
              Sa = N.createTypeReferenceNode(tn);
            }
            vr = N.createTypeOperatorNode(141, Sa || u(EL(yn), Ee));
          } else
            vr = u(Pp(yn), Ee);
          const cs = De(lp(yn), Ee, vr), Gs = yn.declaration.nameType ? u(nv(yn), Ee) : void 0, Vs = u(NE(Jh(yn), !!(pm(yn) & 4)), Ee), bd = N.createMappedTypeNode(ur, cs, Gs, ei, Vs, void 0);
          Ee.approximateLength += 10;
          const nt = or(bd, 1);
          if (Lr(yn) && Ee.flags & 4) {
            const St = Yi(Cu(fi(yn.declaration.typeParameter.constraint.type)) || he, yn.mapper);
            return N.createConditionalTypeNode(u(EL(yn), Ee), N.createInferTypeNode(N.createTypeParameterDeclaration(void 0, N.cloneNode(Sa.typeName), St.flags & 2 ? void 0 : u(St, Ee))), nt, N.createKeywordTypeNode(144));
          }
          return nt;
        }
        function Ft(yn) {
          var ur, ei;
          const vr = yn.id, Sa = yn.symbol;
          if (Sa) {
            const Gs = Vi(yn) ? 788968 : 111551;
            if (Up(Sa.valueDeclaration))
              return qn(Sa, Ee, Gs);
            if (Sa.flags & 32 && !$a(Sa) && !(Sa.valueDeclaration && di(Sa.valueDeclaration) && Ee.flags & 2048 && (!Nc(Sa.valueDeclaration) || Jy(Sa, Ee.enclosingDeclaration, Gs, !1).accessibility !== 0)) || Sa.flags & 896 || cs())
              return qn(Sa, Ee, Gs);
            if ((ur = Ee.visitedTypes) != null && ur.has(vr)) {
              const Vs = Ky(yn);
              return Vs ? qn(Vs, Ee, 788968) : g(Ee);
            } else
              return en(yn, $t);
          } else {
            if (!!(ti(yn) & 8388608)) {
              const Vs = yn;
              if (kk(Vs.node)) {
                const bd = Ao(Ee, Vs.node);
                if (bd)
                  return bd;
              }
              return (ei = Ee.visitedTypes) != null && ei.has(vr) ? g(Ee) : en(yn, $t);
            }
            return $t(yn);
          }
          function cs() {
            var Gs;
            const Vs = !!(Sa.flags & 8192) && kt(Sa.declarations, (nt) => Ja(nt)), bd = !!(Sa.flags & 16) && (Sa.parent || ze(Sa.declarations, (nt) => nt.parent.kind === 308 || nt.parent.kind === 265));
            if (Vs || bd)
              return (!!(Ee.flags & 4096) || ((Gs = Ee.visitedTypes) == null ? void 0 : Gs.has(vr))) && (!(Ee.flags & 8) || vE(Sa, Ee.enclosingDeclaration));
          }
        }
        function en(yn, ur) {
          var ei, vr;
          const Sa = yn.id, cs = ti(yn) & 16 && yn.symbol && yn.symbol.flags & 32, Gs = ti(yn) & 4 && yn.node ? "N" + ps(yn.node) : yn.flags & 16777216 ? "N" + ps(yn.root.node) : yn.symbol ? (cs ? "+" : "") + bo(yn.symbol) : void 0;
          Ee.visitedTypes || (Ee.visitedTypes = /* @__PURE__ */ new Set()), Gs && !Ee.symbolDepth && (Ee.symbolDepth = /* @__PURE__ */ new Map());
          const Vs = Ee.enclosingDeclaration && Jr(Ee.enclosingDeclaration), bd = `${ku(yn)}|${Ee.flags}`;
          Vs && (Vs.serializedTypes || (Vs.serializedTypes = /* @__PURE__ */ new Map()));
          const nt = (ei = Vs == null ? void 0 : Vs.serializedTypes) == null ? void 0 : ei.get(bd);
          if (nt)
            return nt.truncating && (Ee.truncating = !0), Ee.approximateLength += nt.addedLength, Ln(nt.node);
          let St;
          if (Gs) {
            if (St = Ee.symbolDepth.get(Gs) || 0, St > 10)
              return g(Ee);
            Ee.symbolDepth.set(Gs, St + 1);
          }
          Ee.visitedTypes.add(Sa);
          const tn = Ee.approximateLength, Wn = ur(yn), mr = Ee.approximateLength - tn;
          return !Ee.reportedDiagnostic && !Ee.encounteredError && ((vr = Vs == null ? void 0 : Vs.serializedTypes) == null || vr.set(bd, { node: Wn, truncating: Ee.truncating, addedLength: mr })), Ee.visitedTypes.delete(Sa), Gs && Ee.symbolDepth.set(Gs, St), Wn;
          function Ln(Vr) {
            return !Zs(Vr) && Ea(Vr) === Vr ? Vr : ht(N.cloneNode(Bn(Vr, Ln, bg, Sr)), Vr);
          }
          function Sr(Vr, Ui, Ca, qa, Za) {
            return Vr && Vr.length === 0 ? ht(N.createNodeArray(void 0, Vr.hasTrailingComma), Vr) : Jn(Vr, Ui, Ca, qa, Za);
          }
        }
        function $t(yn) {
          if (Vf(yn) || yn.containsError)
            return bt(yn);
          const ur = cp(yn);
          if (!ur.properties.length && !ur.indexInfos.length) {
            if (!ur.callSignatures.length && !ur.constructSignatures.length)
              return Ee.approximateLength += 2, or(N.createTypeLiteralNode(void 0), 1);
            if (ur.callSignatures.length === 1 && !ur.constructSignatures.length) {
              const Gs = ur.callSignatures[0];
              return ge(Gs, 181, Ee);
            }
            if (ur.constructSignatures.length === 1 && !ur.callSignatures.length) {
              const Gs = ur.constructSignatures[0];
              return ge(Gs, 182, Ee);
            }
          }
          const ei = lr(ur.constructSignatures, (Gs) => !!(Gs.flags & 4));
          if (kt(ei)) {
            const Gs = jt(ei, kE);
            return ur.callSignatures.length + (ur.constructSignatures.length - ei.length) + ur.indexInfos.length + (Ee.flags & 2048 ? Bc(ur.properties, (bd) => !(bd.flags & 4194304)) : Le(ur.properties)) && Gs.push(mE(ur)), u(wo(Gs), Ee);
          }
          const vr = Ee.flags;
          Ee.flags |= 4194304;
          const Sa = yi(ur);
          Ee.flags = vr;
          const cs = N.createTypeLiteralNode(Sa);
          return Ee.approximateLength += 2, or(cs, Ee.flags & 1024 ? 0 : 1), cs;
        }
        function kn(yn) {
          let ur = hs(yn);
          if (yn.target === Es || yn.target === ds) {
            if (Ee.flags & 2) {
              const Sa = u(ur[0], Ee);
              return N.createTypeReferenceNode(yn.target === Es ? "Array" : "ReadonlyArray", [Sa]);
            }
            const ei = u(ur[0], Ee), vr = N.createArrayTypeNode(ei);
            return yn.target === Es ? vr : N.createTypeOperatorNode(146, vr);
          } else if (yn.target.objectFlags & 8) {
            if (ur = _a(ur, (ei, vr) => NE(ei, !!(yn.target.elementFlags[vr] & 2))), ur.length > 0) {
              const ei = x0(yn), vr = M(ur.slice(0, ei), Ee);
              if (vr) {
                if (yn.target.labeledElementDeclarations)
                  for (let cs = 0; cs < vr.length; cs++) {
                    const Gs = yn.target.elementFlags[cs];
                    vr[cs] = N.createNamedTupleMember(Gs & 12 ? N.createToken(25) : void 0, N.createIdentifier(ta(RV(yn.target.labeledElementDeclarations[cs]))), Gs & 2 ? N.createToken(57) : void 0, Gs & 4 ? N.createArrayTypeNode(vr[cs]) : vr[cs]);
                  }
                else
                  for (let cs = 0; cs < Math.min(ei, vr.length); cs++) {
                    const Gs = yn.target.elementFlags[cs];
                    vr[cs] = Gs & 12 ? N.createRestTypeNode(Gs & 4 ? N.createArrayTypeNode(vr[cs]) : vr[cs]) : Gs & 2 ? N.createOptionalTypeNode(vr[cs]) : vr[cs];
                  }
                const Sa = or(N.createTupleTypeNode(vr), 1);
                return yn.target.readonly ? N.createTypeOperatorNode(146, Sa) : Sa;
              }
            }
            if (Ee.encounteredError || Ee.flags & 524288) {
              const ei = or(N.createTupleTypeNode([]), 1);
              return yn.target.readonly ? N.createTypeOperatorNode(146, ei) : ei;
            }
            Ee.encounteredError = !0;
            return;
          } else {
            if (Ee.flags & 2048 && yn.symbol.valueDeclaration && di(yn.symbol.valueDeclaration) && !vE(yn.symbol, Ee.enclosingDeclaration))
              return Ft(yn);
            {
              const ei = yn.target.outerTypeParameters;
              let vr = 0, Sa;
              if (ei) {
                const bd = ei.length;
                for (; vr < bd; ) {
                  const nt = vr, St = eCe(ei[vr]);
                  do
                    vr++;
                  while (vr < bd && eCe(ei[vr]) === St);
                  if (!Tj(ei, ur, nt, vr)) {
                    const tn = M(ur.slice(nt, vr), Ee), Wn = Ee.flags;
                    Ee.flags |= 16;
                    const mr = qn(St, Ee, 788968, tn);
                    Ee.flags = Wn, Sa = Sa ? zn(Sa, mr) : mr;
                  }
                }
              }
              let cs;
              if (ur.length > 0) {
                const bd = (yn.target.typeParameters || rt).length;
                cs = M(ur.slice(vr, bd), Ee);
              }
              const Gs = Ee.flags;
              Ee.flags |= 16;
              const Vs = qn(yn.symbol, Ee, 788968, cs);
              return Ee.flags = Gs, Sa ? zn(Sa, Vs) : Vs;
            }
          }
        }
        function zn(yn, ur) {
          if (gg(yn)) {
            let ei = yn.typeArguments, vr = yn.qualifier;
            vr && (je(vr) ? ei !== xT(vr) && (vr = Ty(N.cloneNode(vr), ei)) : ei !== xT(vr.right) && (vr = N.updateQualifiedName(vr, vr.left, Ty(N.cloneNode(vr.right), ei)))), ei = ur.typeArguments;
            const Sa = sa(ur);
            for (const cs of Sa)
              vr = vr ? N.createQualifiedName(vr, cs) : cs;
            return N.updateImportTypeNode(yn, yn.argument, yn.assertions, vr, ei, yn.isTypeOf);
          } else {
            let ei = yn.typeArguments, vr = yn.typeName;
            je(vr) ? ei !== xT(vr) && (vr = Ty(N.cloneNode(vr), ei)) : ei !== xT(vr.right) && (vr = N.updateQualifiedName(vr, vr.left, Ty(N.cloneNode(vr.right), ei))), ei = ur.typeArguments;
            const Sa = sa(ur);
            for (const cs of Sa)
              vr = N.createQualifiedName(vr, cs);
            return N.updateTypeReferenceNode(yn, vr, ei);
          }
        }
        function sa(yn) {
          let ur = yn.typeName;
          const ei = [];
          for (; !je(ur); )
            ei.unshift(ur.right), ur = ur.left;
          return ei.unshift(ur), ei;
        }
        function yi(yn) {
          if (l(Ee))
            return [N.createPropertySignature(void 0, "...", void 0, void 0)];
          const ur = [];
          for (const Sa of yn.callSignatures)
            ur.push(ge(Sa, 176, Ee));
          for (const Sa of yn.constructSignatures)
            Sa.flags & 4 || ur.push(ge(Sa, 177, Ee));
          for (const Sa of yn.indexInfos)
            ur.push($(Sa, Ee, yn.objectFlags & 1024 ? g(Ee) : void 0));
          const ei = yn.properties;
          if (!ei)
            return ur;
          let vr = 0;
          for (const Sa of ei) {
            if (vr++, Ee.flags & 2048) {
              if (Sa.flags & 4194304)
                continue;
              Qf(Sa) & 24 && Ee.tracker.reportPrivateInBaseOfClassExpression && Ee.tracker.reportPrivateInBaseOfClassExpression(ta(Sa.escapedName));
            }
            if (l(Ee) && vr + 2 < ei.length - 1) {
              ur.push(N.createPropertySignature(void 0, `... ${ei.length - vr} more ...`, void 0, void 0)), R(ei[ei.length - 1], Ee, ur);
              break;
            }
            R(Sa, Ee, ur);
          }
          return ur.length ? ur : void 0;
        }
      }
      function g(dt) {
        return dt.approximateLength += 3, dt.flags & 1 ? N.createKeywordTypeNode(131) : N.createTypeReferenceNode(N.createIdentifier("..."), void 0);
      }
      function x(dt, Ee) {
        var er;
        return !!(Ll(dt) & 8192) && (jr(Ee.reverseMappedStack, dt) || ((er = Ee.reverseMappedStack) == null ? void 0 : er[0]) && !(ti(qo(Ee.reverseMappedStack).links.propertyType) & 16));
      }
      function R(dt, Ee, er) {
        var Qn;
        const Tr = !!(Ll(dt) & 8192), wr = x(dt, Ee) ? we : E0(dt), Ra = Ee.enclosingDeclaration;
        if (Ee.enclosingDeclaration = void 0, Ee.tracker.canTrackSymbol && iD(dt.escapedName))
          if (dt.declarations) {
            const Ft = us(dt.declarations);
            if (gP(Ft))
              if (br(Ft)) {
                const en = ka(Ft);
                en && cl(en) && KN(en.argumentExpression) && Mn(en.argumentExpression, Ra, Ee);
              } else
                Mn(Ft.name.expression, Ra, Ee);
          } else
            Ee.tracker.reportNonSerializableProperty(S(dt));
        Ee.enclosingDeclaration = dt.valueDeclaration || ((Qn = dt.declarations) == null ? void 0 : Qn[0]) || Ra;
        const Di = Ef(dt, Ee);
        Ee.enclosingDeclaration = Ra, Ee.approximateLength += Ml(dt).length + 1;
        const Lr = dt.flags & 16777216 ? N.createToken(57) : void 0;
        if (dt.flags & 8208 && !rv(wr).length && !_p(dt)) {
          const Ft = za(_c(wr, (en) => !(en.flags & 32768)), 0);
          for (const en of Ft) {
            const $t = ge(en, 170, Ee, { name: Di, questionToken: Lr });
            er.push(bt($t));
          }
        } else {
          let Ft;
          x(dt, Ee) ? Ft = g(Ee) : (Tr && (Ee.reverseMappedStack || (Ee.reverseMappedStack = []), Ee.reverseMappedStack.push(dt)), Ft = wr ? na(Ee, wr, dt, Ra) : N.createKeywordTypeNode(131), Tr && Ee.reverseMappedStack.pop());
          const en = _p(dt) ? [N.createToken(146)] : void 0;
          en && (Ee.approximateLength += 9);
          const $t = N.createPropertySignature(en, Di, Lr, Ft);
          er.push(bt($t));
        }
        function bt(Ft) {
          var en;
          if (kt(dt.declarations, ($t) => $t.kind === 351)) {
            const $t = (en = dt.declarations) == null ? void 0 : en.find((zn) => zn.kind === 351), kn = qR($t.comment);
            kn && w1(Ft, [{ kind: 3, text: `*
 * ` + kn.replace(/\n/g, `
 * `) + `
 `, pos: -1, end: -1, hasTrailingNewLine: !0 }]);
          } else
            dt.valueDeclaration && Hc(Ft, dt.valueDeclaration);
          return Ft;
        }
      }
      function M(dt, Ee, er) {
        if (kt(dt)) {
          if (l(Ee))
            if (er) {
              if (dt.length > 2)
                return [
                  u(dt[0], Ee),
                  N.createTypeReferenceNode(`... ${dt.length - 2} more ...`, void 0),
                  u(dt[dt.length - 1], Ee)
                ];
            } else
              return [N.createTypeReferenceNode("...", void 0)];
          const Tr = !(Ee.flags & 64) ? wse() : void 0, wr = [];
          let Ra = 0;
          for (const Di of dt) {
            if (Ra++, l(Ee) && Ra + 2 < dt.length - 1) {
              wr.push(N.createTypeReferenceNode(`... ${dt.length - Ra} more ...`, void 0));
              const bt = u(dt[dt.length - 1], Ee);
              bt && wr.push(bt);
              break;
            }
            Ee.approximateLength += 2;
            const Lr = u(Di, Ee);
            Lr && (wr.push(Lr), Tr && Jde(Lr) && Tr.add(Lr.typeName.escapedText, [Di, wr.length - 1]));
          }
          if (Tr) {
            const Di = Ee.flags;
            Ee.flags |= 64, Tr.forEach((Lr) => {
              if (!Kde(Lr, ([bt], [Ft]) => J(bt, Ft)))
                for (const [bt, Ft] of Lr)
                  wr[Ft] = u(bt, Ee);
            }), Ee.flags = Di;
          }
          return wr;
        }
      }
      function J(dt, Ee) {
        return dt === Ee || !!dt.symbol && dt.symbol === Ee.symbol || !!dt.aliasSymbol && dt.aliasSymbol === Ee.aliasSymbol;
      }
      function $(dt, Ee, er) {
        const Qn = iue(dt) || "x", Tr = u(dt.keyType, Ee), wr = N.createParameterDeclaration(void 0, void 0, Qn, void 0, Tr, void 0);
        return er || (er = u(dt.type || we, Ee)), !dt.type && !(Ee.flags & 2097152) && (Ee.encounteredError = !0), Ee.approximateLength += Qn.length + 4, N.createIndexSignature(dt.isReadonly ? [N.createToken(146)] : void 0, [wr], er);
      }
      function ge(dt, Ee, er, Qn) {
        var Tr, wr, Ra, Di, Lr;
        const bt = er.flags & 256;
        bt && (er.flags &= -257), er.approximateLength += 3;
        let Ft, en;
        er.flags & 32 && dt.target && dt.mapper && dt.target.typeParameters ? en = dt.target.typeParameters.map((vr) => u(Yi(vr, dt.mapper), er)) : Ft = dt.typeParameters && dt.typeParameters.map((vr) => _t(vr, er));
        const $t = NAe(dt, !0)[0];
        let kn;
        if (er.enclosingDeclaration && dt.declaration && dt.declaration !== er.enclosingDeclaration && !fr(dt.declaration) && kt($t)) {
          const vr = Jr(er.enclosingDeclaration).fakeScopeForSignatureDeclaration ? er.enclosingDeclaration : void 0;
          D.assertOptionalNode(vr, co);
          const Sa = (Tr = vr == null ? void 0 : vr.locals) != null ? Tr : lo();
          let cs;
          for (const Gs of $t)
            Sa.has(Gs.escapedName) || (cs = Fn(cs, Gs.escapedName), Sa.set(Gs.escapedName, Gs));
          if (cs) {
            let Gs = function() {
              ze(cs, (Vs) => Sa.delete(Vs));
            };
            if (vr)
              kn = Gs;
            else {
              const Vs = Jm.createBlock(rt);
              Jr(Vs).fakeScopeForSignatureDeclaration = !0, Vs.locals = Sa;
              const bd = er.enclosingDeclaration;
              Vo(Vs, bd), er.enclosingDeclaration = Vs, kn = () => {
                er.enclosingDeclaration = bd, Gs();
              };
            }
          }
        }
        const zn = (kt($t, (vr) => vr !== $t[$t.length - 1] && !!(Ll(vr) & 32768)) ? dt.parameters : $t).map((vr) => Bt(vr, er, Ee === 173, Qn == null ? void 0 : Qn.privateSymbolVisitor, Qn == null ? void 0 : Qn.bundledImports)), sa = er.flags & 33554432 ? void 0 : Ne(dt, er);
        sa && zn.unshift(sa);
        let yi;
        const yn = a_(dt);
        if (yn) {
          const vr = yn.kind === 2 || yn.kind === 3 ? N.createToken(129) : void 0, Sa = yn.kind === 1 || yn.kind === 3 ? or(N.createIdentifier(yn.parameterName), 33554432) : N.createThisTypeNode(), cs = yn.type && u(yn.type, er);
          yi = N.createTypePredicateNode(vr, Sa, cs);
        } else {
          const vr = ys(dt);
          vr && !(bt && Ss(vr)) ? yi = Os(er, vr, dt, Qn == null ? void 0 : Qn.privateSymbolVisitor, Qn == null ? void 0 : Qn.bundledImports) : bt || (yi = N.createKeywordTypeNode(131));
        }
        let ur = Qn == null ? void 0 : Qn.modifiers;
        if (Ee === 182 && dt.flags & 4) {
          const vr = Gm(ur);
          ur = N.createModifiersFromModifierFlags(vr | 256);
        }
        const ei = Ee === 176 ? N.createCallSignature(Ft, zn, yi) : Ee === 177 ? N.createConstructSignature(Ft, zn, yi) : Ee === 170 ? N.createMethodSignature(ur, (wr = Qn == null ? void 0 : Qn.name) != null ? wr : N.createIdentifier(""), Qn == null ? void 0 : Qn.questionToken, Ft, zn, yi) : Ee === 171 ? N.createMethodDeclaration(ur, void 0, (Ra = Qn == null ? void 0 : Qn.name) != null ? Ra : N.createIdentifier(""), void 0, Ft, zn, yi, void 0) : Ee === 173 ? N.createConstructorDeclaration(ur, zn, void 0) : Ee === 174 ? N.createGetAccessorDeclaration(ur, (Di = Qn == null ? void 0 : Qn.name) != null ? Di : N.createIdentifier(""), zn, yi, void 0) : Ee === 175 ? N.createSetAccessorDeclaration(ur, (Lr = Qn == null ? void 0 : Qn.name) != null ? Lr : N.createIdentifier(""), zn, void 0) : Ee === 178 ? N.createIndexSignature(ur, zn, yi) : Ee === 320 ? N.createJSDocFunctionType(zn, yi) : Ee === 181 ? N.createFunctionTypeNode(Ft, zn, yi ?? N.createTypeReferenceNode(N.createIdentifier(""))) : Ee === 182 ? N.createConstructorTypeNode(ur, Ft, zn, yi ?? N.createTypeReferenceNode(N.createIdentifier(""))) : Ee === 259 ? N.createFunctionDeclaration(ur, void 0, Qn != null && Qn.name ? oo(Qn.name, je) : N.createIdentifier(""), Ft, zn, yi, void 0) : Ee === 215 ? N.createFunctionExpression(ur, void 0, Qn != null && Qn.name ? oo(Qn.name, je) : N.createIdentifier(""), Ft, zn, yi, N.createBlock([])) : Ee === 216 ? N.createArrowFunction(ur, Ft, zn, yi, void 0, N.createBlock([])) : D.assertNever(Ee);
        return en && (ei.typeArguments = N.createNodeArray(en)), kn == null || kn(), ei;
      }
      function Ne(dt, Ee) {
        if (dt.thisParameter)
          return Bt(dt.thisParameter, Ee);
        if (dt.declaration && fr(dt.declaration)) {
          const er = wM(dt.declaration);
          if (er && er.typeExpression)
            return N.createParameterDeclaration(void 0, void 0, "this", void 0, u(fi(er.typeExpression), Ee));
        }
      }
      function De(dt, Ee, er) {
        const Qn = Ee.flags;
        Ee.flags &= -513;
        const Tr = N.createModifiersFromModifierFlags(wie(dt)), wr = ri(dt, Ee), Ra = IE(dt), Di = Ra && u(Ra, Ee);
        return Ee.flags = Qn, N.createTypeParameterDeclaration(Tr, wr, er, Di);
      }
      function _t(dt, Ee, er = Cu(dt)) {
        const Qn = er && u(er, Ee);
        return De(dt, Ee, Qn);
      }
      function Bt(dt, Ee, er, Qn, Tr) {
        let wr = xl(dt, 166);
        !wr && !Om(dt) && (wr = xl(dt, 344));
        let Ra = ar(dt);
        wr && dDe(wr) && (Ra = Qg(Ra));
        const Di = na(Ee, Ra, dt, Ee.enclosingDeclaration, Qn, Tr), Lr = !(Ee.flags & 8192) && er && wr && K_(wr) ? jt(eT(wr), N.cloneNode) : void 0, Ft = wr && gh(wr) || Ll(dt) & 32768 ? N.createToken(25) : void 0, en = wr && wr.name ? wr.name.kind === 79 ? or(N.cloneNode(wr.name), 33554432) : wr.name.kind === 163 ? or(N.cloneNode(wr.name.right), 33554432) : sa(wr.name) : Ml(dt), kn = wr && lD(wr) || Ll(dt) & 16384 ? N.createToken(57) : void 0, zn = N.createParameterDeclaration(Lr, Ft, en, kn, Di, void 0);
        return Ee.approximateLength += Ml(dt).length + 3, zn;
        function sa(yi) {
          return yn(yi);
          function yn(ur) {
            Ee.tracker.canTrackSymbol && As(ur) && vre(ur) && Mn(ur.expression, Ee.enclosingDeclaration, Ee);
            let ei = Bn(ur, yn, bg, void 0, yn);
            return _s(ei) && (ei = N.updateBindingElement(ei, ei.dotDotDotToken, ei.propertyName, ei.name, void 0)), Zs(ei) || (ei = N.cloneNode(ei)), or(ei, 33554433);
          }
        }
      }
      function Mn(dt, Ee, er) {
        if (!er.tracker.canTrackSymbol)
          return;
        const Qn = Lf(dt), Tr = _l(Qn, Qn.escapedText, 1160127, void 0, void 0, !0);
        Tr && er.tracker.trackSymbol(Tr, Ee, 111551);
      }
      function An(dt, Ee, er, Qn) {
        return Ee.tracker.trackSymbol(dt, Ee.enclosingDeclaration, er), Kn(dt, Ee, er, Qn);
      }
      function Kn(dt, Ee, er, Qn) {
        let Tr;
        return !(dt.flags & 262144) && (Ee.enclosingDeclaration || Ee.flags & 64) && !(Ee.flags & 134217728) ? (Tr = D.checkDefined(Ra(dt, er, !0)), D.assert(Tr && Tr.length > 0)) : Tr = [dt], Tr;
        function Ra(Di, Lr, bt) {
          let Ft = m0(Di, Ee.enclosingDeclaration, Lr, !!(Ee.flags & 128)), en;
          if (!Ft || vS(Ft[0], Ee.enclosingDeclaration, Ft.length === 1 ? Lr : Vg(Lr))) {
            const kn = _E(Ft ? Ft[0] : Di, Ee.enclosingDeclaration, Lr);
            if (Le(kn)) {
              en = kn.map((yi) => kt(yi.declarations, jg) ? ln(yi, Ee) : void 0);
              const zn = kn.map((yi, yn) => yn);
              zn.sort($t);
              const sa = zn.map((yi) => kn[yi]);
              for (const yi of sa) {
                const yn = Ra(yi, Vg(Lr), !1);
                if (yn) {
                  if (yi.exports && yi.exports.get("export=") && um(yi.exports.get("export="), Di)) {
                    Ft = yn;
                    break;
                  }
                  Ft = yn.concat(Ft || [zy(yi, Di) || Di]);
                  break;
                }
              }
            }
          }
          if (Ft)
            return Ft;
          if (bt || !(Di.flags & 6144))
            return !bt && !Qn && ze(Di.declarations, jg) ? void 0 : [Di];
          function $t(kn, zn) {
            const sa = en[kn], yi = en[zn];
            if (sa && yi) {
              const yn = Sf(yi);
              return Sf(sa) === yn ? E8(sa) - E8(yi) : yn ? -1 : 1;
            }
            return 0;
          }
        }
      }
      function gn(dt, Ee) {
        let er;
        return Z2(dt).flags & 524384 && (er = N.createNodeArray(jt(ev(dt), (Tr) => _t(Tr, Ee)))), er;
      }
      function xn(dt, Ee, er) {
        var Qn;
        D.assert(dt && 0 <= Ee && Ee < dt.length);
        const Tr = dt[Ee], wr = bo(Tr);
        if ((Qn = er.typeParameterSymbolList) != null && Qn.has(wr))
          return;
        (er.typeParameterSymbolList || (er.typeParameterSymbolList = /* @__PURE__ */ new Set())).add(wr);
        let Ra;
        if (er.flags & 512 && Ee < dt.length - 1) {
          const Di = Tr, Lr = dt[Ee + 1];
          if (Ll(Lr) & 1) {
            const bt = bS(Di.flags & 2097152 ? nc(Di) : Di);
            Ra = M(jt(bt, (Ft) => I0(Ft, Lr.links.mapper)), er);
          } else
            Ra = gn(Tr, er);
        }
        return Ra;
      }
      function yr(dt) {
        return Cx(dt.objectType) ? yr(dt.objectType) : dt;
      }
      function ln(dt, Ee, er) {
        var Qn;
        let Tr = xl(dt, 308);
        if (!Tr) {
          const Ft = Jt(dt.declarations, (en) => x2(en, dt));
          Ft && (Tr = xl(Ft, 308));
        }
        if (Tr && Tr.moduleName !== void 0)
          return Tr.moduleName;
        if (!Tr) {
          if (Ee.tracker.trackReferencedAmbientModule) {
            const Ft = lr(dt.declarations, Pu);
            if (Le(Ft))
              for (const en of Ft)
                Ee.tracker.trackReferencedAmbientModule(en, dt);
          }
          if (U5.test(dt.escapedName))
            return dt.escapedName.substring(1, dt.escapedName.length - 1);
        }
        if (!Ee.enclosingDeclaration || !Ee.tracker.moduleResolverHost)
          return U5.test(dt.escapedName) ? dt.escapedName.substring(1, dt.escapedName.length - 1) : Zn(XW(dt)).fileName;
        const wr = Zn(Tl(Ee.enclosingDeclaration)), Ra = er || (wr == null ? void 0 : wr.impliedNodeFormat), Di = qk(wr.path, Ra), Lr = Wi(dt);
        let bt = Lr.specifierCache && Lr.specifierCache.get(Di);
        if (!bt) {
          const Ft = !!qs(Y), { moduleResolverHost: en } = Ee.tracker, $t = Ft ? { ...Y, baseUrl: en.getCommonSourceDirectory() } : Y;
          bt = us(Cme(dt, at, $t, wr, en, {
            importModuleSpecifierPreference: Ft ? "non-relative" : "project-relative",
            importModuleSpecifierEnding: Ft ? "minimal" : Ra === 99 ? "js" : void 0
          }, { overrideImportMode: er })), (Qn = Lr.specifierCache) != null || (Lr.specifierCache = /* @__PURE__ */ new Map()), Lr.specifierCache.set(Di, bt);
        }
        return bt;
      }
      function Gn(dt) {
        const Ee = N.createIdentifier(ta(dt.escapedName));
        return dt.parent ? N.createQualifiedName(Gn(dt.parent), Ee) : Ee;
      }
      function qn(dt, Ee, er, Qn) {
        var Tr, wr, Ra, Di;
        const Lr = An(dt, Ee, er, !(Ee.flags & 16384)), bt = er === 111551;
        if (kt(Lr[0].declarations, jg)) {
          const $t = Lr.length > 1 ? en(Lr, Lr.length - 1, 1) : void 0, kn = Qn || xn(Lr, 0, Ee), zn = Zn(Tl(Ee.enclosingDeclaration)), sa = zM(Lr[0]);
          let yi, yn;
          if ((vl(Y) === 3 || vl(Y) === 99) && (sa == null ? void 0 : sa.impliedNodeFormat) === 99 && sa.impliedNodeFormat !== (zn == null ? void 0 : zn.impliedNodeFormat) && (yi = ln(Lr[0], Ee, 99), yn = N.createImportTypeAssertionContainer(N.createAssertClause(N.createNodeArray([
            N.createAssertEntry(N.createStringLiteral("resolution-mode"), N.createStringLiteral("import"))
          ]))), (wr = (Tr = Ee.tracker).reportImportTypeNodeResolutionModeOverride) == null || wr.call(Tr)), yi || (yi = ln(Lr[0], Ee)), !(Ee.flags & 67108864) && vl(Y) !== 1 && yi.indexOf("/node_modules/") >= 0) {
            const ei = yi;
            if (vl(Y) === 3 || vl(Y) === 99) {
              const vr = (zn == null ? void 0 : zn.impliedNodeFormat) === 99 ? 1 : 99;
              yi = ln(Lr[0], Ee, vr), yi.indexOf("/node_modules/") >= 0 ? yi = ei : (yn = N.createImportTypeAssertionContainer(N.createAssertClause(N.createNodeArray([
                N.createAssertEntry(N.createStringLiteral("resolution-mode"), N.createStringLiteral(vr === 99 ? "import" : "require"))
              ]))), (Di = (Ra = Ee.tracker).reportImportTypeNodeResolutionModeOverride) == null || Di.call(Ra));
            }
            yn || (Ee.encounteredError = !0, Ee.tracker.reportLikelyUnsafeImportRequiredError && Ee.tracker.reportLikelyUnsafeImportRequiredError(ei));
          }
          const ur = N.createLiteralTypeNode(N.createStringLiteral(yi));
          if (Ee.tracker.trackExternalModuleSymbolOfImportTypeNode && Ee.tracker.trackExternalModuleSymbolOfImportTypeNode(Lr[0]), Ee.approximateLength += yi.length + 10, !$t || rf($t)) {
            if ($t) {
              const ei = je($t) ? $t : $t.right;
              Ty(ei, void 0);
            }
            return N.createImportTypeNode(ur, yn, $t, kn, bt);
          } else {
            const ei = yr($t), vr = ei.objectType.typeName;
            return N.createIndexedAccessTypeNode(N.createImportTypeNode(ur, yn, vr, kn, bt), ei.indexType);
          }
        }
        const Ft = en(Lr, Lr.length - 1, 0);
        if (Cx(Ft))
          return Ft;
        if (bt)
          return N.createTypeQueryNode(Ft);
        {
          const $t = je(Ft) ? Ft : Ft.right, kn = xT($t);
          return Ty($t, void 0), N.createTypeReferenceNode(Ft, kn);
        }
        function en($t, kn, zn) {
          const sa = kn === $t.length - 1 ? Qn : xn($t, kn, Ee), yi = $t[kn], yn = $t[kn - 1];
          let ur;
          if (kn === 0)
            Ee.flags |= 16777216, ur = Xy(yi, Ee), Ee.approximateLength += (ur ? ur.length : 0) + 1, Ee.flags ^= 16777216;
          else if (yn && hf(yn)) {
            const vr = hf(yn);
            of(vr, (Sa, cs) => {
              if (um(Sa, yi) && !iD(cs) && cs !== "export=")
                return ur = ta(cs), !0;
            });
          }
          if (ur === void 0) {
            const vr = Jt(yi.declarations, ka);
            if (vr && As(vr) && rf(vr.expression)) {
              const Sa = en($t, kn - 1, zn);
              return rf(Sa) ? N.createIndexedAccessTypeNode(N.createParenthesizedType(N.createTypeQueryNode(Sa)), N.createTypeQueryNode(vr.expression)) : Sa;
            }
            ur = Xy(yi, Ee);
          }
          if (Ee.approximateLength += ur.length + 1, !(Ee.flags & 16) && yn && tv(yn) && tv(yn).get(yi.escapedName) && um(tv(yn).get(yi.escapedName), yi)) {
            const vr = en($t, kn - 1, zn);
            return Cx(vr) ? N.createIndexedAccessTypeNode(vr, N.createLiteralTypeNode(N.createStringLiteral(ur))) : N.createIndexedAccessTypeNode(N.createTypeReferenceNode(vr, sa), N.createLiteralTypeNode(N.createStringLiteral(ur)));
          }
          const ei = or(N.createIdentifier(ur), 33554432);
          if (sa && Ty(ei, N.createNodeArray(sa)), ei.symbol = yi, kn > zn) {
            const vr = en($t, kn - 1, zn);
            return rf(vr) ? N.createQualifiedName(vr, ei) : D.fail("Impossible construct - an export of an indexed access cannot be reachable");
          }
          return ei;
        }
      }
      function Zr(dt, Ee, er) {
        const Qn = _l(Ee.enclosingDeclaration, dt, 788968, void 0, dt, !1);
        return Qn ? !(Qn.flags & 262144 && Qn === er.symbol) : !1;
      }
      function ri(dt, Ee) {
        var er, Qn;
        if (Ee.flags & 4 && Ee.typeParameterNames) {
          const wr = Ee.typeParameterNames.get(ku(dt));
          if (wr)
            return wr;
        }
        let Tr = ma(dt.symbol, Ee, 788968, !0);
        if (!(Tr.kind & 79))
          return N.createIdentifier("(Missing type parameter)");
        if (Ee.flags & 4) {
          const wr = Tr.escapedText;
          let Ra = ((er = Ee.typeParameterNamesByTextNextNameCount) == null ? void 0 : er.get(wr)) || 0, Di = wr;
          for (; (Qn = Ee.typeParameterNamesByText) != null && Qn.has(Di) || Zr(Di, Ee, dt); )
            Ra++, Di = `${wr}_${Ra}`;
          if (Di !== wr) {
            const Lr = xT(Tr);
            Tr = N.createIdentifier(Di), Ty(Tr, Lr);
          }
          (Ee.typeParameterNamesByTextNextNameCount || (Ee.typeParameterNamesByTextNextNameCount = /* @__PURE__ */ new Map())).set(wr, Ra), (Ee.typeParameterNames || (Ee.typeParameterNames = /* @__PURE__ */ new Map())).set(ku(dt), Tr), (Ee.typeParameterNamesByText || (Ee.typeParameterNamesByText = /* @__PURE__ */ new Set())).add(wr);
        }
        return Tr;
      }
      function ma(dt, Ee, er, Qn) {
        const Tr = An(dt, Ee, er);
        return Qn && Tr.length !== 1 && !Ee.encounteredError && !(Ee.flags & 65536) && (Ee.encounteredError = !0), wr(Tr, Tr.length - 1);
        function wr(Ra, Di) {
          const Lr = xn(Ra, Di, Ee), bt = Ra[Di];
          Di === 0 && (Ee.flags |= 16777216);
          const Ft = Xy(bt, Ee);
          Di === 0 && (Ee.flags ^= 16777216);
          const en = or(N.createIdentifier(Ft), 33554432);
          return Lr && Ty(en, N.createNodeArray(Lr)), en.symbol = bt, Di > 0 ? N.createQualifiedName(wr(Ra, Di - 1), en) : en;
        }
      }
      function Qa(dt, Ee, er) {
        const Qn = An(dt, Ee, er);
        return Tr(Qn, Qn.length - 1);
        function Tr(wr, Ra) {
          const Di = xn(wr, Ra, Ee), Lr = wr[Ra];
          Ra === 0 && (Ee.flags |= 16777216);
          let bt = Xy(Lr, Ee);
          Ra === 0 && (Ee.flags ^= 16777216);
          let Ft = bt.charCodeAt(0);
          if (mN(Ft) && kt(Lr.declarations, jg))
            return N.createStringLiteral(ln(Lr, Ee));
          if (Ra === 0 || Lq(bt, P)) {
            const en = or(N.createIdentifier(bt), 33554432);
            return Di && Ty(en, N.createNodeArray(Di)), en.symbol = Lr, Ra > 0 ? N.createPropertyAccessExpression(Tr(wr, Ra - 1), en) : en;
          } else {
            Ft === 91 && (bt = bt.substring(1, bt.length - 1), Ft = bt.charCodeAt(0));
            let en;
            if (mN(Ft) && !(Lr.flags & 8) ? en = N.createStringLiteral(V_(bt).replace(/\\./g, ($t) => $t.substring(1)), Ft === 39) : "" + +bt === bt && (en = N.createNumericLiteral(+bt)), !en) {
              const $t = or(N.createIdentifier(bt), 33554432);
              Di && Ty($t, N.createNodeArray(Di)), $t.symbol = Lr, en = $t;
            }
            return N.createElementAccessExpression(Tr(wr, Ra - 1), en);
          }
        }
      }
      function Ec(dt) {
        const Ee = ka(dt);
        return !!Ee && jo(Ee);
      }
      function Wf(dt) {
        const Ee = ka(dt);
        return !!(Ee && jo(Ee) && (Ee.singleQuote || !Zs(Ee) && xa(Sc(Ee, !1), "'")));
      }
      function Ef(dt, Ee) {
        const er = !!Le(dt.declarations) && Yn(dt.declarations, Ec), Qn = !!Le(dt.declarations) && Yn(dt.declarations, Wf), Tr = oa(dt, Ee, Qn, er);
        if (Tr)
          return Tr;
        const wr = ta(dt.escapedName);
        return $3(wr, ts(Y), Qn, er);
      }
      function oa(dt, Ee, er, Qn) {
        const Tr = Wi(dt).nameType;
        if (Tr) {
          if (Tr.flags & 384) {
            const wr = "" + Tr.value;
            return !P_(wr, ts(Y)) && (Qn || !xh(wr)) ? N.createStringLiteral(wr, !!er) : xh(wr) && xa(wr, "-") ? N.createComputedPropertyName(N.createNumericLiteral(+wr)) : $3(wr, ts(Y));
          }
          if (Tr.flags & 8192)
            return N.createComputedPropertyName(Qa(Tr.symbol, Ee, 111551));
        }
      }
      function Un(dt) {
        const Ee = { ...dt };
        return Ee.typeParameterNames && (Ee.typeParameterNames = new Map(Ee.typeParameterNames)), Ee.typeParameterNamesByText && (Ee.typeParameterNamesByText = new Set(Ee.typeParameterNamesByText)), Ee.typeParameterSymbolList && (Ee.typeParameterSymbolList = new Set(Ee.typeParameterSymbolList)), Ee.tracker = new x8(Ee, Ee.tracker.inner, Ee.tracker.moduleResolverHost), Ee;
      }
      function sr(dt, Ee) {
        return dt.declarations && nn(dt.declarations, (er) => !!Zc(er) && (!Ee || !!nr(er, (Qn) => Qn === Ee)));
      }
      function Zi(dt, Ee) {
        return !(ti(Ee) & 4) || !q_(dt) || Le(dt.typeArguments) >= mm(Ee.target.typeParameters);
      }
      function Ga(dt) {
        return Jr(dt).fakeScopeForSignatureDeclaration ? dt.parent : dt;
      }
      function na(dt, Ee, er, Qn, Tr, wr) {
        if (!rs(Ee) && Qn) {
          const Lr = sr(er, Ga(Qn));
          if (Lr && !Qs(Lr) && !z_(Lr)) {
            const bt = Zc(Lr);
            if (Zo(bt, Lr, Ee) && Zi(bt, Ee)) {
              const Ft = Ao(dt, bt, Tr, wr);
              if (Ft)
                return Ft;
            }
          }
        }
        const Ra = dt.flags;
        Ee.flags & 8192 && Ee.symbol === er && (!dt.enclosingDeclaration || kt(er.declarations, (Lr) => Zn(Lr) === Zn(dt.enclosingDeclaration))) && (dt.flags |= 1048576);
        const Di = u(Ee, dt);
        return dt.flags = Ra, Di;
      }
      function Zo(dt, Ee, er) {
        const Qn = fi(dt);
        return Qn === er ? !0 : Ba(Ee) && Ee.questionToken ? l_(er, 524288) === Qn : !1;
      }
      function Os(dt, Ee, er, Qn, Tr) {
        if (!rs(Ee) && dt.enclosingDeclaration) {
          const wr = er.declaration && yp(er.declaration), Ra = Ga(dt.enclosingDeclaration);
          if (nr(wr, (Di) => Di === Ra) && wr) {
            const Di = fi(wr);
            if ((Di.flags & 262144 && Di.isThisType ? Yi(Di, er.mapper) : Di) === Ee && Zi(wr, Ee)) {
              const bt = Ao(dt, wr, Qn, Tr);
              if (bt)
                return bt;
            }
          }
        }
        return u(Ee, dt);
      }
      function gl(dt, Ee, er) {
        let Qn = !1;
        const Tr = Lf(dt);
        if (fr(dt) && (fT(Tr) || vh(Tr.parent) || Cd(Tr.parent) && hz(Tr.parent.left) && fT(Tr.parent.right)))
          return Qn = !0, { introducesError: Qn, node: dt };
        const wr = Rl(Tr, 67108863, !0, !0);
        if (wr && (Jy(wr, Ee.enclosingDeclaration, 67108863, !1).accessibility !== 0 ? Qn = !0 : (Ee.tracker.trackSymbol(wr, Ee.enclosingDeclaration, 67108863), er == null || er(wr)), je(dt))) {
          const Ra = Us(wr), Di = wr.flags & 262144 && !yE(Ra.symbol, Ee.enclosingDeclaration) ? ri(Ra, Ee) : N.cloneNode(dt);
          return Di.symbol = wr, { introducesError: Qn, node: or(Wr(Di, dt), 33554432) };
        }
        return { introducesError: Qn, node: dt };
      }
      function Ao(dt, Ee, er, Qn) {
        o && o.throwIfCancellationRequested && o.throwIfCancellationRequested();
        let Tr = !1;
        const wr = Zn(Ee), Ra = lt(Ee, Di, Gi);
        if (Tr)
          return;
        return Ra === Ee ? ht(N.cloneNode(Ee), Ee) : Ra;
        function Di(Lr) {
          if (i_e(Lr) || Lr.kind === 322)
            return N.createKeywordTypeNode(131);
          if (a_e(Lr))
            return N.createKeywordTypeNode(157);
          if (AC(Lr))
            return N.createUnionTypeNode([lt(Lr.type, Di, Gi), N.createLiteralTypeNode(N.createNull())]);
          if (xJ(Lr))
            return N.createUnionTypeNode([lt(Lr.type, Di, Gi), N.createKeywordTypeNode(155)]);
          if (z7(Lr))
            return lt(Lr.type, Di);
          if (q7(Lr))
            return N.createArrayTypeNode(lt(Lr.type, Di, Gi));
          if (Bk(Lr))
            return N.createTypeLiteralNode(jt(Lr.jsDocPropertyTags, ($t) => {
              const kn = je($t.name) ? $t.name : $t.name.right, zn = fc(fi(Lr), kn.escapedText), sa = zn && $t.typeExpression && fi($t.typeExpression.type) !== zn ? u(zn, dt) : void 0;
              return N.createPropertySignature(void 0, kn, $t.isBracketed || $t.typeExpression && xJ($t.typeExpression.type) ? N.createToken(57) : void 0, sa || $t.typeExpression && lt($t.typeExpression.type, Di, Gi) || N.createKeywordTypeNode(131));
            }));
          if (q_(Lr) && je(Lr.typeName) && Lr.typeName.escapedText === "")
            return Wr(N.createKeywordTypeNode(131), Lr);
          if ((Sy(Lr) || q_(Lr)) && h3(Lr))
            return N.createTypeLiteralNode([N.createIndexSignature(void 0, [N.createParameterDeclaration(void 0, void 0, "x", void 0, lt(Lr.typeArguments[0], Di, Gi))], lt(Lr.typeArguments[1], Di, Gi))]);
          if (CC(Lr))
            if (zA(Lr)) {
              let $t;
              return N.createConstructorTypeNode(void 0, Jn(Lr.typeParameters, Di, Fl), ia(Lr.parameters, (kn, zn) => kn.name && je(kn.name) && kn.name.escapedText === "new" ? ($t = kn.type, void 0) : N.createParameterDeclaration(void 0, bt(kn), Ft(kn, zn), kn.questionToken, lt(kn.type, Di, Gi), void 0)), lt($t || Lr.type, Di, Gi) || N.createKeywordTypeNode(131));
            } else
              return N.createFunctionTypeNode(Jn(Lr.typeParameters, Di, Fl), jt(Lr.parameters, ($t, kn) => N.createParameterDeclaration(void 0, bt($t), Ft($t, kn), $t.questionToken, lt($t.type, Di, Gi), void 0)), lt(Lr.type, Di, Gi) || N.createKeywordTypeNode(131));
          if (q_(Lr) && pN(Lr) && (!Zi(Lr, fi(Lr)) || sCe(Lr) || an === U2(Lr, 788968, !0)))
            return Wr(u(fi(Lr), dt), Lr);
          if (j0(Lr)) {
            const $t = Jr(Lr).resolvedSymbol;
            return pN(Lr) && $t && (!Lr.isTypeOf && !($t.flags & 788968) || !(Le(Lr.typeArguments) >= mm(ev($t)))) ? Wr(u(fi(Lr), dt), Lr) : N.updateImportTypeNode(Lr, N.updateLiteralTypeNode(Lr.argument, en(Lr, Lr.argument.literal)), Lr.assertions, Lr.qualifier, Jn(Lr.typeArguments, Di, Gi), Lr.isTypeOf);
          }
          if (rf(Lr) || zl(Lr)) {
            const { introducesError: $t, node: kn } = gl(Lr, dt, er);
            if (Tr = Tr || $t, kn !== Lr)
              return kn;
          }
          return wr && gC(Lr) && ol(wr, Lr.pos).line === ol(wr, Lr.end).line && or(Lr, 1), Bn(Lr, Di, bg);
          function bt($t) {
            return $t.dotDotDotToken || ($t.type && q7($t.type) ? N.createToken(25) : void 0);
          }
          function Ft($t, kn) {
            return $t.name && je($t.name) && $t.name.escapedText === "this" ? "this" : bt($t) ? "args" : `arg${kn}`;
          }
          function en($t, kn) {
            if (Qn) {
              if (dt.tracker && dt.tracker.moduleResolverHost) {
                const zn = Roe($t);
                if (zn) {
                  const yi = {
                    getCanonicalFileName: ru(!!e.useCaseSensitiveFileNames),
                    getCurrentDirectory: () => dt.tracker.moduleResolverHost.getCurrentDirectory(),
                    getCommonSourceDirectory: () => dt.tracker.moduleResolverHost.getCommonSourceDirectory()
                  }, yn = k3(yi, zn);
                  return N.createStringLiteral(yn);
                }
              }
            } else if (dt.tracker && dt.tracker.trackExternalModuleSymbolOfImportTypeNode) {
              const zn = Gh(kn, kn, void 0);
              zn && dt.tracker.trackExternalModuleSymbolOfImportTypeNode(zn);
            }
            return kn;
          }
        }
      }
      function Ku(dt, Ee, er) {
        const Qn = pp(N.createPropertyDeclaration, 171, !0), Tr = pp((wt, xr, Ei, si) => N.createPropertySignature(wt, xr, Ei, si), 170, !1), wr = Ee.enclosingDeclaration;
        let Ra = [];
        const Di = /* @__PURE__ */ new Set(), Lr = [], bt = Ee;
        Ee = {
          ...bt,
          usedSymbolNames: new Set(bt.usedSymbolNames),
          remappedSymbolNames: /* @__PURE__ */ new Map(),
          tracker: void 0
        };
        const Ft = {
          ...bt.tracker.inner,
          trackSymbol: (wt, xr, Ei) => {
            var si;
            if (Jy(wt, xr, Ei, !1).accessibility === 0) {
              const os = Kn(wt, Ee, Ei);
              wt.flags & 4 || Vs(os[0]);
            } else if ((si = bt.tracker.inner) != null && si.trackSymbol)
              return bt.tracker.inner.trackSymbol(wt, xr, Ei);
            return !1;
          }
        };
        Ee.tracker = new x8(Ee, Ft, bt.tracker.moduleResolverHost), of(dt, (wt, xr) => {
          const Ei = ta(xr);
          Fd(wt, Ei);
        });
        let en = !er;
        const $t = dt.get("export=");
        return $t && dt.size > 1 && $t.flags & 2097152 && (dt = lo(), dt.set("export=", $t)), Sa(dt), ur(Ra);
        function kn(wt) {
          return !!wt && wt.kind === 79;
        }
        function zn(wt) {
          return uc(wt) ? lr(jt(wt.declarationList.declarations, ka), kn) : lr([ka(wt)], kn);
        }
        function sa(wt) {
          const xr = nn(wt, Bl), Ei = vi(wt, Jl);
          let si = Ei !== -1 ? wt[Ei] : void 0;
          if (si && xr && xr.isExportEquals && je(xr.expression) && je(si.name) && Mr(si.name) === Mr(xr.expression) && si.body && tm(si.body)) {
            const ci = lr(wt, (ra) => !!(Mu(ra) & 1)), os = si.name;
            let Ua = si.body;
            if (Le(ci) && (si = N.updateModuleDeclaration(si, si.modifiers, si.name, Ua = N.updateModuleBlock(Ua, N.createNodeArray([...si.body.statements, N.createExportDeclaration(void 0, !1, N.createNamedExports(jt(ca(ci, (ra) => zn(ra)), (ra) => N.createExportSpecifier(!1, void 0, ra))), void 0)]))), wt = [...wt.slice(0, Ei), si, ...wt.slice(Ei + 1)]), !nn(wt, (ra) => ra !== si && WR(ra, os))) {
              Ra = [];
              const ra = !kt(Ua.statements, (zo) => Yr(zo, 1) || Bl(zo) || eu(zo));
              ze(Ua.statements, (zo) => {
                nt(zo, ra ? 1 : 0);
              }), wt = [...lr(wt, (zo) => zo !== si && zo !== xr), ...Ra];
            }
          }
          return wt;
        }
        function yi(wt) {
          const xr = lr(wt, (si) => eu(si) && !si.moduleSpecifier && !!si.exportClause && J_(si.exportClause));
          Le(xr) > 1 && (wt = [...lr(wt, (ci) => !eu(ci) || !!ci.moduleSpecifier || !ci.exportClause), N.createExportDeclaration(void 0, !1, N.createNamedExports(ca(xr, (ci) => oo(ci.exportClause, J_).elements)), void 0)]);
          const Ei = lr(wt, (si) => eu(si) && !!si.moduleSpecifier && !!si.exportClause && J_(si.exportClause));
          if (Le(Ei) > 1) {
            const si = oI(Ei, (ci) => jo(ci.moduleSpecifier) ? ">" + ci.moduleSpecifier.text : ">");
            if (si.length !== Ei.length)
              for (const ci of si)
                ci.length > 1 && (wt = [
                  ...lr(wt, (os) => ci.indexOf(os) === -1),
                  N.createExportDeclaration(void 0, !1, N.createNamedExports(ca(ci, (os) => oo(os.exportClause, J_).elements)), ci[0].moduleSpecifier)
                ]);
          }
          return wt;
        }
        function yn(wt) {
          const xr = vi(wt, (Ei) => eu(Ei) && !Ei.moduleSpecifier && !Ei.assertClause && !!Ei.exportClause && J_(Ei.exportClause));
          if (xr >= 0) {
            const Ei = wt[xr], si = ia(Ei.exportClause.elements, (ci) => {
              if (!ci.propertyName) {
                const os = lR(wt), Ua = lr(os, (ra) => WR(wt[ra], ci.name));
                if (Le(Ua) && Yn(Ua, (ra) => uO(wt[ra]))) {
                  for (const ra of Ua)
                    wt[ra] = ei(wt[ra]);
                  return;
                }
              }
              return ci;
            });
            Le(si) ? wt[xr] = N.updateExportDeclaration(Ei, Ei.modifiers, Ei.isTypeOnly, N.updateNamedExports(Ei.exportClause, si), Ei.moduleSpecifier, Ei.assertClause) : i1(wt, xr);
          }
          return wt;
        }
        function ur(wt) {
          return wt = sa(wt), wt = yi(wt), wt = yn(wt), wr && (qi(wr) && sf(wr) || Jl(wr)) && (!kt(wt, QR) || !kce(wt) && kt(wt, GM)) && wt.push(UO(N)), wt;
        }
        function ei(wt) {
          const xr = (Mu(wt) | 1) & -3;
          return N.updateModifiers(wt, xr);
        }
        function vr(wt) {
          const xr = Mu(wt) & -2;
          return N.updateModifiers(wt, xr);
        }
        function Sa(wt, xr, Ei) {
          xr || Lr.push(/* @__PURE__ */ new Map()), wt.forEach((si) => {
            cs(si, !1, !!Ei);
          }), xr || (Lr[Lr.length - 1].forEach((si) => {
            cs(si, !0, !!Ei);
          }), Lr.pop());
        }
        function cs(wt, xr, Ei) {
          const si = as(wt);
          if (Di.has(bo(si)))
            return;
          if (Di.add(bo(si)), !xr || Le(wt.declarations) && kt(wt.declarations, (os) => !!nr(os, (Ua) => Ua === wr))) {
            const os = Ee;
            Ee = Un(Ee), Gs(wt, xr, Ei), Ee.reportedDiagnostic && (bt.reportedDiagnostic = Ee.reportedDiagnostic), Ee = os;
          }
        }
        function Gs(wt, xr, Ei) {
          var si, ci, os, Ua;
          const ra = ta(wt.escapedName), zo = wt.escapedName === "default";
          if (xr && !(Ee.flags & 131072) && ax(ra) && !zo) {
            Ee.encounteredError = !0;
            return;
          }
          let vs = zo && !!(wt.flags & -113 || wt.flags & 16 && Le(ms(ar(wt)))) && !(wt.flags & 2097152), rc = !vs && !xr && ax(ra) && !zo;
          (vs || rc) && (xr = !0);
          const Ic = (xr ? 0 : 1) | (zo && !vs ? 1024 : 0), Tf = wt.flags & 1536 && wt.flags & 7 && wt.escapedName !== "export=", _u = Tf && fu(ar(wt), wt);
          if ((wt.flags & 8208 || _u) && Vr(ar(wt), wt, Fd(wt, ra), Ic), wt.flags & 524288 && St(wt, ra, Ic), wt.flags & 7 && wt.escapedName !== "export=" && !(wt.flags & 4194304) && !(wt.flags & 32) && !(wt.flags & 8192) && !_u)
            if (Ei)
              ks(wt) && (rc = !1, vs = !1);
            else {
              const Hs = ar(wt), Nl = Fd(wt, ra);
              if (!(wt.flags & 16) && fu(Hs, wt))
                Vr(Hs, wt, Nl, Ic);
              else {
                const ry = wt.flags & 2 ? OL(wt) ? 2 : 1 : (si = wt.parent) != null && si.valueDeclaration && qi((ci = wt.parent) == null ? void 0 : ci.valueDeclaration) ? 2 : void 0, fh = vs || !(wt.flags & 4) ? Nl : nA(Nl, wt);
                let _h = wt.declarations && nn(wt.declarations, (pv) => Ki(pv));
                _h && Uu(_h.parent) && _h.parent.declarations.length === 1 && (_h = _h.parent.parent);
                const DS = (os = wt.declarations) == null ? void 0 : os.find(Fr);
                if (DS && br(DS.parent) && je(DS.parent.right) && ((Ua = Hs.symbol) != null && Ua.valueDeclaration) && qi(Hs.symbol.valueDeclaration)) {
                  const pv = Nl === DS.parent.right.escapedText ? void 0 : DS.parent.right;
                  nt(N.createExportDeclaration(void 0, !1, N.createNamedExports([N.createExportSpecifier(!1, pv, Nl)])), 0), Ee.tracker.trackSymbol(Hs.symbol, Ee.enclosingDeclaration, 111551);
                } else {
                  const pv = ht(N.createVariableStatement(void 0, N.createVariableDeclarationList([
                    N.createVariableDeclaration(fh, void 0, na(Ee, Hs, wt, wr, Vs, er))
                  ], ry)), _h);
                  nt(pv, fh !== Nl ? Ic & -2 : Ic), fh !== Nl && !xr && (nt(N.createExportDeclaration(void 0, !1, N.createNamedExports([N.createExportSpecifier(!1, fh, Nl)])), 0), rc = !1, vs = !1);
                }
              }
            }
          if (wt.flags & 384 && Sr(wt, ra, Ic), wt.flags & 32 && (wt.flags & 4 && wt.valueDeclaration && br(wt.valueDeclaration.parent) && Gu(wt.valueDeclaration.parent.right) ? Bo(wt, Fd(wt, ra), Ic) : pi(wt, Fd(wt, ra), Ic)), (wt.flags & 1536 && (!Tf || mr(wt)) || _u) && Ln(wt, ra, Ic), wt.flags & 64 && !(wt.flags & 32) && tn(wt, ra, Ic), wt.flags & 2097152 && Bo(wt, Fd(wt, ra), Ic), wt.flags & 4 && wt.escapedName === "export=" && ks(wt), wt.flags & 8388608 && wt.declarations)
            for (const Hs of wt.declarations) {
              const Nl = du(Hs, Hs.moduleSpecifier);
              Nl && nt(N.createExportDeclaration(void 0, Hs.isTypeOnly, void 0, N.createStringLiteral(ln(Nl, Ee))), 0);
            }
          vs ? nt(N.createExportAssignment(void 0, !1, N.createIdentifier(Fd(wt, ra))), 0) : rc && nt(N.createExportDeclaration(void 0, !1, N.createNamedExports([N.createExportSpecifier(!1, Fd(wt, ra), ra)])), 0);
        }
        function Vs(wt) {
          if (kt(wt.declarations, hT))
            return;
          D.assertIsDefined(Lr[Lr.length - 1]), nA(ta(wt.escapedName), wt);
          const xr = !!(wt.flags & 2097152) && !kt(wt.declarations, (Ei) => !!nr(Ei, eu) || Ih(Ei) || su(Ei) && !zm(Ei.moduleReference));
          Lr[xr ? 0 : Lr.length - 1].set(bo(wt), wt);
        }
        function bd(wt) {
          return qi(wt) && (sf(wt) || p_(wt)) || Pu(wt) && !Kp(wt);
        }
        function nt(wt, xr) {
          if (K_(wt)) {
            let Ei = 0;
            const si = Ee.enclosingDeclaration && (m_(Ee.enclosingDeclaration) ? Zn(Ee.enclosingDeclaration) : Ee.enclosingDeclaration);
            xr & 1 && si && (bd(si) || Jl(si)) && uO(wt) && (Ei |= 1), en && !(Ei & 1) && (!si || !(si.flags & 16777216)) && (eb(wt) || uc(wt) || yc(wt) || Nc(wt) || Jl(wt)) && (Ei |= 2), xr & 1024 && (Nc(wt) || nd(wt) || yc(wt)) && (Ei |= 1024), Ei && (wt = N.updateModifiers(wt, Ei | Mu(wt)));
          }
          Ra.push(wt);
        }
        function St(wt, xr, Ei) {
          var si;
          const ci = Db(wt), os = Wi(wt).typeParameters, Ua = jt(os, (Tf) => _t(Tf, Ee)), ra = (si = wt.declarations) == null ? void 0 : si.find(m_), zo = qR(ra ? ra.comment || ra.parent.comment : void 0), vs = Ee.flags;
          Ee.flags |= 8388608;
          const rc = Ee.enclosingDeclaration;
          Ee.enclosingDeclaration = ra;
          const Ic = ra && ra.typeExpression && wT(ra.typeExpression) && Ao(Ee, ra.typeExpression.type, Vs, er) || u(ci, Ee);
          nt(w1(N.createTypeAliasDeclaration(void 0, Fd(wt, xr), Ua, Ic), zo ? [{ kind: 3, text: `*
 * ` + zo.replace(/\n/g, `
 * `) + `
 `, pos: -1, end: -1, hasTrailingNewLine: !0 }] : []), Ei), Ee.flags = vs, Ee.enclosingDeclaration = rc;
        }
        function tn(wt, xr, Ei) {
          const si = zu(wt), ci = ev(wt), os = jt(ci, (_u) => _t(_u, Ee)), Ua = Mo(si), ra = Le(Ua) ? wo(Ua) : void 0, zo = ca(ms(si), (_u) => dh(_u, ra)), vs = O0(0, si, ra, 176), rc = O0(1, si, ra, 177), Ic = wS(si, ra), Tf = Le(Ua) ? [N.createHeritageClause(94, ia(Ua, (_u) => Tm(_u, 111551)))] : void 0;
          nt(N.createInterfaceDeclaration(void 0, Fd(wt, xr), os, Tf, [...Ic, ...rc, ...vs, ...zo]), Ei);
        }
        function Wn(wt) {
          return wt.exports ? lr(Ro(wt.exports.values()), qa) : [];
        }
        function mr(wt) {
          return Yn(Wn(wt), (xr) => !(uu(Yl(xr)) & 111551));
        }
        function Ln(wt, xr, Ei) {
          const si = Wn(wt), ci = _R(si, (ra) => ra.parent && ra.parent === wt ? "real" : "merged"), os = ci.get("real") || rt, Ua = ci.get("merged") || rt;
          if (Le(os)) {
            const ra = Fd(wt, xr);
            Ca(os, ra, Ei, !!(wt.flags & 67108880));
          }
          if (Le(Ua)) {
            const ra = Zn(Ee.enclosingDeclaration), zo = Fd(wt, xr), vs = N.createModuleBlock([N.createExportDeclaration(void 0, !1, N.createNamedExports(ia(lr(Ua, (rc) => rc.escapedName !== "export="), (rc) => {
              var Ic, Tf;
              const _u = ta(rc.escapedName), Hs = Fd(rc, _u), Nl = rc.declarations && md(rc);
              if (ra && (Nl ? ra !== Zn(Nl) : !kt(rc.declarations, (_h) => Zn(_h) === ra))) {
                (Tf = (Ic = Ee.tracker) == null ? void 0 : Ic.reportNonlocalAugmentation) == null || Tf.call(Ic, ra, wt, rc);
                return;
              }
              const ry = Nl && ap(Nl, !0);
              Vs(ry || rc);
              const fh = ry ? Fd(ry, ta(ry.escapedName)) : Hs;
              return N.createExportSpecifier(!1, _u === fh ? void 0 : fh, _u);
            })))]);
            nt(N.createModuleDeclaration(void 0, N.createIdentifier(zo), vs, 16), 0);
          }
        }
        function Sr(wt, xr, Ei) {
          nt(N.createEnumDeclaration(N.createModifiersFromModifierFlags(toe(wt) ? 2048 : 0), Fd(wt, xr), jt(lr(ms(ar(wt)), (si) => !!(si.flags & 8)), (si) => {
            const ci = si.declarations && si.declarations[0] && O1(si.declarations[0]) ? koe(si.declarations[0]) : void 0;
            return N.createEnumMember(ta(si.escapedName), ci === void 0 ? void 0 : typeof ci == "string" ? N.createStringLiteral(ci) : N.createNumericLiteral(ci));
          })), Ei);
        }
        function Vr(wt, xr, Ei, si) {
          const ci = za(wt, 0);
          for (const os of ci) {
            const Ua = ge(os, 259, Ee, { name: N.createIdentifier(Ei), privateSymbolVisitor: Vs, bundledImports: er });
            nt(ht(Ua, Ui(os)), si);
          }
          if (!(xr.flags & 1536 && xr.exports && xr.exports.size)) {
            const os = lr(ms(wt), qa);
            Ca(os, Ei, si, !0);
          }
        }
        function Ui(wt) {
          if (wt.declaration && wt.declaration.parent) {
            if (br(wt.declaration.parent) && Cl(wt.declaration.parent) === 5)
              return wt.declaration.parent;
            if (Ki(wt.declaration.parent) && wt.declaration.parent.parent)
              return wt.declaration.parent.parent;
          }
          return wt.declaration;
        }
        function Ca(wt, xr, Ei, si) {
          if (Le(wt)) {
            const os = _R(wt, (Hs) => !Le(Hs.declarations) || kt(Hs.declarations, (Nl) => Zn(Nl) === Zn(Ee.enclosingDeclaration)) ? "local" : "remote").get("local") || rt;
            let Ua = Jm.createModuleDeclaration(void 0, N.createIdentifier(xr), N.createModuleBlock([]), 16);
            Vo(Ua, wr), Ua.locals = lo(wt), Ua.symbol = wt[0].parent;
            const ra = Ra;
            Ra = [];
            const zo = en;
            en = !1;
            const vs = { ...Ee, enclosingDeclaration: Ua }, rc = Ee;
            Ee = vs, Sa(lo(os), si, !0), Ee = rc, en = zo;
            const Ic = Ra;
            Ra = ra;
            const Tf = jt(Ic, (Hs) => Bl(Hs) && !Hs.isExportEquals && je(Hs.expression) ? N.createExportDeclaration(void 0, !1, N.createNamedExports([N.createExportSpecifier(!1, Hs.expression, N.createIdentifier("default"))])) : Hs), _u = Yn(Tf, (Hs) => Yr(Hs, 1)) ? jt(Tf, vr) : Tf;
            Ua = N.updateModuleDeclaration(Ua, Ua.modifiers, Ua.name, N.createModuleBlock(_u)), nt(Ua, Ei);
          }
        }
        function qa(wt) {
          return !!(wt.flags & 2887656) || !(wt.flags & 4194304 || wt.escapedName === "prototype" || wt.valueDeclaration && Ja(wt.valueDeclaration) && di(wt.valueDeclaration.parent));
        }
        function Za(wt) {
          const xr = ia(wt, (Ei) => {
            const si = Ee.enclosingDeclaration;
            Ee.enclosingDeclaration = Ei;
            let ci = Ei.expression;
            if (zl(ci)) {
              if (je(ci) && Mr(ci) === "")
                return os(void 0);
              let Ua;
              if ({ introducesError: Ua, node: ci } = gl(ci, Ee, Vs), Ua)
                return os(void 0);
            }
            return os(N.createExpressionWithTypeArguments(ci, jt(Ei.typeArguments, (Ua) => Ao(Ee, Ua, Vs, er) || u(fi(Ua), Ee))));
            function os(Ua) {
              return Ee.enclosingDeclaration = si, Ua;
            }
          });
          if (xr.length === wt.length)
            return xr;
        }
        function pi(wt, xr, Ei) {
          var si, ci;
          const os = (si = wt.declarations) == null ? void 0 : si.find(di), Ua = Ee.enclosingDeclaration;
          Ee.enclosingDeclaration = os || Ua;
          const ra = ev(wt), zo = jt(ra, (Vp) => _t(Vp, Ee)), vs = zu(wt), rc = Mo(vs), Ic = os && XA(os), Tf = Ic && Za(Ic) || ia(zi(vs), tA), _u = ar(wt), Hs = !!((ci = _u.symbol) != null && ci.valueDeclaration) && di(_u.symbol.valueDeclaration), Nl = Hs ? ii(_u) : we, ry = [
            ...Le(rc) ? [N.createHeritageClause(94, jt(rc, (Vp) => YL(Vp, Nl, xr)))] : [],
            ...Le(Tf) ? [N.createHeritageClause(117, Tf)] : []
          ], fh = Xat(vs, rc, ms(vs)), _h = lr(fh, (Vp) => {
            const $L = Vp.valueDeclaration;
            return !!$L && !(gu($L) && Ni($L.name));
          }), pv = kt(fh, (Vp) => {
            const $L = Vp.valueDeclaration;
            return !!$L && gu($L) && Ni($L.name);
          }) ? [N.createPropertyDeclaration(void 0, N.createPrivateIdentifier("#private"), void 0, void 0, void 0)] : rt, Goe = ca(_h, (Vp) => Qn(Vp, !1, rc[0])), Uoe = ca(lr(ms(_u), (Vp) => !(Vp.flags & 4194304) && Vp.escapedName !== "prototype" && !qa(Vp)), (Vp) => Qn(Vp, !0, Nl)), dlt = !Hs && !!wt.valueDeclaration && fr(wt.valueDeclaration) && !kt(za(_u, 1)) ? [N.createConstructorDeclaration(N.createModifiersFromModifierFlags(8), [], void 0)] : O0(1, _u, Nl, 173), flt = wS(vs, rc[0]);
          Ee.enclosingDeclaration = Ua, nt(ht(N.createClassDeclaration(void 0, xr, zo, ry, [...flt, ...Uoe, ...dlt, ...Goe, ...pv]), wt.declarations && lr(wt.declarations, (Vp) => Nc(Vp) || Gu(Vp))[0]), Ei);
        }
        function eo(wt) {
          return Jt(wt, (xr) => {
            if (Ld(xr) || dd(xr))
              return Mr(xr.propertyName || xr.name);
            if (br(xr) || Bl(xr)) {
              const Ei = Bl(xr) ? xr.expression : xr.right;
              if (Fr(Ei))
                return Mr(Ei.name);
            }
            if (Og(xr)) {
              const Ei = ka(xr);
              if (Ei && je(Ei))
                return Mr(Ei);
            }
          });
        }
        function Bo(wt, xr, Ei) {
          var si, ci, os, Ua, ra;
          const zo = md(wt);
          if (!zo)
            return D.fail();
          const vs = as(ap(zo, !0));
          if (!vs)
            return;
          let rc = MI(vs) && eo(wt.declarations) || ta(vs.escapedName);
          rc === "export=" && (H_(Y) || Y.allowSyntheticDefaultImports) && (rc = "default");
          const Ic = Fd(vs, rc);
          switch (Vs(vs), zo.kind) {
            case 205:
              if (((ci = (si = zo.parent) == null ? void 0 : si.parent) == null ? void 0 : ci.kind) === 257) {
                const Hs = ln(vs.parent || vs, Ee), { propertyName: Nl } = zo;
                nt(N.createImportDeclaration(void 0, N.createImportClause(!1, void 0, N.createNamedImports([N.createImportSpecifier(!1, Nl && je(Nl) ? N.createIdentifier(Mr(Nl)) : void 0, N.createIdentifier(xr))])), N.createStringLiteral(Hs), void 0), 0);
                break;
              }
              D.failBadSyntaxKind(((os = zo.parent) == null ? void 0 : os.parent) || zo, "Unhandled binding element grandparent kind in declaration serialization");
              break;
            case 300:
              ((ra = (Ua = zo.parent) == null ? void 0 : Ua.parent) == null ? void 0 : ra.kind) === 223 && Do(ta(wt.escapedName), Ic);
              break;
            case 257:
              if (Fr(zo.initializer)) {
                const Hs = zo.initializer, Nl = N.createUniqueName(xr), ry = ln(vs.parent || vs, Ee);
                nt(N.createImportEqualsDeclaration(void 0, !1, Nl, N.createExternalModuleReference(N.createStringLiteral(ry))), 0), nt(N.createImportEqualsDeclaration(void 0, !1, N.createIdentifier(xr), N.createQualifiedName(Nl, Hs.name)), Ei);
                break;
              }
            case 268:
              if (vs.escapedName === "export=" && kt(vs.declarations, (Hs) => qi(Hs) && p_(Hs))) {
                ks(wt);
                break;
              }
              const Tf = !(vs.flags & 512) && !Ki(zo);
              nt(N.createImportEqualsDeclaration(void 0, !1, N.createIdentifier(xr), Tf ? ma(vs, Ee, 67108863, !1) : N.createExternalModuleReference(N.createStringLiteral(ln(vs, Ee)))), Tf ? Ei : 0);
              break;
            case 267:
              nt(N.createNamespaceExportDeclaration(Mr(zo.name)), 0);
              break;
            case 270: {
              const Hs = ln(vs.parent || vs, Ee), Nl = er ? N.createStringLiteral(Hs) : zo.parent.moduleSpecifier;
              nt(N.createImportDeclaration(void 0, N.createImportClause(!1, N.createIdentifier(xr), void 0), Nl, zo.parent.assertClause), 0);
              break;
            }
            case 271: {
              const Hs = ln(vs.parent || vs, Ee), Nl = er ? N.createStringLiteral(Hs) : zo.parent.parent.moduleSpecifier;
              nt(N.createImportDeclaration(void 0, N.createImportClause(!1, void 0, N.createNamespaceImport(N.createIdentifier(xr))), Nl, zo.parent.parent.assertClause), 0);
              break;
            }
            case 277:
              nt(N.createExportDeclaration(void 0, !1, N.createNamespaceExport(N.createIdentifier(xr)), N.createStringLiteral(ln(vs, Ee))), 0);
              break;
            case 273: {
              const Hs = ln(vs.parent || vs, Ee), Nl = er ? N.createStringLiteral(Hs) : zo.parent.parent.parent.moduleSpecifier;
              nt(N.createImportDeclaration(void 0, N.createImportClause(!1, void 0, N.createNamedImports([
                N.createImportSpecifier(!1, xr !== rc ? N.createIdentifier(rc) : void 0, N.createIdentifier(xr))
              ])), Nl, zo.parent.parent.parent.assertClause), 0);
              break;
            }
            case 278:
              const _u = zo.parent.parent.moduleSpecifier;
              Do(ta(wt.escapedName), _u ? rc : Ic, _u && xs(_u) ? N.createStringLiteral(_u.text) : void 0);
              break;
            case 274:
              ks(wt);
              break;
            case 223:
            case 208:
            case 209:
              wt.escapedName === "default" || wt.escapedName === "export=" ? ks(wt) : Do(xr, Ic);
              break;
            default:
              return D.failBadSyntaxKind(zo, "Unhandled alias declaration kind in symbol serializer!");
          }
        }
        function Do(wt, xr, Ei) {
          nt(N.createExportDeclaration(void 0, !1, N.createNamedExports([N.createExportSpecifier(!1, wt !== xr ? xr : void 0, wt)]), Ei), 0);
        }
        function ks(wt) {
          if (wt.flags & 4194304)
            return !1;
          const xr = ta(wt.escapedName), Ei = xr === "export=", ci = Ei || xr === "default", os = wt.declarations && md(wt), Ua = os && ap(os, !0);
          if (Ua && Le(Ua.declarations) && kt(Ua.declarations, (ra) => Zn(ra) === Zn(wr))) {
            const ra = os && (Bl(os) || br(os) ? xz(os) : Pue(os)), zo = ra && zl(ra) ? uot(ra) : void 0, vs = zo && Rl(zo, 67108863, !0, !0, wr);
            (vs || Ua) && Vs(vs || Ua);
            const rc = Ee.tracker.disableTrackSymbol;
            if (Ee.tracker.disableTrackSymbol = !0, ci)
              Ra.push(N.createExportAssignment(void 0, Ei, Qa(Ua, Ee, 67108863)));
            else if (zo === ra && zo)
              Do(xr, Mr(zo));
            else if (ra && Gu(ra))
              Do(xr, Fd(Ua, Ml(Ua)));
            else {
              const Ic = nA(xr, wt);
              nt(N.createImportEqualsDeclaration(void 0, !1, N.createIdentifier(Ic), ma(Ua, Ee, 67108863, !1)), 0), Do(xr, Ic);
            }
            return Ee.tracker.disableTrackSymbol = rc, !0;
          } else {
            const ra = nA(xr, wt), zo = ef(ar(as(wt)));
            if (fu(zo, wt))
              Vr(zo, wt, ra, ci ? 0 : 1);
            else {
              const vs = N.createVariableStatement(void 0, N.createVariableDeclarationList([
                N.createVariableDeclaration(ra, void 0, na(Ee, zo, wt, wr, Vs, er))
              ], 2));
              nt(vs, Ua && Ua.flags & 4 && Ua.escapedName === "export=" ? 2 : xr === ra ? 1 : 0);
            }
            return ci ? (Ra.push(N.createExportAssignment(void 0, Ei, N.createIdentifier(ra))), !0) : xr !== ra ? (Do(xr, ra), !0) : !1;
          }
        }
        function fu(wt, xr) {
          const Ei = Zn(Ee.enclosingDeclaration);
          return ti(wt) & 48 && !Le(Lu(wt)) && !Vi(wt) && !!(Le(lr(ms(wt), qa)) || Le(za(wt, 0))) && !Le(za(wt, 1)) && !sr(xr, wr) && !(wt.symbol && kt(wt.symbol.declarations, (si) => Zn(si) !== Ei)) && !kt(ms(wt), (si) => iD(si.escapedName)) && !kt(ms(wt), (si) => kt(si.declarations, (ci) => Zn(ci) !== Ei)) && Yn(ms(wt), (si) => P_(Ml(si), P));
        }
        function pp(wt, xr, Ei) {
          return function(ci, os, Ua) {
            var ra, zo, vs, rc, Ic;
            const Tf = Qf(ci), _u = !!(Tf & 8);
            if (os && ci.flags & 2887656)
              return [];
            if (ci.flags & 4194304 || Ua && uo(Ua, ci.escapedName) && _p(uo(Ua, ci.escapedName)) === _p(ci) && (ci.flags & 16777216) === (uo(Ua, ci.escapedName).flags & 16777216) && Kh(ar(ci), fc(Ua, ci.escapedName)))
              return [];
            const Hs = Tf & -513 | (os ? 32 : 0), Nl = Ef(ci, Ee), ry = (ra = ci.declarations) == null ? void 0 : ra.find(Im(to, V0, Ki, If, br, Fr));
            if (ci.flags & 98304 && Ei) {
              const fh = [];
              if (ci.flags & 65536 && fh.push(ht(N.createSetAccessorDeclaration(N.createModifiersFromModifierFlags(Hs), Nl, [N.createParameterDeclaration(void 0, void 0, "arg", void 0, _u ? void 0 : na(Ee, ar(ci), ci, wr, Vs, er))], void 0), ((zo = ci.declarations) == null ? void 0 : zo.find(hy)) || ry)), ci.flags & 32768) {
                const _h = Tf & 8;
                fh.push(ht(N.createGetAccessorDeclaration(N.createModifiersFromModifierFlags(Hs), Nl, [], _h ? void 0 : na(Ee, ar(ci), ci, wr, Vs, er), void 0), ((vs = ci.declarations) == null ? void 0 : vs.find(Iv)) || ry));
              }
              return fh;
            } else if (ci.flags & 98311)
              return ht(wt(N.createModifiersFromModifierFlags((_p(ci) ? 64 : 0) | Hs), Nl, ci.flags & 16777216 ? N.createToken(57) : void 0, _u ? void 0 : na(Ee, yL(ci), ci, wr, Vs, er), void 0), ((rc = ci.declarations) == null ? void 0 : rc.find(Im(to, Ki))) || ry);
            if (ci.flags & 8208) {
              const fh = ar(ci), _h = za(fh, 0);
              if (Hs & 8)
                return ht(wt(N.createModifiersFromModifierFlags((_p(ci) ? 64 : 0) | Hs), Nl, ci.flags & 16777216 ? N.createToken(57) : void 0, void 0, void 0), ((Ic = ci.declarations) == null ? void 0 : Ic.find(Qs)) || _h[0] && _h[0].declaration || ci.declarations && ci.declarations[0]);
              const DS = [];
              for (const pv of _h) {
                const Goe = ge(pv, xr, Ee, {
                  name: Nl,
                  questionToken: ci.flags & 16777216 ? N.createToken(57) : void 0,
                  modifiers: Hs ? N.createModifiersFromModifierFlags(Hs) : void 0
                }), Uoe = pv.declaration && TN(pv.declaration.parent) ? pv.declaration.parent : pv.declaration;
                DS.push(ht(Goe, Uoe));
              }
              return DS;
            }
            return D.fail(`Unhandled class member kind! ${ci.__debugFlags || ci.flags}`);
          };
        }
        function dh(wt, xr) {
          return Tr(wt, !1, xr);
        }
        function O0(wt, xr, Ei, si) {
          const ci = za(xr, wt);
          if (wt === 1) {
            if (!Ei && Yn(ci, (ra) => Le(ra.parameters) === 0))
              return [];
            if (Ei) {
              const ra = za(Ei, 1);
              if (!Le(ra) && Yn(ci, (zo) => Le(zo.parameters) === 0))
                return [];
              if (ra.length === ci.length) {
                let zo = !1;
                for (let vs = 0; vs < ra.length; vs++)
                  if (!GP(ci[vs], ra[vs], !1, !1, !0, gD)) {
                    zo = !0;
                    break;
                  }
                if (!zo)
                  return [];
              }
            }
            let Ua = 0;
            for (const ra of ci)
              ra.declaration && (Ua |= cx(ra.declaration, 24));
            if (Ua)
              return [ht(N.createConstructorDeclaration(N.createModifiersFromModifierFlags(Ua), [], void 0), ci[0].declaration)];
          }
          const os = [];
          for (const Ua of ci) {
            const ra = ge(Ua, si, Ee);
            os.push(ht(ra, Ua.declaration));
          }
          return os;
        }
        function wS(wt, xr) {
          const Ei = [];
          for (const si of Lu(wt)) {
            if (xr) {
              const ci = sh(xr, si.keyType);
              if (ci && Kh(si.type, ci.type))
                continue;
            }
            Ei.push($(si, Ee, void 0));
          }
          return Ei;
        }
        function YL(wt, xr, Ei) {
          const si = Tm(wt, 111551);
          if (si)
            return si;
          const ci = nA(`${Ei}_base`), os = N.createVariableStatement(void 0, N.createVariableDeclarationList([
            N.createVariableDeclaration(ci, void 0, u(xr, Ee))
          ], 2));
          return nt(os, 0), N.createExpressionWithTypeArguments(N.createIdentifier(ci), void 0);
        }
        function Tm(wt, xr) {
          let Ei, si;
          if (wt.target && bE(wt.target.symbol, wr, xr) ? (Ei = jt(hs(wt), (ci) => u(ci, Ee)), si = Qa(wt.target.symbol, Ee, 788968)) : wt.symbol && bE(wt.symbol, wr, xr) && (si = Qa(wt.symbol, Ee, 788968)), si)
            return N.createExpressionWithTypeArguments(si, Ei);
        }
        function tA(wt) {
          const xr = Tm(wt, 788968);
          if (xr)
            return xr;
          if (wt.symbol)
            return N.createExpressionWithTypeArguments(Qa(wt.symbol, Ee, 788968), void 0);
        }
        function nA(wt, xr) {
          var Ei, si;
          const ci = xr ? bo(xr) : void 0;
          if (ci && Ee.remappedSymbolNames.has(ci))
            return Ee.remappedSymbolNames.get(ci);
          xr && (wt = WE(xr, wt));
          let os = 0;
          const Ua = wt;
          for (; (Ei = Ee.usedSymbolNames) != null && Ei.has(wt); )
            os++, wt = `${Ua}_${os}`;
          return (si = Ee.usedSymbolNames) == null || si.add(wt), ci && Ee.remappedSymbolNames.set(ci, wt), wt;
        }
        function WE(wt, xr) {
          if (xr === "default" || xr === "__class" || xr === "__function") {
            const Ei = Ee.flags;
            Ee.flags |= 16777216;
            const si = Xy(wt, Ee);
            Ee.flags = Ei, xr = si.length > 0 && mN(si.charCodeAt(0)) ? V_(si) : si;
          }
          return xr === "default" ? xr = "_default" : xr === "export=" && (xr = "_exports"), xr = P_(xr, P) && !ax(xr) ? xr : "_" + xr.replace(/[^a-zA-Z0-9]/g, "_"), xr;
        }
        function Fd(wt, xr) {
          const Ei = bo(wt);
          return Ee.remappedSymbolNames.has(Ei) ? Ee.remappedSymbolNames.get(Ei) : (xr = WE(wt, xr), Ee.remappedSymbolNames.set(Ei, xr), xr);
        }
      }
    }
    function nu(n, a, l = 16384, u) {
      return u ? p(u).getText() : NI(p);
      function p(g) {
        const x = N.createTypePredicateNode(n.kind === 2 || n.kind === 3 ? N.createToken(129) : void 0, n.kind === 1 || n.kind === 3 ? N.createIdentifier(n.parameterName) : N.createThisTypeNode(), n.type && Ye.typeToTypeNode(n.type, a, li(l) | 70221824 | 512)), R = H1(), M = a && Zn(a);
        return R.writeNode(4, x, M, g), g;
      }
    }
    function Qd(n) {
      const a = [];
      let l = 0;
      for (let u = 0; u < n.length; u++) {
        const p = n[u];
        if (l |= p.flags, !(p.flags & 98304)) {
          if (p.flags & 1568) {
            const g = p.flags & 512 ? Re : rD(p);
            if (g.flags & 1048576) {
              const x = g.types.length;
              if (u + x <= n.length && yd(n[u + x - 1]) === yd(g.types[x - 1])) {
                a.push(g), u += x - 1;
                continue;
              }
            }
          }
          a.push(p);
        }
      }
      return l & 65536 && a.push(Sn), l & 32768 && a.push(He), a || n;
    }
    function yf(n) {
      return n === 8 ? "private" : n === 16 ? "protected" : "public";
    }
    function Ky(n) {
      if (n.symbol && n.symbol.flags & 2048 && n.symbol.declarations) {
        const a = DN(n.symbol.declarations[0].parent);
        if (em(a))
          return Ir(a);
      }
    }
    function Zd(n) {
      return n && n.parent && n.parent.kind === 265 && h1(n.parent.parent);
    }
    function h0(n) {
      return n.kind === 308 || Pu(n);
    }
    function g0(n, a) {
      const l = Wi(n).nameType;
      if (l) {
        if (l.flags & 384) {
          const u = "" + l.value;
          return !P_(u, ts(Y)) && !xh(u) ? `"${ox(u, 34)}"` : xh(u) && xa(u, "-") ? `[${u}]` : u;
        }
        if (l.flags & 8192)
          return `[${Xy(l.symbol, a)}]`;
      }
    }
    function Xy(n, a) {
      if (a && n.escapedName === "default" && !(a.flags & 16384) && (!(a.flags & 16777216) || !n.declarations || a.enclosingDeclaration && nr(n.declarations[0], h0) !== nr(a.enclosingDeclaration, h0)))
        return "default";
      if (n.declarations && n.declarations.length) {
        let u = Jt(n.declarations, (g) => ka(g) ? g : void 0);
        const p = u && ka(u);
        if (u && p) {
          if (no(u) && ex(u))
            return Ml(n);
          if (As(p) && !(Ll(n) & 4096)) {
            const g = Wi(n).nameType;
            if (g && g.flags & 384) {
              const x = g0(n, a);
              if (x !== void 0)
                return x;
            }
          }
          return ws(p);
        }
        if (u || (u = n.declarations[0]), u.parent && u.parent.kind === 257)
          return ws(u.parent.name);
        switch (u.kind) {
          case 228:
          case 215:
          case 216:
            return a && !a.encounteredError && !(a.flags & 131072) && (a.encounteredError = !0), u.kind === 228 ? "(Anonymous class)" : "(Anonymous function)";
        }
      }
      const l = g0(n, a);
      return l !== void 0 ? l : Ml(n);
    }
    function L_(n) {
      if (n) {
        const l = Jr(n);
        return l.isVisible === void 0 && (l.isVisible = !!a()), l.isVisible;
      }
      return !1;
      function a() {
        switch (n.kind) {
          case 341:
          case 349:
          case 343:
            return !!(n.parent && n.parent.parent && n.parent.parent.parent && qi(n.parent.parent.parent));
          case 205:
            return L_(n.parent.parent);
          case 257:
            if (Xa(n.name) && !n.name.elements.length)
              return !1;
          case 264:
          case 260:
          case 261:
          case 262:
          case 259:
          case 263:
          case 268:
            if (h1(n))
              return !0;
            const l = SE(n);
            return !(_y(n) & 1) && !(n.kind !== 268 && l.kind !== 308 && l.flags & 16777216) ? Qm(l) : L_(l);
          case 169:
          case 168:
          case 174:
          case 175:
          case 171:
          case 170:
            if (Gd(n, 24))
              return !1;
          case 173:
          case 177:
          case 176:
          case 178:
          case 166:
          case 265:
          case 181:
          case 182:
          case 184:
          case 180:
          case 185:
          case 186:
          case 189:
          case 190:
          case 193:
          case 199:
            return L_(n.parent);
          case 270:
          case 271:
          case 273:
            return !1;
          case 165:
          case 308:
          case 267:
            return !0;
          case 274:
            return !1;
          default:
            return !1;
        }
      }
    }
    function TE(n, a) {
      let l;
      n.parent && n.parent.kind === 274 ? l = _l(n, n.escapedText, 2998271, void 0, n, !1) : n.parent.kind === 278 && (l = A_(n.parent, 2998271));
      let u, p;
      return l && (p = /* @__PURE__ */ new Set(), p.add(bo(l)), g(l.declarations)), u;
      function g(x) {
        ze(x, (R) => {
          const M = pS(R) || R;
          if (a ? Jr(R).isVisible = !0 : (u = u || [], d_(u, M)), VA(R)) {
            const J = R.moduleReference, $ = Lf(J), ge = _l(R, $.escapedText, 901119, void 0, void 0, !1);
            ge && p && hv(p, bo(ge)) && g(ge.declarations);
          }
        });
      }
    }
    function Bf(n, a) {
      const l = ih(n, a);
      if (l >= 0) {
        const { length: u } = Ag;
        for (let p = l; p < u; p++)
          ep[p] = !1;
        return !1;
      }
      return Ag.push(n), ep.push(!0), Zv.push(a), !0;
    }
    function ih(n, a) {
      for (let l = Ag.length - 1; l >= 0; l--) {
        if (Yy(Ag[l], Zv[l]))
          return -1;
        if (Ag[l] === n && Zv[l] === a)
          return l;
      }
      return -1;
    }
    function Yy(n, a) {
      switch (a) {
        case 0:
          return !!Wi(n).type;
        case 5:
          return !!Jr(n).resolvedEnumType;
        case 2:
          return !!Wi(n).declaredType;
        case 1:
          return !!n.resolvedBaseConstructorType;
        case 3:
          return !!n.resolvedReturnType;
        case 4:
          return !!n.immediateBaseConstraint;
        case 6:
          return !!n.resolvedTypeArguments;
        case 7:
          return !!n.baseTypesResolved;
        case 8:
          return !!Wi(n).writeType;
        case 9:
          return Jr(n).parameterInitializerContainsUndefined !== void 0;
      }
      return D.assertNever(a);
    }
    function i_() {
      return Ag.pop(), Zv.pop(), ep.pop();
    }
    function SE(n) {
      return nr(Fm(n), (a) => {
        switch (a.kind) {
          case 257:
          case 258:
          case 273:
          case 272:
          case 271:
          case 270:
            return !1;
          default:
            return !0;
        }
      }).parent;
    }
    function y0(n) {
      const a = Us(gd(n));
      return a.typeParameters ? Kg(a, jt(a.typeParameters, (l) => we)) : a;
    }
    function fc(n, a) {
      const l = uo(n, a);
      return l ? ar(l) : void 0;
    }
    function _P(n, a) {
      var l;
      return fc(n, a) || ((l = P2(n, a)) == null ? void 0 : l.type) || he;
    }
    function Ss(n) {
      return n && (n.flags & 1) !== 0;
    }
    function rs(n) {
      return n === Ce || !!(n.flags & 1 && n.aliasSymbol);
    }
    function I2(n, a) {
      if (a !== 0)
        return is(n, !1, a);
      const l = Ir(n);
      return l && Wi(l).type || is(n, !1, a);
    }
    function k2(n, a, l) {
      if (n = _c(n, (M) => !(M.flags & 98304)), n.flags & 131072)
        return pa;
      if (n.flags & 1048576)
        return $s(n, (M) => k2(M, a, l));
      let u = Qr(jt(a, Xg));
      const p = [], g = [];
      for (const M of ms(n)) {
        const J = AL(M, 8576);
        !xo(J, u) && !(Qf(M) & 24) && OU(M) ? p.push(M) : g.push(J);
      }
      if (Fb(n) || A0(u)) {
        if (g.length && (u = Qr([u, ...g])), u.flags & 131072)
          return n;
        const M = T$e();
        return M ? G2(M, [n, u]) : Ce;
      }
      const x = lo();
      for (const M of p)
        x.set(M.escapedName, pie(M, !1));
      const R = Ns(l, x, rt, rt, Lu(n));
      return R.objectFlags |= 4194304, R;
    }
    function z(n) {
      return !!(n.flags & 465829888) && pl(qu(n) || he, 32768);
    }
    function be(n) {
      const a = Qh(n, z) ? $s(n, (l) => l.flags & 465829888 ? iv(l) : l) : n;
      return l_(a, 524288);
    }
    function $e(n, a) {
      const l = Tt(n);
      return l ? N0(l, a) : a;
    }
    function Tt(n) {
      const a = Gt(n);
      if (a && IN(a) && a.flowNode) {
        const l = Cn(n);
        if (l) {
          const u = ht(Jm.createStringLiteral(l), n), p = Td(a) ? a : Jm.createParenthesizedExpression(a), g = ht(Jm.createElementAccessExpression(p, u), n);
          return Vo(u, g), Vo(g, n), p !== a && Vo(p, g), g.flowNode = a.flowNode, g;
        }
      }
    }
    function Gt(n) {
      const a = n.parent.parent;
      switch (a.kind) {
        case 205:
        case 299:
          return Tt(a);
        case 206:
          return Tt(n.parent);
        case 257:
          return a.initializer;
        case 223:
          return a.right;
      }
    }
    function Cn(n) {
      const a = n.parent;
      return n.kind === 205 && a.kind === 203 ? Br(n.propertyName || n.name) : n.kind === 299 || n.kind === 300 ? Br(n.name) : "" + a.elements.indexOf(n);
    }
    function Br(n) {
      const a = Xg(n);
      return a.flags & 384 ? "" + a.value : void 0;
    }
    function gi(n) {
      const a = n.dotDotDotToken ? 64 : 0, l = I2(n.parent.parent, a);
      return l && xi(n, l);
    }
    function xi(n, a) {
      if (Ss(a))
        return a;
      const l = n.parent;
      W && n.flags & 16777216 && hT(n) ? a = Zg(a) : W && l.parent.initializer && !(wu(QLe(l.parent.initializer)) & 65536) && (a = l_(a, 524288));
      let u;
      if (l.kind === 203)
        if (n.dotDotDotToken) {
          if (a = up(a), a.flags & 2 || !QP(a))
            return Ke(n, _.Rest_types_may_only_be_created_from_object_types), Ce;
          const p = [];
          for (const g of l.elements)
            g.dotDotDotToken || p.push(g.propertyName || g.name);
          u = k2(a, p, n.symbol);
        } else {
          const p = n.propertyName || n.name, g = Xg(p), x = Md(a, g, 32, p);
          u = $e(n, x);
        }
      else {
        const p = _v(65 | (n.dotDotDotToken ? 0 : 128), a, He, l), g = l.elements.indexOf(n);
        if (n.dotDotDotToken) {
          const x = iv(a);
          u = lh(x, Fo) ? $s(x, (R) => xL(R, g)) : Iu(p);
        } else if (w0(a)) {
          const x = Bp(g), R = 32 | (PL(n) ? 16 : 0), M = sv(a, x, R, n.name) || Ce;
          u = $e(n, M);
        } else
          u = p;
      }
      return n.initializer ? Zc(SA(n)) ? W && !(wu(FD(n, 0)) & 16777216) ? be(u) : u : roe(n, Qr([be(u), FD(n, 0)], 2)) : u;
    }
    function ki(n) {
      const a = xv(n);
      if (a)
        return fi(a);
    }
    function Fa(n) {
      const a = js(n, !0);
      return a.kind === 104 || a.kind === 79 && w_(a) === Fe;
    }
    function Is(n) {
      const a = js(n, !0);
      return a.kind === 206 && a.elements.length === 0;
    }
    function Io(n, a = !1, l = !0) {
      return W && l ? Qg(n, a) : n;
    }
    function is(n, a, l) {
      if (Ki(n) && n.parent.parent.kind === 246) {
        const x = gm(Iae(ga(n.parent.parent.expression, l)));
        return x.flags & 4456448 ? MCe(x) : ue;
      }
      if (Ki(n) && n.parent.parent.kind === 247) {
        const x = n.parent.parent;
        return b4(x) || we;
      }
      if (Xa(n.parent))
        return gi(n);
      const u = to(n) && !Bm(n) || If(n) || l_e(n), p = a && Iq(n), g = Pd(n);
      if (qW(n))
        return g ? Ss(g) || g === he ? g : Ce : Qe ? he : we;
      if (g)
        return Io(g, u, p);
      if ((Te || fr(n)) && Ki(n) && !Xa(n.name) && !(_y(n) & 1) && !(n.flags & 16777216)) {
        if (!(hp(n) & 2) && (!n.initializer || Fa(n.initializer)))
          return yt;
        if (n.initializer && Is(n.initializer))
          return Nn;
      }
      if (Ba(n)) {
        const x = n.parent;
        if (x.kind === 175 && N2(x)) {
          const J = xl(Ir(n.parent), 174);
          if (J) {
            const $ = Mp(J), ge = Moe(x);
            return ge && n === ge ? (D.assert(!ge.type), ar($.thisParameter)) : ys($);
          }
        }
        const R = XYe(x, n);
        if (R)
          return R;
        const M = n.symbol.escapedName === "this" ? gIe(x) : yIe(n);
        if (M)
          return Io(M, !1, p);
      }
      if (aT(n) && n.initializer) {
        if (fr(n) && !Ba(n)) {
          const R = mL(n, Ir(n), gN(n));
          if (R)
            return R;
        }
        const x = roe(n, FD(n, l));
        return Io(x, u, p);
      }
      if (to(n) && (Te || fr(n)))
        if (gc(n)) {
          const x = lr(n.parent.members, Il), R = x.length ? I_(n.symbol, x) : Mu(n) & 2 ? KU(n.symbol) : void 0;
          return R && Io(R, !0, p);
        } else {
          const x = p0(n.parent), R = x ? $y(n.symbol, x) : Mu(n) & 2 ? KU(n.symbol) : void 0;
          return R && Io(R, !0, p);
        }
      if (nm(n))
        return Pe;
      if (Xa(n.name))
        return ko(n.name, !1, !0);
    }
    function Od(n) {
      if (n.valueDeclaration && br(n.valueDeclaration)) {
        const a = Wi(n);
        return a.isConstructorDeclaredProperty === void 0 && (a.isConstructorDeclaredProperty = !1, a.isConstructorDeclaredProperty = !!fm(n) && Yn(n.declarations, (l) => br(l) && pV(l) && (l.left.kind !== 209 || Xf(l.left.argumentExpression)) && !op(void 0, l, n, l))), a.isConstructorDeclaredProperty;
      }
      return !1;
    }
    function Op(n) {
      const a = n.valueDeclaration;
      return a && to(a) && !Zc(a) && !a.initializer && (Te || fr(a));
    }
    function fm(n) {
      if (n.declarations)
        for (const a of n.declarations) {
          const l = Sd(a, !1, !1);
          if (l && (l.kind === 173 || Up(l)))
            return l;
        }
    }
    function Hg(n) {
      const a = Zn(n.declarations[0]), l = ta(n.escapedName), u = n.declarations.every((g) => fr(g) && ll(g) && vh(g.expression)), p = u ? N.createPropertyAccessExpression(N.createPropertyAccessExpression(N.createIdentifier("module"), N.createIdentifier("exports")), l) : N.createPropertyAccessExpression(N.createIdentifier("exports"), l);
      return u && Vo(p.expression.expression, p.expression), Vo(p.expression, p), Vo(p, a), p.flowNode = a.endFlowNode, N0(p, yt, He);
    }
    function I_(n, a) {
      const l = xa(n.escapedName, "__#") ? N.createPrivateIdentifier(n.escapedName.split("@")[1]) : ta(n.escapedName);
      for (const u of a) {
        const p = N.createPropertyAccessExpression(N.createThis(), l);
        Vo(p.expression, p), Vo(p, u), p.flowNode = u.returnFlowNode;
        const g = w2(p, n);
        if (Te && (g === yt || g === Nn) && Ke(n.valueDeclaration, _.Member_0_implicitly_has_an_1_type, S(n), ke(g)), !lh(g, EV))
          return zD(g);
      }
    }
    function $y(n, a) {
      const l = xa(n.escapedName, "__#") ? N.createPrivateIdentifier(n.escapedName.split("@")[1]) : ta(n.escapedName), u = N.createPropertyAccessExpression(N.createThis(), l);
      Vo(u.expression, u), Vo(u, a), u.flowNode = a.returnFlowNode;
      const p = w2(u, n);
      return Te && (p === yt || p === Nn) && Ke(n.valueDeclaration, _.Member_0_implicitly_has_an_1_type, S(n), ke(p)), lh(p, EV) ? void 0 : zD(p);
    }
    function w2(n, a) {
      const l = (a == null ? void 0 : a.valueDeclaration) && (!Op(a) || Mu(a.valueDeclaration) & 2) && KU(a) || He;
      return N0(n, yt, l);
    }
    function xE(n, a) {
      const l = ZS(n.valueDeclaration);
      if (l) {
        const R = fr(l) ? u1(l) : void 0;
        return R && R.typeExpression ? fi(R.typeExpression) : n.valueDeclaration && mL(n.valueDeclaration, n, l) || jb(Ql(l));
      }
      let u, p = !1, g = !1;
      if (Od(n) && (u = $y(n, fm(n))), !u) {
        let R;
        if (n.declarations) {
          let M;
          for (const J of n.declarations) {
            const $ = br(J) || no(J) ? J : ll(J) ? br(J.parent) ? J.parent : J : void 0;
            if (!$)
              continue;
            const ge = ll($) ? EN($) : Cl($);
            (ge === 4 || br($) && pV($, ge)) && (Gf($) ? p = !0 : g = !0), no($) || (M = op(M, $, n, J)), M || (R || (R = [])).push(br($) || no($) ? v0(n, a, $, ge) : gt);
          }
          u = M;
        }
        if (!u) {
          if (!Le(R))
            return Ce;
          let M = p && n.declarations ? D2(R, n.declarations) : void 0;
          if (g) {
            const $ = KU(n);
            $ && ((M || (M = [])).push($), p = !0);
          }
          const J = kt(M, ($) => !!($.flags & -98305)) ? M : R;
          u = Qr(J);
        }
      }
      const x = ef(Io(u, !1, g && !p));
      return n.valueDeclaration && _c(x, (R) => !!(R.flags & -98305)) === gt ? (D0(n.valueDeclaration, we), we) : x;
    }
    function mL(n, a, l) {
      var u, p;
      if (!fr(n) || !l || !Ls(l) || l.properties.length)
        return;
      const g = lo();
      for (; br(n) || Fr(n); ) {
        const M = Yd(n);
        (u = M == null ? void 0 : M.exports) != null && u.size && Pc(g, M.exports), n = br(n) ? n.parent : n.parent.parent;
      }
      const x = Yd(n);
      (p = x == null ? void 0 : x.exports) != null && p.size && Pc(g, x.exports);
      const R = Ns(a, g, rt, rt, rt);
      return R.objectFlags |= 4096, R;
    }
    function op(n, a, l, u) {
      var p;
      const g = Zc(a.parent);
      if (g) {
        const x = ef(fi(g));
        if (n)
          !rs(n) && !rs(x) && !Kh(n, x) && vwe(void 0, n, u, x);
        else
          return x;
      }
      if ((p = l.parent) != null && p.valueDeclaration) {
        const x = Zc(l.parent.valueDeclaration);
        if (x) {
          const R = uo(fi(x), l.escapedName);
          if (R)
            return E0(R);
        }
      }
      return n;
    }
    function v0(n, a, l, u) {
      if (no(l)) {
        if (a)
          return ar(a);
        const x = Ql(l.arguments[2]), R = fc(x, "value");
        if (R)
          return R;
        const M = fc(x, "get");
        if (M) {
          const $ = LS(M);
          if ($)
            return ys($);
        }
        const J = fc(x, "set");
        if (J) {
          const $ = LS(J);
          if ($)
            return Kae($);
        }
        return we;
      }
      if (hL(l.left, l.right))
        return we;
      const p = u === 1 && (Fr(l.left) || cl(l.left)) && (vh(l.left.expression) || je(l.left.expression) && fT(l.left.expression)), g = a ? ar(a) : p ? yd(Ql(l.right)) : jb(Ql(l.right));
      if (g.flags & 524288 && u === 2 && n.escapedName === "export=") {
        const x = cp(g), R = lo();
        nN(x.members, R);
        const M = R.size;
        a && !a.exports && (a.exports = lo()), (a || n).exports.forEach(($, ge) => {
          var Ne;
          const De = R.get(ge);
          if (De && De !== $ && !($.flags & 2097152))
            if ($.flags & 111551 && De.flags & 111551) {
              if ($.valueDeclaration && De.valueDeclaration && Zn($.valueDeclaration) !== Zn(De.valueDeclaration)) {
                const Bt = ta($.escapedName), Mn = ((Ne = ai(De.valueDeclaration, gu)) == null ? void 0 : Ne.name) || De.valueDeclaration;
                Xo(Ke($.valueDeclaration, _.Duplicate_identifier_0, Bt), Nr(Mn, _._0_was_also_declared_here, Bt)), Xo(Ke(Mn, _.Duplicate_identifier_0, Bt), Nr($.valueDeclaration, _._0_was_also_declared_here, Bt));
              }
              const _t = ns($.flags | De.flags, ge);
              _t.links.type = Qr([ar($), ar(De)]), _t.valueDeclaration = De.valueDeclaration, _t.declarations = va(De.declarations, $.declarations), R.set(ge, _t);
            } else
              R.set(ge, rp($, De));
          else
            R.set(ge, $);
        });
        const J = Ns(M !== R.size ? void 0 : x.symbol, R, x.callSignatures, x.constructSignatures, x.indexInfos);
        if (M === R.size && (g.aliasSymbol && (J.aliasSymbol = g.aliasSymbol, J.aliasTypeArguments = g.aliasTypeArguments), ti(g) & 4)) {
          J.aliasSymbol = g.symbol;
          const $ = hs(g);
          J.aliasTypeArguments = Le($) ? $ : void 0;
        }
        return J.objectFlags |= ti(g) & 4096, J.symbol && J.symbol.flags & 32 && g === zu(J.symbol) && (J.objectFlags |= 16777216), J;
      }
      return YU(g) ? (D0(l, Dt), Dt) : g;
    }
    function hL(n, a) {
      return Fr(n) && n.expression.kind === 108 && XO(a, (l) => Kc(n, l));
    }
    function Gf(n) {
      const a = Sd(n, !1, !1);
      return a.kind === 173 || a.kind === 259 || a.kind === 215 && !TN(a.parent);
    }
    function D2(n, a) {
      return D.assert(n.length === a.length), n.filter((l, u) => {
        const p = a[u], g = br(p) ? p : br(p.parent) ? p.parent : void 0;
        return g && Gf(g);
      });
    }
    function Qy(n, a, l) {
      if (n.initializer) {
        const u = Xa(n.name) ? ko(n.name, !0, !1) : he;
        return Io(roe(n, FD(n, 0, u)));
      }
      return Xa(n.name) ? ko(n.name, a, l) : (l && !eD(n) && D0(n, we), a ? _e : we);
    }
    function Qw(n, a, l) {
      const u = lo();
      let p, g = 131200;
      ze(n.elements, (R) => {
        const M = R.propertyName || R.name;
        if (R.dotDotDotToken) {
          p = hm(ue, we, !1);
          return;
        }
        const J = Xg(M);
        if (!qh(J)) {
          g |= 512;
          return;
        }
        const $ = _m(J), ge = 4 | (R.initializer ? 16777216 : 0), Ne = ns(ge, $);
        Ne.links.type = Qy(R, a, l), Ne.links.bindingElement = R, u.set(Ne.escapedName, Ne);
      });
      const x = Ns(void 0, u, rt, rt, p ? [p] : rt);
      return x.objectFlags |= g, a && (x.pattern = n, x.objectFlags |= 131072), x;
    }
    function Zw(n, a, l) {
      const u = n.elements, p = tl(u), g = p && p.kind === 205 && p.dotDotDotToken ? p : void 0;
      if (u.length === 0 || u.length === 1 && g)
        return P >= 2 ? vCe(we) : Dt;
      const x = jt(u, ($) => Rc($) ? we : Qy($, a, l)), R = ya(u, ($) => !($ === g || Rc($) || PL($)), u.length - 1) + 1, M = jt(u, ($, ge) => $ === g ? 4 : ge >= R ? 2 : 1);
      let J = Fp(x, M);
      return a && (J = tCe(J), J.pattern = n, J.objectFlags |= 131072), J;
    }
    function ko(n, a = !1, l = !1) {
      return n.kind === 203 ? Qw(n, a, l) : Zw(n, a, l);
    }
    function El(n, a) {
      return Zy(is(n, !0, 0), n, a);
    }
    function b0(n) {
      const a = Yd(n), l = d$e(!1);
      return l && a && a === l;
    }
    function Zy(n, a, l) {
      return n ? (n.flags & 4096 && b0(a.parent) && (n = mie(a)), l && nV(a, n), n.flags & 8192 && (_s(a) || !a.type) && n.symbol !== Ir(a) && (n = q), ef(n)) : (n = Ba(a) && a.dotDotDotToken ? Dt : we, l && (eD(a) || D0(a, n)), n);
    }
    function eD(n) {
      const a = Fm(n), l = a.kind === 166 ? a.parent : a;
      return p4(l);
    }
    function Pd(n) {
      const a = Zc(n);
      if (a)
        return fi(a);
    }
    function tD(n) {
      let a = n.valueDeclaration;
      return a ? (_s(a) && (a = SA(a)), Ba(a) ? jU(a.parent) : !1) : !1;
    }
    function b(n) {
      const a = Wi(n);
      if (!a.type) {
        const l = w(n);
        return !a.type && !tD(n) && (a.type = l), l;
      }
      return a.type;
    }
    function w(n) {
      if (n.flags & 4194304)
        return y0(n);
      if (n === Et)
        return we;
      if (n.flags & 134217728 && n.valueDeclaration) {
        const u = Ir(Zn(n.valueDeclaration)), p = ns(u.flags, "exports");
        p.declarations = u.declarations ? u.declarations.slice() : [], p.parent = n, p.links.target = u, u.valueDeclaration && (p.valueDeclaration = u.valueDeclaration), u.members && (p.members = new Map(u.members)), u.exports && (p.exports = new Map(u.exports));
        const g = lo();
        return g.set("exports", p), Ns(n, g, rt, rt, rt);
      }
      D.assertIsDefined(n.valueDeclaration);
      const a = n.valueDeclaration;
      if (qi(a) && p_(a))
        return a.statements.length ? ef(jb(ga(a.statements[0].expression))) : pa;
      if (V0(a))
        return Gr(n);
      if (!Bf(n, 0))
        return n.flags & 512 && !(n.flags & 67108864) ? vf(n) : gL(n);
      let l;
      if (a.kind === 274)
        l = Zy(Pd(a) || Ql(a.expression), a);
      else if (br(a) || fr(a) && (no(a) || (Fr(a) || v3(a)) && br(a.parent)))
        l = xE(n);
      else if (Fr(a) || cl(a) || je(a) || xs(a) || v_(a) || Nc(a) || yc(a) || ac(a) && !B_(a) || Ah(a) || qi(a)) {
        if (n.flags & 9136)
          return vf(n);
        l = br(a.parent) ? xE(n) : Pd(a) || we;
      } else if (zc(a))
        l = Pd(a) || zke(a);
      else if (nm(a))
        l = Pd(a) || DIe(a);
      else if (t_(a))
        l = Pd(a) || jL(a.name, 0);
      else if (B_(a))
        l = Pd(a) || qke(a, 0);
      else if (Ba(a) || to(a) || If(a) || Ki(a) || _s(a) || PM(a))
        l = El(a, !0);
      else if (eb(a))
        l = vf(n);
      else if (O1(a))
        l = zg(n);
      else
        return D.fail("Unhandled declaration kind! " + D.formatSyntaxKind(a.kind) + " for " + D.formatSymbol(n));
      return i_() ? l : n.flags & 512 && !(n.flags & 67108864) ? vf(n) : gL(n);
    }
    function F(n) {
      if (n)
        switch (n.kind) {
          case 174:
            return yp(n);
          case 175:
            return Kue(n);
          case 169:
            return D.assert(Bm(n)), Zc(n);
        }
    }
    function se(n) {
      const a = F(n);
      return a && fi(a);
    }
    function Je(n) {
      const a = Moe(n);
      return a && a.symbol;
    }
    function Kt(n) {
      return Ob(Mp(n));
    }
    function Gr(n) {
      const a = Wi(n);
      if (!a.type) {
        if (!Bf(n, 0))
          return Ce;
        const l = xl(n, 174), u = xl(n, 175), p = ai(xl(n, 169), af);
        let g = l && fr(l) && ki(l) || se(l) || se(u) || se(p) || l && l.body && NV(l) || p && p.initializer && El(p, !0);
        g || (u && !p4(u) ? om(Te, u, _.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation, S(n)) : l && !p4(l) ? om(Te, l, _.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation, S(n)) : p && !p4(p) && om(Te, p, _.Member_0_implicitly_has_an_1_type, S(n), "any"), g = we), i_() || (F(l) ? Ke(l, _._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, S(n)) : F(u) || F(p) ? Ke(u, _._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, S(n)) : l && Te && Ke(l, _._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, S(n)), g = we), a.type = g;
      }
      return a.type;
    }
    function ea(n) {
      var a;
      const l = Wi(n);
      if (!l.writeType) {
        if (!Bf(n, 8))
          return Ce;
        const u = (a = xl(n, 175)) != null ? a : ai(xl(n, 169), af);
        let p = se(u);
        i_() || (F(u) && Ke(u, _._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, S(n)), p = we), l.writeType = p || Gr(n);
      }
      return l.writeType;
    }
    function $a(n) {
      const a = ii(zu(n));
      return a.flags & 8650752 ? a : a.flags & 2097152 ? nn(a.types, (l) => !!(l.flags & 8650752)) : void 0;
    }
    function vf(n) {
      let a = Wi(n);
      const l = a;
      if (!a.type) {
        const u = n.valueDeclaration && wV(n.valueDeclaration, !1);
        if (u) {
          const p = Wae(n, u);
          p && (n = p, a = p.links);
        }
        l.type = a.type = Wg(n);
      }
      return a.type;
    }
    function Wg(n) {
      const a = n.valueDeclaration;
      if (n.flags & 1536 && MI(n))
        return we;
      if (a && (a.kind === 223 || ll(a) && a.parent.kind === 223))
        return xE(n);
      if (n.flags & 512 && a && qi(a) && a.commonJsModuleIndicator) {
        const u = hd(n);
        if (u !== n) {
          if (!Bf(n, 0))
            return Ce;
          const p = as(n.exports.get("export=")), g = xE(p, p === u ? void 0 : u);
          return i_() ? g : gL(n);
        }
      }
      const l = gf(16, n);
      if (n.flags & 32) {
        const u = $a(n);
        return u ? wo([l, u]) : l;
      } else
        return W && n.flags & 16777216 ? Qg(l) : l;
    }
    function zg(n) {
      const a = Wi(n);
      return a.type || (a.type = xAe(n));
    }
    function qg(n) {
      const a = Wi(n);
      if (!a.type) {
        const l = nc(n), u = n.declarations && ap(md(n), !0), p = Jt(u == null ? void 0 : u.declarations, (g) => Bl(g) ? Pd(g) : void 0);
        a.type = u != null && u.declarations && KV(u.declarations) && n.declarations.length ? Hg(u) : KV(n.declarations) ? yt : p || (uu(l) & 111551 ? ar(l) : Ce);
      }
      return a.type;
    }
    function mre(n) {
      const a = Wi(n);
      return a.type || (a.type = Yi(ar(a.target), a.mapper));
    }
    function hre(n) {
      const a = Wi(n);
      return a.writeType || (a.writeType = Yi(yL(a.target), a.mapper));
    }
    function gL(n) {
      const a = n.valueDeclaration;
      return Zc(a) ? (Ke(n.valueDeclaration, _._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, S(n)), Ce) : (Te && (a.kind !== 166 || a.initializer) && Ke(n.valueDeclaration, _._0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer, S(n)), we);
    }
    function nD(n) {
      const a = Wi(n);
      return a.type || (D.assertIsDefined(a.deferralParent), D.assertIsDefined(a.deferralConstituents), a.type = a.deferralParent.flags & 1048576 ? Qr(a.deferralConstituents) : wo(a.deferralConstituents)), a.type;
    }
    function gre(n) {
      const a = Wi(n);
      return !a.writeType && a.deferralWriteConstituents && (D.assertIsDefined(a.deferralParent), D.assertIsDefined(a.deferralConstituents), a.writeType = a.deferralParent.flags & 1048576 ? Qr(a.deferralWriteConstituents) : wo(a.deferralWriteConstituents)), a.writeType;
    }
    function yL(n) {
      const a = Ll(n);
      return n.flags & 4 ? a & 2 ? a & 65536 ? gre(n) || nD(n) : n.links.writeType || n.links.type : ar(n) : n.flags & 98304 ? a & 1 ? hre(n) : ea(n) : ar(n);
    }
    function ar(n) {
      const a = Ll(n);
      return a & 65536 ? nD(n) : a & 1 ? mre(n) : a & 262144 ? DYe(n) : a & 8192 ? HZe(n) : n.flags & 7 ? b(n) : n.flags & 9136 ? vf(n) : n.flags & 8 ? zg(n) : n.flags & 98304 ? Gr(n) : n.flags & 2097152 ? qg(n) : Ce;
    }
    function E0(n) {
      return NE(ar(n), !!(n.flags & 16777216));
    }
    function T0(n, a) {
      return n !== void 0 && a !== void 0 && (ti(n) & 4) !== 0 && n.target === a;
    }
    function R2(n) {
      return ti(n) & 4 ? n.target : n;
    }
    function AE(n, a) {
      return l(n);
      function l(u) {
        if (ti(u) & 7) {
          const p = R2(u);
          return p === a || kt(Mo(p), l);
        } else if (u.flags & 2097152)
          return kt(u.types, l);
        return !1;
      }
    }
    function pP(n, a) {
      for (const l of a)
        n = oy(n, CE(Ir(l)));
      return n;
    }
    function vL(n, a) {
      for (; ; ) {
        if (n = n.parent, n && br(n)) {
          const l = Cl(n);
          if (l === 6 || l === 3) {
            const u = Ir(n.left);
            u && u.parent && !nr(u.parent.valueDeclaration, (p) => n === p) && (n = u.parent.valueDeclaration);
          }
        }
        if (!n)
          return;
        switch (n.kind) {
          case 260:
          case 228:
          case 261:
          case 176:
          case 177:
          case 170:
          case 181:
          case 182:
          case 320:
          case 259:
          case 171:
          case 215:
          case 216:
          case 262:
          case 348:
          case 349:
          case 343:
          case 341:
          case 197:
          case 191: {
            const u = vL(n, a);
            if (n.kind === 197)
              return Fn(u, CE(Ir(n.typeParameter)));
            if (n.kind === 191)
              return va(u, qCe(n));
            const p = pP(u, Av(n)), g = a && (n.kind === 260 || n.kind === 228 || n.kind === 261 || Up(n)) && zu(Ir(n)).thisType;
            return g ? Fn(p, g) : p;
          }
          case 344:
            const l = wN(n);
            l && (n = l.valueDeclaration);
            break;
          case 323: {
            const u = vL(n, a);
            return n.tags ? pP(u, ca(n.tags, (p) => Ep(p) ? p.typeParameters : void 0)) : u;
          }
        }
      }
    }
    function bU(n) {
      var a;
      const l = n.flags & 32 || n.flags & 16 ? n.valueDeclaration : (a = n.declarations) == null ? void 0 : a.find((u) => {
        if (u.kind === 261)
          return !0;
        if (u.kind !== 257)
          return !1;
        const p = u.initializer;
        return !!p && (p.kind === 215 || p.kind === 216);
      });
      return D.assert(!!l, "Class was missing valueDeclaration -OR- non-class had no interface declarations"), vL(l);
    }
    function ev(n) {
      if (!n.declarations)
        return;
      let a;
      for (const l of n.declarations)
        (l.kind === 261 || l.kind === 260 || l.kind === 228 || Up(l) || LN(l)) && (a = pP(a, Av(l)));
      return a;
    }
    function bS(n) {
      return va(bU(n), ev(n));
    }
    function mP(n) {
      const a = za(n, 1);
      if (a.length === 1) {
        const l = a[0];
        if (!l.typeParameters && l.parameters.length === 1 && Eu(l)) {
          const u = o4(l.parameters[0]);
          return Ss(u) || Nie(u) === we;
        }
      }
      return !1;
    }
    function S0(n) {
      if (za(n, 1).length > 0)
        return !0;
      if (n.flags & 8650752) {
        const a = qu(n);
        return !!a && mP(a);
      }
      return !1;
    }
    function Dn(n) {
      const a = mg(n.symbol);
      return a && Xp(a);
    }
    function Kr(n, a, l) {
      const u = Le(a), p = fr(l);
      return lr(za(n, 1), (g) => (p || u >= mm(g.typeParameters)) && u <= Le(g.typeParameters));
    }
    function Ur(n, a, l) {
      const u = Kr(n, a, l), p = jt(a, fi);
      return _a(u, (g) => kt(g.typeParameters) ? uD(g, p, fr(l)) : g);
    }
    function ii(n) {
      if (!n.resolvedBaseConstructorType) {
        const a = mg(n.symbol), l = a && Xp(a), u = Dn(n);
        if (!u)
          return n.resolvedBaseConstructorType = He;
        if (!Bf(n, 1))
          return Ce;
        const p = ga(u.expression);
        if (l && u !== l && (D.assert(!l.typeArguments), ga(l.expression)), p.flags & 2621440 && cp(p), !i_())
          return Ke(n.symbol.valueDeclaration, _._0_is_referenced_directly_or_indirectly_in_its_own_base_expression, S(n.symbol)), n.resolvedBaseConstructorType = Ce;
        if (!(p.flags & 1) && p !== Er && !S0(p)) {
          const g = Ke(u.expression, _.Type_0_is_not_a_constructor_function_type, ke(p));
          if (p.flags & 262144) {
            const x = SL(p);
            let R = he;
            if (x) {
              const M = za(x, 1);
              M[0] && (R = ys(M[0]));
            }
            p.symbol.declarations && Xo(g, Nr(p.symbol.declarations[0], _.Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1, S(p.symbol), ke(R)));
          }
          return n.resolvedBaseConstructorType = Ce;
        }
        n.resolvedBaseConstructorType = p;
      }
      return n.resolvedBaseConstructorType;
    }
    function zi(n) {
      let a = rt;
      if (n.symbol.declarations)
        for (const l of n.symbol.declarations) {
          const u = XA(l);
          if (u)
            for (const p of u) {
              const g = fi(p);
              rs(g) || (a === rt ? a = [g] : a.push(g));
            }
        }
      return a;
    }
    function So(n, a) {
      Ke(n, _.Type_0_recursively_references_itself_as_a_base_type, ke(a, void 0, 2));
    }
    function Mo(n) {
      if (!n.baseTypesResolved) {
        if (Bf(n, 7) && (n.objectFlags & 8 ? n.resolvedBaseTypes = [bf(n)] : n.symbol.flags & 96 ? (n.symbol.flags & 32 && sp(n), n.symbol.flags & 64 && zh(n)) : D.fail("type must be class or interface"), !i_() && n.symbol.declarations))
          for (const a of n.symbol.declarations)
            (a.kind === 260 || a.kind === 261) && So(a, n);
        n.baseTypesResolved = !0;
      }
      return n.resolvedBaseTypes;
    }
    function bf(n) {
      const a = _a(n.typeParameters, (l, u) => n.elementFlags[u] & 8 ? Md(l, mt) : l);
      return Iu(Qr(a || rt), n.readonly);
    }
    function sp(n) {
      n.resolvedBaseTypes = Z3;
      const a = Ju(ii(n));
      if (!(a.flags & 2621441))
        return n.resolvedBaseTypes = rt;
      const l = Dn(n);
      let u;
      const p = a.symbol ? Us(a.symbol) : void 0;
      if (a.symbol && a.symbol.flags & 32 && Wh(p))
        u = nCe(l, a.symbol);
      else if (a.flags & 1)
        u = a;
      else {
        const x = Ur(a, l.typeArguments, l);
        if (!x.length)
          return Ke(l.expression, _.No_base_constructor_has_the_specified_number_of_type_arguments), n.resolvedBaseTypes = rt;
        u = ys(x[0]);
      }
      if (rs(u))
        return n.resolvedBaseTypes = rt;
      const g = up(u);
      if (!ah(g)) {
        const x = Nre(void 0, u), R = Na(x, _.Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members, ke(g));
        return Qo.add(cg(Zn(l.expression), l.expression, R)), n.resolvedBaseTypes = rt;
      }
      return n === g || AE(g, n) ? (Ke(n.symbol.valueDeclaration, _.Type_0_recursively_references_itself_as_a_base_type, ke(n, void 0, 2)), n.resolvedBaseTypes = rt) : (n.resolvedBaseTypes === Z3 && (n.members = void 0), n.resolvedBaseTypes = [g]);
    }
    function Wh(n) {
      const a = n.outerTypeParameters;
      if (a) {
        const l = a.length - 1, u = hs(n);
        return a[l].symbol !== u[l].symbol;
      }
      return !0;
    }
    function ah(n) {
      if (n.flags & 262144) {
        const a = qu(n);
        if (a)
          return ah(a);
      }
      return !!(n.flags & 67633153 && !Vf(n) || n.flags & 2097152 && Yn(n.types, ah));
    }
    function zh(n) {
      if (n.resolvedBaseTypes = n.resolvedBaseTypes || rt, n.symbol.declarations) {
        for (const a of n.symbol.declarations)
          if (a.kind === 261 && zI(a))
            for (const l of zI(a)) {
              const u = up(fi(l));
              rs(u) || (ah(u) ? n !== u && !AE(u, n) ? n.resolvedBaseTypes === rt ? n.resolvedBaseTypes = [u] : n.resolvedBaseTypes.push(u) : So(a, n) : Ke(l, _.An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members));
            }
      }
    }
    function bL(n) {
      if (!n.declarations)
        return !0;
      for (const a of n.declarations)
        if (a.kind === 261) {
          if (a.flags & 128)
            return !1;
          const l = zI(a);
          if (l) {
            for (const u of l)
              if (zl(u.expression)) {
                const p = Rl(u.expression, 788968, !0);
                if (!p || !(p.flags & 64) || zu(p).thisType)
                  return !1;
              }
          }
        }
      return !0;
    }
    function zu(n) {
      let a = Wi(n);
      const l = a;
      if (!a.declaredType) {
        const u = n.flags & 32 ? 1 : 2, p = Wae(n, n.valueDeclaration && Vnt(n.valueDeclaration));
        p && (n = p, a = p.links);
        const g = l.declaredType = a.declaredType = gf(u, n), x = bU(n), R = ev(n);
        (x || R || u === 1 || !bL(n)) && (g.objectFlags |= 4, g.typeParameters = va(x, R), g.outerTypeParameters = x, g.localTypeParameters = R, g.instantiations = /* @__PURE__ */ new Map(), g.instantiations.set(o_(g.typeParameters), g), g.target = g, g.resolvedTypeArguments = g.typeParameters, g.thisType = Nd(n), g.thisType.isThisType = !0, g.thisType.constraint = g);
      }
      return a.declaredType;
    }
    function Db(n) {
      var a;
      const l = Wi(n);
      if (!l.declaredType) {
        if (!Bf(n, 2))
          return Ce;
        const u = D.checkDefined((a = n.declarations) == null ? void 0 : a.find(LN), "Type alias symbol with no valid declaration found"), p = m_(u) ? u.typeExpression : u.type;
        let g = p ? fi(p) : Ce;
        if (i_()) {
          const x = ev(n);
          x && (l.typeParameters = x, l.instantiations = /* @__PURE__ */ new Map(), l.instantiations.set(o_(x), g));
        } else
          g = Ce, u.kind === 343 ? Ke(u.typeExpression.type, _.Type_alias_0_circularly_references_itself, S(n)) : Ke(gu(u) && u.name || u, _.Type_alias_0_circularly_references_itself, S(n));
        l.declaredType = g;
      }
      return l.declaredType;
    }
    function rD(n) {
      return n.flags & 1056 && n.symbol.flags & 8 ? Us(gd(n.symbol)) : n;
    }
    function TAe(n) {
      const a = Wi(n);
      if (!a.declaredType) {
        const l = [];
        if (n.declarations) {
          for (const p of n.declarations)
            if (p.kind === 263) {
              for (const g of p.members)
                if (N2(g)) {
                  const x = Ir(g), R = ej(g), M = H2(R !== void 0 ? xQe(R, bo(n), x) : SAe(x));
                  Wi(x).declaredType = M, l.push(yd(M));
                }
            }
        }
        const u = l.length ? Qr(l, 1, n, void 0) : SAe(n);
        u.flags & 1048576 && (u.flags |= 1024, u.symbol = n), a.declaredType = u;
      }
      return a.declaredType;
    }
    function SAe(n) {
      const a = dm(32, n), l = dm(32, n);
      return a.regularType = a, a.freshType = l, l.regularType = a, l.freshType = l, a;
    }
    function xAe(n) {
      const a = Wi(n);
      if (!a.declaredType) {
        const l = TAe(gd(n));
        a.declaredType || (a.declaredType = l);
      }
      return a.declaredType;
    }
    function CE(n) {
      const a = Wi(n);
      return a.declaredType || (a.declaredType = Nd(n));
    }
    function cYe(n) {
      const a = Wi(n);
      return a.declaredType || (a.declaredType = Us(nc(n)));
    }
    function Us(n) {
      return AAe(n) || Ce;
    }
    function AAe(n) {
      if (n.flags & 96)
        return zu(n);
      if (n.flags & 524288)
        return Db(n);
      if (n.flags & 262144)
        return CE(n);
      if (n.flags & 384)
        return TAe(n);
      if (n.flags & 8)
        return xAe(n);
      if (n.flags & 2097152)
        return cYe(n);
    }
    function hP(n) {
      switch (n.kind) {
        case 131:
        case 157:
        case 152:
        case 148:
        case 160:
        case 134:
        case 153:
        case 149:
        case 114:
        case 155:
        case 144:
        case 198:
          return !0;
        case 185:
          return hP(n.elementType);
        case 180:
          return !n.typeArguments || n.typeArguments.every(hP);
      }
      return !1;
    }
    function uYe(n) {
      const a = xA(n);
      return !a || hP(a);
    }
    function CAe(n) {
      const a = Zc(n);
      return a ? hP(a) : !kv(n);
    }
    function dYe(n) {
      const a = yp(n), l = Av(n);
      return (n.kind === 173 || !!a && hP(a)) && n.parameters.every(CAe) && l.every(uYe);
    }
    function fYe(n) {
      if (n.declarations && n.declarations.length === 1) {
        const a = n.declarations[0];
        if (a)
          switch (a.kind) {
            case 169:
            case 168:
              return CAe(a);
            case 171:
            case 170:
            case 173:
            case 174:
            case 175:
              return dYe(a);
          }
      }
      return !1;
    }
    function LAe(n, a, l) {
      const u = lo();
      for (const p of n)
        u.set(p.escapedName, l && fYe(p) ? p : gie(p, a));
      return u;
    }
    function IAe(n, a) {
      for (const l of a)
        !n.has(l.escapedName) && !kAe(l) && n.set(l.escapedName, l);
    }
    function kAe(n) {
      return !!n.valueDeclaration && $u(n.valueDeclaration) && Ja(n.valueDeclaration);
    }
    function yre(n) {
      if (!n.declaredProperties) {
        const a = n.symbol, l = tv(a);
        n.declaredProperties = qy(l), n.declaredCallSignatures = rt, n.declaredConstructSignatures = rt, n.declaredIndexInfos = rt, n.declaredCallSignatures = Nb(l.get("__call")), n.declaredConstructSignatures = Nb(l.get("__new")), n.declaredIndexInfos = QAe(a);
      }
      return n;
    }
    function qh(n) {
      return !!(n.flags & 8576);
    }
    function vre(n) {
      if (!As(n) && !cl(n))
        return !1;
      const a = As(n) ? n.expression : n.argumentExpression;
      return zl(a) && qh(As(n) ? ey(n) : Ql(a));
    }
    function iD(n) {
      return n.charCodeAt(0) === 95 && n.charCodeAt(1) === 95 && n.charCodeAt(2) === 64;
    }
    function gP(n) {
      const a = ka(n);
      return !!a && vre(a);
    }
    function N2(n) {
      return !Rv(n) || gP(n);
    }
    function _Ye(n) {
      return C3(n) && !vre(n);
    }
    function _m(n) {
      return n.flags & 8192 ? n.escapedName : n.flags & 384 ? sl("" + n.value) : D.fail();
    }
    function pYe(n, a, l) {
      D.assert(!!(Ll(n) & 4096), "Expected a late-bound symbol."), n.flags |= l, Wi(a.symbol).lateSymbol = n, n.declarations ? a.symbol.isReplaceableByMethod || n.declarations.push(a) : n.declarations = [a], l & 111551 && (!n.valueDeclaration || n.valueDeclaration.kind !== a.kind) && (n.valueDeclaration = a);
    }
    function wAe(n, a, l, u) {
      D.assert(!!u.symbol, "The member is expected to have a symbol.");
      const p = Jr(u);
      if (!p.resolvedSymbol) {
        p.resolvedSymbol = u.symbol;
        const g = br(u) ? u.left : u.name, x = cl(g) ? Ql(g.argumentExpression) : ey(g);
        if (qh(x)) {
          const R = _m(x), M = u.symbol.flags;
          let J = l.get(R);
          J || l.set(R, J = ns(0, R, 4096));
          const $ = a && a.get(R);
          if (J.flags & vc(M) || $) {
            const ge = $ ? va($.declarations, J.declarations) : J.declarations, Ne = !(x.flags & 8192) && ta(R) || ws(g);
            ze(ge, (De) => Ke(ka(De) || De, _.Property_0_was_also_declared_here, Ne)), Ke(g || u, _.Duplicate_property_0, Ne), J = ns(0, R, 4096);
          }
          return J.links.nameType = x, pYe(J, u, M), J.parent ? D.assert(J.parent === n, "Existing symbol parent should match new one") : J.parent = n, p.resolvedSymbol = J;
        }
      }
      return p.resolvedSymbol;
    }
    function bre(n, a) {
      const l = Wi(n);
      if (!l[a]) {
        const u = a === "resolvedExports", p = u ? n.flags & 1536 ? S2(n).exports : n.exports : n.members;
        l[a] = p || te;
        const g = lo();
        for (const R of n.declarations || rt) {
          const M = lue(R);
          if (M)
            for (const J of M)
              u === gc(J) && gP(J) && wAe(n, p, g, J);
        }
        const x = n.assignmentDeclarationMembers;
        if (x) {
          const R = Ro(x.values());
          for (const M of R) {
            const J = Cl(M), $ = J === 3 || br(M) && pV(M, J) || J === 9 || J === 6;
            u === !$ && gP(M) && wAe(n, p, g, M);
          }
        }
        l[a] = Dg(p, g) || te;
      }
      return l[a];
    }
    function tv(n) {
      return n.flags & 6256 ? bre(n, "resolvedMembers") : n.members || te;
    }
    function EU(n) {
      if (n.flags & 106500 && n.escapedName === "__computed") {
        const a = Wi(n);
        if (!a.lateSymbol && kt(n.declarations, gP)) {
          const l = as(n.parent);
          kt(n.declarations, gc) ? hf(l) : tv(l);
        }
        return a.lateSymbol || (a.lateSymbol = n);
      }
      return n;
    }
    function Uf(n, a, l) {
      if (ti(n) & 4) {
        const u = n.target, p = hs(n);
        if (Le(u.typeParameters) === Le(p)) {
          const g = Kg(u, va(p, [a || u.thisType]));
          return l ? Ju(g) : g;
        }
      } else if (n.flags & 2097152) {
        const u = _a(n.types, (p) => Uf(p, a, l));
        return u !== n.types ? wo(u) : n;
      }
      return l ? Ju(n) : n;
    }
    function DAe(n, a, l, u) {
      let p, g, x, R, M;
      Tj(l, u, 0, l.length) ? (g = a.symbol ? tv(a.symbol) : lo(a.declaredProperties), x = a.declaredCallSignatures, R = a.declaredConstructSignatures, M = a.declaredIndexInfos) : (p = vd(l, u), g = LAe(a.declaredProperties, p, l.length === 1), x = BU(a.declaredCallSignatures, p), R = BU(a.declaredConstructSignatures, p), M = QCe(a.declaredIndexInfos, p));
      const J = Mo(a);
      if (J.length) {
        a.symbol && g === tv(a.symbol) && (g = lo(a.declaredProperties)), Ff(n, g, x, R, M);
        const $ = tl(u);
        for (const ge of J) {
          const Ne = $ ? Uf(Yi(ge, p), $) : ge;
          IAe(g, ms(Ne)), x = va(x, za(Ne, 0)), R = va(R, za(Ne, 1));
          const De = Ne !== we ? Lu(Ne) : [hm(ue, we, !1)];
          M = va(M, lr(De, (_t) => !Ore(M, _t.keyType)));
        }
      }
      Ff(n, g, x, R, M);
    }
    function mYe(n) {
      DAe(n, yre(n), rt, rt);
    }
    function hYe(n) {
      const a = yre(n.target), l = va(a.typeParameters, [a.thisType]), u = hs(n), p = u.length === l.length ? u : va(u, [n]);
      DAe(n, a, l, p);
    }
    function oh(n, a, l, u, p, g, x, R) {
      const M = new h(at, R);
      return M.declaration = n, M.typeParameters = a, M.parameters = u, M.thisParameter = l, M.resolvedReturnType = p, M.resolvedTypePredicate = g, M.minArgumentCount = x, M.resolvedMinArgumentCount = void 0, M.target = void 0, M.mapper = void 0, M.compositeSignatures = void 0, M.compositeKind = void 0, M;
    }
    function aD(n) {
      const a = oh(n.declaration, n.typeParameters, n.thisParameter, n.parameters, void 0, void 0, n.minArgumentCount, n.flags & 39);
      return a.target = n.target, a.mapper = n.mapper, a.compositeSignatures = n.compositeSignatures, a.compositeKind = n.compositeKind, a;
    }
    function RAe(n, a) {
      const l = aD(n);
      return l.compositeSignatures = a, l.compositeKind = 1048576, l.target = void 0, l.mapper = void 0, l;
    }
    function gYe(n, a) {
      if ((n.flags & 24) === a)
        return n;
      n.optionalCallSignatureCache || (n.optionalCallSignatureCache = {});
      const l = a === 8 ? "inner" : "outer";
      return n.optionalCallSignatureCache[l] || (n.optionalCallSignatureCache[l] = yYe(n, a));
    }
    function yYe(n, a) {
      D.assert(a === 8 || a === 16, "An optional call signature can either be for an inner call chain or an outer call chain, but not both.");
      const l = aD(n);
      return l.flags |= a, l;
    }
    function NAe(n, a) {
      if (Eu(n)) {
        const u = n.parameters.length - 1, p = ar(n.parameters[u]);
        if (Fo(p))
          return [l(p, u)];
        if (!a && p.flags & 1048576 && Yn(p.types, Fo))
          return jt(p.types, (g) => l(g, u));
      }
      return [n.parameters];
      function l(u, p) {
        const g = hs(u), x = u.target.labeledElementDeclarations, R = jt(g, (M, J) => {
          const ge = !!x && RV(x[J]) || UL(n, p + J, u), Ne = u.target.elementFlags[J], De = Ne & 12 ? 32768 : Ne & 2 ? 16384 : 0, _t = ns(1, ge, De);
          return _t.links.type = Ne & 4 ? Iu(M) : M, _t;
        });
        return va(n.parameters.slice(0, p), R);
      }
    }
    function vYe(n) {
      const a = ii(n), l = za(a, 1), u = mg(n.symbol), p = !!u && Yr(u, 256);
      if (l.length === 0)
        return [oh(void 0, n.localTypeParameters, void 0, rt, n, void 0, 0, p ? 4 : 0)];
      const g = Dn(n), x = fr(g), R = AP(g), M = Le(R), J = [];
      for (const $ of l) {
        const ge = mm($.typeParameters), Ne = Le($.typeParameters);
        if (x || M >= ge && M <= Ne) {
          const De = Ne ? TU($, av(R, $.typeParameters, ge, x)) : aD($);
          De.typeParameters = n.localTypeParameters, De.resolvedReturnType = n, De.flags = p ? De.flags | 4 : De.flags & -5, J.push(De);
        }
      }
      return J;
    }
    function Ere(n, a, l, u, p) {
      for (const g of n)
        if (GP(g, a, l, u, p, l ? WQe : gD))
          return g;
    }
    function bYe(n, a, l) {
      if (a.typeParameters) {
        if (l > 0)
          return;
        for (let p = 1; p < n.length; p++)
          if (!Ere(n[p], a, !1, !1, !1))
            return;
        return [a];
      }
      let u;
      for (let p = 0; p < n.length; p++) {
        const g = p === l ? a : Ere(n[p], a, !0, !1, !0);
        if (!g)
          return;
        u = oy(u, g);
      }
      return u;
    }
    function Tre(n) {
      let a, l;
      for (let u = 0; u < n.length; u++) {
        if (n[u].length === 0)
          return rt;
        n[u].length > 1 && (l = l === void 0 ? u : -1);
        for (const p of n[u])
          if (!a || !Ere(a, p, !1, !1, !0)) {
            const g = bYe(n, p, u);
            if (g) {
              let x = p;
              if (g.length > 1) {
                let R = p.thisParameter;
                const M = ze(g, (J) => J.thisParameter);
                if (M) {
                  const J = wo(ia(g, ($) => $.thisParameter && ar($.thisParameter)));
                  R = OE(M, J);
                }
                x = RAe(p, g), x.thisParameter = R;
              }
              (a || (a = [])).push(x);
            }
          }
      }
      if (!Le(a) && l !== -1) {
        const u = n[l !== void 0 ? l : 0];
        let p = u.slice();
        for (const g of n)
          if (g !== u) {
            const x = g[0];
            if (D.assert(!!x, "getUnionSignatures bails early on empty signature lists and should not have empty lists on second pass"), p = x.typeParameters && kt(p, (R) => !!R.typeParameters && !OAe(x.typeParameters, R.typeParameters)) ? void 0 : jt(p, (R) => SYe(R, x)), !p)
              break;
          }
        a = p;
      }
      return a || rt;
    }
    function OAe(n, a) {
      if (Le(n) !== Le(a))
        return !1;
      if (!n || !a)
        return !0;
      const l = vd(a, n);
      for (let u = 0; u < n.length; u++) {
        const p = n[u], g = a[u];
        if (p !== g && !Kh(SL(p) || he, Yi(SL(g) || he, l)))
          return !1;
      }
      return !0;
    }
    function EYe(n, a, l) {
      if (!n || !a)
        return n || a;
      const u = wo([ar(n), Yi(ar(a), l)]);
      return OE(n, u);
    }
    function TYe(n, a, l) {
      const u = tf(n), p = tf(a), g = u >= p ? n : a, x = g === n ? a : n, R = g === n ? u : p, M = Em(n) || Em(a), J = M && !Em(g), $ = new Array(R + (J ? 1 : 0));
      for (let ge = 0; ge < R; ge++) {
        let Ne = VE(g, ge);
        g === a && (Ne = Yi(Ne, l));
        let De = VE(x, ge) || he;
        x === a && (De = Yi(De, l));
        const _t = wo([Ne, De]), Bt = M && !J && ge === R - 1, Mn = ge >= bm(g) && ge >= bm(x), An = ge >= u ? void 0 : UL(n, ge), Kn = ge >= p ? void 0 : UL(a, ge), gn = An === Kn ? An : An ? Kn ? void 0 : An : Kn, xn = ns(1 | (Mn && !Bt ? 16777216 : 0), gn || `arg${ge}`);
        xn.links.type = Bt ? Iu(_t) : _t, $[ge] = xn;
      }
      if (J) {
        const ge = ns(1, "args");
        ge.links.type = Iu(fp(x, R)), x === a && (ge.links.type = Yi(ge.links.type, l)), $[R] = ge;
      }
      return $;
    }
    function SYe(n, a) {
      const l = n.typeParameters || a.typeParameters;
      let u;
      n.typeParameters && a.typeParameters && (u = vd(a.typeParameters, n.typeParameters));
      const p = n.declaration, g = TYe(n, a, u), x = EYe(n.thisParameter, a.thisParameter, u), R = Math.max(n.minArgumentCount, a.minArgumentCount), M = oh(p, l, x, g, void 0, void 0, R, (n.flags | a.flags) & 39);
      return M.compositeKind = 1048576, M.compositeSignatures = va(n.compositeKind !== 2097152 && n.compositeSignatures || [n], [a]), u && (M.mapper = n.compositeKind !== 2097152 && n.mapper && n.compositeSignatures ? k0(n.mapper, u) : u), M;
    }
    function PAe(n) {
      const a = Lu(n[0]);
      if (a) {
        const l = [];
        for (const u of a) {
          const p = u.keyType;
          Yn(n, (g) => !!sh(g, p)) && l.push(hm(p, Qr(jt(n, (g) => Jg(g, p))), kt(n, (g) => sh(g, p).isReadonly)));
        }
        return l;
      }
      return rt;
    }
    function xYe(n) {
      const a = Tre(jt(n.types, (p) => p === dl ? [rn] : za(p, 0))), l = Tre(jt(n.types, (p) => za(p, 1))), u = PAe(n.types);
      Ff(n, te, a, l, u);
    }
    function yP(n, a) {
      return n ? a ? wo([n, a]) : n : a;
    }
    function MAe(n) {
      const a = Bc(n, (u) => za(u, 1).length > 0), l = jt(n, mP);
      if (a > 0 && a === Bc(l, (u) => u)) {
        const u = l.indexOf(!0);
        l[u] = !1;
      }
      return l;
    }
    function AYe(n, a, l, u) {
      const p = [];
      for (let g = 0; g < a.length; g++)
        g === u ? p.push(n) : l[g] && p.push(ys(za(a[g], 1)[0]));
      return wo(p);
    }
    function CYe(n) {
      let a, l, u;
      const p = n.types, g = MAe(p), x = Bc(g, (R) => R);
      for (let R = 0; R < p.length; R++) {
        const M = n.types[R];
        if (!g[R]) {
          let J = za(M, 1);
          J.length && x > 0 && (J = jt(J, ($) => {
            const ge = aD($);
            return ge.resolvedReturnType = AYe(ys($), p, g, R), ge;
          })), l = FAe(l, J);
        }
        a = FAe(a, za(M, 0)), u = Ru(Lu(M), (J, $) => BAe(J, $, !1), u);
      }
      Ff(n, te, a || rt, l || rt, u || rt);
    }
    function FAe(n, a) {
      for (const l of a)
        (!n || Yn(n, (u) => !GP(u, l, !1, !1, !1, gD))) && (n = Fn(n, l));
      return n;
    }
    function BAe(n, a, l) {
      if (n)
        for (let u = 0; u < n.length; u++) {
          const p = n[u];
          if (p.keyType === a.keyType)
            return n[u] = hm(p.keyType, l ? Qr([p.type, a.type]) : wo([p.type, a.type]), l ? p.isReadonly || a.isReadonly : p.isReadonly && a.isReadonly), n;
        }
      return Fn(n, a);
    }
    function LYe(n) {
      if (n.target) {
        Ff(n, te, rt, rt, rt);
        const x = LAe(rv(n.target), n.mapper, !1), R = BU(za(n.target, 0), n.mapper), M = BU(za(n.target, 1), n.mapper), J = QCe(Lu(n.target), n.mapper);
        Ff(n, x, R, M, J);
        return;
      }
      const a = as(n.symbol);
      if (a.flags & 2048) {
        Ff(n, te, rt, rt, rt);
        const x = tv(a), R = Nb(x.get("__call")), M = Nb(x.get("__new")), J = QAe(a);
        Ff(n, x, R, M, J);
        return;
      }
      let l = te, u;
      if (a.exports && (l = hf(a), a === st)) {
        const x = /* @__PURE__ */ new Map();
        l.forEach((R) => {
          var M;
          !(R.flags & 418) && !(R.flags & 512 && ((M = R.declarations) != null && M.length) && Yn(R.declarations, Pu)) && x.set(R.escapedName, R);
        }), l = x;
      }
      let p;
      if (Ff(n, l, rt, rt, rt), a.flags & 32) {
        const x = zu(a), R = ii(x);
        R.flags & 11272192 ? (l = lo(A2(l)), IAe(l, ms(R))) : R === we && (p = hm(ue, we, !1));
      }
      const g = Hre(l);
      if (g ? u = Wre(g) : (p && (u = Fn(u, p)), a.flags & 384 && (Us(a).flags & 32 || kt(n.properties, (x) => !!(ar(x).flags & 296))) && (u = Fn(u, Wu))), Ff(n, l, rt, rt, u || rt), a.flags & 8208 && (n.callSignatures = Nb(a)), a.flags & 32) {
        const x = zu(a);
        let R = a.members ? Nb(a.members.get("__constructor")) : rt;
        a.flags & 16 && (R = Ti(R.slice(), ia(n.callSignatures, (M) => Up(M.declaration) ? oh(M.declaration, M.typeParameters, M.thisParameter, M.parameters, x, void 0, M.minArgumentCount, M.flags & 39) : void 0))), R.length || (R = vYe(x)), n.constructSignatures = R;
      }
    }
    function IYe(n, a, l) {
      return Yi(n, vd([a.indexType, a.objectType], [Bp(0), Fp([l])]));
    }
    function kYe(n) {
      const a = sh(n.source, ue), l = pm(n.mappedType), u = !(l & 1), p = l & 4 ? 0 : 16777216, g = a ? [hm(ue, iV(a.type, n.mappedType, n.constraintType), u && a.isReadonly)] : rt, x = lo();
      for (const R of ms(n.source)) {
        const M = 8192 | (u && _p(R) ? 8 : 0), J = ns(4 | R.flags & p, R.escapedName, M);
        if (J.declarations = R.declarations, J.links.nameType = Wi(R).nameType, J.links.propertyType = ar(R), n.constraintType.type.flags & 8388608 && n.constraintType.type.objectType.flags & 262144 && n.constraintType.type.indexType.flags & 262144) {
          const $ = n.constraintType.type.objectType, ge = IYe(n.mappedType, n.constraintType.type, $);
          J.links.mappedType = ge, J.links.constraintType = gm($);
        } else
          J.links.mappedType = n.mappedType, J.links.constraintType = n.constraintType;
        x.set(R.escapedName, J);
      }
      Ff(n, x, rt, rt, g);
    }
    function vP(n) {
      if (n.flags & 4194304) {
        const a = Ju(n.type);
        return z2(a) ? xCe(a) : gm(a);
      }
      if (n.flags & 16777216) {
        if (n.root.isDistributive) {
          const a = n.checkType, l = vP(a);
          if (l !== a)
            return Eie(n, SS(n.root.checkType, l, n.mapper));
        }
        return n;
      }
      if (n.flags & 1048576)
        return $s(n, vP, !0);
      if (n.flags & 2097152) {
        const a = n.types;
        return a.length === 2 && a[0].flags & 76 && a[1] === Gl ? n : wo(_a(n.types, vP));
      }
      return n;
    }
    function Sre(n) {
      return Ll(n) & 4096;
    }
    function xre(n, a, l, u) {
      for (const p of ms(n))
        u(AL(p, a));
      if (n.flags & 1)
        u(ue);
      else
        for (const p of Lu(n))
          (!l || p.keyType.flags & 134217732) && u(p.keyType);
    }
    function wYe(n) {
      const a = lo();
      let l;
      Ff(n, te, rt, rt, rt);
      const u = lp(n), p = Pp(n), g = nv(n.target || n), x = g && xo(g, u), R = Jh(n.target || n), M = Ju(EL(n)), J = pm(n), $ = Ve ? 128 : 8576;
      oD(n) ? xre(M, $, Ve, ge) : BE(vP(p), ge), Ff(n, a, rt, rt, l || rt);
      function ge(De) {
        const _t = g ? Yi(g, hD(n.mapper, u, De)) : De;
        BE(_t, (Bt) => Ne(De, Bt));
      }
      function Ne(De, _t) {
        if (qh(_t)) {
          const Bt = _m(_t), Mn = a.get(Bt);
          if (Mn)
            Mn.links.nameType = Qr([Mn.links.nameType, _t]), Mn.links.keyType = Qr([Mn.links.keyType, De]);
          else {
            const An = qh(De) ? uo(M, _m(De)) : void 0, Kn = !!(J & 4 || !(J & 8) && An && An.flags & 16777216), gn = !!(J & 1 || !(J & 2) && An && _p(An)), xn = W && !Kn && An && An.flags & 16777216, yr = An ? Sre(An) : 0, ln = ns(4 | (Kn ? 16777216 : 0), Bt, yr | 262144 | (gn ? 8 : 0) | (xn ? 524288 : 0));
            ln.links.mappedType = n, ln.links.nameType = _t, ln.links.keyType = De, An && (ln.links.syntheticOrigin = An, ln.declarations = !g || x ? An.declarations : void 0), a.set(Bt, ln);
          }
        } else if (SU(_t) || _t.flags & 33) {
          const Bt = _t.flags & 5 ? ue : _t.flags & 40 ? mt : _t, Mn = Yi(R, hD(n.mapper, u, De)), An = hm(Bt, Mn, !!(J & 1));
          l = BAe(l, An, !0);
        }
      }
    }
    function DYe(n) {
      if (!n.links.type) {
        const a = n.links.mappedType;
        if (!Bf(n, 0))
          return a.containsError = !0, Ce;
        const l = Jh(a.target || a), u = hD(a.mapper, lp(a), n.links.keyType), p = Yi(l, u);
        let g = W && n.flags & 16777216 && !pl(p, 49152) ? Qg(p, !0) : n.links.checkFlags & 524288 ? Gie(p) : p;
        i_() || (Ke(G, _.Type_of_property_0_circularly_references_itself_in_mapped_type_1, S(n), ke(a)), g = Ce), n.links.type = g;
      }
      return n.links.type;
    }
    function lp(n) {
      return n.typeParameter || (n.typeParameter = CE(Ir(n.declaration.typeParameter)));
    }
    function Pp(n) {
      return n.constraintType || (n.constraintType = Cu(lp(n)) || Ce);
    }
    function nv(n) {
      return n.declaration.nameType ? n.nameType || (n.nameType = Yi(fi(n.declaration.nameType), n.mapper)) : void 0;
    }
    function Jh(n) {
      return n.templateType || (n.templateType = n.declaration.type ? Yi(Io(fi(n.declaration.type), !0, !!(pm(n) & 4)), n.mapper) : Ce);
    }
    function GAe(n) {
      return xA(n.declaration.typeParameter);
    }
    function oD(n) {
      const a = GAe(n);
      return a.kind === 195 && a.operator === 141;
    }
    function EL(n) {
      if (!n.modifiersType)
        if (oD(n))
          n.modifiersType = Yi(fi(GAe(n).type), n.mapper);
        else {
          const a = uie(n.declaration), l = Pp(a), u = l && l.flags & 262144 ? Cu(l) : l;
          n.modifiersType = u && u.flags & 4194304 ? Yi(u.type, n.mapper) : he;
        }
      return n.modifiersType;
    }
    function pm(n) {
      const a = n.declaration;
      return (a.readonlyToken ? a.readonlyToken.kind === 40 ? 2 : 1 : 0) | (a.questionToken ? a.questionToken.kind === 40 ? 8 : 4 : 0);
    }
    function UAe(n) {
      const a = pm(n);
      return a & 8 ? -1 : a & 4 ? 1 : 0;
    }
    function Are(n) {
      const a = UAe(n), l = EL(n);
      return a || (Vf(l) ? UAe(l) : 0);
    }
    function RYe(n) {
      return !!(ti(n) & 32 && pm(n) & 4);
    }
    function Vf(n) {
      if (ti(n) & 32) {
        const a = Pp(n);
        if (A0(a))
          return !0;
        const l = nv(n);
        if (l && A0(Yi(l, Ub(lp(n), a))))
          return !0;
      }
      return !1;
    }
    function cp(n) {
      return n.members || (n.flags & 524288 ? n.objectFlags & 4 ? hYe(n) : n.objectFlags & 3 ? mYe(n) : n.objectFlags & 1024 ? kYe(n) : n.objectFlags & 16 ? LYe(n) : n.objectFlags & 32 ? wYe(n) : D.fail("Unhandled object type " + D.formatObjectFlags(n.objectFlags)) : n.flags & 1048576 ? xYe(n) : n.flags & 2097152 ? CYe(n) : D.fail("Unhandled type " + D.formatTypeFlags(n.flags))), n;
    }
    function rv(n) {
      return n.flags & 524288 ? cp(n).properties : rt;
    }
    function Rb(n, a) {
      if (n.flags & 524288) {
        const u = cp(n).members.get(a);
        if (u && Gg(u))
          return u;
      }
    }
    function bP(n) {
      if (!n.resolvedProperties) {
        const a = lo();
        for (const l of n.types) {
          for (const u of ms(l))
            if (!a.has(u.escapedName)) {
              const p = Rre(n, u.escapedName);
              p && a.set(u.escapedName, p);
            }
          if (n.flags & 1048576 && Lu(l).length === 0)
            break;
        }
        n.resolvedProperties = qy(a);
      }
      return n.resolvedProperties;
    }
    function ms(n) {
      return n = TL(n), n.flags & 3145728 ? bP(n) : rv(n);
    }
    function NYe(n, a) {
      n = TL(n), n.flags & 3670016 && cp(n).members.forEach((l, u) => {
        Ug(l, u) && a(l, u);
      });
    }
    function OYe(n, a) {
      return a.properties.some((u) => {
        const p = u.name && Xg(u.name), g = p && qh(p) ? _m(p) : void 0, x = g === void 0 ? void 0 : fc(n, g);
        return !!x && bD(x) && !xo(IS(u), x);
      });
    }
    function PYe(n) {
      const a = Qr(n);
      if (!(a.flags & 1048576))
        return Ioe(a);
      const l = lo();
      for (const u of n)
        for (const { escapedName: p } of Ioe(u))
          if (!l.has(p)) {
            const g = WAe(a, p);
            g && l.set(p, g);
          }
      return Ro(l.values());
    }
    function LE(n) {
      return n.flags & 262144 ? Cu(n) : n.flags & 8388608 ? MYe(n) : n.flags & 16777216 ? BYe(n) : qu(n);
    }
    function Cu(n) {
      return sD(n) ? SL(n) : void 0;
    }
    function EP(n) {
      var a;
      return !!(n.flags & 262144 && kt((a = n.symbol) == null ? void 0 : a.declarations, (l) => Yr(l, 2048)) || z2(n) && vi(hs(n), (l, u) => !!(n.target.elementFlags[u] & 8) && EP(l)) >= 0 || n.flags & 8388608 && EP(n.objectType));
    }
    function MYe(n) {
      return sD(n) ? FYe(n) : void 0;
    }
    function Cre(n) {
      const a = Yg(n, !1);
      return a !== n ? a : LE(n);
    }
    function FYe(n) {
      if (wre(n))
        return RU(n.objectType, n.indexType);
      const a = Cre(n.indexType);
      if (a && a !== n.indexType) {
        const u = sv(n.objectType, a, n.accessFlags);
        if (u)
          return u;
      }
      const l = Cre(n.objectType);
      if (l && l !== n.objectType)
        return sv(l, n.indexType, n.accessFlags);
    }
    function Lre(n) {
      if (!n.resolvedDefaultConstraint) {
        const a = yQe(n), l = L0(n);
        n.resolvedDefaultConstraint = Ss(a) ? l : Ss(l) ? a : Qr([a, l]);
      }
      return n.resolvedDefaultConstraint;
    }
    function VAe(n) {
      if (n.root.isDistributive && n.restrictiveInstantiation !== n) {
        const a = Yg(n.checkType, !1), l = a === n.checkType ? LE(a) : a;
        if (l && l !== n.checkType) {
          const u = Eie(n, SS(n.root.checkType, l, n.mapper));
          if (!(u.flags & 131072))
            return u;
        }
      }
    }
    function jAe(n) {
      return VAe(n) || Lre(n);
    }
    function BYe(n) {
      return sD(n) ? jAe(n) : void 0;
    }
    function GYe(n, a) {
      let l, u = !1;
      for (const p of n)
        if (p.flags & 465829888) {
          let g = LE(p);
          for (; g && g.flags & 21233664; )
            g = LE(g);
          g && (l = Fn(l, g), a && (l = Fn(l, p)));
        } else
          (p.flags & 469892092 || Yh(p)) && (u = !0);
      if (l && (a || u)) {
        if (u)
          for (const p of n)
            (p.flags & 469892092 || Yh(p)) && (l = Fn(l, p));
        return PP(wo(l), !1);
      }
    }
    function qu(n) {
      if (n.flags & 464781312) {
        const a = Ire(n);
        return a !== Yo && a !== Vl ? a : void 0;
      }
      return n.flags & 4194304 ? ji : void 0;
    }
    function iv(n) {
      return qu(n) || n;
    }
    function sD(n) {
      return Ire(n) !== Vl;
    }
    function Ire(n) {
      if (n.resolvedBaseConstraint)
        return n.resolvedBaseConstraint;
      const a = [];
      return n.resolvedBaseConstraint = Uf(l(n), n);
      function l(g) {
        if (!g.immediateBaseConstraint) {
          if (!Bf(g, 4))
            return Vl;
          let x;
          const R = IL(g);
          if ((a.length < 10 || a.length < 50 && !jr(a, R)) && (a.push(R), x = p(Yg(g, !1)), a.pop()), !i_()) {
            if (g.flags & 262144) {
              const M = zre(g);
              if (M) {
                const J = Ke(M, _.Type_parameter_0_has_a_circular_constraint, ke(g));
                G && !mT(M, G) && !mT(G, M) && Xo(J, Nr(G, _.Circularity_originates_in_type_at_this_location));
              }
            }
            x = Vl;
          }
          g.immediateBaseConstraint = x || Yo;
        }
        return g.immediateBaseConstraint;
      }
      function u(g) {
        const x = l(g);
        return x !== Yo && x !== Vl ? x : void 0;
      }
      function p(g) {
        if (g.flags & 262144) {
          const x = SL(g);
          return g.isThisType || !x ? x : u(x);
        }
        if (g.flags & 3145728) {
          const x = g.types, R = [];
          let M = !1;
          for (const J of x) {
            const $ = u(J);
            $ ? ($ !== J && (M = !0), R.push($)) : M = !0;
          }
          return M ? g.flags & 1048576 && R.length === x.length ? Qr(R) : g.flags & 2097152 && R.length ? wo(R) : void 0 : g;
        }
        if (g.flags & 4194304)
          return ji;
        if (g.flags & 134217728) {
          const x = g.types, R = ia(x, u);
          return R.length === x.length ? wE(g.texts, R) : ue;
        }
        if (g.flags & 268435456) {
          const x = u(g.type);
          return x && x !== g.type ? ES(g.symbol, x) : ue;
        }
        if (g.flags & 8388608) {
          if (wre(g))
            return u(RU(g.objectType, g.indexType));
          const x = u(g.objectType), R = u(g.indexType), M = x && R && sv(x, R, g.accessFlags);
          return M && u(M);
        }
        if (g.flags & 16777216) {
          const x = jAe(g);
          return x && u(x);
        }
        return g.flags & 33554432 ? u(Kre(g)) : g;
      }
    }
    function UYe(n) {
      return n.resolvedApparentType || (n.resolvedApparentType = Uf(n, n, !0));
    }
    function kre(n) {
      if (n.default)
        n.default === tu && (n.default = Vl);
      else if (n.target) {
        const a = kre(n.target);
        n.default = a ? Yi(a, n.mapper) : Yo;
      } else {
        n.default = tu;
        const a = n.symbol && ze(n.symbol.declarations, (u) => Fl(u) && u.default), l = a ? fi(a) : Yo;
        n.default === tu && (n.default = l);
      }
      return n.default;
    }
    function IE(n) {
      const a = kre(n);
      return a !== Yo && a !== Vl ? a : void 0;
    }
    function VYe(n) {
      return kre(n) !== Vl;
    }
    function HAe(n) {
      return !!(n.symbol && ze(n.symbol.declarations, (a) => Fl(a) && a.default));
    }
    function jYe(n) {
      return n.resolvedApparentType || (n.resolvedApparentType = HYe(n));
    }
    function HYe(n) {
      const a = yie(n);
      if (a && !n.declaration.nameType) {
        const l = Cu(a);
        if (l && RE(l))
          return Yi(n, SS(a, l, n.mapper));
      }
      return n;
    }
    function wre(n) {
      let a;
      return !!(n.flags & 8388608 && ti(a = n.objectType) & 32 && !Vf(a) && A0(n.indexType) && !(pm(a) & 8) && !a.declaration.nameType);
    }
    function Ju(n) {
      const a = n.flags & 465829888 ? qu(n) || he : n;
      return ti(a) & 32 ? jYe(a) : a.flags & 2097152 ? UYe(a) : a.flags & 402653316 ? fl : a.flags & 296 ? Jd : a.flags & 2112 ? S$e() : a.flags & 528 ? Hl : a.flags & 12288 ? mCe() : a.flags & 67108864 ? pa : a.flags & 4194304 ? ji : a.flags & 2 && !W ? pa : a;
    }
    function TL(n) {
      return up(Ju(up(n)));
    }
    function WAe(n, a, l) {
      var u, p, g;
      let x, R, M;
      const J = n.flags & 1048576;
      let $, ge = 4, Ne = J ? 0 : 8, De = !1;
      for (const Gn of n.types) {
        const qn = Ju(Gn);
        if (!(rs(qn) || qn.flags & 131072)) {
          const Zr = uo(qn, a, l), ri = Zr ? Qf(Zr) : 0;
          if (Zr) {
            if (Zr.flags & 106500 && ($ ?? ($ = J ? 0 : 16777216), J ? $ |= Zr.flags & 16777216 : $ &= Zr.flags), !x)
              x = Zr;
            else if (Zr !== x)
              if ((Z2(Zr) || Zr) === (Z2(x) || x) && Rie(x, Zr, (Qa, Ec) => Qa === Ec ? -1 : 0) === -1)
                De = !!x.parent && !!Le(ev(x.parent));
              else {
                R || (R = /* @__PURE__ */ new Map(), R.set(bo(x), x));
                const Qa = bo(Zr);
                R.has(Qa) || R.set(Qa, Zr);
              }
            J && _p(Zr) ? Ne |= 8 : !J && !_p(Zr) && (Ne &= -9), Ne |= (ri & 24 ? 0 : 256) | (ri & 16 ? 512 : 0) | (ri & 8 ? 1024 : 0) | (ri & 32 ? 2048 : 0), Cae(Zr) || (ge = 2);
          } else if (J) {
            const ma = !iD(a) && P2(qn, a);
            ma ? (Ne |= 32 | (ma.isReadonly ? 8 : 0), M = Fn(M, Fo(qn) ? UP(qn) || He : ma.type)) : R0(qn) && !(ti(qn) & 2097152) ? (Ne |= 32, M = Fn(M, He)) : Ne |= 16;
          }
        }
      }
      if (!x || J && (R || Ne & 48) && Ne & 1536 && !(R && WYe(R.values())))
        return;
      if (!R && !(Ne & 16) && !M)
        if (De) {
          const Gn = (u = ai(x, Om)) == null ? void 0 : u.links, qn = OE(x, Gn == null ? void 0 : Gn.type);
          return qn.parent = (g = (p = x.valueDeclaration) == null ? void 0 : p.symbol) == null ? void 0 : g.parent, qn.links.containingType = n, qn.links.mapper = Gn == null ? void 0 : Gn.mapper, qn;
        } else
          return x;
      const _t = R ? Ro(R.values()) : [x];
      let Bt, Mn, An;
      const Kn = [];
      let gn, xn, yr = !1;
      for (const Gn of _t) {
        xn ? Gn.valueDeclaration && Gn.valueDeclaration !== xn && (yr = !0) : xn = Gn.valueDeclaration, Bt = Ti(Bt, Gn.declarations);
        const qn = ar(Gn);
        Mn || (Mn = qn, An = Wi(Gn).nameType);
        const Zr = yL(Gn);
        gn || Zr !== qn ? gn = Fn(gn || Kn.slice(), Zr) : qn !== Mn && (Ne |= 64), (bD(qn) || V2(qn) || qn === Xr) && (Ne |= 128), qn.flags & 131072 && qn !== Xr && (Ne |= 131072), Kn.push(qn);
      }
      Ti(Kn, M);
      const ln = ns(4 | ($ ?? 0), a, ge | Ne);
      return ln.links.containingType = n, !yr && xn && (ln.valueDeclaration = xn, xn.symbol.parent && (ln.parent = xn.symbol.parent)), ln.declarations = Bt, ln.links.nameType = An, Kn.length > 2 ? (ln.links.checkFlags |= 65536, ln.links.deferralParent = n, ln.links.deferralConstituents = Kn, ln.links.deferralWriteConstituents = gn) : (ln.links.type = J ? Qr(Kn) : wo(Kn), gn && (ln.links.writeType = J ? Qr(gn) : wo(gn))), ln;
    }
    function Dre(n, a, l) {
      var u, p;
      let g = (u = n.propertyCacheWithoutObjectFunctionPropertyAugment) != null && u.get(a) || !l ? (p = n.propertyCache) == null ? void 0 : p.get(a) : void 0;
      return g || (g = WAe(n, a, l), g && (l ? n.propertyCacheWithoutObjectFunctionPropertyAugment || (n.propertyCacheWithoutObjectFunctionPropertyAugment = lo()) : n.propertyCache || (n.propertyCache = lo())).set(a, g)), g;
    }
    function WYe(n) {
      let a;
      for (const l of n) {
        if (!l.declarations)
          return;
        if (!a) {
          a = new Set(l.declarations);
          continue;
        }
        if (a.forEach((u) => {
          jr(l.declarations, u) || a.delete(u);
        }), a.size === 0)
          return;
      }
      return a;
    }
    function Rre(n, a, l) {
      const u = Dre(n, a, l);
      return u && !(Ll(u) & 16) ? u : void 0;
    }
    function up(n) {
      return n.flags & 1048576 && n.objectFlags & 16777216 ? n.resolvedReducedType || (n.resolvedReducedType = zYe(n)) : n.flags & 2097152 ? (n.objectFlags & 16777216 || (n.objectFlags |= 16777216 | (kt(bP(n), qYe) ? 33554432 : 0)), n.objectFlags & 33554432 ? gt : n) : n;
    }
    function zYe(n) {
      const a = _a(n.types, up);
      if (a === n.types)
        return n;
      const l = Qr(a);
      return l.flags & 1048576 && (l.resolvedReducedType = l), l;
    }
    function qYe(n) {
      return zAe(n) || qAe(n);
    }
    function zAe(n) {
      return !(n.flags & 16777216) && (Ll(n) & 131264) === 192 && !!(ar(n).flags & 131072);
    }
    function qAe(n) {
      return !n.valueDeclaration && !!(Ll(n) & 1024);
    }
    function Nre(n, a) {
      if (a.flags & 2097152 && ti(a) & 33554432) {
        const l = nn(bP(a), zAe);
        if (l)
          return Na(n, _.The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents, ke(a, void 0, 536870912), S(l));
        const u = nn(bP(a), qAe);
        if (u)
          return Na(n, _.The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some, ke(a, void 0, 536870912), S(u));
      }
      return n;
    }
    function uo(n, a, l, u) {
      if (n = TL(n), n.flags & 524288) {
        const p = cp(n), g = p.members.get(a);
        if (g && Gg(g, u))
          return g;
        if (l)
          return;
        const x = p === La ? dl : p.callSignatures.length ? dc : p.constructSignatures.length ? _d : void 0;
        if (x) {
          const R = Rb(x, a);
          if (R)
            return R;
        }
        return Rb(Ya, a);
      }
      if (n.flags & 3145728)
        return Rre(n, a, l);
    }
    function TP(n, a) {
      if (n.flags & 3670016) {
        const l = cp(n);
        return a === 0 ? l.callSignatures : l.constructSignatures;
      }
      return rt;
    }
    function za(n, a) {
      return TP(TL(n), a);
    }
    function Ore(n, a) {
      return nn(n, (l) => l.keyType === a);
    }
    function Pre(n, a) {
      let l, u, p;
      for (const g of n)
        g.keyType === ue ? l = g : O2(a, g.keyType) && (u ? (p || (p = [u])).push(g) : u = g);
      return p ? hm(he, wo(jt(p, (g) => g.type)), Ru(p, (g, x) => g && x.isReadonly, !0)) : u || (l && O2(a, ue) ? l : void 0);
    }
    function O2(n, a) {
      return xo(n, a) || a === ue && xo(n, mt) || a === mt && (n === io || !!(n.flags & 128) && xh(n.value));
    }
    function Mre(n) {
      return n.flags & 3670016 ? cp(n).indexInfos : rt;
    }
    function Lu(n) {
      return Mre(TL(n));
    }
    function sh(n, a) {
      return Ore(Lu(n), a);
    }
    function Jg(n, a) {
      var l;
      return (l = sh(n, a)) == null ? void 0 : l.type;
    }
    function Fre(n, a) {
      return Lu(n).filter((l) => O2(a, l.keyType));
    }
    function SP(n, a) {
      return Pre(Lu(n), a);
    }
    function P2(n, a) {
      return SP(n, iD(a) ? q : jf(ta(a)));
    }
    function JAe(n) {
      var a;
      let l;
      for (const u of Av(n))
        l = oy(l, CE(u.symbol));
      return l != null && l.length ? l : yc(n) ? (a = cD(n)) == null ? void 0 : a.typeParameters : void 0;
    }
    function Bre(n) {
      const a = [];
      return n.forEach((l, u) => {
        pE(u) || a.push(l);
      }), a;
    }
    function Gre(n, a) {
      if (Gc(n))
        return;
      const l = Xd(We, '"' + n + '"', 512);
      return l && a ? as(l) : l;
    }
    function lD(n) {
      if (rx(n) || dO(n) || fO(n))
        return !0;
      if (n.initializer) {
        const l = Mp(n.parent), u = n.parent.parameters.indexOf(n);
        return D.assert(u >= 0), u >= bm(l, 3);
      }
      const a = dT(n.parent);
      return a ? !n.type && !n.dotDotDotToken && n.parent.parameters.indexOf(n) >= a.arguments.length : !1;
    }
    function JYe(n) {
      return to(n) && !Bm(n) && n.questionToken;
    }
    function xP(n, a, l, u) {
      return { kind: n, parameterName: a, parameterIndex: l, type: u };
    }
    function mm(n) {
      let a = 0;
      if (n)
        for (let l = 0; l < n.length; l++)
          HAe(n[l]) || (a = l + 1);
      return a;
    }
    function av(n, a, l, u) {
      const p = Le(a);
      if (!p)
        return [];
      const g = Le(n);
      if (u || g >= l && g <= p) {
        const x = n ? n.slice() : [];
        for (let M = g; M < p; M++)
          x[M] = Ce;
        const R = eae(u);
        for (let M = g; M < p; M++) {
          let J = IE(a[M]);
          u && J && (Kh(J, he) || Kh(J, pa)) && (J = we), x[M] = J ? Yi(J, vd(a, x)) : R;
        }
        return x.length = a.length, x;
      }
      return n && n.slice();
    }
    function Mp(n) {
      const a = Jr(n);
      if (!a.resolvedSignature) {
        const l = [];
        let u = 0, p = 0, g, x = !1;
        const R = dT(n), M = zA(n);
        !R && fr(n) && Due(n) && !rce(n) && !xv(n) && (u |= 32);
        for (let Ne = M ? 1 : 0; Ne < n.parameters.length; Ne++) {
          const De = n.parameters[Ne];
          let _t = De.symbol;
          const Bt = rm(De) ? De.typeExpression && De.typeExpression.type : De.type;
          _t && _t.flags & 4 && !Xa(De.name) && (_t = _l(De, _t.escapedName, 111551, void 0, void 0, !1)), Ne === 0 && _t.escapedName === "this" ? (x = !0, g = De.symbol) : l.push(_t), Bt && Bt.kind === 198 && (u |= 2), dO(De) || De.initializer || De.questionToken || gh(De) || R && l.length > R.arguments.length && !Bt || fO(De) || (p = l.length);
        }
        if ((n.kind === 174 || n.kind === 175) && N2(n) && (!x || !g)) {
          const Ne = n.kind === 174 ? 175 : 174, De = xl(Ir(n), Ne);
          De && (g = Je(De));
        }
        if (fr(n)) {
          const Ne = wM(n);
          Ne && Ne.typeExpression && (g = OE(ns(1, "this"), fi(Ne.typeExpression)));
        }
        const $ = n.kind === 173 ? zu(as(n.parent.symbol)) : void 0, ge = $ ? $.localTypeParameters : JAe(n);
        (OW(n) || fr(n) && KYe(n, l)) && (u |= 1), (Ik(n) && Yr(n, 256) || ql(n) && Yr(n.parent, 256)) && (u |= 4), a.resolvedSignature = oh(n, ge, g, l, void 0, void 0, p, u);
      }
      return a.resolvedSignature;
    }
    function KYe(n, a) {
      if (P1(n) || !Ure(n))
        return !1;
      const l = tl(n.parameters), u = l ? TI(l) : d1(n).filter(rm), p = Jt(u, (x) => x.typeExpression && q7(x.typeExpression.type) ? x.typeExpression.type : void 0), g = ns(3, "args", 32768);
      return p ? g.links.type = Iu(fi(p.type)) : (g.links.checkFlags |= 65536, g.links.deferralParent = gt, g.links.deferralConstituents = [Dt], g.links.deferralWriteConstituents = [Dt]), p && a.pop(), a.push(g), !0;
    }
    function cD(n) {
      if (!(fr(n) && Qs(n)))
        return;
      const a = u1(n);
      return (a == null ? void 0 : a.typeExpression) && LS(fi(a.typeExpression));
    }
    function XYe(n, a) {
      const l = cD(n);
      if (!l)
        return;
      const u = n.parameters.indexOf(a);
      return a.dotDotDotToken ? ND(l, u) : fp(l, u);
    }
    function YYe(n) {
      const a = cD(n);
      return a && ys(a);
    }
    function Ure(n) {
      const a = Jr(n);
      return a.containsArgumentsReference === void 0 && (a.flags & 512 ? a.containsArgumentsReference = !0 : a.containsArgumentsReference = l(n.body)), a.containsArgumentsReference;
      function l(u) {
        if (!u)
          return !1;
        switch (u.kind) {
          case 79:
            return u.escapedText === Ct.escapedName && x4(u) === Ct;
          case 169:
          case 171:
          case 174:
          case 175:
            return u.name.kind === 164 && l(u.name);
          case 208:
          case 209:
            return l(u.expression);
          case 299:
            return l(u.initializer);
          default:
            return !Lz(u) && !yh(u) && !!Ma(u, l);
        }
      }
    }
    function Nb(n) {
      if (!n || !n.declarations)
        return rt;
      const a = [];
      for (let l = 0; l < n.declarations.length; l++) {
        const u = n.declarations[l];
        if (Ka(u)) {
          if (l > 0 && u.body) {
            const p = n.declarations[l - 1];
            if (u.parent === p.parent && u.kind === p.kind && u.pos === p.end)
              continue;
          }
          if (fr(u) && u.jsDoc) {
            let p = !1;
            for (const g of u.jsDoc)
              if (g.tags) {
                for (const x of g.tags)
                  if (Gk(x)) {
                    const R = x.typeExpression;
                    R.type === void 0 && !ql(u) && D0(R, we), a.push(Mp(R)), p = !0;
                  }
              }
            if (p)
              continue;
          }
          a.push(!lC(u) && !B_(u) && cD(u) || Mp(u));
        }
      }
      return a;
    }
    function KAe(n) {
      const a = du(n, n);
      if (a) {
        const l = hd(a);
        if (l)
          return ar(l);
      }
      return we;
    }
    function Ob(n) {
      if (n.thisParameter)
        return ar(n.thisParameter);
    }
    function a_(n) {
      if (!n.resolvedTypePredicate) {
        if (n.target) {
          const a = a_(n.target);
          n.resolvedTypePredicate = a ? NQe(a, n.mapper) : el;
        } else if (n.compositeSignatures)
          n.resolvedTypePredicate = z$e(n.compositeSignatures, n.compositeKind) || el;
        else {
          const a = n.declaration && yp(n.declaration);
          let l;
          if (!a) {
            const u = cD(n.declaration);
            u && n !== u && (l = a_(u));
          }
          n.resolvedTypePredicate = a && G7(a) ? $Ye(a, n) : l || el;
        }
        D.assert(!!n.resolvedTypePredicate);
      }
      return n.resolvedTypePredicate === el ? void 0 : n.resolvedTypePredicate;
    }
    function $Ye(n, a) {
      const l = n.parameterName, u = n.type && fi(n.type);
      return l.kind === 194 ? xP(n.assertsModifier ? 2 : 0, void 0, void 0, u) : xP(n.assertsModifier ? 3 : 1, l.escapedText, vi(a.parameters, (p) => p.escapedName === l.escapedText), u);
    }
    function XAe(n, a, l) {
      return a !== 2097152 ? Qr(n, l) : wo(n);
    }
    function ys(n) {
      if (!n.resolvedReturnType) {
        if (!Bf(n, 3))
          return Ce;
        let a = n.target ? Yi(ys(n.target), n.mapper) : n.compositeSignatures ? Yi(XAe(jt(n.compositeSignatures, ys), n.compositeKind, 2), n.mapper) : M2(n.declaration) || (Al(n.declaration.body) ? we : NV(n.declaration));
        if (n.flags & 8 ? a = LLe(a) : n.flags & 16 && (a = Qg(a)), !i_()) {
          if (n.declaration) {
            const l = yp(n.declaration);
            if (l)
              Ke(l, _.Return_type_annotation_circularly_references_itself);
            else if (Te) {
              const u = n.declaration, p = ka(u);
              p ? Ke(p, _._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, ws(p)) : Ke(u, _.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions);
            }
          }
          a = we;
        }
        n.resolvedReturnType = a;
      }
      return n.resolvedReturnType;
    }
    function M2(n) {
      if (n.kind === 173)
        return zu(as(n.parent.symbol));
      if (P1(n)) {
        const l = HI(n);
        if (l && ql(l.parent))
          return zu(as(l.parent.parent.symbol));
      }
      if (zA(n))
        return fi(n.parameters[0].type);
      const a = yp(n);
      if (a)
        return fi(a);
      if (n.kind === 174 && N2(n)) {
        const l = fr(n) && ki(n);
        if (l)
          return l;
        const u = xl(Ir(n), 175), p = se(u);
        if (p)
          return p;
      }
      return YYe(n);
    }
    function Vre(n) {
      return !n.resolvedReturnType && ih(n, 3) >= 0;
    }
    function QYe(n) {
      return YAe(n) || we;
    }
    function YAe(n) {
      if (Eu(n)) {
        const a = ar(n.parameters[n.parameters.length - 1]), l = Fo(a) ? UP(a) : a;
        return l && Jg(l, mt);
      }
    }
    function uD(n, a, l, u) {
      const p = jre(n, av(a, n.typeParameters, mm(n.typeParameters), l));
      if (u) {
        const g = ike(ys(p));
        if (g) {
          const x = aD(g);
          x.typeParameters = u;
          const R = aD(p);
          return R.resolvedReturnType = kE(x), R;
        }
      }
      return p;
    }
    function jre(n, a) {
      const l = n.instantiations || (n.instantiations = /* @__PURE__ */ new Map()), u = o_(a);
      let p = l.get(u);
      return p || l.set(u, p = TU(n, a)), p;
    }
    function TU(n, a) {
      return W2(n, ZYe(n, a), !0);
    }
    function ZYe(n, a) {
      return vd(n.typeParameters, a);
    }
    function dD(n) {
      return n.typeParameters ? n.erasedSignatureCache || (n.erasedSignatureCache = e$e(n)) : n;
    }
    function e$e(n) {
      return W2(n, ZCe(n.typeParameters), !0);
    }
    function t$e(n) {
      return n.typeParameters ? n.canonicalSignatureCache || (n.canonicalSignatureCache = n$e(n)) : n;
    }
    function n$e(n) {
      return uD(n, jt(n.typeParameters, (a) => a.target && !Cu(a.target) ? a.target : a), fr(n.declaration));
    }
    function r$e(n) {
      const a = n.typeParameters;
      if (a) {
        if (n.baseSignatureCache)
          return n.baseSignatureCache;
        const l = ZCe(a), u = vd(a, jt(a, (g) => Cu(g) || he));
        let p = jt(a, (g) => Yi(g, u) || he);
        for (let g = 0; g < a.length - 1; g++)
          p = $g(p, u);
        return p = $g(p, l), n.baseSignatureCache = W2(n, vd(a, p), !0);
      }
      return n;
    }
    function kE(n) {
      var a;
      if (!n.isolatedSignatureType) {
        const l = (a = n.declaration) == null ? void 0 : a.kind, u = l === void 0 || l === 173 || l === 177 || l === 182, p = gf(16);
        p.members = te, p.properties = rt, p.callSignatures = u ? rt : [n], p.constructSignatures = u ? [n] : rt, p.indexInfos = rt, n.isolatedSignatureType = p;
      }
      return n.isolatedSignatureType;
    }
    function $Ae(n) {
      return n.members ? Hre(n.members) : void 0;
    }
    function Hre(n) {
      return n.get("__index");
    }
    function hm(n, a, l, u) {
      return { keyType: n, type: a, isReadonly: l, declaration: u };
    }
    function QAe(n) {
      const a = $Ae(n);
      return a ? Wre(a) : rt;
    }
    function Wre(n) {
      if (n.declarations) {
        const a = [];
        for (const l of n.declarations)
          if (l.parameters.length === 1) {
            const u = l.parameters[0];
            u.type && BE(fi(u.type), (p) => {
              SU(p) && !Ore(a, p) && a.push(hm(p, l.type ? fi(l.type) : we, Gd(l, 64), l));
            });
          }
        return a;
      }
      return rt;
    }
    function SU(n) {
      return !!(n.flags & 4108) || V2(n) || !!(n.flags & 2097152) && !CL(n) && kt(n.types, SU);
    }
    function zre(n) {
      return ia(lr(n.symbol && n.symbol.declarations, Fl), xA)[0];
    }
    function ZAe(n, a) {
      var l;
      let u;
      if ((l = n.symbol) != null && l.declarations) {
        for (const p of n.symbol.declarations)
          if (p.parent.kind === 192) {
            const [g = p.parent, x] = Nue(p.parent.parent);
            if (x.kind === 180 && !a) {
              const R = x, M = loe(R);
              if (M) {
                const J = R.typeArguments.indexOf(g);
                if (J < M.length) {
                  const $ = Cu(M[J]);
                  if ($) {
                    const ge = hie(M, M.map((De, _t) => () => _it(R, M, _t))), Ne = Yi($, ge);
                    Ne !== n && (u = Fn(u, Ne));
                  }
                }
              }
            } else if (x.kind === 166 && x.dotDotDotToken || x.kind === 188 || x.kind === 199 && x.dotDotDotToken)
              u = Fn(u, Iu(he));
            else if (x.kind === 201)
              u = Fn(u, ue);
            else if (x.kind === 165 && x.parent.kind === 197)
              u = Fn(u, ji);
            else if (x.kind === 197 && x.type && js(x.type) === p.parent && x.parent.kind === 191 && x.parent.extendsType === x && x.parent.checkType.kind === 197 && x.parent.checkType.type) {
              const R = x.parent.checkType, M = fi(R.type);
              u = Fn(u, Yi(M, Ub(CE(Ir(R.typeParameter)), R.typeParameter.constraint ? fi(R.typeParameter.constraint) : ji)));
            }
          }
      }
      return u && wo(u);
    }
    function SL(n) {
      if (!n.constraint)
        if (n.target) {
          const a = Cu(n.target);
          n.constraint = a ? Yi(a, n.mapper) : Yo;
        } else {
          const a = zre(n);
          if (!a)
            n.constraint = ZAe(n) || Yo;
          else {
            let l = fi(a);
            l.flags & 1 && !rs(l) && (l = a.parent.parent.kind === 197 ? ji : he), n.constraint = l;
          }
        }
      return n.constraint === Yo ? void 0 : n.constraint;
    }
    function eCe(n) {
      const a = xl(n.symbol, 165), l = Ep(a.parent) ? T3(a.parent) : a.parent;
      return l && Yd(l);
    }
    function o_(n) {
      let a = "";
      if (n) {
        const l = n.length;
        let u = 0;
        for (; u < l; ) {
          const p = n[u].id;
          let g = 1;
          for (; u + g < l && n[u + g].id === p + g; )
            g++;
          a.length && (a += ","), a += p, g > 1 && (a += ":" + g), u += g;
        }
      }
      return a;
    }
    function F2(n, a) {
      return n ? `@${bo(n)}` + (a ? `:${o_(a)}` : "") : "";
    }
    function xU(n, a) {
      let l = 0;
      for (const u of n)
        (a === void 0 || !(u.flags & a)) && (l |= ti(u));
      return l & 458752;
    }
    function B2(n, a) {
      return kt(a) && n === Co ? he : Kg(n, a);
    }
    function Kg(n, a) {
      const l = o_(a);
      let u = n.instantiations.get(l);
      return u || (u = gf(4, n.symbol), n.instantiations.set(l, u), u.objectFlags |= a ? xU(a) : 0, u.target = n, u.resolvedTypeArguments = a), u;
    }
    function tCe(n) {
      const a = dm(n.flags, n.symbol);
      return a.objectFlags = n.objectFlags, a.target = n.target, a.resolvedTypeArguments = n.resolvedTypeArguments, a;
    }
    function qre(n, a, l, u, p) {
      if (!u) {
        u = TS(a);
        const x = j2(u);
        p = l ? $g(x, l) : x;
      }
      const g = gf(4, n.symbol);
      return g.target = n, g.node = a, g.mapper = l, g.aliasSymbol = u, g.aliasTypeArguments = p, g;
    }
    function hs(n) {
      var a, l;
      if (!n.resolvedTypeArguments) {
        if (!Bf(n, 6))
          return ((a = n.target.localTypeParameters) == null ? void 0 : a.map(() => Ce)) || rt;
        const u = n.node, p = u ? u.kind === 180 ? va(n.target.outerTypeParameters, MV(u, n.target.localTypeParameters)) : u.kind === 185 ? [fi(u.elementType)] : jt(u.elements, fi) : rt;
        i_() ? n.resolvedTypeArguments = n.mapper ? $g(p, n.mapper) : p : (n.resolvedTypeArguments = ((l = n.target.localTypeParameters) == null ? void 0 : l.map(() => Ce)) || rt, Ke(n.node || G, n.target.symbol ? _.Type_arguments_for_0_circularly_reference_themselves : _.Tuple_type_arguments_circularly_reference_themselves, n.target.symbol && S(n.target.symbol)));
      }
      return n.resolvedTypeArguments;
    }
    function x0(n) {
      return Le(n.target.typeParameters);
    }
    function nCe(n, a) {
      const l = Us(as(a)), u = l.localTypeParameters;
      if (u) {
        const p = Le(n.typeArguments), g = mm(u), x = fr(n);
        if (!(!Te && x) && (p < g || p > u.length)) {
          const J = x && Sy(n) && !LC(n.parent), $ = g === u.length ? J ? _.Expected_0_type_arguments_provide_these_with_an_extends_tag : _.Generic_type_0_requires_1_type_argument_s : J ? _.Expected_0_1_type_arguments_provide_these_with_an_extends_tag : _.Generic_type_0_requires_between_1_and_2_type_arguments, ge = ke(l, void 0, 2);
          if (Ke(n, $, ge, g, u.length), !x)
            return Ce;
        }
        if (n.kind === 180 && ECe(n, Le(n.typeArguments) !== u.length))
          return qre(l, n, void 0);
        const M = va(l.outerTypeParameters, av(AP(n), u, g, x));
        return Kg(l, M);
      }
      return Pb(n, a) ? l : Ce;
    }
    function G2(n, a, l, u) {
      const p = Us(n);
      if (p === ie && S8.has(n.escapedName) && a && a.length === 1)
        return ES(n, a[0]);
      const g = Wi(n), x = g.typeParameters, R = o_(a) + F2(l, u);
      let M = g.instantiations.get(R);
      return M || g.instantiations.set(R, M = nLe(p, vd(x, av(a, x, mm(x), fr(n.valueDeclaration))), l, u)), M;
    }
    function i$e(n, a) {
      if (Ll(a) & 1048576) {
        const p = AP(n), g = F2(a, p);
        let x = Hr.get(g);
        return x || (x = $l(1, "error"), x.aliasSymbol = a, x.aliasTypeArguments = p, Hr.set(g, x)), x;
      }
      const l = Us(a), u = Wi(a).typeParameters;
      if (u) {
        const p = Le(n.typeArguments), g = mm(u);
        if (p < g || p > u.length)
          return Ke(n, g === u.length ? _.Generic_type_0_requires_1_type_argument_s : _.Generic_type_0_requires_between_1_and_2_type_arguments, S(a), g, u.length), Ce;
        const x = TS(n);
        let R = x && (rCe(a) || !rCe(x)) ? x : void 0, M;
        if (R)
          M = j2(R);
        else if (HM(n)) {
          const J = U2(n, 2097152, !0);
          if (J && J !== an) {
            const $ = nc(J);
            $ && $.flags & 524288 && (R = $, M = AP(n) || (u ? [] : void 0));
          }
        }
        return G2(a, AP(n), R, M);
      }
      return Pb(n, a) ? l : Ce;
    }
    function rCe(n) {
      var a;
      const l = (a = n.declarations) == null ? void 0 : a.find(LN);
      return !!(l && Cf(l));
    }
    function a$e(n) {
      switch (n.kind) {
        case 180:
          return n.typeName;
        case 230:
          const a = n.expression;
          if (zl(a))
            return a;
      }
    }
    function iCe(n) {
      return n.parent ? `${iCe(n.parent)}.${n.escapedName}` : n.escapedName;
    }
    function AU(n) {
      const l = (n.kind === 163 ? n.right : n.kind === 208 ? n.name : n).escapedText;
      if (l) {
        const u = n.kind === 163 ? AU(n.left) : n.kind === 208 ? AU(n.expression) : void 0, p = u ? `${iCe(u)}.${l}` : l;
        let g = Ar.get(p);
        return g || (Ar.set(p, g = ns(524288, l, 1048576)), g.parent = u, g.links.declaredType = pt), g;
      }
      return an;
    }
    function U2(n, a, l) {
      const u = a$e(n);
      if (!u)
        return an;
      const p = Rl(u, a, l);
      return p && p !== an ? p : l ? an : AU(u);
    }
    function CU(n, a) {
      if (a === an)
        return Ce;
      if (a = u0(a) || a, a.flags & 96)
        return nCe(n, a);
      if (a.flags & 524288)
        return i$e(n, a);
      const l = AAe(a);
      if (l)
        return Pb(n, a) ? yd(l) : Ce;
      if (a.flags & 111551 && LU(n)) {
        const u = o$e(n, a);
        return u || (U2(n, 788968), ar(a));
      }
      return Ce;
    }
    function o$e(n, a) {
      const l = Jr(n);
      if (!l.resolvedJSDocType) {
        const u = ar(a);
        let p = u;
        if (a.valueDeclaration) {
          const g = n.kind === 202 && n.qualifier;
          u.symbol && u.symbol !== a && g && (p = CU(n, u.symbol));
        }
        l.resolvedJSDocType = p;
      }
      return l.resolvedJSDocType;
    }
    function Jre(n, a) {
      if (a.flags & 3 || a === n || n.flags & 1)
        return n;
      const l = `${ku(n)}>${ku(a)}`, u = Wt.get(l);
      if (u)
        return u;
      const p = jh(33554432);
      return p.baseType = n, p.constraint = a, Wt.set(l, p), p;
    }
    function Kre(n) {
      return wo([n.constraint, n.baseType]);
    }
    function aCe(n) {
      return n.kind === 186 && n.elements.length === 1;
    }
    function oCe(n, a, l) {
      return aCe(a) && aCe(l) ? oCe(n, a.elements[0], l.elements[0]) : lv(fi(a)) === lv(n) ? fi(l) : void 0;
    }
    function s$e(n, a) {
      let l, u = !0;
      for (; a && !wa(a) && a.kind !== 323; ) {
        const p = a.parent;
        if (p.kind === 166 && (u = !u), (u || n.flags & 8650752) && p.kind === 191 && a === p.trueType) {
          const g = oCe(n, p.checkType, p.extendsType);
          g && (l = Fn(l, g));
        } else if (n.flags & 262144 && p.kind === 197 && a === p.type) {
          const g = fi(p);
          if (lp(g) === lv(n)) {
            const x = yie(g);
            if (x) {
              const R = Cu(x);
              R && lh(R, RE) && (l = Fn(l, Qr([mt, io])));
            }
          }
        }
        a = p;
      }
      return l ? Jre(n, wo(l)) : n;
    }
    function LU(n) {
      return !!(n.flags & 8388608) && (n.kind === 180 || n.kind === 202);
    }
    function Pb(n, a) {
      return n.typeArguments ? (Ke(n, _.Type_0_is_not_generic, a ? S(a) : n.typeName ? ws(n.typeName) : T8), !1) : !0;
    }
    function sCe(n) {
      if (je(n.typeName)) {
        const a = n.typeArguments;
        switch (n.typeName.escapedText) {
          case "String":
            return Pb(n), ue;
          case "Number":
            return Pb(n), mt;
          case "Boolean":
            return Pb(n), Re;
          case "Void":
            return Pb(n), Rt;
          case "Undefined":
            return Pb(n), He;
          case "Null":
            return Pb(n), Sn;
          case "Function":
          case "function":
            return Pb(n), dl;
          case "array":
            return (!a || !a.length) && !Te ? Dt : void 0;
          case "promise":
            return (!a || !a.length) && !Te ? l4(we) : void 0;
          case "Object":
            if (a && a.length === 2) {
              if (h3(n)) {
                const l = fi(a[0]), u = fi(a[1]), p = l === ue || l === mt ? [hm(l, u, !1)] : rt;
                return Ns(void 0, te, rt, rt, p);
              }
              return we;
            }
            return Pb(n), Te ? void 0 : we;
        }
      }
    }
    function l$e(n) {
      const a = fi(n.type);
      return W ? QU(a, 65536) : a;
    }
    function Xre(n) {
      const a = Jr(n);
      if (!a.resolvedType) {
        if (sg(n) && iT(n.parent))
          return a.resolvedSymbol = an, a.resolvedType = Ql(n.parent.expression);
        let l, u;
        const p = 788968;
        LU(n) && (u = sCe(n), u || (l = U2(n, p, !0), l === an ? l = U2(n, p | 111551) : U2(n, p), u = CU(n, l))), u || (l = U2(n, p), u = CU(n, l)), a.resolvedSymbol = l, a.resolvedType = u;
      }
      return a.resolvedType;
    }
    function AP(n) {
      return jt(n.typeArguments, fi);
    }
    function lCe(n) {
      const a = Jr(n);
      if (!a.resolvedType) {
        const l = xke(n);
        a.resolvedType = yd(ef(l));
      }
      return a.resolvedType;
    }
    function cCe(n, a) {
      function l(p) {
        const g = p.declarations;
        if (g)
          for (const x of g)
            switch (x.kind) {
              case 260:
              case 261:
              case 263:
                return x;
            }
      }
      if (!n)
        return a ? Co : pa;
      const u = Us(n);
      return u.flags & 524288 ? Le(u.typeParameters) !== a ? (Ke(l(n), _.Global_type_0_must_have_1_type_parameter_s, Ml(n), a), a ? Co : pa) : u : (Ke(l(n), _.Global_type_0_must_be_a_class_or_interface_type, Ml(n)), a ? Co : pa);
    }
    function Yre(n, a) {
      return fD(n, 111551, a ? _.Cannot_find_global_value_0 : void 0);
    }
    function uCe(n, a) {
      return fD(n, 788968, a ? _.Cannot_find_global_type_0 : void 0);
    }
    function IU(n, a, l) {
      const u = fD(n, 788968, l ? _.Cannot_find_global_type_0 : void 0);
      if (u && (Us(u), Le(Wi(u).typeParameters) !== a)) {
        const p = u.declarations && nn(u.declarations, em);
        Ke(p, _.Global_type_0_must_have_1_type_parameter_s, Ml(u), a);
        return;
      }
      return u;
    }
    function fD(n, a, l) {
      return _l(void 0, n, a, l, n, !1, !1, !1);
    }
    function lc(n, a, l) {
      const u = uCe(n, l);
      return u || l ? cCe(u, a) : void 0;
    }
    function c$e() {
      return Pt || (Pt = lc("TypedPropertyDescriptor", 1, !0) || Co);
    }
    function u$e() {
      return pf || (pf = lc("TemplateStringsArray", 0, !0) || pa);
    }
    function dCe() {
      return S_ || (S_ = lc("ImportMeta", 0, !0) || pa);
    }
    function fCe() {
      if (!$o) {
        const n = ns(0, "ImportMetaExpression"), a = dCe(), l = ns(4, "meta", 8);
        l.parent = n, l.links.type = a;
        const u = lo([l]);
        n.members = u, $o = Ns(n, u, rt, rt, rt);
      }
      return $o;
    }
    function _Ce(n) {
      return x_ || (x_ = lc("ImportCallOptions", 0, n)) || pa;
    }
    function pCe(n) {
      return oe || (oe = Yre("Symbol", n));
    }
    function d$e(n) {
      return ut || (ut = uCe("SymbolConstructor", n));
    }
    function mCe() {
      return Mt || (Mt = lc("Symbol", 0, !1)) || pa;
    }
    function CP(n) {
      return un || (un = lc("Promise", 1, n)) || Co;
    }
    function hCe(n) {
      return Vn || (Vn = lc("PromiseLike", 1, n)) || Co;
    }
    function $re(n) {
      return Rr || (Rr = Yre("Promise", n));
    }
    function f$e(n) {
      return ni || (ni = lc("PromiseConstructorLike", 0, n)) || pa;
    }
    function kU(n) {
      return _f || (_f = lc("AsyncIterable", 1, n)) || Co;
    }
    function _$e(n) {
      return tc || (tc = lc("AsyncIterator", 3, n)) || Co;
    }
    function p$e(n) {
      return Kd || (Kd = lc("AsyncIterableIterator", 1, n)) || Co;
    }
    function m$e(n) {
      return Au || (Au = lc("AsyncGenerator", 3, n)) || Co;
    }
    function Qre(n) {
      return Mi || (Mi = lc("Iterable", 1, n)) || Co;
    }
    function h$e(n) {
      return ja || (ja = lc("Iterator", 3, n)) || Co;
    }
    function g$e(n) {
      return Wo || (Wo = lc("IterableIterator", 1, n)) || Co;
    }
    function y$e(n) {
      return Ts || (Ts = lc("Generator", 3, n)) || Co;
    }
    function v$e(n) {
      return Xs || (Xs = lc("IteratorYieldResult", 1, n)) || Co;
    }
    function b$e(n) {
      return pd || (pd = lc("IteratorReturnResult", 1, n)) || Co;
    }
    function gCe(n, a = 0) {
      const l = fD(n, 788968, void 0);
      return l && cCe(l, a);
    }
    function E$e() {
      return mf || (mf = IU("Extract", 2, !0) || an), mf === an ? void 0 : mf;
    }
    function T$e() {
      return Q_ || (Q_ = IU("Omit", 2, !0) || an), Q_ === an ? void 0 : Q_;
    }
    function Zre(n) {
      return Ip || (Ip = IU("Awaited", 1, n) || (n ? an : void 0)), Ip === an ? void 0 : Ip;
    }
    function S$e() {
      return U || (U = lc("BigInt", 0, !1)) || pa;
    }
    function x$e(n) {
      var a;
      return (a = Xn ?? (Xn = lc("ClassDecoratorContext", 1, n))) != null ? a : Co;
    }
    function A$e(n) {
      var a;
      return (a = Da ?? (Da = lc("ClassMethodDecoratorContext", 2, n))) != null ? a : Co;
    }
    function C$e(n) {
      var a;
      return (a = Ia ?? (Ia = lc("ClassGetterDecoratorContext", 2, n))) != null ? a : Co;
    }
    function L$e(n) {
      var a;
      return (a = Ie ?? (Ie = lc("ClassSetterDecoratorContext", 2, n))) != null ? a : Co;
    }
    function I$e(n) {
      var a;
      return (a = Ue ?? (Ue = lc("ClassAccessorDecoratorContext", 2, n))) != null ? a : Co;
    }
    function k$e(n) {
      var a;
      return (a = Lt ?? (Lt = lc("ClassAccessorDecoratorTarget", 2, n))) != null ? a : Co;
    }
    function w$e(n) {
      var a;
      return (a = Ot ?? (Ot = lc("ClassAccessorDecoratorResult", 2, n))) != null ? a : Co;
    }
    function D$e(n) {
      var a;
      return (a = hn ?? (hn = lc("ClassFieldDecoratorContext", 2, n))) != null ? a : Co;
    }
    function R$e() {
      return et || (et = Yre("NaN", !1));
    }
    function N$e() {
      return qt || (qt = IU("Record", 2, !0) || an), qt === an ? void 0 : qt;
    }
    function _D(n, a) {
      return n !== Co ? Kg(n, a) : pa;
    }
    function yCe(n) {
      return _D(c$e(), [n]);
    }
    function vCe(n) {
      return _D(Qre(!0), [n]);
    }
    function Iu(n, a) {
      return _D(a ? ds : Es, [n]);
    }
    function eie(n) {
      switch (n.kind) {
        case 187:
          return 2;
        case 188:
          return bCe(n);
        case 199:
          return n.questionToken ? 2 : n.dotDotDotToken ? bCe(n) : 1;
        default:
          return 1;
      }
    }
    function bCe(n) {
      return wP(n.type) ? 4 : 8;
    }
    function O$e(n) {
      const a = M$e(n.parent);
      if (wP(n))
        return a ? ds : Es;
      const u = jt(n.elements, eie), p = kt(n.elements, (g) => g.kind !== 199);
      return tie(u, a, p ? void 0 : n.elements);
    }
    function ECe(n, a) {
      return !!TS(n) || TCe(n) && (n.kind === 185 ? ov(n.elementType) : n.kind === 186 ? kt(n.elements, ov) : a || kt(n.typeArguments, ov));
    }
    function TCe(n) {
      const a = n.parent;
      switch (a.kind) {
        case 193:
        case 199:
        case 180:
        case 189:
        case 190:
        case 196:
        case 191:
        case 195:
        case 185:
        case 186:
          return TCe(a);
        case 262:
          return !0;
      }
      return !1;
    }
    function ov(n) {
      switch (n.kind) {
        case 180:
          return LU(n) || !!(U2(n, 788968).flags & 524288);
        case 183:
          return !0;
        case 195:
          return n.operator !== 156 && ov(n.type);
        case 193:
        case 187:
        case 199:
        case 319:
        case 317:
        case 318:
        case 312:
          return ov(n.type);
        case 188:
          return n.type.kind !== 185 || ov(n.type.elementType);
        case 189:
        case 190:
          return kt(n.types, ov);
        case 196:
          return ov(n.objectType) || ov(n.indexType);
        case 191:
          return ov(n.checkType) || ov(n.extendsType) || ov(n.trueType) || ov(n.falseType);
      }
      return !1;
    }
    function P$e(n) {
      const a = Jr(n);
      if (!a.resolvedType) {
        const l = O$e(n);
        if (l === Co)
          a.resolvedType = pa;
        else if (!(n.kind === 186 && kt(n.elements, (u) => !!(eie(u) & 8))) && ECe(n))
          a.resolvedType = n.kind === 186 && n.elements.length === 0 ? l : qre(l, n, void 0);
        else {
          const u = n.kind === 185 ? [fi(n.elementType)] : jt(n.elements, fi);
          a.resolvedType = nie(l, u);
        }
      }
      return a.resolvedType;
    }
    function M$e(n) {
      return Ax(n) && n.operator === 146;
    }
    function Fp(n, a, l = !1, u) {
      const p = tie(a || jt(n, (g) => 1), l, u);
      return p === Co ? pa : n.length ? nie(p, n) : p;
    }
    function tie(n, a, l) {
      if (n.length === 1 && n[0] & 4)
        return a ? ds : Es;
      const u = jt(n, (g) => g & 1 ? "#" : g & 2 ? "?" : g & 4 ? "." : "*").join() + (a ? "R" : "") + (l && l.length ? "," + jt(l, ps).join(",") : "");
      let p = jn.get(u);
      return p || jn.set(u, p = F$e(n, a, l)), p;
    }
    function F$e(n, a, l) {
      const u = n.length, p = Bc(n, (ge) => !!(ge & 9));
      let g;
      const x = [];
      let R = 0;
      if (u) {
        g = new Array(u);
        for (let ge = 0; ge < u; ge++) {
          const Ne = g[ge] = Nd(), De = n[ge];
          if (R |= De, !(R & 12)) {
            const _t = ns(4 | (De & 2 ? 16777216 : 0), "" + ge, a ? 8 : 0);
            _t.links.tupleLabelDeclaration = l == null ? void 0 : l[ge], _t.links.type = Ne, x.push(_t);
          }
        }
      }
      const M = x.length, J = ns(4, "length", a ? 8 : 0);
      if (R & 12)
        J.links.type = mt;
      else {
        const ge = [];
        for (let Ne = p; Ne <= u; Ne++)
          ge.push(Bp(Ne));
        J.links.type = Qr(ge);
      }
      x.push(J);
      const $ = gf(12);
      return $.typeParameters = g, $.outerTypeParameters = void 0, $.localTypeParameters = g, $.instantiations = /* @__PURE__ */ new Map(), $.instantiations.set(o_($.typeParameters), $), $.target = $, $.resolvedTypeArguments = $.typeParameters, $.thisType = Nd(), $.thisType.isThisType = !0, $.thisType.constraint = $, $.declaredProperties = x, $.declaredCallSignatures = rt, $.declaredConstructSignatures = rt, $.declaredIndexInfos = rt, $.elementFlags = n, $.minLength = p, $.fixedLength = M, $.hasRestElement = !!(R & 12), $.combinedFlags = R, $.readonly = a, $.labeledElementDeclarations = l, $;
    }
    function nie(n, a) {
      return n.objectFlags & 8 ? SCe(n, a) : Kg(n, a);
    }
    function SCe(n, a) {
      var l, u, p;
      if (!(n.combinedFlags & 14))
        return Kg(n, a);
      if (n.combinedFlags & 8) {
        const De = vi(a, (_t, Bt) => !!(n.elementFlags[Bt] & 8 && _t.flags & 1179648));
        if (De >= 0)
          return IP(jt(a, (_t, Bt) => n.elementFlags[Bt] & 8 ? _t : he)) ? $s(a[De], (_t) => SCe(n, xj(a, De, _t))) : Ce;
      }
      const g = [], x = [];
      let R = [], M = -1, J = -1, $ = -1;
      for (let De = 0; De < a.length; De++) {
        const _t = a[De], Bt = n.elementFlags[De];
        if (Bt & 8)
          if (_t.flags & 58982400 || Vf(_t))
            Ne(_t, 8, (l = n.labeledElementDeclarations) == null ? void 0 : l[De]);
          else if (Fo(_t)) {
            const Mn = hs(_t);
            if (Mn.length + g.length >= 1e4)
              return Ke(G, yh(G) ? _.Type_produces_a_tuple_type_that_is_too_large_to_represent : _.Expression_produces_a_tuple_type_that_is_too_large_to_represent), Ce;
            ze(Mn, (An, Kn) => {
              var gn;
              return Ne(An, _t.target.elementFlags[Kn], (gn = _t.target.labeledElementDeclarations) == null ? void 0 : gn[Kn]);
            });
          } else
            Ne(w0(_t) && Jg(_t, mt) || Ce, 4, (u = n.labeledElementDeclarations) == null ? void 0 : u[De]);
        else
          Ne(_t, Bt, (p = n.labeledElementDeclarations) == null ? void 0 : p[De]);
      }
      for (let De = 0; De < M; De++)
        x[De] & 2 && (x[De] = 1);
      J >= 0 && J < $ && (g[J] = Qr(_a(g.slice(J, $ + 1), (De, _t) => x[J + _t] & 8 ? Md(De, mt) : De)), g.splice(J + 1, $ - J), x.splice(J + 1, $ - J), R == null || R.splice(J + 1, $ - J));
      const ge = tie(x, n.readonly, R);
      return ge === Co ? pa : x.length ? Kg(ge, g) : ge;
      function Ne(De, _t, Bt) {
        _t & 1 && (M = x.length), _t & 4 && J < 0 && (J = x.length), _t & 6 && ($ = x.length), g.push(_t & 2 ? Io(De, !0) : De), x.push(_t), R && Bt ? R.push(Bt) : R = void 0;
      }
    }
    function xL(n, a, l = 0) {
      const u = n.target, p = x0(n) - l;
      return a > u.fixedLength ? xZe(n) || Fp(rt) : Fp(hs(n).slice(a, p), u.elementFlags.slice(a, p), !1, u.labeledElementDeclarations && u.labeledElementDeclarations.slice(a, p));
    }
    function xCe(n) {
      return Qr(Fn(Cse(n.target.fixedLength, (a) => jf("" + a)), gm(n.target.readonly ? ds : Es)));
    }
    function B$e(n, a) {
      const l = vi(n.elementFlags, (u) => !(u & a));
      return l >= 0 ? l : n.elementFlags.length;
    }
    function LP(n, a) {
      return n.elementFlags.length - ya(n.elementFlags, (l) => !(l & a)) - 1;
    }
    function G$e(n) {
      return Io(fi(n.type), !0);
    }
    function ku(n) {
      return n.id;
    }
    function Mb(n, a) {
      return yv(n, a, ku, Ws) >= 0;
    }
    function rie(n, a) {
      const l = yv(n, a, ku, Ws);
      return l < 0 ? (n.splice(~l, 0, a), !0) : !1;
    }
    function U$e(n, a, l) {
      const u = l.flags;
      if (u & 1048576)
        return ACe(n, a | (W$e(l) ? 1048576 : 0), l.types);
      if (!(u & 131072))
        if (a |= u & 205258751, u & 465829888 && (a |= 33554432), l === Nt && (a |= 8388608), !W && u & 98304)
          ti(l) & 65536 || (a |= 4194304);
        else {
          const p = n.length, g = p && l.id > n[p - 1].id ? ~p : yv(n, l, ku, Ws);
          g < 0 && n.splice(~g, 0, l);
        }
      return a;
    }
    function ACe(n, a, l) {
      for (const u of l)
        a = U$e(n, a, u);
      return a;
    }
    function V$e(n, a) {
      var l;
      if (n.length < 2)
        return n;
      const u = o_(n), p = fn.get(u);
      if (p)
        return p;
      const g = a && kt(n, (J) => !!(J.flags & 524288) && !Vf(J) && Aie(cp(J))), x = n.length;
      let R = x, M = 0;
      for (; R > 0; ) {
        R--;
        const J = n[R];
        if (g || J.flags & 469499904) {
          const $ = J.flags & 61603840 ? nn(ms(J), (Ne) => dp(ar(Ne))) : void 0, ge = $ && yd(ar($));
          for (const Ne of n)
            if (J !== Ne) {
              if (M === 1e5 && M / (x - R) * x > 1e6) {
                (l = bi) == null || l.instant(bi.Phase.CheckTypes, "removeSubtypes_DepthLimit", { typeIds: n.map((_t) => _t.id) }), Ke(G, _.Expression_produces_a_union_type_that_is_too_complex_to_represent);
                return;
              }
              if (M++, $ && Ne.flags & 61603840) {
                const De = fc(Ne, $.escapedName);
                if (De && dp(De) && yd(De) !== ge)
                  continue;
              }
              if (ym(J, Ne, tp) && (!(ti(R2(J)) & 1) || !(ti(R2(Ne)) & 1) || Vb(J, Ne))) {
                i1(n, R);
                break;
              }
            }
        }
      }
      return fn.set(u, n), n;
    }
    function j$e(n, a, l) {
      let u = n.length;
      for (; u > 0; ) {
        u--;
        const p = n[u], g = p.flags;
        (g & 402653312 && a & 4 || g & 256 && a & 8 || g & 2048 && a & 64 || g & 8192 && a & 4096 || l && g & 32768 && a & 16384 || Gb(p) && Mb(n, p.regularType)) && i1(n, u);
      }
    }
    function H$e(n) {
      const a = lr(n, (l) => !!(l.flags & 134217728) && V2(l));
      if (a.length) {
        let l = n.length;
        for (; l > 0; ) {
          l--;
          const u = n[l];
          u.flags & 128 && kt(a, (p) => $ie(u, p)) && i1(n, l);
        }
      }
    }
    function W$e(n) {
      return !!(n.flags & 1048576 && (n.aliasSymbol || n.origin));
    }
    function CCe(n, a) {
      for (const l of a)
        if (l.flags & 1048576) {
          const u = l.origin;
          l.aliasSymbol || u && !(u.flags & 1048576) ? d_(n, l) : u && u.flags & 1048576 && CCe(n, u.types);
        }
    }
    function iie(n, a) {
      const l = yS(n);
      return l.types = a, l;
    }
    function Qr(n, a = 1, l, u, p) {
      if (n.length === 0)
        return gt;
      if (n.length === 1)
        return n[0];
      let g = [];
      const x = ACe(g, 0, n);
      if (a !== 0) {
        if (x & 3)
          return x & 1 ? x & 8388608 ? Nt : we : x & 65536 || Mb(g, he) ? he : j;
        if (x & 32768 && g.length >= 2 && g[0] === He && g[1] === Xe && i1(g, 1), (x & 402664352 || x & 16384 && x & 32768) && j$e(g, x, !!(a & 2)), x & 128 && x & 134217728 && H$e(g), a === 2 && (g = V$e(g, !!(x & 524288)), !g))
          return Ce;
        if (g.length === 0)
          return x & 65536 ? x & 4194304 ? Sn : Er : x & 32768 ? x & 4194304 ? He : Ze : gt;
      }
      if (!p && x & 1048576) {
        const M = [];
        CCe(M, n);
        const J = [];
        for (const ge of g)
          kt(M, (Ne) => Mb(Ne.types, ge)) || J.push(ge);
        if (!l && M.length === 1 && J.length === 0)
          return M[0];
        if (Ru(M, (ge, Ne) => ge + Ne.types.length, 0) + J.length === g.length) {
          for (const ge of M)
            rie(J, ge);
          p = iie(1048576, J);
        }
      }
      const R = (x & 36323363 ? 0 : 32768) | (x & 2097152 ? 16777216 : 0);
      return oie(g, R, l, u, p);
    }
    function z$e(n, a) {
      let l;
      const u = [];
      for (const g of n) {
        const x = a_(g);
        if (!x || x.kind === 2 || x.kind === 3) {
          if (a !== 2097152)
            continue;
          return;
        }
        if (l) {
          if (!aie(l, x))
            return;
        } else
          l = x;
        u.push(x.type);
      }
      if (!l)
        return;
      const p = XAe(u, a);
      return xP(l.kind, l.parameterName, l.parameterIndex, p);
    }
    function aie(n, a) {
      return n.kind === a.kind && n.parameterIndex === a.parameterIndex;
    }
    function oie(n, a, l, u, p) {
      if (n.length === 0)
        return gt;
      if (n.length === 1)
        return n[0];
      const x = (p ? p.flags & 1048576 ? `|${o_(p.types)}` : p.flags & 2097152 ? `&${o_(p.types)}` : `#${p.type.id}|${o_(n)}` : o_(n)) + F2(l, u);
      let R = In.get(x);
      return R || (R = jh(1048576), R.objectFlags = a | xU(n, 98304), R.types = n, R.origin = p, R.aliasSymbol = l, R.aliasTypeArguments = u, n.length === 2 && n[0].flags & 512 && n[1].flags & 512 && (R.flags |= 16, R.intrinsicName = "boolean"), In.set(x, R)), R;
    }
    function q$e(n) {
      const a = Jr(n);
      if (!a.resolvedType) {
        const l = TS(n);
        a.resolvedType = Qr(jt(n.types, fi), 1, l, j2(l));
      }
      return a.resolvedType;
    }
    function J$e(n, a, l) {
      const u = l.flags;
      return u & 2097152 ? LCe(n, a, l.types) : (Yh(l) ? a & 16777216 || (a |= 16777216, n.set(l.id.toString(), l)) : (u & 3 ? l === Nt && (a |= 8388608) : (W || !(u & 98304)) && (l === Xe && (a |= 262144, l = He), n.has(l.id.toString()) || (l.flags & 109472 && a & 109472 && (a |= 67108864), n.set(l.id.toString(), l))), a |= u & 205258751), a);
    }
    function LCe(n, a, l) {
      for (const u of l)
        a = J$e(n, a, yd(u));
      return a;
    }
    function K$e(n, a) {
      let l = n.length;
      for (; l > 0; ) {
        l--;
        const u = n[l];
        (u.flags & 4 && a & 402653312 || u.flags & 8 && a & 256 || u.flags & 64 && a & 2048 || u.flags & 4096 && a & 8192 || u.flags & 16384 && a & 32768 || Yh(u) && a & 470302716) && i1(n, l);
      }
    }
    function X$e(n, a) {
      for (const l of n)
        if (!Mb(l.types, a)) {
          const u = a.flags & 128 ? ue : a.flags & 256 ? mt : a.flags & 2048 ? zt : a.flags & 8192 ? q : void 0;
          if (!u || !Mb(l.types, u))
            return !1;
        }
      return !0;
    }
    function Y$e(n) {
      let a = n.length;
      const l = lr(n, (u) => !!(u.flags & 128));
      for (; a > 0; ) {
        a--;
        const u = n[a];
        if (u.flags & 134217728) {
          for (const p of l)
            if (cv(p, u)) {
              i1(n, a);
              break;
            } else if (V2(u))
              return !0;
        }
      }
      return !1;
    }
    function ICe(n, a) {
      return Yn(n, (l) => !!(l.flags & 1048576) && kt(l.types, (u) => !!(u.flags & a)));
    }
    function kCe(n, a) {
      for (let l = 0; l < n.length; l++)
        n[l] = _c(n[l], (u) => !(u.flags & a));
    }
    function $$e(n) {
      let a;
      const l = vi(n, (x) => !!(ti(x) & 32768));
      if (l < 0)
        return !1;
      let u = l + 1;
      for (; u < n.length; ) {
        const x = n[u];
        ti(x) & 32768 ? ((a || (a = [n[l]])).push(x), i1(n, u)) : u++;
      }
      if (!a)
        return !1;
      const p = [], g = [];
      for (const x of a)
        for (const R of x.types)
          rie(p, R) && X$e(a, R) && rie(g, R);
      return n[l] = oie(g, 32768), !0;
    }
    function Q$e(n, a, l) {
      const u = jh(2097152);
      return u.objectFlags = xU(n, 98304), u.types = n, u.aliasSymbol = a, u.aliasTypeArguments = l, u;
    }
    function wo(n, a, l, u) {
      const p = /* @__PURE__ */ new Map(), g = LCe(p, 0, n), x = Ro(p.values());
      if (g & 131072)
        return jr(x, ft) ? ft : gt;
      if (W && g & 98304 && g & 84410368 || g & 67108864 && g & 402783228 || g & 402653316 && g & 67238776 || g & 296 && g & 469891796 || g & 2112 && g & 469889980 || g & 12288 && g & 469879804 || g & 49152 && g & 469842940 || g & 134217728 && g & 128 && Y$e(x))
        return gt;
      if (g & 1)
        return g & 8388608 ? Nt : we;
      if (!W && g & 98304)
        return g & 16777216 ? gt : g & 32768 ? He : Sn;
      if ((g & 4 && g & 402653312 || g & 8 && g & 256 || g & 64 && g & 2048 || g & 4096 && g & 8192 || g & 16384 && g & 32768 || g & 16777216 && g & 470302716) && (u || K$e(x, g)), g & 262144 && (x[x.indexOf(He)] = Xe), x.length === 0)
        return he;
      if (x.length === 1)
        return x[0];
      const R = o_(x) + F2(a, l);
      let M = Zt.get(R);
      if (!M) {
        if (g & 1048576)
          if ($$e(x))
            M = wo(x, a, l);
          else if (ICe(x, 32768)) {
            const J = kt(x, TD) ? Xe : He;
            kCe(x, 32768), M = Qr([wo(x), J], 1, a, l);
          } else if (ICe(x, 65536))
            kCe(x, 65536), M = Qr([wo(x), Sn], 1, a, l);
          else {
            if (!IP(x))
              return Ce;
            const J = Z$e(x), $ = kt(J, (ge) => !!(ge.flags & 2097152)) && sie(J) > sie(x) ? iie(2097152, x) : void 0;
            M = Qr(J, 1, a, l, $);
          }
        else
          M = Q$e(x, a, l);
        Zt.set(R, M);
      }
      return M;
    }
    function wCe(n) {
      return Ru(n, (a, l) => l.flags & 1048576 ? a * l.types.length : l.flags & 131072 ? 0 : a, 1);
    }
    function IP(n) {
      var a;
      const l = wCe(n);
      return l >= 1e5 ? ((a = bi) == null || a.instant(bi.Phase.CheckTypes, "checkCrossProductUnion_DepthLimit", { typeIds: n.map((u) => u.id), size: l }), Ke(G, _.Expression_produces_a_union_type_that_is_too_complex_to_represent), !1) : !0;
    }
    function Z$e(n) {
      const a = wCe(n), l = [];
      for (let u = 0; u < a; u++) {
        const p = n.slice();
        let g = u;
        for (let R = n.length - 1; R >= 0; R--)
          if (n[R].flags & 1048576) {
            const M = n[R].types, J = M.length;
            p[R] = M[g % J], g = Math.floor(g / J);
          }
        const x = wo(p);
        x.flags & 131072 || l.push(x);
      }
      return l;
    }
    function DCe(n) {
      return !(n.flags & 3145728) || n.aliasSymbol ? 1 : n.flags & 1048576 && n.origin ? DCe(n.origin) : sie(n.types);
    }
    function sie(n) {
      return Ru(n, (a, l) => a + DCe(l), 0);
    }
    function eQe(n) {
      const a = Jr(n);
      if (!a.resolvedType) {
        const l = TS(n), u = jt(n.types, fi), p = u.length === 2 && !!(u[0].flags & 76) && u[1] === Gl;
        a.resolvedType = wo(u, l, j2(l), p);
      }
      return a.resolvedType;
    }
    function RCe(n, a) {
      const l = jh(4194304);
      return l.type = n, l.stringsOnly = a, l;
    }
    function tQe(n) {
      const a = yS(4194304);
      return a.type = n, a;
    }
    function NCe(n, a) {
      return a ? n.resolvedStringIndexType || (n.resolvedStringIndexType = RCe(n, !0)) : n.resolvedIndexType || (n.resolvedIndexType = RCe(n, !1));
    }
    function nQe(n, a, l) {
      const u = lp(n), p = Pp(n), g = nv(n.target || n);
      if (!g && !l)
        return p;
      const x = [];
      if (oD(n)) {
        if (A0(p))
          return NCe(n, a);
        {
          const J = Ju(EL(n));
          xre(J, 8576, a, M);
        }
      } else
        BE(vP(p), M);
      A0(p) && BE(p, M);
      const R = l ? _c(Qr(x), (J) => !(J.flags & 5)) : Qr(x);
      if (R.flags & 1048576 && p.flags & 1048576 && o_(R.types) === o_(p.types))
        return p;
      return R;
      function M(J) {
        const $ = g ? Yi(g, hD(n.mapper, u, J)) : J;
        x.push($ === ue ? Ai : $);
      }
    }
    function rQe(n) {
      const a = lp(n);
      return l(nv(n) || a);
      function l(u) {
        return u.flags & 202375167 ? !0 : u.flags & 16777216 ? u.root.isDistributive && u.checkType === a : u.flags & 137363456 ? Yn(u.types, l) : u.flags & 8388608 ? l(u.objectType) && l(u.indexType) : u.flags & 33554432 ? l(u.baseType) && l(u.constraint) : u.flags & 268435456 ? l(u.type) : !1;
      }
    }
    function Xg(n) {
      return Ni(n) ? gt : je(n) ? jf(ta(n.escapedText)) : yd(As(n) ? ey(n) : ga(n));
    }
    function AL(n, a, l) {
      if (l || !(Qf(n) & 24)) {
        let u = Wi(EU(n)).nameType;
        if (!u) {
          const p = ka(n.valueDeclaration);
          u = n.escapedName === "default" ? jf("default") : p && Xg(p) || (FN(n) ? void 0 : jf(Ml(n)));
        }
        if (u && u.flags & a)
          return u;
      }
      return gt;
    }
    function OCe(n, a) {
      return !!(n.flags & a || n.flags & 2097152 && kt(n.types, (l) => OCe(l, a)));
    }
    function iQe(n, a, l) {
      const u = l && (ti(n) & 7 || n.aliasSymbol) ? tQe(n) : void 0, p = jt(ms(n), (x) => AL(x, a)), g = jt(Lu(n), (x) => x !== Wu && OCe(x.keyType, a) ? x.keyType === ue && a & 8 ? Ai : x.keyType : gt);
      return Qr(va(p, g), 1, void 0, void 0, u);
    }
    function aQe(n) {
      const a = VQe(n);
      return up(a) !== a;
    }
    function PCe(n) {
      return !!(n.flags & 58982400 || z2(n) || Vf(n) && !rQe(n) || n.flags & 1048576 && kt(n.types, aQe) || n.flags & 2097152 && pl(n, 465829888) && kt(n.types, Yh));
    }
    function gm(n, a = Ve, l) {
      return n = up(n), PCe(n) ? NCe(n, a) : n.flags & 1048576 ? wo(jt(n.types, (u) => gm(u, a, l))) : n.flags & 2097152 ? Qr(jt(n.types, (u) => gm(u, a, l))) : ti(n) & 32 ? nQe(n, a, l) : n === Nt ? Nt : n.flags & 2 ? gt : n.flags & 131073 ? ji : iQe(n, (l ? 128 : 402653316) | (a ? 0 : 12584), a === Ve && !l);
    }
    function MCe(n) {
      if (Ve)
        return n;
      const a = E$e();
      return a ? G2(a, [n, ue]) : ue;
    }
    function oQe(n) {
      const a = MCe(gm(n));
      return a.flags & 131072 ? ue : a;
    }
    function sQe(n) {
      const a = Jr(n);
      if (!a.resolvedType)
        switch (n.operator) {
          case 141:
            a.resolvedType = gm(fi(n.type));
            break;
          case 156:
            a.resolvedType = n.type.kind === 153 ? mie(DN(n.parent)) : Ce;
            break;
          case 146:
            a.resolvedType = fi(n.type);
            break;
          default:
            throw D.assertNever(n.operator);
        }
      return a.resolvedType;
    }
    function lQe(n) {
      const a = Jr(n);
      return a.resolvedType || (a.resolvedType = wE([n.head.text, ...jt(n.templateSpans, (l) => l.literal.text)], jt(n.templateSpans, (l) => fi(l.type)))), a.resolvedType;
    }
    function wE(n, a) {
      const l = vi(a, (J) => !!(J.flags & 1179648));
      if (l >= 0)
        return IP(a) ? $s(a[l], (J) => wE(n, xj(a, l, J))) : Ce;
      if (jr(a, Nt))
        return Nt;
      const u = [], p = [];
      let g = n[0];
      if (!M(n, a))
        return ue;
      if (u.length === 0)
        return jf(g);
      if (p.push(g), Yn(p, (J) => J === "")) {
        if (Yn(u, (J) => !!(J.flags & 4)))
          return ue;
        if (u.length === 1 && V2(u[0]))
          return u[0];
      }
      const x = `${o_(u)}|${jt(p, (J) => J.length).join(",")}|${p.join("")}`;
      let R = At.get(x);
      return R || At.set(x, R = uQe(p, u)), R;
      function M(J, $) {
        const ge = Va(J);
        for (let Ne = 0; Ne < $.length; Ne++) {
          const De = $[Ne], _t = ge ? J[Ne + 1] : J;
          if (De.flags & 101248) {
            if (g += cQe(De) || "", g += _t, !ge)
              return !0;
          } else if (De.flags & 134217728) {
            if (g += De.texts[0], !M(De.texts, De.types))
              return !1;
            if (g += _t, !ge)
              return !0;
          } else if (A0(De) || DU(De))
            u.push(De), p.push(g), g = _t;
          else if (De.flags & 2097152) {
            if (!M(J[Ne + 1], De.types))
              return !1;
          } else if (ge)
            return !1;
        }
        return !0;
      }
    }
    function cQe(n) {
      return n.flags & 128 ? n.value : n.flags & 256 ? "" + n.value : n.flags & 2048 ? I1(n.value) : n.flags & 98816 ? n.intrinsicName : void 0;
    }
    function uQe(n, a) {
      const l = jh(134217728);
      return l.texts = n, l.types = a, l;
    }
    function ES(n, a) {
      return a.flags & 1179648 ? $s(a, (l) => ES(n, l)) : a.flags & 128 ? jf(FCe(n, a.value)) : a.flags & 134217728 ? wE(...dQe(n, a.texts, a.types)) : a.flags & 268435456 && n === a.symbol ? a : a.flags & 268435461 || A0(a) ? BCe(n, a) : DU(a) ? BCe(n, wE(["", ""], [a])) : a;
    }
    function FCe(n, a) {
      switch (S8.get(n.escapedName)) {
        case 0:
          return a.toUpperCase();
        case 1:
          return a.toLowerCase();
        case 2:
          return a.charAt(0).toUpperCase() + a.slice(1);
        case 3:
          return a.charAt(0).toLowerCase() + a.slice(1);
      }
      return a;
    }
    function dQe(n, a, l) {
      switch (S8.get(n.escapedName)) {
        case 0:
          return [a.map((u) => u.toUpperCase()), l.map((u) => ES(n, u))];
        case 1:
          return [a.map((u) => u.toLowerCase()), l.map((u) => ES(n, u))];
        case 2:
          return [a[0] === "" ? a : [a[0].charAt(0).toUpperCase() + a[0].slice(1), ...a.slice(1)], a[0] === "" ? [ES(n, l[0]), ...l.slice(1)] : l];
        case 3:
          return [a[0] === "" ? a : [a[0].charAt(0).toLowerCase() + a[0].slice(1), ...a.slice(1)], a[0] === "" ? [ES(n, l[0]), ...l.slice(1)] : l];
      }
      return [a, l];
    }
    function BCe(n, a) {
      const l = `${bo(n)},${ku(a)}`;
      let u = vn.get(l);
      return u || vn.set(l, u = fQe(n, a)), u;
    }
    function fQe(n, a) {
      const l = dm(268435456, n);
      return l.type = a, l;
    }
    function _Qe(n, a, l, u, p) {
      const g = jh(8388608);
      return g.objectType = n, g.indexType = a, g.accessFlags = l, g.aliasSymbol = u, g.aliasTypeArguments = p, g;
    }
    function pD(n) {
      if (Te)
        return !1;
      if (ti(n) & 4096)
        return !0;
      if (n.flags & 1048576)
        return Yn(n.types, pD);
      if (n.flags & 2097152)
        return kt(n.types, pD);
      if (n.flags & 465829888) {
        const a = Ire(n);
        return a !== n && pD(a);
      }
      return !1;
    }
    function wU(n, a) {
      return qh(n) ? _m(n) : a && yl(a) ? T1(a) : void 0;
    }
    function lie(n, a) {
      if (a.flags & 8208) {
        const l = nr(n.parent, (u) => !ll(u)) || n.parent;
        return YS(l) ? lg(l) && je(n) && qLe(l, n) : Yn(a.declarations, (u) => !Ka(u) || !!(hp(u) & 268435456));
      }
      return !0;
    }
    function GCe(n, a, l, u, p, g) {
      var x;
      const R = p && p.kind === 209 ? p : void 0, M = p && Ni(p) ? void 0 : wU(l, p);
      if (M !== void 0) {
        if (g & 256)
          return UE(a, M) || we;
        const $ = uo(a, M);
        if ($) {
          if (g & 64 && p && $.declarations && o0($) && lie(p, $)) {
            const Ne = (x = R == null ? void 0 : R.argumentExpression) != null ? x : Cx(p) ? p.indexType : p;
            wg(Ne, $.declarations, M);
          }
          if (R) {
            if (n4($, R, ZIe(R.expression, a.symbol)), Gke(R, $, pT(R))) {
              Ke(R.argumentExpression, _.Cannot_assign_to_0_because_it_is_a_read_only_property, S($));
              return;
            }
            if (g & 8 && (Jr(p).resolvedSymbol = $), qIe(R, $))
              return yt;
          }
          const ge = ar($);
          return R && pT(R) !== 1 ? N0(R, ge) : p && Cx(p) && TD(ge) ? Qr([ge, He]) : ge;
        }
        if (lh(a, Fo) && xh(M)) {
          const ge = +M;
          if (p && lh(a, (Ne) => !Ne.target.hasRestElement) && !(g & 16)) {
            const Ne = cie(p);
            if (Fo(a)) {
              if (ge < 0)
                return Ke(Ne, _.A_tuple_type_cannot_be_indexed_with_a_negative_value), He;
              Ke(Ne, _.Tuple_type_0_of_length_1_has_no_element_at_index_2, ke(a), x0(a), ta(M));
            } else
              Ke(Ne, _.Property_0_does_not_exist_on_type_1, ta(M), ke(a));
          }
          if (ge >= 0)
            return J(sh(a, mt)), $s(a, (Ne) => {
              const De = UP(Ne) || He;
              return g & 1 ? Qr([De, Xe]) : De;
            });
        }
      }
      if (!(l.flags & 98304) && Mc(l, 402665900)) {
        if (a.flags & 131073)
          return a;
        const $ = SP(a, l) || sh(a, ue);
        if ($) {
          if (g & 2 && $.keyType !== mt) {
            R && Ke(R, _.Type_0_cannot_be_used_to_index_type_1, ke(l), ke(n));
            return;
          }
          if (p && $.keyType === ue && !Mc(l, 12)) {
            const ge = cie(p);
            return Ke(ge, _.Type_0_cannot_be_used_as_an_index_type, ke(l)), g & 1 ? Qr([$.type, Xe]) : $.type;
          }
          return J($), g & 1 && !(a.symbol && a.symbol.flags & 384 && l.symbol && l.flags & 1024 && gd(l.symbol) === a.symbol) ? Qr([$.type, Xe]) : $.type;
        }
        if (l.flags & 131072)
          return gt;
        if (pD(a))
          return we;
        if (R && !eoe(a)) {
          if (R0(a)) {
            if (Te && l.flags & 384)
              return Qo.add(Nr(R, _.Property_0_does_not_exist_on_type_1, l.value, ke(a))), He;
            if (l.flags & 12) {
              const ge = jt(a.properties, (Ne) => ar(Ne));
              return Qr(Fn(ge, He));
            }
          }
          if (a.symbol === st && M !== void 0 && st.exports.has(M) && st.exports.get(M).flags & 418)
            Ke(R, _.Property_0_does_not_exist_on_type_1, ta(M), ke(a));
          else if (Te && !Y.suppressImplicitAnyIndexErrors && !(g & 128))
            if (M !== void 0 && YIe(M, a)) {
              const ge = ke(a);
              Ke(R, _.Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead, M, ge, ge + "[" + Sc(R.argumentExpression) + "]");
            } else if (Jg(a, mt))
              Ke(R.argumentExpression, _.Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number);
            else {
              let ge;
              if (M !== void 0 && (ge = Nae(M, a)))
                ge !== void 0 && Ke(R.argumentExpression, _.Property_0_does_not_exist_on_type_1_Did_you_mean_2, M, ke(a), ge);
              else {
                const Ne = lnt(a, R, l);
                if (Ne !== void 0)
                  Ke(R, _.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1, ke(a), Ne);
                else {
                  let De;
                  if (l.flags & 1024)
                    De = Na(void 0, _.Property_0_does_not_exist_on_type_1, "[" + ke(l) + "]", ke(a));
                  else if (l.flags & 8192) {
                    const _t = Fh(l.symbol, R);
                    De = Na(void 0, _.Property_0_does_not_exist_on_type_1, "[" + _t + "]", ke(a));
                  } else
                    l.flags & 128 || l.flags & 256 ? De = Na(void 0, _.Property_0_does_not_exist_on_type_1, l.value, ke(a)) : l.flags & 12 && (De = Na(void 0, _.No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1, ke(l), ke(a)));
                  De = Na(De, _.Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1, ke(u), ke(a)), Qo.add(cg(Zn(R), R, De));
                }
              }
            }
          return;
        }
      }
      if (pD(a))
        return we;
      if (p) {
        const $ = cie(p);
        l.flags & 384 ? Ke($, _.Property_0_does_not_exist_on_type_1, "" + l.value, ke(a)) : l.flags & 12 ? Ke($, _.Type_0_has_no_matching_index_signature_for_type_1, ke(a), ke(l)) : Ke($, _.Type_0_cannot_be_used_as_an_index_type, ke(l));
      }
      if (Ss(l))
        return l;
      return;
      function J($) {
        $ && $.isReadonly && R && (bh(R) || Tz(R)) && Ke(R, _.Index_signature_in_type_0_only_permits_reading, ke(a));
      }
    }
    function cie(n) {
      return n.kind === 209 ? n.argumentExpression : n.kind === 196 ? n.indexType : n.kind === 164 ? n.expression : n;
    }
    function DU(n) {
      return !!(n.flags & 77) || V2(n);
    }
    function V2(n) {
      return !!(n.flags & 134217728) && Yn(n.types, DU) || !!(n.flags & 268435456) && DU(n.type);
    }
    function CL(n) {
      return !!mD(n);
    }
    function Fb(n) {
      return !!(mD(n) & 4194304);
    }
    function A0(n) {
      return !!(mD(n) & 8388608);
    }
    function mD(n) {
      return n.flags & 3145728 ? (n.objectFlags & 2097152 || (n.objectFlags |= 2097152 | Ru(n.types, (a, l) => a | mD(l), 0)), n.objectFlags & 12582912) : n.flags & 33554432 ? (n.objectFlags & 2097152 || (n.objectFlags |= 2097152 | mD(n.baseType) | mD(n.constraint)), n.objectFlags & 12582912) : (n.flags & 58982400 || Vf(n) || z2(n) ? 4194304 : 0) | (n.flags & 465829888 && !V2(n) ? 8388608 : 0);
    }
    function Yg(n, a) {
      return n.flags & 8388608 ? mQe(n, a) : n.flags & 16777216 ? hQe(n, a) : n;
    }
    function UCe(n, a, l) {
      if (n.flags & 1048576 || n.flags & 2097152 && !PCe(n)) {
        const u = jt(n.types, (p) => Yg(Md(p, a), l));
        return n.flags & 2097152 || l ? wo(u) : Qr(u);
      }
    }
    function pQe(n, a, l) {
      if (a.flags & 1048576) {
        const u = jt(a.types, (p) => Yg(Md(n, p), l));
        return l ? wo(u) : Qr(u);
      }
    }
    function mQe(n, a) {
      const l = a ? "simplifiedForWriting" : "simplifiedForReading";
      if (n[l])
        return n[l] === Vl ? n : n[l];
      n[l] = Vl;
      const u = Yg(n.objectType, a), p = Yg(n.indexType, a), g = pQe(u, p, a);
      if (g)
        return n[l] = g;
      if (!(p.flags & 465829888)) {
        const x = UCe(u, p, a);
        if (x)
          return n[l] = x;
      }
      if (z2(u) && p.flags & 296) {
        const x = DL(u, p.flags & 8 ? 0 : u.target.fixedLength, 0, a);
        if (x)
          return n[l] = x;
      }
      if (Vf(u)) {
        const x = nv(u);
        if (!x || xo(x, lp(u)))
          return n[l] = $s(RU(u, n.indexType), (R) => Yg(R, a));
      }
      return n[l] = n;
    }
    function hQe(n, a) {
      const l = n.checkType, u = n.extendsType, p = C0(n), g = L0(n);
      if (g.flags & 131072 && lv(p) === lv(l)) {
        if (l.flags & 1 || xo(DE(l), DE(u)))
          return Yg(p, a);
        if (VCe(l, u))
          return gt;
      } else if (p.flags & 131072 && lv(g) === lv(l)) {
        if (!(l.flags & 1) && xo(DE(l), DE(u)))
          return gt;
        if (l.flags & 1 || VCe(l, u))
          return Yg(g, a);
      }
      return n;
    }
    function VCe(n, a) {
      return !!(Qr([yP(n, a), gt]).flags & 131072);
    }
    function RU(n, a) {
      const l = vd([lp(n)], [a]), u = k0(n.mapper, l);
      return Yi(Jh(n.target || n), u);
    }
    function Md(n, a, l = 0, u, p, g) {
      return sv(n, a, l, u, p, g) || (u ? Ce : he);
    }
    function jCe(n, a) {
      return lh(n, (l) => {
        if (l.flags & 384) {
          const u = _m(l);
          if (xh(u)) {
            const p = +u;
            return p >= 0 && p < a;
          }
        }
        return !1;
      });
    }
    function sv(n, a, l = 0, u, p, g) {
      if (n === Nt || a === Nt)
        return Nt;
      if (fLe(n) && !(a.flags & 98304) && Mc(a, 12) && (a = ue), Y.noUncheckedIndexedAccess && l & 32 && (l |= 1), A0(a) || (u && u.kind !== 196 ? z2(n) && !jCe(a, n.target.fixedLength) : Fb(n) && !(Fo(n) && jCe(a, n.target.fixedLength)))) {
        if (n.flags & 3)
          return n;
        const R = l & 1, M = n.id + "," + a.id + "," + R + F2(p, g);
        let J = Or.get(M);
        return J || Or.set(M, J = _Qe(n, a, R, p, g)), J;
      }
      const x = TL(n);
      if (a.flags & 1048576 && !(a.flags & 16)) {
        const R = [];
        let M = !1;
        for (const J of a.types) {
          const $ = GCe(n, x, J, a, u, l | (M ? 128 : 0));
          if ($)
            R.push($);
          else if (u)
            M = !0;
          else
            return;
        }
        return M ? void 0 : l & 4 ? wo(R, p, g) : Qr(R, 1, p, g);
      }
      return GCe(n, x, a, a, u, l | 8 | 64);
    }
    function HCe(n) {
      const a = Jr(n);
      if (!a.resolvedType) {
        const l = fi(n.objectType), u = fi(n.indexType), p = TS(n);
        a.resolvedType = Md(l, u, 0, n, p, j2(p));
      }
      return a.resolvedType;
    }
    function uie(n) {
      const a = Jr(n);
      if (!a.resolvedType) {
        const l = gf(32, n.symbol);
        l.declaration = n, l.aliasSymbol = TS(n), l.aliasTypeArguments = j2(l.aliasSymbol), a.resolvedType = l, Pp(l);
      }
      return a.resolvedType;
    }
    function lv(n) {
      return n.flags & 33554432 ? lv(n.baseType) : n.flags & 8388608 && (n.objectType.flags & 33554432 || n.indexType.flags & 33554432) ? Md(lv(n.objectType), lv(n.indexType)) : n;
    }
    function gQe(n) {
      const a = Cu(n);
      return a && (Fb(a) || A0(a)) ? UU(n) : n;
    }
    function WCe(n) {
      return gC(n) && Le(n.elements) > 0 && !kt(n.elements, (a) => hJ(a) || gJ(a) || wk(a) && !!(a.questionToken || a.dotDotDotToken));
    }
    function zCe(n, a) {
      return CL(n) || a && Fo(n) && kt(hs(n), CL);
    }
    function die(n, a, l, u) {
      let p, g, x = 0;
      for (; ; ) {
        if (x === 1e3) {
          Ke(G, _.Type_instantiation_is_excessively_deep_and_possibly_infinite), p = Ce;
          break;
        }
        const M = WCe(n.node.checkType) && WCe(n.node.extendsType) && Le(n.node.checkType.elements) === Le(n.node.extendsType.elements), J = Yi(lv(n.checkType), a), $ = zCe(J, M), ge = Yi(n.extendsType, a);
        if (J === Nt || ge === Nt)
          return Nt;
        let Ne;
        if (n.inferTypeParameters) {
          const _t = _a(n.inferTypeParameters, gQe), Bt = _t !== n.inferTypeParameters ? vd(n.inferTypeParameters, _t) : void 0, Mn = SD(_t, void 0, 0);
          if (Bt) {
            const Kn = k0(a, Bt);
            for (const gn of _t)
              n.inferTypeParameters.indexOf(gn) === -1 && (gn.mapper = Kn);
          }
          $ || $h(Mn.inferences, J, Yi(ge, Bt), 1536);
          const An = k0(Bt, Mn.mapper);
          Ne = a ? k0(An, a) : An;
        }
        const De = Ne ? Yi(n.extendsType, Ne) : ge;
        if (!$ && !zCe(De, M)) {
          if (!(De.flags & 3) && (J.flags & 1 || !xo(VU(J), VU(De)))) {
            J.flags & 1 && (g || (g = [])).push(Yi(fi(n.node.trueType), Ne || a));
            const _t = fi(n.node.falseType);
            if (_t.flags & 16777216) {
              const Bt = _t.root;
              if (Bt.node.parent === n.node && (!Bt.isDistributive || Bt.checkType === n.checkType)) {
                n = Bt;
                continue;
              }
              if (R(_t, a))
                continue;
            }
            p = Yi(_t, a);
            break;
          }
          if (De.flags & 3 || xo(DE(J), DE(De))) {
            const _t = fi(n.node.trueType), Bt = Ne || a;
            if (R(_t, Bt))
              continue;
            p = Yi(_t, Bt);
            break;
          }
        }
        p = jh(16777216), p.root = n, p.checkType = Yi(n.checkType, a), p.extendsType = Yi(n.extendsType, a), p.mapper = a, p.combinedMapper = Ne, p.aliasSymbol = l || n.aliasSymbol, p.aliasTypeArguments = l ? u : $g(n.aliasTypeArguments, a);
        break;
      }
      return g ? Qr(Fn(g, p)) : p;
      function R(M, J) {
        if (M.flags & 16777216 && J) {
          const $ = M.root;
          if ($.outerTypeParameters) {
            const ge = k0(M.mapper, J), Ne = jt($.outerTypeParameters, (Bt) => I0(Bt, ge)), De = vd($.outerTypeParameters, Ne), _t = $.isDistributive ? I0($.checkType, De) : void 0;
            if (!_t || _t === $.checkType || !(_t.flags & 1179648))
              return n = $, a = De, l = void 0, u = void 0, $.aliasSymbol && x++, !0;
          }
        }
        return !1;
      }
    }
    function C0(n) {
      return n.resolvedTrueType || (n.resolvedTrueType = Yi(fi(n.root.node.trueType), n.mapper));
    }
    function L0(n) {
      return n.resolvedFalseType || (n.resolvedFalseType = Yi(fi(n.root.node.falseType), n.mapper));
    }
    function yQe(n) {
      return n.resolvedInferredTrueType || (n.resolvedInferredTrueType = n.combinedMapper ? Yi(fi(n.root.node.trueType), n.combinedMapper) : C0(n));
    }
    function qCe(n) {
      let a;
      return n.locals && n.locals.forEach((l) => {
        l.flags & 262144 && (a = Fn(a, Us(l)));
      }), a;
    }
    function vQe(n) {
      return n.isDistributive && (RP(n.checkType, n.node.trueType) || RP(n.checkType, n.node.falseType));
    }
    function bQe(n) {
      const a = Jr(n);
      if (!a.resolvedType) {
        const l = fi(n.checkType), u = TS(n), p = j2(u), g = vL(n, !0), x = p ? g : lr(g, (M) => RP(M, n)), R = {
          node: n,
          checkType: l,
          extendsType: fi(n.extendsType),
          isDistributive: !!(l.flags & 262144),
          inferTypeParameters: qCe(n),
          outerTypeParameters: x,
          instantiations: void 0,
          aliasSymbol: u,
          aliasTypeArguments: p
        };
        a.resolvedType = die(R, void 0), x && (R.instantiations = /* @__PURE__ */ new Map(), R.instantiations.set(o_(x), a.resolvedType));
      }
      return a.resolvedType;
    }
    function EQe(n) {
      const a = Jr(n);
      return a.resolvedType || (a.resolvedType = CE(Ir(n.typeParameter))), a.resolvedType;
    }
    function JCe(n) {
      return je(n) ? [n] : Fn(JCe(n.left), n.right);
    }
    function TQe(n) {
      var a;
      const l = Jr(n);
      if (!l.resolvedType) {
        if (!j0(n))
          return Ke(n.argument, _.String_literal_expected), l.resolvedSymbol = an, l.resolvedType = Ce;
        const u = n.isTypeOf ? 111551 : n.flags & 8388608 ? 900095 : 788968, p = du(n, n.argument.literal);
        if (!p)
          return l.resolvedSymbol = an, l.resolvedType = Ce;
        const g = !!((a = p.exports) != null && a.get("export=")), x = hd(p, !1);
        if (Al(n.qualifier))
          if (x.flags & u)
            l.resolvedType = KCe(n, l, x, u);
          else {
            const R = u === 111551 ? _.Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here : _.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0;
            Ke(n, R, n.argument.literal.text), l.resolvedSymbol = an, l.resolvedType = Ce;
          }
        else {
          const R = JCe(n.qualifier);
          let M = x, J;
          for (; J = R.shift(); ) {
            const $ = R.length ? 1920 : u, ge = as(Yl(M)), Ne = n.isTypeOf || fr(n) && g ? uo(ar(ge), J.escapedText, !1, !0) : void 0, De = n.isTypeOf ? void 0 : Xd(hf(ge), J.escapedText, $), _t = De ?? Ne;
            if (!_t)
              return Ke(J, _.Namespace_0_has_no_exported_member_1, Fh(M), ws(J)), l.resolvedType = Ce;
            Jr(J).resolvedSymbol = _t, Jr(J.parent).resolvedSymbol = _t, M = _t;
          }
          l.resolvedType = KCe(n, l, M, u);
        }
      }
      return l.resolvedType;
    }
    function KCe(n, a, l, u) {
      const p = Yl(l);
      return a.resolvedSymbol = p, u === 111551 ? Ake(ar(l), n) : CU(n, p);
    }
    function XCe(n) {
      const a = Jr(n);
      if (!a.resolvedType) {
        const l = TS(n);
        if (tv(n.symbol).size === 0 && !l)
          a.resolvedType = Gl;
        else {
          let u = gf(16, n.symbol);
          u.aliasSymbol = l, u.aliasTypeArguments = j2(l), Bk(n) && n.isArrayType && (u = Iu(u)), a.resolvedType = u;
        }
      }
      return a.resolvedType;
    }
    function TS(n) {
      let a = n.parent;
      for (; xx(a) || wT(a) || Ax(a) && a.operator === 146; )
        a = a.parent;
      return LN(a) ? Ir(a) : void 0;
    }
    function j2(n) {
      return n ? ev(n) : void 0;
    }
    function NU(n) {
      return !!(n.flags & 524288) && !Vf(n);
    }
    function fie(n) {
      return Xh(n) || !!(n.flags & 474058748);
    }
    function _ie(n, a) {
      if (!(n.flags & 1048576))
        return n;
      if (Yn(n.types, fie))
        return nn(n.types, Xh) || pa;
      const l = nn(n.types, (g) => !fie(g));
      if (!l || nn(n.types, (g) => g !== l && !fie(g)))
        return n;
      return p(l);
      function p(g) {
        const x = lo();
        for (const M of ms(g))
          if (!(Qf(M) & 24)) {
            if (OU(M)) {
              const J = M.flags & 65536 && !(M.flags & 32768), ge = ns(16777220, M.escapedName, Sre(M) | (a ? 8 : 0));
              ge.links.type = J ? He : Io(ar(M), !0), ge.declarations = M.declarations, ge.links.nameType = Wi(M).nameType, ge.links.syntheticOrigin = M, x.set(M.escapedName, ge);
            }
          }
        const R = Ns(g.symbol, x, rt, rt, Lu(g));
        return R.objectFlags |= 131200, R;
      }
    }
    function Bb(n, a, l, u, p) {
      if (n.flags & 1 || a.flags & 1)
        return we;
      if (n.flags & 2 || a.flags & 2)
        return he;
      if (n.flags & 131072)
        return a;
      if (a.flags & 131072)
        return n;
      if (n = _ie(n, p), n.flags & 1048576)
        return IP([n, a]) ? $s(n, (J) => Bb(J, a, l, u, p)) : Ce;
      if (a = _ie(a, p), a.flags & 1048576)
        return IP([n, a]) ? $s(a, (J) => Bb(n, J, l, u, p)) : Ce;
      if (a.flags & 473960444)
        return n;
      if (Fb(n) || Fb(a)) {
        if (Xh(n))
          return a;
        if (n.flags & 2097152) {
          const J = n.types, $ = J[J.length - 1];
          if (NU($) && NU(a))
            return wo(va(J.slice(0, J.length - 1), [Bb($, a, l, u, p)]));
        }
        return wo([n, a]);
      }
      const g = lo(), x = /* @__PURE__ */ new Set(), R = n === pa ? Lu(a) : PAe([n, a]);
      for (const J of ms(a))
        Qf(J) & 24 ? x.add(J.escapedName) : OU(J) && g.set(J.escapedName, pie(J, p));
      for (const J of ms(n))
        if (!(x.has(J.escapedName) || !OU(J)))
          if (g.has(J.escapedName)) {
            const $ = g.get(J.escapedName), ge = ar($);
            if ($.flags & 16777216) {
              const Ne = va(J.declarations, $.declarations), De = 4 | J.flags & 16777216, _t = ns(De, J.escapedName);
              _t.links.type = Qr([ar(J), Gie(ge)], 2), _t.links.leftSpread = J, _t.links.rightSpread = $, _t.declarations = Ne, _t.links.nameType = Wi(J).nameType, g.set(J.escapedName, _t);
            }
          } else
            g.set(J.escapedName, pie(J, p));
      const M = Ns(l, g, rt, rt, _a(R, (J) => SQe(J, p)));
      return M.objectFlags |= 2228352 | u, M;
    }
    function OU(n) {
      var a;
      return !kt(n.declarations, $u) && (!(n.flags & 106496) || !((a = n.declarations) != null && a.some((l) => di(l.parent))));
    }
    function pie(n, a) {
      const l = n.flags & 65536 && !(n.flags & 32768);
      if (!l && a === _p(n))
        return n;
      const u = 4 | n.flags & 16777216, p = ns(u, n.escapedName, Sre(n) | (a ? 8 : 0));
      return p.links.type = l ? He : ar(n), p.declarations = n.declarations, p.links.nameType = Wi(n).nameType, p.links.syntheticOrigin = n, p;
    }
    function SQe(n, a) {
      return n.isReadonly !== a ? hm(n.keyType, n.type, a, n.declaration) : n;
    }
    function kP(n, a, l, u) {
      const p = dm(n, l);
      return p.value = a, p.regularType = u || p, p;
    }
    function H2(n) {
      if (n.flags & 2976) {
        if (!n.freshType) {
          const a = kP(n.flags, n.value, n.symbol, n);
          a.freshType = a, n.freshType = a;
        }
        return n.freshType;
      }
      return n;
    }
    function yd(n) {
      return n.flags & 2976 ? n.regularType : n.flags & 1048576 ? n.regularType || (n.regularType = $s(n, yd)) : n;
    }
    function Gb(n) {
      return !!(n.flags & 2976) && n.freshType === n;
    }
    function jf(n) {
      let a;
      return _r.get(n) || (_r.set(n, a = kP(128, n)), a);
    }
    function Bp(n) {
      let a;
      return Ii.get(n) || (Ii.set(n, a = kP(256, n)), a);
    }
    function PU(n) {
      let a;
      const l = I1(n);
      return $i.get(l) || ($i.set(l, a = kP(2048, n)), a);
    }
    function xQe(n, a, l) {
      let u;
      const p = `${a}${typeof n == "string" ? "@" : "#"}${n}`, g = 1024 | (typeof n == "string" ? 128 : 256);
      return Qi.get(p) || (Qi.set(p, u = kP(g, n, l)), u);
    }
    function AQe(n) {
      if (n.literal.kind === 104)
        return Sn;
      const a = Jr(n);
      return a.resolvedType || (a.resolvedType = yd(ga(n.literal))), a.resolvedType;
    }
    function CQe(n) {
      const a = dm(8192, n);
      return a.escapedName = `__@${a.symbol.escapedName}@${bo(a.symbol)}`, a;
    }
    function mie(n) {
      if (due(n)) {
        const a = a3(n) ? Yd(n.left) : Yd(n);
        if (a) {
          const l = Wi(a);
          return l.uniqueESSymbolType || (l.uniqueESSymbolType = CQe(a));
        }
      }
      return q;
    }
    function LQe(n) {
      const a = Sd(n, !1, !1), l = a && a.parent;
      if (l && (di(l) || l.kind === 261) && !Ja(a) && (!ql(a) || mT(n, a.body)))
        return zu(Ir(l)).thisType;
      if (l && Ls(l) && br(l.parent) && Cl(l.parent) === 6)
        return zu(Yd(l.parent.left).parent).thisType;
      const u = n.flags & 8388608 ? z0(n) : void 0;
      return u && Bs(u) && br(u.parent) && Cl(u.parent) === 3 ? zu(Yd(u.parent.left).parent).thisType : Up(a) && mT(n, a.body) ? zu(Ir(a)).thisType : (Ke(n, _.A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface), Ce);
    }
    function MU(n) {
      const a = Jr(n);
      return a.resolvedType || (a.resolvedType = LQe(n)), a.resolvedType;
    }
    function YCe(n) {
      return fi(wP(n.type) || n.type);
    }
    function wP(n) {
      switch (n.kind) {
        case 193:
          return wP(n.type);
        case 186:
          if (n.elements.length === 1 && (n = n.elements[0], n.kind === 188 || n.kind === 199 && n.dotDotDotToken))
            return wP(n.type);
          break;
        case 185:
          return n.elementType;
      }
    }
    function IQe(n) {
      const a = Jr(n);
      return a.resolvedType || (a.resolvedType = n.dotDotDotToken ? YCe(n) : Io(fi(n.type), !0, !!n.questionToken));
    }
    function fi(n) {
      return s$e($Ce(n), n);
    }
    function $Ce(n) {
      switch (n.kind) {
        case 131:
        case 315:
        case 316:
          return we;
        case 157:
          return he;
        case 152:
          return ue;
        case 148:
          return mt;
        case 160:
          return zt;
        case 134:
          return Re;
        case 153:
          return q;
        case 114:
          return Rt;
        case 155:
          return He;
        case 104:
          return Sn;
        case 144:
          return gt;
        case 149:
          return n.flags & 262144 && !Te ? we : oi;
        case 139:
          return ie;
        case 194:
        case 108:
          return MU(n);
        case 198:
          return AQe(n);
        case 180:
          return Xre(n);
        case 179:
          return n.assertsModifier ? Rt : Re;
        case 230:
          return Xre(n);
        case 183:
          return lCe(n);
        case 185:
        case 186:
          return P$e(n);
        case 187:
          return G$e(n);
        case 189:
          return q$e(n);
        case 190:
          return eQe(n);
        case 317:
          return l$e(n);
        case 319:
          return Io(fi(n.type));
        case 199:
          return IQe(n);
        case 193:
        case 318:
        case 312:
          return fi(n.type);
        case 188:
          return YCe(n);
        case 321:
          return Aot(n);
        case 181:
        case 182:
        case 184:
        case 325:
        case 320:
        case 326:
          return XCe(n);
        case 195:
          return sQe(n);
        case 196:
          return HCe(n);
        case 197:
          return uie(n);
        case 191:
          return bQe(n);
        case 192:
          return EQe(n);
        case 200:
          return lQe(n);
        case 202:
          return TQe(n);
        case 79:
        case 163:
        case 208:
          const a = D_(n);
          return a ? Us(a) : Ce;
        default:
          return Ce;
      }
    }
    function FU(n, a, l) {
      if (n && n.length)
        for (let u = 0; u < n.length; u++) {
          const p = n[u], g = l(p, a);
          if (p !== g) {
            const x = u === 0 ? [] : n.slice(0, u);
            for (x.push(g), u++; u < n.length; u++)
              x.push(l(n[u], a));
            return x;
          }
        }
      return n;
    }
    function $g(n, a) {
      return FU(n, a, Yi);
    }
    function BU(n, a) {
      return FU(n, a, W2);
    }
    function QCe(n, a) {
      return FU(n, a, jQe);
    }
    function vd(n, a) {
      return n.length === 1 ? Ub(n[0], a ? a[0] : we) : kQe(n, a);
    }
    function I0(n, a) {
      switch (a.kind) {
        case 0:
          return n === a.source ? a.target : n;
        case 1: {
          const u = a.sources, p = a.targets;
          for (let g = 0; g < u.length; g++)
            if (n === u[g])
              return p ? p[g] : we;
          return n;
        }
        case 2: {
          const u = a.sources, p = a.targets;
          for (let g = 0; g < u.length; g++)
            if (n === u[g])
              return p[g]();
          return n;
        }
        case 3:
          return a.func(n);
        case 4:
        case 5:
          const l = I0(n, a.mapper1);
          return l !== n && a.kind === 4 ? Yi(l, a.mapper2) : I0(l, a.mapper2);
      }
    }
    function Ub(n, a) {
      return D.attachDebugPrototypeIfDebug({ kind: 0, source: n, target: a });
    }
    function kQe(n, a) {
      return D.attachDebugPrototypeIfDebug({ kind: 1, sources: n, targets: a });
    }
    function DP(n, a) {
      return D.attachDebugPrototypeIfDebug({ kind: 3, func: n, debugInfo: D.isDebugging ? a : void 0 });
    }
    function hie(n, a) {
      return D.attachDebugPrototypeIfDebug({ kind: 2, sources: n, targets: a });
    }
    function GU(n, a, l) {
      return D.attachDebugPrototypeIfDebug({ kind: n, mapper1: a, mapper2: l });
    }
    function ZCe(n) {
      return vd(n, void 0);
    }
    function wQe(n, a) {
      const l = n.inferences.slice(a);
      return vd(jt(l, (u) => u.typeParameter), jt(l, () => he));
    }
    function k0(n, a) {
      return n ? GU(4, n, a) : a;
    }
    function DQe(n, a) {
      return n ? GU(5, n, a) : a;
    }
    function SS(n, a, l) {
      return l ? GU(5, Ub(n, a), l) : Ub(n, a);
    }
    function hD(n, a, l) {
      return n ? GU(5, n, Ub(a, l)) : Ub(a, l);
    }
    function RQe(n) {
      return !n.constraint && !zre(n) || n.constraint === Yo ? n : n.restrictiveInstantiation || (n.restrictiveInstantiation = Nd(n.symbol), n.restrictiveInstantiation.constraint = Yo, n.restrictiveInstantiation);
    }
    function UU(n) {
      const a = Nd(n.symbol);
      return a.target = n, a;
    }
    function NQe(n, a) {
      return xP(n.kind, n.parameterName, n.parameterIndex, Yi(n.type, a));
    }
    function W2(n, a, l) {
      let u;
      if (n.typeParameters && !l) {
        u = jt(n.typeParameters, UU), a = k0(vd(n.typeParameters, u), a);
        for (const g of u)
          g.mapper = a;
      }
      const p = oh(n.declaration, u, n.thisParameter && gie(n.thisParameter, a), FU(n.parameters, a, gie), void 0, void 0, n.minArgumentCount, n.flags & 39);
      return p.target = n, p.mapper = a, p;
    }
    function gie(n, a) {
      const l = Wi(n);
      if (l.type && !PE(l.type))
        return n;
      Ll(n) & 1 && (n = l.target, a = k0(l.mapper, a));
      const u = ns(n.flags, n.escapedName, 1 | Ll(n) & 53256);
      return u.declarations = n.declarations, u.parent = n.parent, u.links.target = n, u.links.mapper = a, n.valueDeclaration && (u.valueDeclaration = n.valueDeclaration), l.nameType && (u.links.nameType = l.nameType), u;
    }
    function OQe(n, a, l, u) {
      const p = n.objectFlags & 4 || n.objectFlags & 8388608 ? n.node : n.symbol.declarations[0], g = Jr(p), x = n.objectFlags & 4 ? g.resolvedType : n.objectFlags & 64 ? n.target : n;
      let R = g.outerTypeParameters;
      if (!R) {
        let M = vL(p, !0);
        if (Up(p)) {
          const $ = JAe(p);
          M = Ti(M, $);
        }
        R = M || rt;
        const J = n.objectFlags & 8388612 ? [p] : n.symbol.declarations;
        R = (x.objectFlags & 8388612 || x.symbol.flags & 8192 || x.symbol.flags & 2048) && !x.aliasTypeArguments ? lr(R, ($) => kt(J, (ge) => RP($, ge))) : R, g.outerTypeParameters = R;
      }
      if (R.length) {
        const M = k0(n.mapper, a), J = jt(R, (_t) => I0(_t, M)), $ = l || n.aliasSymbol, ge = l ? u : $g(n.aliasTypeArguments, a), Ne = o_(J) + F2($, ge);
        x.instantiations || (x.instantiations = /* @__PURE__ */ new Map(), x.instantiations.set(o_(R) + F2(x.aliasSymbol, x.aliasTypeArguments), x));
        let De = x.instantiations.get(Ne);
        if (!De) {
          const _t = vd(R, J);
          De = x.objectFlags & 4 ? qre(n.target, n.node, _t, $, ge) : x.objectFlags & 32 ? eLe(x, _t, $, ge) : bie(x, _t, $, ge), x.instantiations.set(Ne, De);
        }
        return De;
      }
      return n;
    }
    function PQe(n) {
      return !(n.parent.kind === 180 && n.parent.typeArguments && n === n.parent.typeName || n.parent.kind === 202 && n.parent.typeArguments && n === n.parent.qualifier);
    }
    function RP(n, a) {
      if (n.symbol && n.symbol.declarations && n.symbol.declarations.length === 1) {
        const u = n.symbol.declarations[0].parent;
        for (let p = a; p !== u; p = p.parent)
          if (!p || p.kind === 238 || p.kind === 191 && Ma(p.extendsType, l))
            return !0;
        return l(a);
      }
      return !0;
      function l(u) {
        switch (u.kind) {
          case 194:
            return !!n.isThisType;
          case 79:
            return !n.isThisType && yh(u) && PQe(u) && $Ce(u) === n;
          case 183:
            const p = u.exprName, g = Lf(p), x = w_(g), R = n.symbol.declarations[0];
            let M;
            if (R.kind === 165)
              M = R.parent;
            else if (n.isThisType)
              M = R;
            else
              return !0;
            return x.declarations ? kt(x.declarations, (J) => mT(J, M)) || kt(u.typeArguments, l) : !0;
          case 171:
          case 170:
            return !u.type && !!u.body || kt(u.typeParameters, l) || kt(u.parameters, l) || !!u.type && l(u.type);
        }
        return !!Ma(u, l);
      }
    }
    function yie(n) {
      const a = Pp(n);
      if (a.flags & 4194304) {
        const l = lv(a.type);
        if (l.flags & 262144)
          return l;
      }
    }
    function eLe(n, a, l, u) {
      const p = yie(n);
      if (p) {
        const g = Yi(p, a);
        if (p !== g)
          return nIe(up(g), (x) => {
            if (x.flags & 61603843 && x !== Nt && !rs(x)) {
              if (!n.declaration.nameType) {
                let R;
                if (Hf(x) || x.flags & 1 && ih(p, 4) < 0 && (R = Cu(p)) && lh(R, RE))
                  return FQe(x, n, SS(p, x, a));
                if (z2(x))
                  return MQe(x, n, p, a);
                if (Fo(x))
                  return BQe(x, n, SS(p, x, a));
              }
              return bie(n, SS(p, x, a));
            }
            return x;
          }, l, u);
      }
      return Yi(Pp(n), a) === Nt ? Nt : bie(n, a, l, u);
    }
    function vie(n, a) {
      return a & 1 ? !0 : a & 2 ? !1 : n;
    }
    function MQe(n, a, l, u) {
      const p = n.target.elementFlags, g = jt(hs(n), (R, M) => {
        const J = p[M] & 8 ? R : p[M] & 4 ? Iu(R) : Fp([R], [p[M]]);
        return eLe(a, SS(l, J, u));
      }), x = vie(n.target.readonly, pm(a));
      return Fp(g, jt(g, (R) => 8), x);
    }
    function FQe(n, a, l) {
      const u = tLe(a, mt, !0, l);
      return rs(u) ? Ce : Iu(u, vie(kL(n), pm(a)));
    }
    function BQe(n, a, l) {
      const u = n.target.elementFlags, p = jt(hs(n), (M, J) => tLe(a, jf("" + J), !!(u[J] & 2), l)), g = pm(a), x = g & 4 ? jt(u, (M) => M & 1 ? 2 : M) : g & 8 ? jt(u, (M) => M & 2 ? 1 : M) : u, R = vie(n.target.readonly, g);
      return jr(p, Ce) ? Ce : Fp(p, x, R, n.target.labeledElementDeclarations);
    }
    function tLe(n, a, l, u) {
      const p = hD(u, lp(n), a), g = Yi(Jh(n.target || n), p), x = pm(n);
      return W && x & 4 && !pl(g, 49152) ? Qg(g, !0) : W && x & 8 && l ? l_(g, 524288) : g;
    }
    function bie(n, a, l, u) {
      const p = gf(n.objectFlags | 64, n.symbol);
      if (n.objectFlags & 32) {
        p.declaration = n.declaration;
        const g = lp(n), x = UU(g);
        p.typeParameter = x, a = k0(Ub(g, x), a), x.mapper = a;
      }
      return n.objectFlags & 8388608 && (p.node = n.node), p.target = n, p.mapper = a, p.aliasSymbol = l || n.aliasSymbol, p.aliasTypeArguments = l ? u : $g(n.aliasTypeArguments, a), p.objectFlags |= p.aliasTypeArguments ? xU(p.aliasTypeArguments) : 0, p;
    }
    function Eie(n, a, l, u) {
      const p = n.root;
      if (p.outerTypeParameters) {
        const g = jt(p.outerTypeParameters, (M) => I0(M, a)), x = o_(g) + F2(l, u);
        let R = p.instantiations.get(x);
        if (!R) {
          const M = vd(p.outerTypeParameters, g), J = p.checkType, $ = p.isDistributive ? I0(J, M) : void 0;
          R = $ && J !== $ && $.flags & 1179648 ? nIe(up($), (ge) => die(p, SS(J, ge, M)), l, u) : die(p, M, l, u), p.instantiations.set(x, R);
        }
        return R;
      }
      return n;
    }
    function Yi(n, a) {
      return n && a ? nLe(n, a, void 0, void 0) : n;
    }
    function nLe(n, a, l, u) {
      var p;
      if (!PE(n))
        return n;
      if (O === 100 || I >= 5e6)
        return (p = bi) == null || p.instant(bi.Phase.CheckTypes, "instantiateType_DepthLimit", { typeId: n.id, instantiationDepth: O, instantiationCount: I }), Ke(G, _.Type_instantiation_is_excessively_deep_and_possibly_infinite), Ce;
      L++, I++, O++;
      const g = GQe(n, a, l, u);
      return O--, g;
    }
    function GQe(n, a, l, u) {
      const p = n.flags;
      if (p & 262144)
        return I0(n, a);
      if (p & 524288) {
        const g = n.objectFlags;
        if (g & 52) {
          if (g & 4 && !n.node) {
            const x = n.resolvedTypeArguments, R = $g(x, a);
            return R !== x ? nie(n.target, R) : n;
          }
          return g & 1024 ? UQe(n, a) : OQe(n, a, l, u);
        }
        return n;
      }
      if (p & 3145728) {
        const g = n.flags & 1048576 ? n.origin : void 0, x = g && g.flags & 3145728 ? g.types : n.types, R = $g(x, a);
        if (R === x && l === n.aliasSymbol)
          return n;
        const M = l || n.aliasSymbol, J = l ? u : $g(n.aliasTypeArguments, a);
        return p & 2097152 || g && g.flags & 2097152 ? wo(R, M, J) : Qr(R, 1, M, J);
      }
      if (p & 4194304)
        return gm(Yi(n.type, a));
      if (p & 134217728)
        return wE(n.texts, $g(n.types, a));
      if (p & 268435456)
        return ES(n.symbol, Yi(n.type, a));
      if (p & 8388608) {
        const g = l || n.aliasSymbol, x = l ? u : $g(n.aliasTypeArguments, a);
        return Md(Yi(n.objectType, a), Yi(n.indexType, a), n.accessFlags, void 0, g, x);
      }
      if (p & 16777216)
        return Eie(n, k0(n.mapper, a), l, u);
      if (p & 33554432) {
        const g = Yi(n.baseType, a), x = Yi(n.constraint, a);
        return g.flags & 8650752 && CL(x) ? Jre(g, x) : x.flags & 3 || xo(DE(g), DE(x)) ? g : g.flags & 8650752 ? Jre(g, x) : wo([x, g]);
      }
      return n;
    }
    function UQe(n, a) {
      const l = Yi(n.mappedType, a);
      if (!(ti(l) & 32))
        return n;
      const u = Yi(n.constraintType, a);
      if (!(u.flags & 4194304))
        return n;
      const p = NLe(Yi(n.source, a), l, u);
      return p || n;
    }
    function VQe(n) {
      return n.flags & 134479871 ? n : n.uniqueLiteralFilledInstantiation || (n.uniqueLiteralFilledInstantiation = Yi(n, ss));
    }
    function VU(n) {
      return n.flags & 134479871 ? n : n.permissiveInstantiation || (n.permissiveInstantiation = Yi(n, Hi));
    }
    function DE(n) {
      return n.flags & 134479871 ? n : (n.restrictiveInstantiation || (n.restrictiveInstantiation = Yi(n, ua), n.restrictiveInstantiation.restrictiveInstantiation = n.restrictiveInstantiation), n.restrictiveInstantiation);
    }
    function jQe(n, a) {
      return hm(n.keyType, Yi(n.type, a), n.isReadonly, n.declaration);
    }
    function k_(n) {
      switch (D.assert(n.kind !== 171 || B_(n)), n.kind) {
        case 215:
        case 216:
        case 171:
        case 259:
          return rLe(n);
        case 207:
          return kt(n.properties, k_);
        case 206:
          return kt(n.elements, k_);
        case 224:
          return k_(n.whenTrue) || k_(n.whenFalse);
        case 223:
          return (n.operatorToken.kind === 56 || n.operatorToken.kind === 60) && (k_(n.left) || k_(n.right));
        case 299:
          return k_(n.initializer);
        case 214:
          return k_(n.expression);
        case 289:
          return kt(n.properties, k_) || kh(n.parent) && kt(n.parent.parent.children, k_);
        case 288: {
          const { initializer: a } = n;
          return !!a && k_(a);
        }
        case 291: {
          const { expression: a } = n;
          return !!a && k_(a);
        }
      }
      return !1;
    }
    function rLe(n) {
      return Y3(n) || HQe(n);
    }
    function HQe(n) {
      return !n.typeParameters && !yp(n) && !!n.body && n.body.kind !== 238 && k_(n.body);
    }
    function jU(n) {
      return (lC(n) || B_(n)) && rLe(n);
    }
    function iLe(n) {
      if (n.flags & 524288) {
        const a = cp(n);
        if (a.constructSignatures.length || a.callSignatures.length) {
          const l = gf(16, n.symbol);
          return l.members = a.members, l.properties = a.properties, l.callSignatures = rt, l.constructSignatures = rt, l.indexInfos = rt, l;
        }
      } else if (n.flags & 2097152)
        return wo(jt(n.types, iLe));
      return n;
    }
    function Kh(n, a) {
      return ym(n, a, Dd);
    }
    function gD(n, a) {
      return ym(n, a, Dd) ? -1 : 0;
    }
    function Tie(n, a) {
      return ym(n, a, kd) ? -1 : 0;
    }
    function WQe(n, a) {
      return ym(n, a, $m) ? -1 : 0;
    }
    function cv(n, a) {
      return ym(n, a, $m);
    }
    function aLe(n, a) {
      return ym(n, a, tp);
    }
    function xo(n, a) {
      return ym(n, a, kd);
    }
    function Vb(n, a) {
      return n.flags & 1048576 ? Yn(n.types, (l) => Vb(l, a)) : a.flags & 1048576 ? kt(a.types, (l) => Vb(n, l)) : n.flags & 2097152 ? kt(n.types, (l) => Vb(l, a)) : n.flags & 58982400 ? Vb(qu(n) || he, a) : Yh(a) ? !!(n.flags & 67633152) : a === Ya ? !!(n.flags & 67633152) && !Yh(n) : a === dl ? !!(n.flags & 524288) && rae(n) : AE(n, R2(a)) || Hf(a) && !kL(a) && Vb(n, ds);
    }
    function HU(n, a) {
      return ym(n, a, wd);
    }
    function NP(n, a) {
      return HU(n, a) || HU(a, n);
    }
    function id(n, a, l, u, p, g) {
      return s_(n, a, kd, l, u, p, g);
    }
    function uv(n, a, l, u, p, g) {
      return Sie(n, a, kd, l, u, p, g, void 0);
    }
    function Sie(n, a, l, u, p, g, x, R) {
      return ym(n, a, l) ? !0 : !u || !yD(p, n, a, l, g, x, R) ? s_(n, a, l, u, g, x, R) : !1;
    }
    function oLe(n) {
      return !!(n.flags & 16777216 || n.flags & 2097152 && kt(n.types, oLe));
    }
    function yD(n, a, l, u, p, g, x) {
      if (!n || oLe(l))
        return !1;
      if (!s_(a, l, u, void 0) && zQe(n, a, l, u, p, g, x))
        return !0;
      switch (n.kind) {
        case 291:
        case 214:
          return yD(n.expression, a, l, u, p, g, x);
        case 223:
          switch (n.operatorToken.kind) {
            case 63:
            case 27:
              return yD(n.right, a, l, u, p, g, x);
          }
          break;
        case 207:
          return ZQe(n, a, l, u, g, x);
        case 206:
          return $Qe(n, a, l, u, g, x);
        case 289:
          return YQe(n, a, l, u, g, x);
        case 216:
          return qQe(n, a, l, u, g, x);
      }
      return !1;
    }
    function zQe(n, a, l, u, p, g, x) {
      const R = za(a, 0), M = za(a, 1);
      for (const J of [M, R])
        if (kt(J, ($) => {
          const ge = ys($);
          return !(ge.flags & 131073) && s_(ge, l, u, void 0);
        })) {
          const $ = x || {};
          id(a, l, n, p, g, $);
          const ge = $.errors[$.errors.length - 1];
          return Xo(ge, Nr(n, J === M ? _.Did_you_mean_to_use_new_with_this_expression : _.Did_you_mean_to_call_this_expression)), !0;
        }
      return !1;
    }
    function qQe(n, a, l, u, p, g) {
      if (co(n.body) || kt(n.parameters, jM))
        return !1;
      const x = LS(a);
      if (!x)
        return !1;
      const R = za(l, 0);
      if (!Le(R))
        return !1;
      const M = n.body, J = ys(x), $ = Qr(jt(R, ys));
      if (!s_(J, $, u, void 0)) {
        const ge = M && yD(M, J, $, u, void 0, p, g);
        if (ge)
          return ge;
        const Ne = g || {};
        if (s_(J, $, u, M, void 0, p, Ne), Ne.errors)
          return l.symbol && Le(l.symbol.declarations) && Xo(Ne.errors[Ne.errors.length - 1], Nr(l.symbol.declarations[0], _.The_expected_type_comes_from_the_return_type_of_this_signature)), !(Vc(n) & 2) && !fc(J, "then") && s_(l4(J), $, u, void 0) && Xo(Ne.errors[Ne.errors.length - 1], Nr(n, _.Did_you_mean_to_mark_this_function_as_async)), !0;
      }
      return !1;
    }
    function sLe(n, a, l) {
      const u = sv(a, l);
      if (u)
        return u;
      if (a.flags & 1048576) {
        const p = mLe(n, a);
        if (p)
          return sv(p, l);
      }
    }
    function lLe(n, a) {
      $P(n, a, !1);
      const l = jL(n, 1);
      return kD(), l;
    }
    function OP(n, a, l, u, p, g) {
      let x = !1;
      for (const R of n) {
        const { errorNode: M, innerExpression: J, nameType: $, errorMessage: ge } = R;
        let Ne = sLe(a, l, $);
        if (!Ne || Ne.flags & 8388608)
          continue;
        let De = sv(a, $);
        if (!De)
          continue;
        const _t = wU($, void 0);
        if (!s_(De, Ne, u, void 0)) {
          const Bt = J && yD(J, De, Ne, u, void 0, p, g);
          if (x = !0, !Bt) {
            const Mn = g || {}, An = J ? lLe(J, De) : De;
            if (qe && zU(An, Ne)) {
              const Kn = Nr(M, _.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target, ke(An), ke(Ne));
              Qo.add(Kn), Mn.errors = [Kn];
            } else {
              const Kn = !!(_t && (uo(l, _t) || an).flags & 16777216), gn = !!(_t && (uo(a, _t) || an).flags & 16777216);
              Ne = NE(Ne, Kn), De = NE(De, Kn && gn), s_(An, Ne, u, M, ge, p, Mn) && An !== De && s_(De, Ne, u, M, ge, p, Mn);
            }
            if (Mn.errors) {
              const Kn = Mn.errors[Mn.errors.length - 1], gn = qh($) ? _m($) : void 0, xn = gn !== void 0 ? uo(l, gn) : void 0;
              let yr = !1;
              if (!xn) {
                const ln = SP(l, $);
                ln && ln.declaration && !Zn(ln.declaration).hasNoDefaultLib && (yr = !0, Xo(Kn, Nr(ln.declaration, _.The_expected_type_comes_from_this_index_signature)));
              }
              if (!yr && (xn && Le(xn.declarations) || l.symbol && Le(l.symbol.declarations))) {
                const ln = xn && Le(xn.declarations) ? xn.declarations[0] : l.symbol.declarations[0];
                Zn(ln).hasNoDefaultLib || Xo(Kn, Nr(ln, _.The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1, gn && !($.flags & 8192) ? ta(gn) : ke($), ke(l)));
              }
            }
          }
        }
      }
      return x;
    }
    function JQe(n, a, l, u, p, g) {
      const x = _c(l, $U), R = _c(l, ($) => !$U($)), M = R !== gt ? goe(13, 0, R, void 0) : void 0;
      let J = !1;
      for (let $ = n.next(); !$.done; $ = n.next()) {
        const { errorNode: ge, innerExpression: Ne, nameType: De, errorMessage: _t } = $.value;
        let Bt = M;
        const Mn = x !== gt ? sLe(a, x, De) : void 0;
        if (Mn && !(Mn.flags & 8388608) && (Bt = M ? Qr([M, Mn]) : Mn), !Bt)
          continue;
        let An = sv(a, De);
        if (!An)
          continue;
        const Kn = wU(De, void 0);
        if (!s_(An, Bt, u, void 0)) {
          const gn = Ne && yD(Ne, An, Bt, u, void 0, p, g);
          if (J = !0, !gn) {
            const xn = g || {}, yr = Ne ? lLe(Ne, An) : An;
            if (qe && zU(yr, Bt)) {
              const ln = Nr(ge, _.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target, ke(yr), ke(Bt));
              Qo.add(ln), xn.errors = [ln];
            } else {
              const ln = !!(Kn && (uo(x, Kn) || an).flags & 16777216), Gn = !!(Kn && (uo(a, Kn) || an).flags & 16777216);
              Bt = NE(Bt, ln), An = NE(An, ln && Gn), s_(yr, Bt, u, ge, _t, p, xn) && yr !== An && s_(An, Bt, u, ge, _t, p, xn);
            }
          }
        }
      }
      return J;
    }
    function* KQe(n) {
      if (Le(n.properties))
        for (const a of n.properties)
          IT(a) || Eae(Mr(a.name)) || (yield { errorNode: a.name, innerExpression: a.initializer, nameType: jf(Mr(a.name)) });
    }
    function* XQe(n, a) {
      if (!Le(n.children))
        return;
      let l = 0;
      for (let u = 0; u < n.children.length; u++) {
        const p = n.children[u], g = Bp(u - l), x = cLe(p, g, a);
        x ? yield x : l++;
      }
    }
    function cLe(n, a, l) {
      switch (n.kind) {
        case 291:
          return { errorNode: n, innerExpression: n.expression, nameType: a };
        case 11:
          if (n.containsOnlyTriviaWhiteSpaces)
            break;
          return { errorNode: n, innerExpression: void 0, nameType: a, errorMessage: l() };
        case 281:
        case 282:
        case 285:
          return { errorNode: n, innerExpression: n, nameType: a };
        default:
          return D.assertNever(n, "Found invalid jsx child");
      }
    }
    function YQe(n, a, l, u, p, g) {
      let x = OP(KQe(n), a, l, u, p, g), R;
      if (kh(n.parent) && Ay(n.parent.parent)) {
        const J = n.parent.parent, $ = vV(K2(n)), ge = $ === void 0 ? "children" : ta($), Ne = jf(ge), De = Md(l, Ne), _t = UN(J.children);
        if (!Le(_t))
          return x;
        const Bt = Le(_t) > 1;
        let Mn, An;
        if (Qre(!1) !== Co) {
          const gn = vCe(we);
          Mn = _c(De, (xn) => xo(xn, gn)), An = _c(De, (xn) => !xo(xn, gn));
        } else
          Mn = _c(De, $U), An = _c(De, (gn) => !$U(gn));
        if (Bt) {
          if (Mn !== gt) {
            const gn = Fp(yV(J, 0)), xn = XQe(J, M);
            x = JQe(xn, gn, Mn, u, p, g) || x;
          } else if (!ym(Md(a, Ne), De, u)) {
            x = !0;
            const gn = Ke(J.openingElement.tagName, _.This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided, ge, ke(De));
            g && g.skipLogging && (g.errors || (g.errors = [])).push(gn);
          }
        } else if (An !== gt) {
          const gn = _t[0], xn = cLe(gn, Ne, M);
          xn && (x = OP(function* () {
            yield xn;
          }(), a, l, u, p, g) || x);
        } else if (!ym(Md(a, Ne), De, u)) {
          x = !0;
          const gn = Ke(J.openingElement.tagName, _.This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided, ge, ke(De));
          g && g.skipLogging && (g.errors || (g.errors = [])).push(gn);
        }
      }
      return x;
      function M() {
        if (!R) {
          const J = Sc(n.parent.tagName), $ = vV(K2(n)), ge = $ === void 0 ? "children" : ta($), Ne = Md(l, jf(ge)), De = _._0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2;
          R = { ...De, key: "!!ALREADY FORMATTED!!", message: oq(void 0, De, J, ge, ke(Ne)) };
        }
        return R;
      }
    }
    function* uLe(n, a) {
      const l = Le(n.elements);
      if (l)
        for (let u = 0; u < l; u++) {
          if (wL(a) && !uo(a, "" + u))
            continue;
          const p = n.elements[u];
          if (Rc(p))
            continue;
          const g = Bp(u);
          yield { errorNode: p, innerExpression: p, nameType: g };
        }
    }
    function $Qe(n, a, l, u, p, g) {
      if (l.flags & 134479868)
        return !1;
      if (wL(a))
        return OP(uLe(n, l), a, l, u, p, g);
      $P(n, l, !1);
      const x = IIe(n, 1, !0);
      return kD(), wL(x) ? OP(uLe(n, l), x, l, u, p, g) : !1;
    }
    function* QQe(n) {
      if (Le(n.properties))
        for (const a of n.properties) {
          if (Ox(a))
            continue;
          const l = AL(Ir(a), 8576);
          if (!(!l || l.flags & 131072))
            switch (a.kind) {
              case 175:
              case 174:
              case 171:
              case 300:
                yield { errorNode: a.name, innerExpression: void 0, nameType: l };
                break;
              case 299:
                yield { errorNode: a.name, innerExpression: a.initializer, nameType: l, errorMessage: sN(a.name) ? _.Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1 : void 0 };
                break;
              default:
                D.assertNever(a);
            }
        }
    }
    function ZQe(n, a, l, u, p, g) {
      return l.flags & 134479868 ? !1 : OP(QQe(n), a, l, u, p, g);
    }
    function dLe(n, a, l, u, p) {
      return s_(n, a, wd, l, u, p);
    }
    function eZe(n, a, l) {
      return xie(n, a, l ? 4 : 0, !1, void 0, void 0, Tie, void 0) !== 0;
    }
    function WU(n) {
      if (!n.typeParameters && (!n.thisParameter || Ss(o4(n.thisParameter))) && n.parameters.length === 1 && Eu(n)) {
        const a = o4(n.parameters[0]);
        return !!((Hf(a) ? hs(a)[0] : a).flags & 131073 && ys(n).flags & 3);
      }
      return !1;
    }
    function xie(n, a, l, u, p, g, x, R) {
      if (n === a || !(l & 16 && WU(n)) && WU(a))
        return -1;
      if (l & 16 && WU(n) && !WU(a))
        return 0;
      const M = tf(a);
      if (!Em(a) && (l & 8 ? Em(n) || tf(n) > M : bm(n) > M))
        return 0;
      n.typeParameters && n.typeParameters !== a.typeParameters && (a = t$e(a), n = ake(n, a, void 0, x));
      const $ = tf(n), ge = PD(n), Ne = PD(a);
      (ge || Ne) && Yi(ge || Ne, R);
      const De = a.declaration ? a.declaration.kind : 0, _t = !(l & 3) && ce && De !== 171 && De !== 170 && De !== 173;
      let Bt = -1;
      const Mn = Ob(n);
      if (Mn && Mn !== Rt) {
        const gn = Ob(a);
        if (gn) {
          const xn = !_t && x(Mn, gn, !1) || x(gn, Mn, u);
          if (!xn)
            return u && p(_.The_this_types_of_each_signature_are_incompatible), 0;
          Bt &= xn;
        }
      }
      const An = ge || Ne ? Math.min($, M) : Math.max($, M), Kn = ge || Ne ? An - 1 : -1;
      for (let gn = 0; gn < An; gn++) {
        const xn = gn === Kn ? ND(n, gn) : VE(n, gn), yr = gn === Kn ? ND(a, gn) : VE(a, gn);
        if (xn && yr) {
          const ln = l & 3 ? void 0 : LS(Zg(xn)), Gn = l & 3 ? void 0 : LS(Zg(yr));
          let Zr = ln && Gn && !a_(ln) && !a_(Gn) && (wu(xn) & 50331648) === (wu(yr) & 50331648) ? xie(Gn, ln, l & 8 | (_t ? 2 : 1), u, p, g, x, R) : !(l & 3) && !_t && x(xn, yr, !1) || x(yr, xn, u);
          if (Zr && l & 8 && gn >= bm(n) && gn < bm(a) && x(xn, yr, !1) && (Zr = 0), !Zr)
            return u && p(_.Types_of_parameters_0_and_1_are_incompatible, ta(UL(n, gn)), ta(UL(a, gn))), 0;
          Bt &= Zr;
        }
      }
      if (!(l & 4)) {
        const gn = Vre(a) ? we : a.declaration && Up(a.declaration) ? zu(as(a.declaration.symbol)) : ys(a);
        if (gn === Rt || gn === we)
          return Bt;
        const xn = Vre(n) ? we : n.declaration && Up(n.declaration) ? zu(as(n.declaration.symbol)) : ys(n), yr = a_(a);
        if (yr) {
          const ln = a_(n);
          if (ln)
            Bt &= tZe(ln, yr, u, p, x);
          else if (_ue(yr))
            return u && p(_.Signature_0_must_be_a_type_predicate, le(n)), 0;
        } else
          Bt &= l & 1 && x(gn, xn, !1) || x(xn, gn, u), !Bt && u && g && g(xn, gn);
      }
      return Bt;
    }
    function tZe(n, a, l, u, p) {
      if (n.kind !== a.kind)
        return l && (u(_.A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard), u(_.Type_predicate_0_is_not_assignable_to_1, nu(n), nu(a))), 0;
      if ((n.kind === 1 || n.kind === 3) && n.parameterIndex !== a.parameterIndex)
        return l && (u(_.Parameter_0_is_not_in_the_same_position_as_parameter_1, n.parameterName, a.parameterName), u(_.Type_predicate_0_is_not_assignable_to_1, nu(n), nu(a))), 0;
      const g = n.type === a.type ? -1 : n.type && a.type ? p(n.type, a.type, l) : 0;
      return g === 0 && l && u(_.Type_predicate_0_is_not_assignable_to_1, nu(n), nu(a)), g;
    }
    function nZe(n, a) {
      const l = dD(n), u = dD(a), p = ys(l), g = ys(u);
      return g === Rt || ym(g, p, kd) || ym(p, g, kd) ? eZe(l, u, !0) : !1;
    }
    function Aie(n) {
      return n !== La && n.properties.length === 0 && n.callSignatures.length === 0 && n.constructSignatures.length === 0 && n.indexInfos.length === 0;
    }
    function Xh(n) {
      return n.flags & 524288 ? !Vf(n) && Aie(cp(n)) : n.flags & 67108864 ? !0 : n.flags & 1048576 ? kt(n.types, Xh) : n.flags & 2097152 ? Yn(n.types, Xh) : !1;
    }
    function Yh(n) {
      return !!(ti(n) & 16 && (n.members && Aie(n) || n.symbol && n.symbol.flags & 2048 && tv(n.symbol).size === 0));
    }
    function rZe(n) {
      if (W && n.flags & 1048576) {
        if (!(n.objectFlags & 33554432)) {
          const a = n.types;
          n.objectFlags |= 33554432 | (a.length >= 3 && a[0].flags & 32768 && a[1].flags & 65536 && kt(a, Yh) ? 67108864 : 0);
        }
        return !!(n.objectFlags & 67108864);
      }
      return !1;
    }
    function LL(n) {
      return !!((n.flags & 1048576 ? n.types[0] : n).flags & 32768);
    }
    function fLe(n) {
      return n.flags & 524288 && !Vf(n) && ms(n).length === 0 && Lu(n).length === 1 && !!sh(n, ue) || n.flags & 3145728 && Yn(n.types, fLe) || !1;
    }
    function Cie(n, a, l) {
      const u = n.flags & 8 ? gd(n) : n, p = a.flags & 8 ? gd(a) : a;
      if (u === p)
        return !0;
      if (u.escapedName !== p.escapedName || !(u.flags & 256) || !(p.flags & 256))
        return !1;
      const g = bo(u) + "," + bo(p), x = _b.get(g);
      if (x !== void 0 && !(!(x & 4) && x & 2 && l))
        return !!(x & 1);
      const R = ar(p);
      for (const M of ms(ar(u)))
        if (M.flags & 8) {
          const J = uo(R, M.escapedName);
          if (!J || !(J.flags & 8))
            return l ? (l(_.Property_0_is_missing_in_type_1, Ml(M), ke(Us(p), void 0, 64)), _b.set(g, 6)) : _b.set(g, 2), !1;
        }
      return _b.set(g, 1), !0;
    }
    function vD(n, a, l, u) {
      const p = n.flags, g = a.flags;
      return g & 1 || p & 131072 || n === Nt || g & 2 && !(l === tp && p & 1) ? !0 : g & 131072 ? !1 : !!(p & 402653316 && g & 4 || p & 128 && p & 1024 && g & 128 && !(g & 1024) && n.value === a.value || p & 296 && g & 8 || p & 256 && p & 1024 && g & 256 && !(g & 1024) && n.value === a.value || p & 2112 && g & 64 || p & 528 && g & 16 || p & 12288 && g & 4096 || p & 32 && g & 32 && n.symbol.escapedName === a.symbol.escapedName && Cie(n.symbol, a.symbol, u) || p & 1024 && g & 1024 && (p & 1048576 && g & 1048576 && Cie(n.symbol, a.symbol, u) || p & 2944 && g & 2944 && n.value === a.value && Cie(n.symbol, a.symbol, u)) || p & 32768 && (!W && !(g & 3145728) || g & 49152) || p & 65536 && (!W && !(g & 3145728) || g & 65536) || p & 524288 && g & 67108864 && !(l === tp && Yh(n) && !(ti(n) & 8192)) || (l === kd || l === wd) && (p & 1 || p & 8 && (g & 32 || g & 256 && g & 1024) || p & 256 && !(p & 1024) && (g & 32 || g & 256 && g & 1024 && n.value === a.value) || rZe(a)));
    }
    function ym(n, a, l) {
      if (Gb(n) && (n = n.regularType), Gb(a) && (a = a.regularType), n === a)
        return !0;
      if (l !== Dd) {
        if (l === wd && !(a.flags & 131072) && vD(a, n, l) || vD(n, a, l))
          return !0;
      } else if (!((n.flags | a.flags) & 61865984)) {
        if (n.flags !== a.flags)
          return !1;
        if (n.flags & 67358815)
          return !0;
      }
      if (n.flags & 524288 && a.flags & 524288) {
        const u = l.get(Die(n, a, 0, l, !1));
        if (u !== void 0)
          return !!(u & 1);
      }
      return n.flags & 469499904 || a.flags & 469499904 ? s_(n, a, l, void 0) : !1;
    }
    function _Le(n, a) {
      return ti(n) & 2048 && Eae(a.escapedName);
    }
    function PP(n, a) {
      for (; ; ) {
        const l = Gb(n) ? n.regularType : ti(n) & 4 ? n.node ? Kg(n.target, hs(n)) : Oie(n) || n : n.flags & 3145728 ? iZe(n, a) : n.flags & 33554432 ? a ? n.baseType : Kre(n) : n.flags & 25165824 ? Yg(n, a) : n;
        if (l === n)
          return l;
        n = l;
      }
    }
    function iZe(n, a) {
      const l = up(n);
      if (l !== n)
        return l;
      if (n.flags & 2097152 && kt(n.types, Yh)) {
        const u = _a(n.types, (p) => PP(p, a));
        if (u !== n.types)
          return wo(u);
      }
      return n;
    }
    function s_(n, a, l, u, p, g, x) {
      var R;
      let M, J, $, ge, Ne, De = 0, _t = 0, Bt = 0, Mn = 0, An = !1, Kn = 0, gn, xn;
      D.assert(l !== Dd || !u, "no error reporting in identity checking");
      const yr = oa(n, a, 3, !!u, p);
      if (xn && Zr(), An) {
        (R = bi) == null || R.instant(bi.Phase.CheckTypes, "checkTypeRelatedTo_DepthLimit", { sourceId: n.id, targetId: a.id, depth: _t, targetDepth: Bt });
        const nt = Ke(u || G, _.Excessive_stack_depth_comparing_types_0_and_1, ke(n), ke(a));
        x && (x.errors || (x.errors = [])).push(nt);
      } else if (M) {
        if (g) {
          const tn = g();
          tn && (Ide(tn, M), M = tn);
        }
        let nt;
        if (p && u && !yr && n.symbol) {
          const tn = Wi(n.symbol);
          if (tn.originatingImport && !lf(tn.originatingImport) && s_(ar(tn.target), a, l, void 0)) {
            const mr = Nr(tn.originatingImport, _.Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead);
            nt = Fn(nt, mr);
          }
        }
        const St = cg(Zn(u), u, M, nt);
        J && Xo(St, ...J), x && (x.errors || (x.errors = [])).push(St), (!x || !x.skipLogging) && Qo.add(St);
      }
      return u && x && x.skipLogging && yr === 0 && D.assert(!!x.errors, "missed opportunity to interact with error."), yr !== 0;
      function ln(nt) {
        M = nt.errorInfo, gn = nt.lastSkippedInfo, xn = nt.incompatibleStack, Kn = nt.overrideNextErrorInfo, J = nt.relatedInfo;
      }
      function Gn() {
        return {
          errorInfo: M,
          lastSkippedInfo: gn,
          incompatibleStack: xn == null ? void 0 : xn.slice(),
          overrideNextErrorInfo: Kn,
          relatedInfo: J == null ? void 0 : J.slice()
        };
      }
      function qn(nt, St, tn, Wn, mr) {
        Kn++, gn = void 0, (xn || (xn = [])).push([nt, St, tn, Wn, mr]);
      }
      function Zr() {
        const nt = xn || [];
        xn = void 0;
        const St = gn;
        if (gn = void 0, nt.length === 1) {
          ri(...nt[0]), St && Qa(void 0, ...St);
          return;
        }
        let tn = "";
        const Wn = [];
        for (; nt.length; ) {
          const [mr, ...Ln] = nt.pop();
          switch (mr.code) {
            case _.Types_of_property_0_are_incompatible.code: {
              tn.indexOf("new ") === 0 && (tn = `(${tn})`);
              const Sr = "" + Ln[0];
              tn.length === 0 ? tn = `${Sr}` : P_(Sr, ts(Y)) ? tn = `${tn}.${Sr}` : Sr[0] === "[" && Sr[Sr.length - 1] === "]" ? tn = `${tn}${Sr}` : tn = `${tn}[${Sr}]`;
              break;
            }
            case _.Call_signature_return_types_0_and_1_are_incompatible.code:
            case _.Construct_signature_return_types_0_and_1_are_incompatible.code:
            case _.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code:
            case _.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code: {
              if (tn.length === 0) {
                let Sr = mr;
                mr.code === _.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code ? Sr = _.Call_signature_return_types_0_and_1_are_incompatible : mr.code === _.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code && (Sr = _.Construct_signature_return_types_0_and_1_are_incompatible), Wn.unshift([Sr, Ln[0], Ln[1]]);
              } else {
                const Sr = mr.code === _.Construct_signature_return_types_0_and_1_are_incompatible.code || mr.code === _.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code ? "new " : "", Vr = mr.code === _.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code || mr.code === _.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code ? "" : "...";
                tn = `${Sr}${tn}(${Vr})`;
              }
              break;
            }
            case _.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target.code: {
              Wn.unshift([_.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target, Ln[0], Ln[1]]);
              break;
            }
            case _.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target.code: {
              Wn.unshift([_.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target, Ln[0], Ln[1], Ln[2]]);
              break;
            }
            default:
              return D.fail(`Unhandled Diagnostic: ${mr.code}`);
          }
        }
        tn ? ri(tn[tn.length - 1] === ")" ? _.The_types_returned_by_0_are_incompatible_between_these_types : _.The_types_of_0_are_incompatible_between_these_types, tn) : Wn.shift();
        for (const [mr, ...Ln] of Wn) {
          const Sr = mr.elidedInCompatabilityPyramid;
          mr.elidedInCompatabilityPyramid = !1, ri(mr, ...Ln), mr.elidedInCompatabilityPyramid = Sr;
        }
        St && Qa(void 0, ...St);
      }
      function ri(nt, St, tn, Wn, mr) {
        D.assert(!!u), xn && Zr(), !nt.elidedInCompatabilityPyramid && (M = Na(M, nt, St, tn, Wn, mr));
      }
      function ma(nt) {
        D.assert(!!M), J ? J.push(nt) : J = [nt];
      }
      function Qa(nt, St, tn) {
        xn && Zr();
        const [Wn, mr] = on(St, tn);
        let Ln = St, Sr = Wn;
        if (bD(St) && !Lie(tn) && (Ln = dv(St), D.assert(!xo(Ln, tn), "generalized source shouldn't be assignable"), Sr = Cr(Ln)), (tn.flags & 8388608 && !(St.flags & 8388608) ? tn.objectType.flags : tn.flags) & 262144 && tn !== Ds && tn !== hl) {
          const Ui = qu(tn);
          let Ca;
          Ui && (xo(Ln, Ui) || (Ca = xo(St, Ui))) ? ri(_._0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2, Ca ? Wn : Sr, mr, ke(Ui)) : (M = void 0, ri(_._0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1, mr, Sr));
        }
        if (nt)
          nt === _.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1 && qe && pLe(St, tn).length && (nt = _.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties);
        else if (l === wd)
          nt = _.Type_0_is_not_comparable_to_type_1;
        else if (Wn === mr)
          nt = _.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated;
        else if (qe && pLe(St, tn).length)
          nt = _.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties;
        else {
          if (St.flags & 128 && tn.flags & 1048576) {
            const Ui = cnt(St, tn);
            if (Ui) {
              ri(_.Type_0_is_not_assignable_to_type_1_Did_you_mean_2, Sr, mr, ke(Ui));
              return;
            }
          }
          nt = _.Type_0_is_not_assignable_to_type_1;
        }
        ri(nt, Sr, mr);
      }
      function Ec(nt, St) {
        const tn = Si(nt.symbol) ? ke(nt, nt.symbol.valueDeclaration) : ke(nt), Wn = Si(St.symbol) ? ke(St, St.symbol.valueDeclaration) : ke(St);
        (fl === nt && ue === St || Jd === nt && mt === St || Hl === nt && Re === St || mCe() === nt && q === St) && ri(_._0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible, Wn, tn);
      }
      function Wf(nt, St, tn) {
        return Fo(nt) ? nt.target.readonly && XU(St) ? (tn && ri(_.The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1, ke(nt), ke(St)), !1) : RE(St) : kL(nt) && XU(St) ? (tn && ri(_.The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1, ke(nt), ke(St)), !1) : Fo(St) ? Hf(nt) : !0;
      }
      function Ef(nt, St, tn) {
        return oa(nt, St, 3, tn);
      }
      function oa(nt, St, tn = 3, Wn = !1, mr, Ln = 0) {
        if (nt.flags & 524288 && St.flags & 134348796)
          return l === wd && !(St.flags & 131072) && vD(St, nt, l) || vD(nt, St, l, Wn ? ri : void 0) ? -1 : (Wn && Un(nt, St, nt, St, mr), 0);
        const Sr = PP(nt, !1);
        let Vr = PP(St, !0);
        if (Sr === Vr)
          return -1;
        if (l === Dd)
          return Sr.flags !== Vr.flags ? 0 : Sr.flags & 67358815 ? -1 : (sr(Sr, Vr), Qn(Sr, Vr, !1, 0, tn));
        if (Sr.flags & 262144 && LE(Sr) === Vr)
          return -1;
        if (Sr.flags & 470302716 && Vr.flags & 1048576) {
          const Ui = Vr.types, Ca = Ui.length === 2 && Ui[0].flags & 98304 ? Ui[1] : Ui.length === 3 && Ui[0].flags & 98304 && Ui[1].flags & 98304 ? Ui[2] : void 0;
          if (Ca && !(Ca.flags & 98304) && (Vr = PP(Ca, !0), Sr === Vr))
            return -1;
        }
        if (l === wd && !(Vr.flags & 131072) && vD(Vr, Sr, l) || vD(Sr, Vr, l, Wn ? ri : void 0))
          return -1;
        if (Sr.flags & 469499904 || Vr.flags & 469499904) {
          if (!(Ln & 2) && R0(Sr) && ti(Sr) & 8192 && Ga(Sr, Vr, Wn))
            return Wn && Qa(mr, Sr, St.aliasSymbol ? St : Vr), 0;
          const Ca = (l !== wd || dp(Sr)) && !(Ln & 2) && Sr.flags & 136970236 && Sr !== Ya && Vr.flags & 2621440 && hLe(Vr) && (ms(Sr).length > 0 || $V(Sr)), qa = !!(ti(Sr) & 2048);
          if (Ca && !oZe(Sr, Vr, qa)) {
            if (Wn) {
              const eo = ke(nt.aliasSymbol ? nt : Sr), Bo = ke(St.aliasSymbol ? St : Vr), Do = za(Sr, 0), ks = za(Sr, 1);
              Do.length > 0 && oa(ys(Do[0]), Vr, 1, !1) || ks.length > 0 && oa(ys(ks[0]), Vr, 1, !1) ? ri(_.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it, eo, Bo) : ri(_.Type_0_has_no_properties_in_common_with_type_1, eo, Bo);
            }
            return 0;
          }
          sr(Sr, Vr);
          const pi = Sr.flags & 1048576 && Sr.types.length < 4 && !(Vr.flags & 1048576) || Vr.flags & 1048576 && Vr.types.length < 4 && !(Sr.flags & 469499904) ? Zo(Sr, Vr, Wn, Ln) : Qn(Sr, Vr, Wn, Ln, tn);
          if (pi)
            return pi;
        }
        return Wn && Un(nt, St, Sr, Vr, mr), 0;
      }
      function Un(nt, St, tn, Wn, mr) {
        var Ln, Sr;
        const Vr = !!Oie(nt), Ui = !!Oie(St);
        tn = nt.aliasSymbol || Vr ? nt : tn, Wn = St.aliasSymbol || Ui ? St : Wn;
        let Ca = Kn > 0;
        if (Ca && Kn--, tn.flags & 524288 && Wn.flags & 524288) {
          const qa = M;
          Wf(tn, Wn, !0), M !== qa && (Ca = !!M);
        }
        if (tn.flags & 524288 && Wn.flags & 134348796)
          Ec(tn, Wn);
        else if (tn.symbol && tn.flags & 524288 && Ya === tn)
          ri(_.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);
        else if (ti(tn) & 2048 && Wn.flags & 2097152) {
          const qa = Wn.types, Za = zb(kf.IntrinsicAttributes, u), pi = zb(kf.IntrinsicClassAttributes, u);
          if (!rs(Za) && !rs(pi) && (jr(qa, Za) || jr(qa, pi)))
            return;
        } else
          M = Nre(M, St);
        if (!mr && Ca) {
          gn = [tn, Wn];
          return;
        }
        if (Qa(mr, tn, Wn), tn.flags & 262144 && ((Sr = (Ln = tn.symbol) == null ? void 0 : Ln.declarations) != null && Sr[0]) && !LE(tn)) {
          const qa = UU(tn);
          if (qa.constraint = Yi(Wn, Ub(tn, qa)), sD(qa)) {
            const Za = ke(Wn, tn.symbol.declarations[0]);
            ma(Nr(tn.symbol.declarations[0], _.This_type_parameter_might_need_an_extends_0_constraint, Za));
          }
        }
      }
      function sr(nt, St) {
        if (bi && nt.flags & 3145728 && St.flags & 3145728) {
          const tn = nt, Wn = St;
          if (tn.objectFlags & Wn.objectFlags & 32768)
            return;
          const mr = tn.types.length, Ln = Wn.types.length;
          mr * Ln > 1e6 && bi.instant(bi.Phase.CheckTypes, "traceUnionsOrIntersectionsTooLarge_DepthLimit", {
            sourceId: nt.id,
            sourceSize: mr,
            targetId: St.id,
            targetSize: Ln,
            pos: u == null ? void 0 : u.pos,
            end: u == null ? void 0 : u.end
          });
        }
      }
      function Zi(nt, St) {
        return Qr(Ru(nt, (Wn, mr) => {
          var Ln;
          mr = Ju(mr);
          const Sr = mr.flags & 3145728 ? Rre(mr, St) : Rb(mr, St), Vr = Sr && ar(Sr) || ((Ln = P2(mr, St)) == null ? void 0 : Ln.type) || He;
          return Fn(Wn, Vr);
        }, void 0) || rt);
      }
      function Ga(nt, St, tn) {
        var Wn;
        if (!e4(St) || !Te && ti(St) & 4096)
          return !1;
        const mr = !!(ti(nt) & 2048);
        if ((l === kd || l === wd) && (LD(Ya, St) || !mr && Xh(St)))
          return !1;
        let Ln = St, Sr;
        St.flags & 1048576 && (Ln = CDe(nt, St, oa) || ult(St), Sr = Ln.flags & 1048576 ? Ln.types : [Ln]);
        for (const Vr of ms(nt))
          if (na(Vr, nt.symbol) && !_Le(nt, Vr)) {
            if (!Aae(Ln, Vr.escapedName, mr)) {
              if (tn) {
                const Ui = _c(Ln, e4);
                if (!u)
                  return D.fail();
                if (N1(u) || Qu(u) || Qu(u.parent)) {
                  Vr.valueDeclaration && nm(Vr.valueDeclaration) && Zn(u) === Zn(Vr.valueDeclaration.name) && (u = Vr.valueDeclaration.name);
                  const Ca = S(Vr), qa = QIe(Ca, Ui), Za = qa ? S(qa) : void 0;
                  Za ? ri(_.Property_0_does_not_exist_on_type_1_Did_you_mean_2, Ca, ke(Ui), Za) : ri(_.Property_0_does_not_exist_on_type_1, Ca, ke(Ui));
                } else {
                  const Ca = ((Wn = nt.symbol) == null ? void 0 : Wn.declarations) && Yc(nt.symbol.declarations);
                  let qa;
                  if (Vr.valueDeclaration && nr(Vr.valueDeclaration, (Za) => Za === Ca) && Zn(Ca) === Zn(u)) {
                    const Za = Vr.valueDeclaration;
                    D.assertNode(Za, my), u = Za;
                    const pi = Za.name;
                    je(pi) && (qa = Nae(pi, Ui));
                  }
                  qa !== void 0 ? ri(_.Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2, S(Vr), ke(Ui), qa) : ri(_.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1, S(Vr), ke(Ui));
                }
              }
              return !0;
            }
            if (Sr && !oa(ar(Vr), Zi(Sr, Vr.escapedName), 3, tn))
              return tn && qn(_.Types_of_property_0_are_incompatible, S(Vr)), !0;
          }
        return !1;
      }
      function na(nt, St) {
        return nt.valueDeclaration && St.valueDeclaration && nt.valueDeclaration.parent === St.valueDeclaration;
      }
      function Zo(nt, St, tn, Wn) {
        if (nt.flags & 1048576)
          return l === wd ? Ku(nt, St, tn && !(nt.flags & 134348796), Wn) : Ee(nt, St, tn && !(nt.flags & 134348796), Wn);
        if (St.flags & 1048576)
          return gl(VP(nt), St, tn && !(nt.flags & 134348796) && !(St.flags & 134348796));
        if (St.flags & 2097152)
          return Ao(nt, St, tn, 2);
        if (l === wd && St.flags & 134348796) {
          const mr = _a(nt.types, (Ln) => Ln.flags & 465829888 ? qu(Ln) || he : Ln);
          if (mr !== nt.types) {
            if (nt = wo(mr), nt.flags & 131072)
              return 0;
            if (!(nt.flags & 2097152))
              return oa(nt, St, 1, !1) || oa(St, nt, 1, !1);
          }
        }
        return Ku(nt, St, !1, 1);
      }
      function Os(nt, St) {
        let tn = -1;
        const Wn = nt.types;
        for (const mr of Wn) {
          const Ln = gl(mr, St, !1);
          if (!Ln)
            return 0;
          tn &= Ln;
        }
        return tn;
      }
      function gl(nt, St, tn) {
        const Wn = St.types;
        if (St.flags & 1048576) {
          if (Mb(Wn, nt))
            return -1;
          const mr = WLe(St, nt);
          if (mr) {
            const Ln = oa(nt, mr, 2, !1);
            if (Ln)
              return Ln;
          }
        }
        for (const mr of Wn) {
          const Ln = oa(nt, mr, 2, !1);
          if (Ln)
            return Ln;
        }
        if (tn) {
          const mr = mLe(nt, St, oa);
          mr && oa(nt, mr, 2, !0);
        }
        return 0;
      }
      function Ao(nt, St, tn, Wn) {
        let mr = -1;
        const Ln = St.types;
        for (const Sr of Ln) {
          const Vr = oa(nt, Sr, 2, tn, void 0, Wn);
          if (!Vr)
            return 0;
          mr &= Vr;
        }
        return mr;
      }
      function Ku(nt, St, tn, Wn) {
        const mr = nt.types;
        if (nt.flags & 1048576 && Mb(mr, St))
          return -1;
        const Ln = mr.length;
        for (let Sr = 0; Sr < Ln; Sr++) {
          const Vr = oa(mr[Sr], St, 1, tn && Sr === Ln - 1, void 0, Wn);
          if (Vr)
            return Vr;
        }
        return 0;
      }
      function dt(nt, St) {
        return nt.flags & 1048576 && St.flags & 1048576 && !(nt.types[0].flags & 32768) && St.types[0].flags & 32768 ? NL(St, -32769) : St;
      }
      function Ee(nt, St, tn, Wn) {
        let mr = -1;
        const Ln = nt.types, Sr = dt(nt, St);
        for (let Vr = 0; Vr < Ln.length; Vr++) {
          const Ui = Ln[Vr];
          if (Sr.flags & 1048576 && Ln.length >= Sr.types.length && Ln.length % Sr.types.length === 0) {
            const qa = oa(Ui, Sr.types[Vr % Sr.types.length], 3, !1, void 0, Wn);
            if (qa) {
              mr &= qa;
              continue;
            }
          }
          const Ca = oa(Ui, St, 1, tn, void 0, Wn);
          if (!Ca)
            return 0;
          mr &= Ca;
        }
        return mr;
      }
      function er(nt = rt, St = rt, tn = rt, Wn, mr) {
        if (nt.length !== St.length && l === Dd)
          return 0;
        const Ln = nt.length <= St.length ? nt.length : St.length;
        let Sr = -1;
        for (let Vr = 0; Vr < Ln; Vr++) {
          const Ui = Vr < tn.length ? tn[Vr] : 1, Ca = Ui & 7;
          if (Ca !== 4) {
            const qa = nt[Vr], Za = St[Vr];
            let pi = -1;
            if (Ui & 8 ? pi = l === Dd ? oa(qa, Za, 3, !1) : gD(qa, Za) : Ca === 1 ? pi = oa(qa, Za, 3, Wn, void 0, mr) : Ca === 2 ? pi = oa(Za, qa, 3, Wn, void 0, mr) : Ca === 3 ? (pi = oa(Za, qa, 3, !1), pi || (pi = oa(qa, Za, 3, Wn, void 0, mr))) : (pi = oa(qa, Za, 3, Wn, void 0, mr), pi && (pi &= oa(Za, qa, 3, Wn, void 0, mr))), !pi)
              return 0;
            Sr &= pi;
          }
        }
        return Sr;
      }
      function Qn(nt, St, tn, Wn, mr) {
        var Ln, Sr, Vr;
        if (An)
          return 0;
        const Ui = Die(nt, St, Wn, l, !1), Ca = l.get(Ui);
        if (Ca !== void 0 && !(tn && Ca & 2 && !(Ca & 4))) {
          if (_i) {
            const Do = Ca & 24;
            Do & 8 && Yi(nt, wn), Do & 16 && Yi(nt, da);
          }
          return Ca & 1 ? -1 : 0;
        }
        if (!$)
          $ = [], ge = [], Ne = [];
        else {
          const Do = Ui.startsWith("*") ? Die(nt, St, Wn, l, !0) : void 0;
          for (let ks = 0; ks < De; ks++)
            if (Ui === $[ks] || Do && Do === $[ks])
              return 3;
          if (_t === 100 || Bt === 100)
            return An = !0, 0;
        }
        const qa = De;
        $[De] = Ui, De++;
        const Za = Mn;
        mr & 1 && (ge[_t] = nt, _t++, !(Mn & 1) && BP(nt, ge, _t) && (Mn |= 1)), mr & 2 && (Ne[Bt] = St, Bt++, !(Mn & 2) && BP(St, Ne, Bt) && (Mn |= 2));
        let pi, eo = 0;
        _i && (pi = _i, _i = (Do) => (eo |= Do ? 16 : 8, pi(Do)));
        let Bo;
        if (Mn === 3 ? ((Ln = bi) == null || Ln.instant(bi.Phase.CheckTypes, "recursiveTypeRelatedTo_DepthLimit", {
          sourceId: nt.id,
          sourceIdStack: ge.map((Do) => Do.id),
          targetId: St.id,
          targetIdStack: Ne.map((Do) => Do.id),
          depth: _t,
          targetDepth: Bt
        }), Bo = 3) : ((Sr = bi) == null || Sr.push(bi.Phase.CheckTypes, "structuredTypeRelatedTo", { sourceId: nt.id, targetId: St.id }), Bo = Tr(nt, St, tn, Wn), (Vr = bi) == null || Vr.pop()), _i && (_i = pi), mr & 1 && _t--, mr & 2 && Bt--, Mn = Za, Bo) {
          if (Bo === -1 || _t === 0 && Bt === 0) {
            if (Bo === -1 || Bo === 3)
              for (let Do = qa; Do < De; Do++)
                l.set($[Do], 1 | eo);
            De = qa;
          }
        } else
          l.set(Ui, (tn ? 4 : 0) | 2 | eo), De = qa;
        return Bo;
      }
      function Tr(nt, St, tn, Wn) {
        const mr = Gn();
        let Ln = wr(nt, St, tn, Wn, mr);
        if (l !== Dd) {
          if (!Ln && (nt.flags & 2097152 || nt.flags & 262144 && St.flags & 1048576)) {
            const Sr = GYe(nt.flags & 2097152 ? nt.types : [nt], !!(St.flags & 1048576));
            Sr && lh(Sr, (Vr) => Vr !== nt) && (Ln = oa(Sr, St, 1, !1, void 0, Wn));
          }
          Ln && !(Wn & 2) && St.flags & 2097152 && !Fb(St) && nt.flags & 2621440 ? (Ln &= $t(nt, St, tn, void 0, !1, 0), Ln && R0(nt) && ti(nt) & 8192 && (Ln &= cs(nt, St, !1, tn, 0))) : Ln && NU(St) && !RE(St) && nt.flags & 2097152 && Ju(nt).flags & 3670016 && !kt(nt.types, (Sr) => Sr === St || !!(ti(Sr) & 262144)) && (Ln &= $t(nt, St, tn, void 0, !0, Wn));
        }
        return Ln && ln(mr), Ln;
      }
      function wr(nt, St, tn, Wn, mr) {
        let Ln, Sr, Vr = !1, Ui = nt.flags;
        const Ca = St.flags;
        if (l === Dd) {
          if (Ui & 3145728) {
            let pi = Os(nt, St);
            return pi && (pi &= Os(St, nt)), pi;
          }
          if (Ui & 4194304)
            return oa(nt.type, St.type, 3, !1);
          if (Ui & 8388608 && (Ln = oa(nt.objectType, St.objectType, 3, !1)) && (Ln &= oa(nt.indexType, St.indexType, 3, !1)) || Ui & 16777216 && nt.root.isDistributive === St.root.isDistributive && (Ln = oa(nt.checkType, St.checkType, 3, !1)) && (Ln &= oa(nt.extendsType, St.extendsType, 3, !1)) && (Ln &= oa(C0(nt), C0(St), 3, !1)) && (Ln &= oa(L0(nt), L0(St), 3, !1)) || Ui & 33554432 && (Ln = oa(nt.baseType, St.baseType, 3, !1)) && (Ln &= oa(nt.constraint, St.constraint, 3, !1)))
            return Ln;
          if (!(Ui & 524288))
            return 0;
        } else if (Ui & 3145728 || Ca & 3145728) {
          if (Ln = Zo(nt, St, tn, Wn))
            return Ln;
          if (!(Ui & 465829888 || Ui & 524288 && Ca & 1048576 || Ui & 2097152 && Ca & 467402752))
            return 0;
        }
        if (Ui & 17301504 && nt.aliasSymbol && nt.aliasTypeArguments && nt.aliasSymbol === St.aliasSymbol && !(qU(nt) || qU(St))) {
          const pi = gLe(nt.aliasSymbol);
          if (pi === rt)
            return 1;
          const eo = Wi(nt.aliasSymbol).typeParameters, Bo = mm(eo), Do = av(nt.aliasTypeArguments, eo, Bo, fr(nt.aliasSymbol.valueDeclaration)), ks = av(St.aliasTypeArguments, eo, Bo, fr(nt.aliasSymbol.valueDeclaration)), fu = Za(Do, ks, pi, Wn);
          if (fu !== void 0)
            return fu;
        }
        if (xLe(nt) && !nt.target.readonly && (Ln = oa(hs(nt)[0], St, 1)) || xLe(St) && (St.target.readonly || XU(qu(nt) || nt)) && (Ln = oa(nt, hs(St)[0], 2)))
          return Ln;
        if (Ca & 262144) {
          if (ti(nt) & 32 && !nt.declaration.nameType && oa(gm(St), Pp(nt), 3) && !(pm(nt) & 4)) {
            const pi = Jh(nt), eo = Md(St, lp(nt));
            if (Ln = oa(pi, eo, 3, tn))
              return Ln;
          }
          if (l === wd && Ui & 262144) {
            let pi = Cu(nt);
            if (pi && sD(nt))
              for (; pi && Qh(pi, (eo) => !!(eo.flags & 262144)); ) {
                if (Ln = oa(pi, St, 1, !1))
                  return Ln;
                pi = Cu(pi);
              }
            return 0;
          }
        } else if (Ca & 4194304) {
          const pi = St.type;
          if (Ui & 4194304 && (Ln = oa(pi, nt.type, 3, !1)))
            return Ln;
          if (Fo(pi)) {
            if (Ln = oa(nt, xCe(pi), 2, tn))
              return Ln;
          } else {
            const eo = Cre(pi);
            if (eo) {
              if (oa(nt, gm(eo, St.stringsOnly), 2, tn) === -1)
                return -1;
            } else if (Vf(pi)) {
              const Bo = nv(pi), Do = Pp(pi);
              let ks;
              if (Bo && oD(pi)) {
                const fu = Ju(EL(pi)), pp = [];
                xre(fu, 8576, !1, (dh) => void pp.push(Yi(Bo, hD(pi.mapper, lp(pi), dh)))), ks = Qr([...pp, Bo]);
              } else
                ks = Bo || Do;
              if (oa(nt, ks, 2, tn) === -1)
                return -1;
            }
          }
        } else if (Ca & 8388608) {
          if (Ui & 8388608) {
            if ((Ln = oa(nt.objectType, St.objectType, 3, tn)) && (Ln &= oa(nt.indexType, St.indexType, 3, tn)), Ln)
              return Ln;
            tn && (Sr = M);
          }
          if (l === kd || l === wd) {
            const pi = St.objectType, eo = St.indexType, Bo = qu(pi) || pi, Do = qu(eo) || eo;
            if (!Fb(Bo) && !A0(Do)) {
              const ks = 4 | (Bo !== pi ? 2 : 0), fu = sv(Bo, Do, ks);
              if (fu) {
                if (tn && Sr && ln(mr), Ln = oa(nt, fu, 2, tn, void 0, Wn))
                  return Ln;
                tn && Sr && M && (M = qa([Sr]) <= qa([M]) ? Sr : M);
              }
            }
          }
          tn && (Sr = void 0);
        } else if (Vf(St) && l !== Dd) {
          const pi = !!St.declaration.nameType, eo = Jh(St), Bo = pm(St);
          if (!(Bo & 8)) {
            if (!pi && eo.flags & 8388608 && eo.objectType === nt && eo.indexType === lp(St))
              return -1;
            if (!Vf(nt)) {
              const Do = pi ? nv(St) : Pp(St), ks = gm(nt, void 0, !0), fu = Bo & 4, pp = fu ? yP(Do, ks) : void 0;
              if (fu ? !(pp.flags & 131072) : oa(Do, ks, 3)) {
                const dh = Jh(St), O0 = lp(St), wS = NL(dh, -98305);
                if (!pi && wS.flags & 8388608 && wS.indexType === O0) {
                  if (Ln = oa(nt, wS.objectType, 2, tn))
                    return Ln;
                } else {
                  const YL = pi ? pp || Do : pp ? wo([pp, O0]) : O0, Tm = Md(nt, YL);
                  if (Ln = oa(Tm, dh, 3, tn))
                    return Ln;
                }
              }
              Sr = M, ln(mr);
            }
          }
        } else if (Ca & 16777216) {
          if (BP(St, Ne, Bt, 10))
            return 3;
          const pi = St;
          if (!pi.root.inferTypeParameters && !vQe(pi.root)) {
            const eo = !xo(VU(pi.checkType), VU(pi.extendsType)), Bo = !eo && xo(DE(pi.checkType), DE(pi.extendsType));
            if ((Ln = eo ? -1 : oa(nt, C0(pi), 2, !1, void 0, Wn)) && (Ln &= Bo ? -1 : oa(nt, L0(pi), 2, !1, void 0, Wn), Ln))
              return Ln;
          }
        } else if (Ca & 134217728) {
          if (Ui & 134217728) {
            if (l === wd)
              return qZe(nt, St) ? 0 : -1;
            Yi(nt, da);
          }
          if ($ie(nt, St))
            return -1;
        } else if (St.flags & 268435456 && !(nt.flags & 268435456) && Yie(nt, St))
          return -1;
        if (Ui & 8650752) {
          if (!(Ui & 8388608 && Ca & 8388608)) {
            const pi = LE(nt) || he;
            if (Ln = oa(pi, St, 1, !1, void 0, Wn))
              return Ln;
            if (Ln = oa(Uf(pi, nt), St, 1, tn && pi !== he && !(Ca & Ui & 262144), void 0, Wn))
              return Ln;
            if (wre(nt)) {
              const eo = LE(nt.indexType);
              if (eo && (Ln = oa(Md(nt.objectType, eo), St, 1, tn)))
                return Ln;
            }
          }
        } else if (Ui & 4194304) {
          if (Ln = oa(ji, St, 1, tn))
            return Ln;
        } else if (Ui & 134217728 && !(Ca & 524288)) {
          if (!(Ca & 134217728)) {
            const pi = qu(nt);
            if (pi && pi !== nt && (Ln = oa(pi, St, 1, tn)))
              return Ln;
          }
        } else if (Ui & 268435456)
          if (Ca & 268435456) {
            if (nt.symbol !== St.symbol)
              return 0;
            if (Ln = oa(nt.type, St.type, 3, tn))
              return Ln;
          } else {
            const pi = qu(nt);
            if (pi && (Ln = oa(pi, St, 1, tn)))
              return Ln;
          }
        else if (Ui & 16777216) {
          if (BP(nt, ge, _t, 10))
            return 3;
          if (Ca & 16777216) {
            const eo = nt.root.inferTypeParameters;
            let Bo = nt.extendsType, Do;
            if (eo) {
              const ks = SD(eo, void 0, 0, Ef);
              $h(ks.inferences, St.extendsType, Bo, 1536), Bo = Yi(Bo, ks.mapper), Do = ks.mapper;
            }
            if (Kh(Bo, St.extendsType) && (oa(nt.checkType, St.checkType, 3) || oa(St.checkType, nt.checkType, 3)) && ((Ln = oa(Yi(C0(nt), Do), C0(St), 3, tn)) && (Ln &= oa(L0(nt), L0(St), 3, tn)), Ln))
              return Ln;
          } else {
            const eo = sD(nt) ? VAe(nt) : void 0;
            if (eo && (Ln = oa(eo, St, 1, tn)))
              return Ln;
          }
          const pi = Lre(nt);
          if (pi && (Ln = oa(pi, St, 1, tn)))
            return Ln;
        } else {
          if (l !== $m && l !== tp && RYe(St) && Xh(nt))
            return -1;
          if (Vf(St))
            return Vf(nt) && (Ln = Ra(nt, St, tn)) ? Ln : 0;
          const pi = !!(Ui & 134348796);
          if (l !== Dd)
            nt = Ju(nt), Ui = nt.flags;
          else if (Vf(nt))
            return 0;
          if (ti(nt) & 4 && ti(St) & 4 && nt.target === St.target && !Fo(nt) && !(qU(nt) || qU(St))) {
            if (YU(nt))
              return -1;
            const eo = kie(nt.target);
            if (eo === rt)
              return 1;
            const Bo = Za(hs(nt), hs(St), eo, Wn);
            if (Bo !== void 0)
              return Bo;
          } else {
            if (kL(St) ? RE(nt) : Hf(St) && Fo(nt) && !nt.target.readonly)
              return l !== Dd ? oa(Jg(nt, mt) || we, Jg(St, mt) || we, 3, tn) : 0;
            if ((l === $m || l === tp) && Xh(St) && ti(St) & 8192 && !Xh(nt))
              return 0;
          }
          if (Ui & 2621440 && Ca & 524288) {
            const eo = tn && M === mr.errorInfo && !pi;
            if (Ln = $t(nt, St, eo, void 0, !1, Wn), Ln && (Ln &= zn(nt, St, 0, eo, Wn), Ln && (Ln &= zn(nt, St, 1, eo, Wn), Ln && (Ln &= cs(nt, St, pi, eo, Wn)))), Vr && Ln)
              M = Sr || M || mr.errorInfo;
            else if (Ln)
              return Ln;
          }
          if (Ui & 2621440 && Ca & 1048576) {
            const eo = NL(St, 36175872);
            if (eo.flags & 1048576) {
              const Bo = Di(nt, eo);
              if (Bo)
                return Bo;
            }
          }
        }
        return 0;
        function qa(pi) {
          return pi ? Ru(pi, (eo, Bo) => eo + 1 + qa(Bo.next), 0) : 0;
        }
        function Za(pi, eo, Bo, Do) {
          if (Ln = er(pi, eo, Bo, tn, Do))
            return Ln;
          if (kt(Bo, (fu) => !!(fu & 24))) {
            Sr = void 0, ln(mr);
            return;
          }
          const ks = eo && sZe(eo, Bo);
          if (Vr = !ks, Bo !== rt && !ks) {
            if (Vr && !(tn && kt(Bo, (fu) => (fu & 7) === 0)))
              return 0;
            Sr = M, ln(mr);
          }
        }
      }
      function Ra(nt, St, tn) {
        if (l === wd || (l === Dd ? pm(nt) === pm(St) : Are(nt) <= Are(St))) {
          let mr;
          const Ln = Pp(St), Sr = Yi(Pp(nt), Are(nt) < 0 ? wn : da);
          if (mr = oa(Ln, Sr, 3, tn)) {
            const Vr = vd([lp(nt)], [lp(St)]);
            if (Yi(nv(nt), Vr) === Yi(nv(St), Vr))
              return mr & oa(Yi(Jh(nt), Vr), Jh(St), 3, tn);
          }
        }
        return 0;
      }
      function Di(nt, St) {
        var tn;
        const Wn = ms(nt), mr = HLe(Wn, St);
        if (!mr)
          return 0;
        let Ln = 1;
        for (const Za of mr)
          if (Ln *= Eet(E0(Za)), Ln > 25)
            return (tn = bi) == null || tn.instant(bi.Phase.CheckTypes, "typeRelatedToDiscriminatedType_DepthLimit", { sourceId: nt.id, targetId: St.id, numCombinations: Ln }), 0;
        const Sr = new Array(mr.length), Vr = /* @__PURE__ */ new Set();
        for (let Za = 0; Za < mr.length; Za++) {
          const pi = mr[Za], eo = E0(pi);
          Sr[Za] = eo.flags & 1048576 ? eo.types : [eo], Vr.add(pi.escapedName);
        }
        const Ui = Hse(Sr), Ca = [];
        for (const Za of Ui) {
          let pi = !1;
          e:
            for (const eo of St.types) {
              for (let Bo = 0; Bo < mr.length; Bo++) {
                const Do = mr[Bo], ks = uo(eo, Do.escapedName);
                if (!ks)
                  continue e;
                if (Do === ks)
                  continue;
                if (!Ft(nt, St, Do, ks, (pp) => Za[Bo], !1, 0, W || l === wd))
                  continue e;
              }
              d_(Ca, eo, F0), pi = !0;
            }
          if (!pi)
            return 0;
        }
        let qa = -1;
        for (const Za of Ca)
          if (qa &= $t(nt, Za, !1, Vr, !1, 0), qa && (qa &= zn(nt, Za, 0, !1, 0), qa && (qa &= zn(nt, Za, 1, !1, 0), qa && !(Fo(nt) && Fo(Za)) && (qa &= cs(nt, Za, !1, !1, 0)))), !qa)
            return qa;
        return qa;
      }
      function Lr(nt, St) {
        if (!St || nt.length === 0)
          return nt;
        let tn;
        for (let Wn = 0; Wn < nt.length; Wn++)
          St.has(nt[Wn].escapedName) ? tn || (tn = nt.slice(0, Wn)) : tn && tn.push(nt[Wn]);
        return tn || nt;
      }
      function bt(nt, St, tn, Wn, mr) {
        const Ln = W && !!(Ll(St) & 48), Sr = Io(E0(St), !1, Ln), Vr = tn(nt);
        return oa(Vr, Sr, 3, Wn, void 0, mr);
      }
      function Ft(nt, St, tn, Wn, mr, Ln, Sr, Vr) {
        const Ui = Qf(tn), Ca = Qf(Wn);
        if (Ui & 8 || Ca & 8) {
          if (tn.valueDeclaration !== Wn.valueDeclaration)
            return Ln && (Ui & 8 && Ca & 8 ? ri(_.Types_have_separate_declarations_of_a_private_property_0, S(Wn)) : ri(_.Property_0_is_private_in_type_1_but_not_in_type_2, S(Wn), ke(Ui & 8 ? nt : St), ke(Ui & 8 ? St : nt))), 0;
        } else if (Ca & 16) {
          if (!fZe(tn, Wn))
            return Ln && ri(_.Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2, S(Wn), ke(xS(tn) || nt), ke(xS(Wn) || St)), 0;
        } else if (Ui & 16)
          return Ln && ri(_.Property_0_is_protected_in_type_1_but_public_in_type_2, S(Wn), ke(nt), ke(St)), 0;
        if (l === tp && _p(tn) && !_p(Wn))
          return 0;
        const qa = bt(tn, Wn, mr, Ln, Sr);
        return qa ? !Vr && tn.flags & 16777216 && Wn.flags & 106500 && !(Wn.flags & 16777216) ? (Ln && ri(_.Property_0_is_optional_in_type_1_but_required_in_type_2, S(Wn), ke(nt), ke(St)), 0) : qa : (Ln && qn(_.Types_of_property_0_are_incompatible, S(Wn)), 0);
      }
      function en(nt, St, tn, Wn) {
        let mr = !1;
        if (tn.valueDeclaration && gu(tn.valueDeclaration) && Ni(tn.valueDeclaration.name) && nt.symbol && nt.symbol.flags & 32) {
          const Sr = tn.valueDeclaration.name.escapedText, Vr = MN(nt.symbol, Sr);
          if (Vr && uo(nt, Vr)) {
            const Ui = N.getDeclarationName(nt.symbol.valueDeclaration), Ca = N.getDeclarationName(St.symbol.valueDeclaration);
            ri(_.Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2, r_(Sr), r_(Ui.escapedText === "" ? T8 : Ui), r_(Ca.escapedText === "" ? T8 : Ca));
            return;
          }
        }
        const Ln = Ro(Jie(nt, St, Wn, !1));
        if ((!p || p.code !== _.Class_0_incorrectly_implements_interface_1.code && p.code !== _.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass.code) && (mr = !0), Ln.length === 1) {
          const Sr = S(tn, void 0, 0, 20);
          ri(_.Property_0_is_missing_in_type_1_but_required_in_type_2, Sr, ...on(nt, St)), Le(tn.declarations) && ma(Nr(tn.declarations[0], _._0_is_declared_here, Sr)), mr && M && Kn++;
        } else
          Wf(nt, St, !1) && (Ln.length > 5 ? ri(_.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more, ke(nt), ke(St), jt(Ln.slice(0, 4), (Sr) => S(Sr)).join(", "), Ln.length - 4) : ri(_.Type_0_is_missing_the_following_properties_from_type_1_Colon_2, ke(nt), ke(St), jt(Ln, (Sr) => S(Sr)).join(", ")), mr && M && Kn++);
      }
      function $t(nt, St, tn, Wn, mr, Ln) {
        if (l === Dd)
          return kn(nt, St, Wn);
        let Sr = -1;
        if (Fo(St)) {
          if (RE(nt)) {
            if (!St.target.readonly && (kL(nt) || Fo(nt) && nt.target.readonly))
              return 0;
            const Za = x0(nt), pi = x0(St), eo = Fo(nt) ? nt.target.combinedFlags & 4 : 4, Bo = St.target.combinedFlags & 4, Do = Fo(nt) ? nt.target.minLength : 0, ks = St.target.minLength;
            if (!eo && Za < ks)
              return tn && ri(_.Source_has_0_element_s_but_target_requires_1, Za, ks), 0;
            if (!Bo && pi < Do)
              return tn && ri(_.Source_has_0_element_s_but_target_allows_only_1, Do, pi), 0;
            if (!Bo && (eo || pi < Za))
              return tn && (Do < ks ? ri(_.Target_requires_0_element_s_but_source_may_have_fewer, ks) : ri(_.Target_allows_only_0_element_s_but_source_may_have_more, pi)), 0;
            const fu = hs(nt), pp = hs(St), dh = B$e(St.target, 11), O0 = LP(St.target, 11), wS = St.target.hasRestElement;
            let YL = !!Wn;
            for (let Tm = 0; Tm < Za; Tm++) {
              const tA = Fo(nt) ? nt.target.elementFlags[Tm] : 4, nA = Za - 1 - Tm, WE = wS && Tm >= dh ? pi - 1 - Math.min(nA, O0) : Tm, Fd = St.target.elementFlags[WE];
              if (Fd & 8 && !(tA & 8))
                return tn && ri(_.Source_provides_no_match_for_variadic_element_at_position_0_in_target, WE), 0;
              if (tA & 8 && !(Fd & 12))
                return tn && ri(_.Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target, Tm, WE), 0;
              if (Fd & 1 && !(tA & 1))
                return tn && ri(_.Source_provides_no_match_for_required_element_at_position_0_in_target, WE), 0;
              if (YL && ((tA & 12 || Fd & 12) && (YL = !1), YL && (Wn != null && Wn.has("" + Tm))))
                continue;
              const wt = NE(fu[Tm], !!(tA & Fd & 2)), xr = pp[WE], Ei = tA & 8 && Fd & 4 ? Iu(xr) : NE(xr, !!(Fd & 2)), si = oa(wt, Ei, 3, tn, void 0, Ln);
              if (!si)
                return tn && (pi > 1 || Za > 1) && (wS && Tm >= dh && nA >= O0 && dh !== Za - O0 - 1 ? qn(_.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target, dh, Za - O0 - 1, WE) : qn(_.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target, Tm, WE)), 0;
              Sr &= si;
            }
            return Sr;
          }
          if (St.target.combinedFlags & 12)
            return 0;
        }
        const Vr = (l === $m || l === tp) && !R0(nt) && !YU(nt) && !Fo(nt), Ui = Kie(nt, St, Vr, !1);
        if (Ui)
          return tn && sa(nt, St) && en(nt, St, Ui, Vr), 0;
        if (R0(St)) {
          for (const Za of Lr(ms(nt), Wn))
            if (!Rb(St, Za.escapedName) && !(ar(Za).flags & 32768))
              return tn && ri(_.Property_0_does_not_exist_on_type_1, S(Za), ke(St)), 0;
        }
        const Ca = ms(St), qa = Fo(nt) && Fo(St);
        for (const Za of Lr(Ca, Wn)) {
          const pi = Za.escapedName;
          if (!(Za.flags & 4194304) && (!qa || xh(pi) || pi === "length") && (!mr || Za.flags & 16777216)) {
            const eo = uo(nt, pi);
            if (eo && eo !== Za) {
              const Bo = Ft(nt, St, eo, Za, E0, tn, Ln, l === wd);
              if (!Bo)
                return 0;
              Sr &= Bo;
            }
          }
        }
        return Sr;
      }
      function kn(nt, St, tn) {
        if (!(nt.flags & 524288 && St.flags & 524288))
          return 0;
        const Wn = Lr(rv(nt), tn), mr = Lr(rv(St), tn);
        if (Wn.length !== mr.length)
          return 0;
        let Ln = -1;
        for (const Sr of Wn) {
          const Vr = Rb(St, Sr.escapedName);
          if (!Vr)
            return 0;
          const Ui = Rie(Sr, Vr, oa);
          if (!Ui)
            return 0;
          Ln &= Ui;
        }
        return Ln;
      }
      function zn(nt, St, tn, Wn, mr) {
        var Ln, Sr;
        if (l === Dd)
          return ei(nt, St, tn);
        if (St === La || nt === La)
          return -1;
        const Vr = nt.symbol && Up(nt.symbol.valueDeclaration), Ui = St.symbol && Up(St.symbol.valueDeclaration), Ca = za(nt, Vr && tn === 1 ? 0 : tn), qa = za(St, Ui && tn === 1 ? 0 : tn);
        if (tn === 1 && Ca.length && qa.length) {
          const Do = !!(Ca[0].flags & 4), ks = !!(qa[0].flags & 4);
          if (Do && !ks)
            return Wn && ri(_.Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type), 0;
          if (!bd(Ca[0], qa[0], Wn))
            return 0;
        }
        let Za = -1;
        const pi = tn === 1 ? yn : yi, eo = ti(nt), Bo = ti(St);
        if (eo & 64 && Bo & 64 && nt.symbol === St.symbol || eo & 4 && Bo & 4 && nt.target === St.target)
          for (let Do = 0; Do < qa.length; Do++) {
            const ks = ur(Ca[Do], qa[Do], !0, Wn, mr, pi(Ca[Do], qa[Do]));
            if (!ks)
              return 0;
            Za &= ks;
          }
        else if (Ca.length === 1 && qa.length === 1) {
          const Do = l === wd || !!Y.noStrictGenericChecks, ks = us(Ca), fu = us(qa);
          if (Za = ur(ks, fu, Do, Wn, mr, pi(ks, fu)), !Za && Wn && tn === 1 && eo & Bo && (((Ln = fu.declaration) == null ? void 0 : Ln.kind) === 173 || ((Sr = ks.declaration) == null ? void 0 : Sr.kind) === 173)) {
            const pp = (dh) => le(dh, void 0, 262144, tn);
            return ri(_.Type_0_is_not_assignable_to_type_1, pp(ks), pp(fu)), ri(_.Types_of_construct_signatures_are_incompatible), Za;
          }
        } else
          e:
            for (const Do of qa) {
              const ks = Gn();
              let fu = Wn;
              for (const pp of Ca) {
                const dh = ur(pp, Do, !0, fu, mr, pi(pp, Do));
                if (dh) {
                  Za &= dh, ln(ks);
                  continue e;
                }
                fu = !1;
              }
              return fu && ri(_.Type_0_provides_no_match_for_the_signature_1, ke(nt), le(Do, void 0, void 0, tn)), 0;
            }
        return Za;
      }
      function sa(nt, St) {
        const tn = TP(nt, 0), Wn = TP(nt, 1), mr = rv(nt);
        return (tn.length || Wn.length) && !mr.length ? !!(za(St, 0).length && tn.length || za(St, 1).length && Wn.length) : !0;
      }
      function yi(nt, St) {
        return nt.parameters.length === 0 && St.parameters.length === 0 ? (tn, Wn) => qn(_.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1, ke(tn), ke(Wn)) : (tn, Wn) => qn(_.Call_signature_return_types_0_and_1_are_incompatible, ke(tn), ke(Wn));
      }
      function yn(nt, St) {
        return nt.parameters.length === 0 && St.parameters.length === 0 ? (tn, Wn) => qn(_.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1, ke(tn), ke(Wn)) : (tn, Wn) => qn(_.Construct_signature_return_types_0_and_1_are_incompatible, ke(tn), ke(Wn));
      }
      function ur(nt, St, tn, Wn, mr, Ln) {
        const Sr = l === $m ? 16 : l === tp ? 24 : 0;
        return xie(tn ? dD(nt) : nt, tn ? dD(St) : St, Sr, Wn, ri, Ln, Vr, da);
        function Vr(Ui, Ca, qa) {
          return oa(Ui, Ca, 3, qa, void 0, mr);
        }
      }
      function ei(nt, St, tn) {
        const Wn = za(nt, tn), mr = za(St, tn);
        if (Wn.length !== mr.length)
          return 0;
        let Ln = -1;
        for (let Sr = 0; Sr < Wn.length; Sr++) {
          const Vr = GP(Wn[Sr], mr[Sr], !1, !1, !1, oa);
          if (!Vr)
            return 0;
          Ln &= Vr;
        }
        return Ln;
      }
      function vr(nt, St, tn, Wn) {
        let mr = -1;
        const Ln = St.keyType, Sr = nt.flags & 2097152 ? bP(nt) : rv(nt);
        for (const Vr of Sr)
          if (!_Le(nt, Vr) && O2(AL(Vr, 8576), Ln)) {
            const Ui = E0(Vr), Ca = qe || Ui.flags & 32768 || Ln === mt || !(Vr.flags & 16777216) ? Ui : l_(Ui, 524288), qa = oa(Ca, St.type, 3, tn, void 0, Wn);
            if (!qa)
              return tn && ri(_.Property_0_is_incompatible_with_index_signature, S(Vr)), 0;
            mr &= qa;
          }
        for (const Vr of Lu(nt))
          if (O2(Vr.keyType, Ln)) {
            const Ui = Sa(Vr, St, tn, Wn);
            if (!Ui)
              return 0;
            mr &= Ui;
          }
        return mr;
      }
      function Sa(nt, St, tn, Wn) {
        const mr = oa(nt.type, St.type, 3, tn, void 0, Wn);
        return !mr && tn && (nt.keyType === St.keyType ? ri(_._0_index_signatures_are_incompatible, ke(nt.keyType)) : ri(_._0_and_1_index_signatures_are_incompatible, ke(nt.keyType), ke(St.keyType))), mr;
      }
      function cs(nt, St, tn, Wn, mr) {
        if (l === Dd)
          return Vs(nt, St);
        const Ln = Lu(St), Sr = kt(Ln, (Ui) => Ui.keyType === ue);
        let Vr = -1;
        for (const Ui of Ln) {
          const Ca = !tn && Sr && Ui.type.flags & 1 ? -1 : Vf(nt) && Sr ? oa(Jh(nt), Ui.type, 3, Wn) : Gs(nt, Ui, Wn, mr);
          if (!Ca)
            return 0;
          Vr &= Ca;
        }
        return Vr;
      }
      function Gs(nt, St, tn, Wn) {
        const mr = SP(nt, St.keyType);
        return mr ? Sa(mr, St, tn, Wn) : !(Wn & 1) && (l !== tp || ti(nt) & 8192) && eV(nt) ? vr(nt, St, tn, Wn) : (tn && ri(_.Index_signature_for_type_0_is_missing_in_type_1, ke(St.keyType), ke(nt)), 0);
      }
      function Vs(nt, St) {
        const tn = Lu(nt), Wn = Lu(St);
        if (tn.length !== Wn.length)
          return 0;
        for (const mr of Wn) {
          const Ln = sh(nt, mr.keyType);
          if (!(Ln && oa(Ln.type, mr.type, 3) && Ln.isReadonly === mr.isReadonly))
            return 0;
        }
        return -1;
      }
      function bd(nt, St, tn) {
        if (!nt.declaration || !St.declaration)
          return !0;
        const Wn = cx(nt.declaration, 24), mr = cx(St.declaration, 24);
        return mr === 8 || mr === 16 && Wn !== 8 || mr !== 16 && !Wn ? !0 : (tn && ri(_.Cannot_assign_a_0_constructor_type_to_a_1_constructor_type, yf(Wn), yf(mr)), !1);
      }
    }
    function Lie(n) {
      if (n.flags & 16)
        return !1;
      if (n.flags & 3145728)
        return !!ze(n.types, Lie);
      if (n.flags & 465829888) {
        const a = LE(n);
        if (a && a !== n)
          return Lie(a);
      }
      return dp(n) || !!(n.flags & 134217728) || !!(n.flags & 268435456);
    }
    function pLe(n, a) {
      return Fo(n) && Fo(a) ? rt : ms(a).filter((l) => zU(fc(n, l.escapedName), ar(l)));
    }
    function zU(n, a) {
      return !!n && !!a && pl(n, 32768) && !!TD(a);
    }
    function aZe(n) {
      return ms(n).filter((a) => TD(ar(a)));
    }
    function mLe(n, a, l = Tie) {
      return CDe(n, a, l, !0) || olt(n, a) || slt(n, a) || llt(n, a) || clt(n, a);
    }
    function Iie(n, a, l, u, p) {
      const g = n.types.map((M) => {
      });
      for (const [M, J] of a) {
        const $ = Dre(n, J);
        if (p && $ && Ll($) & 16)
          continue;
        let ge = 0;
        for (const Ne of n.types) {
          const De = fc(Ne, J);
          De && l(M(), De) ? g[ge] = g[ge] === void 0 ? !0 : g[ge] : g[ge] = !1, ge++;
        }
      }
      const x = g.indexOf(!0);
      if (x === -1)
        return u;
      let R = g.indexOf(!0, x + 1);
      for (; R !== -1; ) {
        if (!Kh(n.types[x], n.types[R]))
          return u;
        R = g.indexOf(!0, R + 1);
      }
      return n.types[x];
    }
    function hLe(n) {
      if (n.flags & 524288) {
        const a = cp(n);
        return a.callSignatures.length === 0 && a.constructSignatures.length === 0 && a.indexInfos.length === 0 && a.properties.length > 0 && Yn(a.properties, (l) => !!(l.flags & 16777216));
      }
      return n.flags & 2097152 ? Yn(n.types, hLe) : !1;
    }
    function oZe(n, a, l) {
      for (const u of ms(n))
        if (Aae(a, u.escapedName, l))
          return !0;
      return !1;
    }
    function kie(n) {
      return n === Es || n === ds || n.objectFlags & 8 ? X : yLe(n.symbol, n.typeParameters);
    }
    function gLe(n) {
      return yLe(n, Wi(n).typeParameters);
    }
    function yLe(n, a = rt) {
      var l, u;
      const p = Wi(n);
      if (!p.variances) {
        (l = bi) == null || l.push(bi.Phase.CheckTypes, "getVariancesWorker", { arity: a.length, id: ku(Us(n)) }), p.variances = rt;
        const g = [];
        for (const x of a) {
          const R = wie(x);
          let M = R & 65536 ? R & 32768 ? 0 : 1 : R & 32768 ? 2 : void 0;
          if (M === void 0) {
            let J = !1, $ = !1;
            const ge = _i;
            _i = (_t) => _t ? $ = !0 : J = !0;
            const Ne = MP(n, x, qd), De = MP(n, x, oc);
            M = (xo(De, Ne) ? 1 : 0) | (xo(Ne, De) ? 2 : 0), M === 3 && xo(MP(n, x, Jc), Ne) && (M = 4), _i = ge, (J || $) && (J && (M |= 8), $ && (M |= 16));
          }
          g.push(M);
        }
        p.variances = g, (u = bi) == null || u.pop({ variances: g.map(D.formatVariance) });
      }
      return p.variances;
    }
    function MP(n, a, l) {
      const u = Ub(a, l), p = Us(n);
      if (rs(p))
        return p;
      const g = n.flags & 524288 ? G2(n, $g(Wi(n).typeParameters, u)) : Kg(p, $g(p.typeParameters, u));
      return Rn.add(ku(g)), g;
    }
    function qU(n) {
      return Rn.has(ku(n));
    }
    function wie(n) {
      var a;
      return Ru((a = n.symbol) == null ? void 0 : a.declarations, (l, u) => l | Mu(u), 0) & 100352;
    }
    function sZe(n, a) {
      for (let l = 0; l < a.length; l++)
        if ((a[l] & 7) === 1 && n[l].flags & 16384)
          return !0;
      return !1;
    }
    function lZe(n) {
      return n.flags & 262144 && !Cu(n);
    }
    function cZe(n) {
      return !!(ti(n) & 4) && !n.node;
    }
    function JU(n) {
      return cZe(n) && kt(hs(n), (a) => !!(a.flags & 262144) || JU(a));
    }
    function uZe(n, a, l, u) {
      const p = [];
      let g = "";
      const x = M(n, 0), R = M(a, 0);
      return `${g}${x},${R}${l}`;
      function M(J, $ = 0) {
        let ge = "" + J.target.id;
        for (const Ne of hs(J)) {
          if (Ne.flags & 262144) {
            if (u || lZe(Ne)) {
              let De = p.indexOf(Ne);
              De < 0 && (De = p.length, p.push(Ne)), ge += "=" + De;
              continue;
            }
            g = "*";
          } else if ($ < 4 && JU(Ne)) {
            ge += "<" + M(Ne, $ + 1) + ">";
            continue;
          }
          ge += "-" + Ne.id;
        }
        return ge;
      }
    }
    function Die(n, a, l, u, p) {
      if (u === Dd && n.id > a.id) {
        const x = n;
        n = a, a = x;
      }
      const g = l ? ":" + l : "";
      return JU(n) && JU(a) ? uZe(n, a, g, p) : `${n.id},${a.id}${g}`;
    }
    function FP(n, a) {
      if (Ll(n) & 6) {
        for (const l of n.links.containingType.types) {
          const u = uo(l, n.escapedName), p = u && FP(u, a);
          if (p)
            return p;
        }
        return;
      }
      return a(n);
    }
    function xS(n) {
      return n.parent && n.parent.flags & 32 ? Us(gd(n)) : void 0;
    }
    function KU(n) {
      const a = xS(n), l = a && Mo(a)[0];
      return l && fc(l, n.escapedName);
    }
    function dZe(n, a) {
      return FP(n, (l) => {
        const u = xS(l);
        return u ? AE(u, a) : !1;
      });
    }
    function fZe(n, a) {
      return !FP(a, (l) => Qf(l) & 16 ? !dZe(n, xS(l)) : !1);
    }
    function vLe(n, a, l) {
      return FP(a, (u) => Qf(u, l) & 16 ? !AE(n, xS(u)) : !1) ? void 0 : n;
    }
    function BP(n, a, l, u = 3) {
      if (l >= u) {
        if (n.flags & 2097152)
          return kt(n.types, (R) => BP(R, a, l, u));
        const p = IL(n);
        let g = 0, x = 0;
        for (let R = 0; R < l; R++) {
          const M = a[R];
          if (M.flags & 2097152 ? kt(M.types, (J) => IL(J) === p) : IL(M) === p) {
            if (M.id >= x && (g++, g >= u))
              return !0;
            x = M.id;
          }
        }
      }
      return !1;
    }
    function IL(n) {
      if (n.flags & 524288 && !Qie(n)) {
        if (ti(n) && n.node)
          return n.node;
        if (n.symbol && !(ti(n) & 16 && n.symbol.flags & 32))
          return n.symbol;
        if (Fo(n))
          return n.target;
      }
      if (n.flags & 262144)
        return n.symbol;
      if (n.flags & 8388608) {
        do
          n = n.objectType;
        while (n.flags & 8388608);
        return n;
      }
      return n.flags & 16777216 ? n.root : n;
    }
    function _Ze(n, a) {
      return Rie(n, a, gD) !== 0;
    }
    function Rie(n, a, l) {
      if (n === a)
        return -1;
      const u = Qf(n) & 24, p = Qf(a) & 24;
      if (u !== p)
        return 0;
      if (u) {
        if (Z2(n) !== Z2(a))
          return 0;
      } else if ((n.flags & 16777216) !== (a.flags & 16777216))
        return 0;
      return _p(n) !== _p(a) ? 0 : l(ar(n), ar(a));
    }
    function pZe(n, a, l) {
      const u = tf(n), p = tf(a), g = bm(n), x = bm(a), R = Em(n), M = Em(a);
      return !!(u === p && g === x && R === M || l && g <= x);
    }
    function GP(n, a, l, u, p, g) {
      if (n === a)
        return -1;
      if (!pZe(n, a, l) || Le(n.typeParameters) !== Le(a.typeParameters))
        return 0;
      if (a.typeParameters) {
        const M = vd(n.typeParameters, a.typeParameters);
        for (let J = 0; J < a.typeParameters.length; J++) {
          const $ = n.typeParameters[J], ge = a.typeParameters[J];
          if (!($ === ge || g(Yi(SL($), M) || he, SL(ge) || he) && g(Yi(IE($), M) || he, IE(ge) || he)))
            return 0;
        }
        n = W2(n, M, !0);
      }
      let x = -1;
      if (!u) {
        const M = Ob(n);
        if (M) {
          const J = Ob(a);
          if (J) {
            const $ = g(M, J);
            if (!$)
              return 0;
            x &= $;
          }
        }
      }
      const R = tf(a);
      for (let M = 0; M < R; M++) {
        const J = fp(n, M), $ = fp(a, M), ge = g($, J);
        if (!ge)
          return 0;
        x &= ge;
      }
      if (!p) {
        const M = a_(n), J = a_(a);
        x &= M || J ? mZe(M, J, g) : g(ys(n), ys(a));
      }
      return x;
    }
    function mZe(n, a, l) {
      return n && a && aie(n, a) ? n.type === a.type ? -1 : n.type && a.type ? l(n.type, a.type) : 0 : 0;
    }
    function hZe(n) {
      let a;
      for (const l of n)
        if (!(l.flags & 131072)) {
          const u = dv(l);
          if (a ?? (a = u), u === l || u !== a)
            return !1;
        }
      return !0;
    }
    function bLe(n) {
      return Ru(n, (a, l) => a | (l.flags & 1048576 ? bLe(l.types) : l.flags), 0);
    }
    function gZe(n) {
      if (n.length === 1)
        return n[0];
      const a = W ? _a(n, (u) => _c(u, (p) => !(p.flags & 98304))) : n, l = hZe(a) ? Qr(a) : Ru(a, (u, p) => cv(u, p) ? p : u);
      return a === n ? l : QU(l, bLe(n) & 98304);
    }
    function yZe(n) {
      return Ru(n, (a, l) => cv(l, a) ? l : a);
    }
    function Hf(n) {
      return !!(ti(n) & 4) && (n.target === Es || n.target === ds);
    }
    function kL(n) {
      return !!(ti(n) & 4) && n.target === ds;
    }
    function RE(n) {
      return Hf(n) || Fo(n);
    }
    function XU(n) {
      return Hf(n) && !kL(n) || Fo(n) && !n.target.readonly;
    }
    function Nie(n) {
      return Hf(n) ? hs(n)[0] : void 0;
    }
    function w0(n) {
      return Hf(n) || !(n.flags & 98304) && xo(n, Xi);
    }
    function Oie(n) {
      if (!(ti(n) & 4) || !(ti(n.target) & 3))
        return;
      if (ti(n) & 33554432)
        return ti(n) & 67108864 ? n.cachedEquivalentBaseType : void 0;
      n.objectFlags |= 33554432;
      const a = n.target;
      if (ti(a) & 1) {
        const p = Dn(a);
        if (p && p.expression.kind !== 79 && p.expression.kind !== 208)
          return;
      }
      const l = Mo(a);
      if (l.length !== 1 || tv(n.symbol).size)
        return;
      let u = Le(a.typeParameters) ? Yi(l[0], vd(a.typeParameters, hs(n).slice(0, a.typeParameters.length))) : l[0];
      return Le(hs(n)) > Le(a.typeParameters) && (u = Uf(u, qo(hs(n)))), n.objectFlags |= 67108864, n.cachedEquivalentBaseType = u;
    }
    function ELe(n) {
      return W ? n === _n : n === Ze;
    }
    function YU(n) {
      const a = Nie(n);
      return !!a && ELe(a);
    }
    function wL(n) {
      return Fo(n) || !!uo(n, "0");
    }
    function $U(n) {
      return w0(n) || wL(n);
    }
    function vZe(n, a) {
      const l = fc(n, "" + a);
      if (l)
        return l;
      if (lh(n, Fo))
        return $s(n, (u) => {
          const p = u, g = UP(p);
          return g ? Y.noUncheckedIndexedAccess && a >= p.target.fixedLength + LP(p.target, 3) ? Qr([g, He]) : g : He;
        });
    }
    function bZe(n) {
      return !(n.flags & 240544);
    }
    function dp(n) {
      return !!(n.flags & 109472);
    }
    function TLe(n) {
      const a = iv(n);
      return a.flags & 2097152 ? kt(a.types, dp) : dp(a);
    }
    function EZe(n) {
      return n.flags & 2097152 && nn(n.types, dp) || n;
    }
    function bD(n) {
      return n.flags & 16 ? !0 : n.flags & 1048576 ? n.flags & 1024 ? !0 : Yn(n.types, dp) : dp(n);
    }
    function dv(n) {
      return n.flags & 1056 ? rD(n) : n.flags & 402653312 ? ue : n.flags & 256 ? mt : n.flags & 2048 ? zt : n.flags & 512 ? Re : n.flags & 1048576 ? TZe(n) : n;
    }
    function TZe(n) {
      var a;
      const l = `B${ku(n)}`;
      return (a = mb(l)) != null ? a : kg(l, $s(n, dv));
    }
    function Pie(n) {
      return n.flags & 402653312 ? ue : n.flags & 288 ? mt : n.flags & 2048 ? zt : n.flags & 512 ? Re : n.flags & 1048576 ? $s(n, Pie) : n;
    }
    function jb(n) {
      return n.flags & 1056 && Gb(n) ? rD(n) : n.flags & 128 && Gb(n) ? ue : n.flags & 256 && Gb(n) ? mt : n.flags & 2048 && Gb(n) ? zt : n.flags & 512 && Gb(n) ? Re : n.flags & 1048576 ? $s(n, jb) : n;
    }
    function SLe(n) {
      return n.flags & 8192 ? q : n.flags & 1048576 ? $s(n, SLe) : n;
    }
    function Mie(n, a) {
      return PV(n, a) || (n = SLe(jb(n))), yd(n);
    }
    function SZe(n, a, l) {
      if (n && dp(n)) {
        const u = a ? l ? VD(a) : a : void 0;
        n = Mie(n, u);
      }
      return n;
    }
    function Fie(n, a, l, u) {
      if (n && dp(n)) {
        const p = a ? qb(l, a, u) : void 0;
        n = Mie(n, p);
      }
      return n;
    }
    function Fo(n) {
      return !!(ti(n) & 4 && n.target.objectFlags & 8);
    }
    function z2(n) {
      return Fo(n) && !!(n.target.combinedFlags & 8);
    }
    function xLe(n) {
      return z2(n) && n.target.elementFlags.length === 1;
    }
    function UP(n) {
      return DL(n, n.target.fixedLength);
    }
    function xZe(n) {
      const a = UP(n);
      return a && Iu(a);
    }
    function DL(n, a, l = 0, u = !1, p = !1) {
      const g = x0(n) - l;
      if (a < g) {
        const x = hs(n), R = [];
        for (let M = a; M < g; M++) {
          const J = x[M];
          R.push(n.target.elementFlags[M] & 8 ? Md(J, mt) : J);
        }
        return u ? wo(R) : Qr(R, p ? 0 : 1);
      }
    }
    function AZe(n, a) {
      return x0(n) === x0(a) && Yn(n.target.elementFlags, (l, u) => (l & 12) === (a.target.elementFlags[u] & 12));
    }
    function ALe({ value: n }) {
      return n.base10Value === "0";
    }
    function CLe(n) {
      return _c(n, (a) => !!(wu(a) & 4194304));
    }
    function CZe(n) {
      return $s(n, LZe);
    }
    function LZe(n) {
      return n.flags & 4 ? u2 : n.flags & 8 ? rS : n.flags & 64 ? d2 : n === K || n === it || n.flags & 114691 || n.flags & 128 && n.value === "" || n.flags & 256 && n.value === 0 || n.flags & 2048 && ALe(n) ? n : gt;
    }
    function QU(n, a) {
      const l = a & ~n.flags & 98304;
      return l === 0 ? n : Qr(l === 32768 ? [n, He] : l === 65536 ? [n, Sn] : [n, He, Sn]);
    }
    function Qg(n, a = !1) {
      D.assert(W);
      const l = a ? Ut : He;
      return n === l || n.flags & 1048576 && n.types[0] === l ? n : Qr([n, l]);
    }
    function IZe(n) {
      return Lo || (Lo = fD("NonNullable", 524288, void 0) || an), Lo !== an ? G2(Lo, [n]) : wo([n, pa]);
    }
    function Zg(n) {
      return W ? FE(n, 2097152) : n;
    }
    function LLe(n) {
      return W ? Qr([n, cn]) : n;
    }
    function Bie(n) {
      return W ? sV(n, cn) : n;
    }
    function ZU(n, a, l) {
      return l ? AI(a) ? Qg(n) : LLe(n) : n;
    }
    function ED(n, a) {
      return NM(a) ? Zg(n) : yu(a) ? Bie(n) : n;
    }
    function NE(n, a) {
      return qe && a ? sV(n, Xe) : n;
    }
    function TD(n) {
      return n === Xe || !!(n.flags & 1048576) && n.types[0] === Xe;
    }
    function Gie(n) {
      return qe ? sV(n, Xe) : l_(n, 524288);
    }
    function kZe(n, a) {
      return (n.flags & 524) !== 0 && (a.flags & 28) !== 0;
    }
    function eV(n) {
      const a = ti(n);
      return n.flags & 2097152 ? Yn(n.types, eV) : !!(n.symbol && n.symbol.flags & 7040 && !(n.symbol.flags & 32) && !$V(n)) || !!(a & 4194304) || !!(a & 1024 && eV(n.source));
    }
    function OE(n, a) {
      const l = ns(n.flags, n.escapedName, Ll(n) & 8);
      l.declarations = n.declarations, l.parent = n.parent, l.links.type = a, l.links.target = n, n.valueDeclaration && (l.valueDeclaration = n.valueDeclaration);
      const u = Wi(n).nameType;
      return u && (l.links.nameType = u), l;
    }
    function wZe(n, a) {
      const l = lo();
      for (const u of rv(n)) {
        const p = ar(u), g = a(p);
        l.set(u.escapedName, g === p ? u : OE(u, g));
      }
      return l;
    }
    function VP(n) {
      if (!(R0(n) && ti(n) & 8192))
        return n;
      const a = n.regularType;
      if (a)
        return a;
      const l = n, u = wZe(n, VP), p = Ns(l.symbol, u, l.callSignatures, l.constructSignatures, l.indexInfos);
      return p.flags = l.flags, p.objectFlags |= l.objectFlags & -8193, n.regularType = p, p;
    }
    function ILe(n, a, l) {
      return { parent: n, propertyName: a, siblings: l, resolvedProperties: void 0 };
    }
    function kLe(n) {
      if (!n.siblings) {
        const a = [];
        for (const l of kLe(n.parent))
          if (R0(l)) {
            const u = Rb(l, n.propertyName);
            u && BE(ar(u), (p) => {
              a.push(p);
            });
          }
        n.siblings = a;
      }
      return n.siblings;
    }
    function DZe(n) {
      if (!n.resolvedProperties) {
        const a = /* @__PURE__ */ new Map();
        for (const l of kLe(n))
          if (R0(l) && !(ti(l) & 2097152))
            for (const u of ms(l))
              a.set(u.escapedName, u);
        n.resolvedProperties = Ro(a.values());
      }
      return n.resolvedProperties;
    }
    function RZe(n, a) {
      if (!(n.flags & 4))
        return n;
      const l = ar(n), u = a && ILe(a, n.escapedName, void 0), p = Uie(l, u);
      return p === l ? n : OE(n, p);
    }
    function NZe(n) {
      const a = hi.get(n.escapedName);
      if (a)
        return a;
      const l = OE(n, Ut);
      return l.flags |= 16777216, hi.set(n.escapedName, l), l;
    }
    function OZe(n, a) {
      const l = lo();
      for (const p of rv(n))
        l.set(p.escapedName, RZe(p, a));
      if (a)
        for (const p of DZe(a))
          l.has(p.escapedName) || l.set(p.escapedName, NZe(p));
      const u = Ns(n.symbol, l, rt, rt, _a(Lu(n), (p) => hm(p.keyType, ef(p.type), p.isReadonly)));
      return u.objectFlags |= ti(n) & 266240, u;
    }
    function ef(n) {
      return Uie(n, void 0);
    }
    function Uie(n, a) {
      if (ti(n) & 196608) {
        if (a === void 0 && n.widened)
          return n.widened;
        let l;
        if (n.flags & 98305)
          l = we;
        else if (R0(n))
          l = OZe(n, a);
        else if (n.flags & 1048576) {
          const u = a || ILe(void 0, void 0, n.types), p = _a(n.types, (g) => g.flags & 98304 ? g : Uie(g, u));
          l = Qr(p, kt(p, Xh) ? 2 : 1);
        } else
          n.flags & 2097152 ? l = wo(_a(n.types, ef)) : RE(n) && (l = Kg(n.target, _a(hs(n), ef)));
        return l && a === void 0 && (n.widened = l), l || n;
      }
      return n;
    }
    function tV(n) {
      let a = !1;
      if (ti(n) & 65536) {
        if (n.flags & 1048576)
          if (kt(n.types, Xh))
            a = !0;
          else
            for (const l of n.types)
              tV(l) && (a = !0);
        if (RE(n))
          for (const l of hs(n))
            tV(l) && (a = !0);
        if (R0(n))
          for (const l of rv(n)) {
            const u = ar(l);
            ti(u) & 65536 && (tV(u) || Ke(l.valueDeclaration, _.Object_literal_s_property_0_implicitly_has_an_1_type, S(l), ke(ef(u))), a = !0);
          }
      }
      return a;
    }
    function D0(n, a, l) {
      const u = ke(ef(a));
      if (fr(n) && !cO(Zn(n), Y))
        return;
      let p;
      switch (n.kind) {
        case 223:
        case 169:
        case 168:
          p = Te ? _.Member_0_implicitly_has_an_1_type : _.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;
          break;
        case 166:
          const g = n;
          if (je(g.name)) {
            const x = U0(g.name);
            if ((hC(g.parent) || Ah(g.parent) || Ch(g.parent)) && g.parent.parameters.indexOf(g) > -1 && (_l(g, g.name.escapedText, 788968, void 0, g.name.escapedText, !0) || x && rq(x))) {
              const R = "arg" + g.parent.parameters.indexOf(g), M = ws(g.name) + (g.dotDotDotToken ? "[]" : "");
              om(Te, n, _.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1, R, M);
              return;
            }
          }
          p = n.dotDotDotToken ? Te ? _.Rest_parameter_0_implicitly_has_an_any_type : _.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage : Te ? _.Parameter_0_implicitly_has_an_1_type : _.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;
          break;
        case 205:
          if (p = _.Binding_element_0_implicitly_has_an_1_type, !Te)
            return;
          break;
        case 320:
          Ke(n, _.Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, u);
          return;
        case 326:
          Te && Gk(n.parent) && Ke(n.parent.tagName, _.This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation, u);
          return;
        case 259:
        case 171:
        case 170:
        case 174:
        case 175:
        case 215:
        case 216:
          if (Te && !n.name) {
            l === 3 ? Ke(n, _.Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation, u) : Ke(n, _.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, u);
            return;
          }
          p = Te ? l === 3 ? _._0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type : _._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type : _._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage;
          break;
        case 197:
          Te && Ke(n, _.Mapped_object_type_implicitly_has_an_any_template_type);
          return;
        default:
          p = Te ? _.Variable_0_implicitly_has_an_1_type : _.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;
      }
      om(Te, n, p, ws(ka(n)), u);
    }
    function nV(n, a, l) {
      i(() => {
        Te && ti(a) & 65536 && (!l || !yae(n)) && (tV(a) || D0(n, a, l));
      });
    }
    function Vie(n, a, l) {
      const u = tf(n), p = tf(a), g = OD(n), x = OD(a), R = x ? p - 1 : p, M = g ? R : Math.min(u, R), J = Ob(n);
      if (J) {
        const $ = Ob(a);
        $ && l(J, $);
      }
      for (let $ = 0; $ < M; $++)
        l(fp(n, $), fp(a, $));
      x && l(ND(n, M), x);
    }
    function jie(n, a, l) {
      const u = a_(n), p = a_(a);
      u && p && aie(u, p) && u.type && p.type ? l(u.type, p.type) : l(ys(n), ys(a));
    }
    function SD(n, a, l, u) {
      return Hie(n.map(Wie), a, l, u || Tie);
    }
    function PZe(n, a = 0) {
      return n && Hie(jt(n.inferences, DLe), n.signature, n.flags | a, n.compareTypes);
    }
    function Hie(n, a, l, u) {
      const p = {
        inferences: n,
        signature: a,
        flags: l,
        compareTypes: u,
        mapper: wn,
        nonFixingMapper: wn
      };
      return p.mapper = MZe(p), p.nonFixingMapper = FZe(p), p;
    }
    function MZe(n) {
      return hie(jt(n.inferences, (a) => a.typeParameter), jt(n.inferences, (a, l) => () => (a.isFixed || (BZe(n), rV(n.inferences), a.isFixed = !0), Zie(n, l))));
    }
    function FZe(n) {
      return hie(jt(n.inferences, (a) => a.typeParameter), jt(n.inferences, (a, l) => () => Zie(n, l)));
    }
    function rV(n) {
      for (const a of n)
        a.isFixed || (a.inferredType = void 0);
    }
    function wLe(n, a, l) {
      var u;
      ((u = n.intraExpressionInferenceSites) != null ? u : n.intraExpressionInferenceSites = []).push({ node: a, type: l });
    }
    function BZe(n) {
      if (n.intraExpressionInferenceSites) {
        for (const { node: a, type: l } of n.intraExpressionInferenceSites) {
          const u = a.kind === 171 ? TIe(a, 2) : ad(a, 2);
          u && $h(n.inferences, l, u);
        }
        n.intraExpressionInferenceSites = void 0;
      }
    }
    function Wie(n) {
      return {
        typeParameter: n,
        candidates: void 0,
        contraCandidates: void 0,
        inferredType: void 0,
        priority: void 0,
        topLevel: !0,
        isFixed: !1,
        impliedArity: void 0
      };
    }
    function DLe(n) {
      return {
        typeParameter: n.typeParameter,
        candidates: n.candidates && n.candidates.slice(),
        contraCandidates: n.contraCandidates && n.contraCandidates.slice(),
        inferredType: n.inferredType,
        priority: n.priority,
        topLevel: n.topLevel,
        isFixed: n.isFixed,
        impliedArity: n.impliedArity
      };
    }
    function GZe(n) {
      const a = lr(n.inferences, $2);
      return a.length ? Hie(jt(a, DLe), n.signature, n.flags, n.compareTypes) : void 0;
    }
    function zie(n) {
      return n && n.mapper;
    }
    function PE(n) {
      const a = ti(n);
      if (a & 524288)
        return !!(a & 1048576);
      const l = !!(n.flags & 465829888 || n.flags & 524288 && !RLe(n) && (a & 4 && (n.node || ze(hs(n), PE)) || a & 16 && n.symbol && n.symbol.flags & 14384 && n.symbol.declarations || a & 12583968) || n.flags & 3145728 && !(n.flags & 1024) && !RLe(n) && kt(n.types, PE));
      return n.flags & 3899393 && (n.objectFlags |= 524288 | (l ? 1048576 : 0)), l;
    }
    function RLe(n) {
      if (n.aliasSymbol && !n.aliasTypeArguments) {
        const a = xl(n.aliasSymbol, 262);
        return !!(a && nr(a.parent, (l) => l.kind === 308 ? !0 : l.kind === 264 ? !1 : "quit"));
      }
      return !1;
    }
    function xD(n, a, l = 0) {
      return !!(n === a || n.flags & 3145728 && kt(n.types, (u) => xD(u, a, l)) || l < 3 && n.flags & 16777216 && (xD(C0(n), a, l + 1) || xD(L0(n), a, l + 1)));
    }
    function UZe(n, a) {
      const l = a_(n);
      return l ? !!l.type && xD(l.type, a) : xD(ys(n), a);
    }
    function VZe(n) {
      const a = lo();
      BE(n, (u) => {
        if (!(u.flags & 128))
          return;
        const p = sl(u.value), g = ns(4, p);
        g.links.type = we, u.symbol && (g.declarations = u.symbol.declarations, g.valueDeclaration = u.symbol.valueDeclaration), a.set(p, g);
      });
      const l = n.flags & 4 ? [hm(ue, pa, !1)] : rt;
      return Ns(void 0, a, rt, rt, l);
    }
    function NLe(n, a, l) {
      if (Ta)
        return;
      const u = n.id + "," + a.id + "," + l.id;
      if (Pr.has(u))
        return Pr.get(u);
      Ta = !0;
      const p = jZe(n, a, l);
      return Ta = !1, Pr.set(u, p), p;
    }
    function qie(n) {
      return !(ti(n) & 262144) || R0(n) && kt(ms(n), (a) => qie(ar(a))) || Fo(n) && kt(hs(n), qie);
    }
    function jZe(n, a, l) {
      if (!(sh(n, ue) || ms(n).length !== 0 && qie(n)))
        return;
      if (Hf(n))
        return Iu(iV(hs(n)[0], a, l), kL(n));
      if (Fo(n)) {
        const p = jt(hs(n), (x) => iV(x, a, l)), g = pm(a) & 4 ? _a(n.target.elementFlags, (x) => x & 2 ? 1 : x) : n.target.elementFlags;
        return Fp(p, g, n.target.readonly, n.target.labeledElementDeclarations);
      }
      const u = gf(1040, void 0);
      return u.source = n, u.mappedType = a, u.constraintType = l, u;
    }
    function HZe(n) {
      const a = Wi(n);
      return a.type || (a.type = iV(n.links.propertyType, n.links.mappedType, n.links.constraintType)), a.type;
    }
    function iV(n, a, l) {
      const u = Md(l.type, lp(a)), p = Jh(a), g = Wie(u);
      return $h([g], n, p), OLe(g) || he;
    }
    function* Jie(n, a, l, u) {
      const p = ms(a);
      for (const g of p)
        if (!kAe(g) && (l || !(g.flags & 16777216 || Ll(g) & 48))) {
          const x = uo(n, g.escapedName);
          if (!x)
            yield g;
          else if (u) {
            const R = ar(g);
            if (R.flags & 109472) {
              const M = ar(x);
              M.flags & 1 || yd(M) === yd(R) || (yield g);
            }
          }
        }
    }
    function Kie(n, a, l, u) {
      return U4(Jie(n, a, l, u));
    }
    function WZe(n, a) {
      return !(a.target.combinedFlags & 8) && a.target.minLength > n.target.minLength || !a.target.hasRestElement && (n.target.hasRestElement || a.target.fixedLength < n.target.fixedLength);
    }
    function zZe(n, a) {
      return Fo(n) && Fo(a) ? WZe(n, a) : !!Kie(n, a, !1, !0) && !!Kie(a, n, !1, !1);
    }
    function OLe(n) {
      return n.candidates ? Qr(n.candidates, 2) : n.contraCandidates ? wo(n.contraCandidates) : void 0;
    }
    function Xie(n) {
      return !!Jr(n).skipDirectInference;
    }
    function PLe(n) {
      return !!(n.symbol && kt(n.symbol.declarations, Xie));
    }
    function qZe(n, a) {
      const l = n.texts[0], u = a.texts[0], p = n.texts[n.texts.length - 1], g = a.texts[a.texts.length - 1], x = Math.min(l.length, u.length), R = Math.min(p.length, g.length);
      return l.slice(0, x) !== u.slice(0, x) || p.slice(p.length - R) !== g.slice(g.length - R);
    }
    function MLe(n, a) {
      if (n === "")
        return !1;
      const l = +n;
      return isFinite(l) && (!a || "" + l === n);
    }
    function JZe(n) {
      return PU(Sq(n));
    }
    function Yie(n, a) {
      if (a.flags & 1)
        return !0;
      if (a.flags & 134217732)
        return xo(n, a);
      if (a.flags & 268435456) {
        const l = [];
        for (; a.flags & 268435456; )
          l.unshift(a.symbol), a = a.type;
        return Ru(l, (p, g) => ES(g, p), n) === n && Yie(n, a);
      }
      return !1;
    }
    function KZe(n, a) {
      if (n === a || a.flags & 5)
        return !0;
      if (n.flags & 128) {
        const l = n.value;
        return !!(a.flags & 8 && MLe(l, !1) || a.flags & 64 && X3(l, !1) || a.flags & 98816 && l === a.intrinsicName || a.flags & 268435456 && Yie(jf(l), a));
      }
      if (n.flags & 134217728) {
        const l = n.texts;
        return l.length === 2 && l[0] === "" && l[1] === "" && xo(n.types[0], a);
      }
      return xo(n, a);
    }
    function FLe(n, a) {
      return n.flags & 128 ? BLe([n.value], rt, a) : n.flags & 134217728 ? es(n.texts, a.texts) ? jt(n.types, XZe) : BLe(n.texts, n.types, a) : void 0;
    }
    function $ie(n, a) {
      const l = FLe(n, a);
      return !!l && Yn(l, (u, p) => KZe(u, a.types[p]));
    }
    function XZe(n) {
      return n.flags & 402653317 ? n : wE(["", ""], [n]);
    }
    function BLe(n, a, l) {
      const u = n.length - 1, p = n[0], g = n[u], x = l.texts, R = x.length - 1, M = x[0], J = x[R];
      if (u === 0 && p.length < M.length + J.length || !p.startsWith(M) || !g.endsWith(J))
        return;
      const $ = g.slice(0, g.length - J.length), ge = [];
      let Ne = 0, De = M.length;
      for (let Mn = 1; Mn < R; Mn++) {
        const An = x[Mn];
        if (An.length > 0) {
          let Kn = Ne, gn = De;
          for (; gn = _t(Kn).indexOf(An, gn), !(gn >= 0); ) {
            if (Kn++, Kn === n.length)
              return;
            gn = 0;
          }
          Bt(Kn, gn), De += An.length;
        } else if (De < _t(Ne).length)
          Bt(Ne, De + 1);
        else if (Ne < u)
          Bt(Ne + 1, 0);
        else
          return;
      }
      return Bt(u, _t(u).length), ge;
      function _t(Mn) {
        return Mn < u ? n[Mn] : $;
      }
      function Bt(Mn, An) {
        const Kn = Mn === Ne ? jf(_t(Mn).slice(De, An)) : wE([n[Ne].slice(De), ...n.slice(Ne + 1, Mn), _t(Mn).slice(0, An)], a.slice(Ne, Mn));
        ge.push(Kn), Ne = Mn, De = An;
      }
    }
    function $h(n, a, l, u = 0, p = !1) {
      let g = !1, x, R = 2048, M = !0, J, $, ge, Ne = 0;
      De(a, l);
      function De(Un, sr) {
        if (PE(sr)) {
          if (Un === Nt) {
            const Zi = x;
            x = Un, De(sr, sr), x = Zi;
            return;
          }
          if (Un.aliasSymbol && Un.aliasSymbol === sr.aliasSymbol) {
            if (Un.aliasTypeArguments) {
              const Zi = Wi(Un.aliasSymbol).typeParameters, Ga = mm(Zi), na = av(Un.aliasTypeArguments, Zi, Ga, fr(Un.aliasSymbol.valueDeclaration)), Zo = av(sr.aliasTypeArguments, Zi, Ga, fr(Un.aliasSymbol.valueDeclaration));
              gn(na, Zo, gLe(Un.aliasSymbol));
            }
            return;
          }
          if (Un === sr && Un.flags & 3145728) {
            for (const Zi of Un.types)
              De(Zi, Zi);
            return;
          }
          if (sr.flags & 1048576) {
            const [Zi, Ga] = Kn(Un.flags & 1048576 ? Un.types : [Un], sr.types, YZe), [na, Zo] = Kn(Zi, Ga, $Ze);
            if (Zo.length === 0)
              return;
            if (sr = Qr(Zo), na.length === 0) {
              _t(Un, sr, 1);
              return;
            }
            Un = Qr(na);
          } else if (sr.flags & 2097152 && !Yn(sr.types, NU)) {
            if (!(Un.flags & 1048576)) {
              const [Zi, Ga] = Kn(Un.flags & 2097152 ? Un.types : [Un], sr.types, Kh);
              if (Zi.length === 0 || Ga.length === 0)
                return;
              Un = wo(Zi), sr = wo(Ga);
            }
          } else
            sr.flags & 41943040 && (sr = lv(sr));
          if (sr.flags & 8650752) {
            if (PLe(Un))
              return;
            const Zi = ln(sr);
            if (Zi) {
              if (ti(Un) & 262144 || Un === _e)
                return;
              if (!Zi.isFixed) {
                if ((Zi.priority === void 0 || u < Zi.priority) && (Zi.candidates = void 0, Zi.contraCandidates = void 0, Zi.topLevel = !0, Zi.priority = u), u === Zi.priority) {
                  const na = x || Un;
                  p && !g ? jr(Zi.contraCandidates, na) || (Zi.contraCandidates = Fn(Zi.contraCandidates, na), rV(n)) : jr(Zi.candidates, na) || (Zi.candidates = Fn(Zi.candidates, na), rV(n));
                }
                !(u & 128) && sr.flags & 262144 && Zi.topLevel && !xD(l, sr) && (Zi.topLevel = !1, rV(n));
              }
              R = Math.min(R, u);
              return;
            }
            const Ga = Yg(sr, !1);
            if (Ga !== sr)
              De(Un, Ga);
            else if (sr.flags & 8388608) {
              const na = Yg(sr.indexType, !1);
              if (na.flags & 465829888) {
                const Zo = UCe(Yg(sr.objectType, !1), na, !1);
                Zo && Zo !== sr && De(Un, Zo);
              }
            }
          }
          if (ti(Un) & 4 && ti(sr) & 4 && (Un.target === sr.target || Hf(Un) && Hf(sr)) && !(Un.node && sr.node))
            gn(hs(Un), hs(sr), kie(Un.target));
          else if (Un.flags & 4194304 && sr.flags & 4194304)
            xn(Un.type, sr.type);
          else if ((bD(Un) || Un.flags & 4) && sr.flags & 4194304) {
            const Zi = VZe(Un);
            Bt(Zi, sr.type, 256);
          } else if (Un.flags & 8388608 && sr.flags & 8388608)
            De(Un.objectType, sr.objectType), De(Un.indexType, sr.indexType);
          else if (Un.flags & 268435456 && sr.flags & 268435456)
            Un.symbol === sr.symbol && De(Un.type, sr.type);
          else if (Un.flags & 33554432)
            De(Un.baseType, sr), _t(Kre(Un), sr, 4);
          else if (sr.flags & 16777216)
            An(Un, sr, ri);
          else if (sr.flags & 3145728)
            qn(Un, sr.types, sr.flags);
          else if (Un.flags & 1048576) {
            const Zi = Un.types;
            for (const Ga of Zi)
              De(Ga, sr);
          } else if (sr.flags & 134217728)
            ma(Un, sr);
          else {
            if (Un = up(Un), !(u & 512 && Un.flags & 467927040)) {
              const Zi = Ju(Un);
              if (Zi !== Un && M && !(Zi.flags & 2621440))
                return M = !1, De(Zi, sr);
              Un = Zi;
            }
            Un.flags & 2621440 && An(Un, sr, Qa);
          }
        }
      }
      function _t(Un, sr, Zi) {
        const Ga = u;
        u |= Zi, De(Un, sr), u = Ga;
      }
      function Bt(Un, sr, Zi) {
        const Ga = u;
        u |= Zi, xn(Un, sr), u = Ga;
      }
      function Mn(Un, sr, Zi, Ga) {
        const na = u;
        u |= Ga, qn(Un, sr, Zi), u = na;
      }
      function An(Un, sr, Zi) {
        const Ga = Un.id + "," + sr.id, na = J && J.get(Ga);
        if (na !== void 0) {
          R = Math.min(R, na);
          return;
        }
        (J || (J = /* @__PURE__ */ new Map())).set(Ga, -1);
        const Zo = R;
        R = 2048;
        const Os = Ne, gl = IL(Un), Ao = IL(sr);
        jr($, gl) && (Ne |= 1), jr(ge, Ao) && (Ne |= 2), Ne !== 3 ? (($ || ($ = [])).push(gl), (ge || (ge = [])).push(Ao), Zi(Un, sr), ge.pop(), $.pop()) : R = -1, Ne = Os, J.set(Ga, R), R = Math.min(R, Zo);
      }
      function Kn(Un, sr, Zi) {
        let Ga, na;
        for (const Zo of sr)
          for (const Os of Un)
            Zi(Os, Zo) && (De(Os, Zo), Ga = oy(Ga, Os), na = oy(na, Zo));
        return [
          Ga ? lr(Un, (Zo) => !jr(Ga, Zo)) : Un,
          na ? lr(sr, (Zo) => !jr(na, Zo)) : sr
        ];
      }
      function gn(Un, sr, Zi) {
        const Ga = Un.length < sr.length ? Un.length : sr.length;
        for (let na = 0; na < Ga; na++)
          na < Zi.length && (Zi[na] & 7) === 2 ? xn(Un[na], sr[na]) : De(Un[na], sr[na]);
      }
      function xn(Un, sr) {
        p = !p, De(Un, sr), p = !p;
      }
      function yr(Un, sr) {
        ce || u & 1024 ? xn(Un, sr) : De(Un, sr);
      }
      function ln(Un) {
        if (Un.flags & 8650752) {
          for (const sr of n)
            if (Un === sr.typeParameter)
              return sr;
        }
      }
      function Gn(Un) {
        let sr;
        for (const Zi of Un) {
          const Ga = Zi.flags & 2097152 && nn(Zi.types, (na) => !!ln(na));
          if (!Ga || sr && Ga !== sr)
            return;
          sr = Ga;
        }
        return sr;
      }
      function qn(Un, sr, Zi) {
        let Ga = 0;
        if (Zi & 1048576) {
          let na;
          const Zo = Un.flags & 1048576 ? Un.types : [Un], Os = new Array(Zo.length);
          let gl = !1;
          for (const Ao of sr)
            if (ln(Ao))
              na = Ao, Ga++;
            else
              for (let Ku = 0; Ku < Zo.length; Ku++) {
                const dt = R;
                R = 2048, De(Zo[Ku], Ao), R === u && (Os[Ku] = !0), gl = gl || R === -1, R = Math.min(R, dt);
              }
          if (Ga === 0) {
            const Ao = Gn(sr);
            Ao && _t(Un, Ao, 1);
            return;
          }
          if (Ga === 1 && !gl) {
            const Ao = ca(Zo, (Ku, dt) => Os[dt] ? void 0 : Ku);
            if (Ao.length) {
              De(Qr(Ao), na);
              return;
            }
          }
        } else
          for (const na of sr)
            ln(na) ? Ga++ : De(Un, na);
        if (Zi & 2097152 ? Ga === 1 : Ga > 0)
          for (const na of sr)
            ln(na) && _t(Un, na, 1);
      }
      function Zr(Un, sr, Zi) {
        if (Zi.flags & 1048576) {
          let Ga = !1;
          for (const na of Zi.types)
            Ga = Zr(Un, sr, na) || Ga;
          return Ga;
        }
        if (Zi.flags & 4194304) {
          const Ga = ln(Zi.type);
          if (Ga && !Ga.isFixed && !PLe(Un)) {
            const na = NLe(Un, sr, Zi);
            na && _t(na, Ga.typeParameter, ti(Un) & 262144 ? 16 : 8);
          }
          return !0;
        }
        if (Zi.flags & 262144) {
          _t(gm(Un), Zi, 32);
          const Ga = LE(Zi);
          if (Ga && Zr(Un, sr, Ga))
            return !0;
          const na = jt(ms(Un), ar), Zo = jt(Lu(Un), (Os) => Os !== Wu ? Os.type : gt);
          return De(Qr(va(na, Zo)), Jh(sr)), !0;
        }
        return !1;
      }
      function ri(Un, sr) {
        if (Un.flags & 16777216)
          De(Un.checkType, sr.checkType), De(Un.extendsType, sr.extendsType), De(C0(Un), C0(sr)), De(L0(Un), L0(sr));
        else {
          const Zi = [C0(sr), L0(sr)];
          Mn(Un, Zi, sr.flags, p ? 64 : 0);
        }
      }
      function ma(Un, sr) {
        const Zi = FLe(Un, sr), Ga = sr.types;
        if (Zi || Yn(sr.texts, (na) => na.length === 0))
          for (let na = 0; na < Ga.length; na++) {
            const Zo = Zi ? Zi[na] : gt, Os = Ga[na];
            if (Zo.flags & 128 && Os.flags & 8650752) {
              const gl = ln(Os), Ao = gl ? qu(gl.typeParameter) : void 0;
              if (Ao && !Ss(Ao)) {
                const Ku = Ao.flags & 1048576 ? Ao.types : [Ao];
                let dt = Ru(Ku, (Ee, er) => Ee | er.flags, 0);
                if (!(dt & 4)) {
                  const Ee = Zo.value;
                  dt & 296 && !MLe(Ee, !0) && (dt &= -297), dt & 2112 && !X3(Ee, !0) && (dt &= -2113);
                  const er = Ru(Ku, (Qn, Tr) => Tr.flags & dt ? Qn.flags & 4 ? Qn : Tr.flags & 4 ? Zo : Qn.flags & 134217728 ? Qn : Tr.flags & 134217728 && $ie(Zo, Tr) ? Zo : Qn.flags & 268435456 ? Qn : Tr.flags & 268435456 && Ee === FCe(Tr.symbol, Ee) ? Zo : Qn.flags & 128 ? Qn : Tr.flags & 128 && Tr.value === Ee ? Tr : Qn.flags & 8 ? Qn : Tr.flags & 8 ? Bp(+Ee) : Qn.flags & 32 ? Qn : Tr.flags & 32 ? Bp(+Ee) : Qn.flags & 256 ? Qn : Tr.flags & 256 && Tr.value === +Ee ? Tr : Qn.flags & 64 ? Qn : Tr.flags & 64 ? JZe(Ee) : Qn.flags & 2048 ? Qn : Tr.flags & 2048 && I1(Tr.value) === Ee ? Tr : Qn.flags & 16 ? Qn : Tr.flags & 16 ? Ee === "true" ? Pe : Ee === "false" ? it : Re : Qn.flags & 512 ? Qn : Tr.flags & 512 && Tr.intrinsicName === Ee ? Tr : Qn.flags & 32768 ? Qn : Tr.flags & 32768 && Tr.intrinsicName === Ee ? Tr : Qn.flags & 65536 ? Qn : Tr.flags & 65536 && Tr.intrinsicName === Ee ? Tr : Qn : Qn, gt);
                  if (!(er.flags & 131072)) {
                    De(er, Os);
                    continue;
                  }
                }
              }
            }
            De(Zo, Os);
          }
      }
      function Qa(Un, sr) {
        var Zi, Ga;
        if (ti(Un) & 4 && ti(sr) & 4 && (Un.target === sr.target || Hf(Un) && Hf(sr))) {
          gn(hs(Un), hs(sr), kie(Un.target));
          return;
        }
        if (Vf(Un) && Vf(sr)) {
          De(Pp(Un), Pp(sr)), De(Jh(Un), Jh(sr));
          const na = nv(Un), Zo = nv(sr);
          na && Zo && De(na, Zo);
        }
        if (ti(sr) & 32 && !sr.declaration.nameType) {
          const na = Pp(sr);
          if (Zr(Un, sr, na))
            return;
        }
        if (!zZe(Un, sr)) {
          if (RE(Un)) {
            if (Fo(sr)) {
              const na = x0(Un), Zo = x0(sr), Os = hs(sr), gl = sr.target.elementFlags;
              if (Fo(Un) && AZe(Un, sr)) {
                for (let dt = 0; dt < Zo; dt++)
                  De(hs(Un)[dt], Os[dt]);
                return;
              }
              const Ao = Fo(Un) ? Math.min(Un.target.fixedLength, sr.target.fixedLength) : 0, Ku = Math.min(Fo(Un) ? LP(Un.target, 3) : 0, sr.target.hasRestElement ? LP(sr.target, 3) : 0);
              for (let dt = 0; dt < Ao; dt++)
                De(hs(Un)[dt], Os[dt]);
              if (!Fo(Un) || na - Ao - Ku === 1 && Un.target.elementFlags[Ao] & 4) {
                const dt = hs(Un)[Ao];
                for (let Ee = Ao; Ee < Zo - Ku; Ee++)
                  De(gl[Ee] & 8 ? Iu(dt) : dt, Os[Ee]);
              } else {
                const dt = Zo - Ao - Ku;
                if (dt === 2) {
                  if (gl[Ao] & gl[Ao + 1] & 8) {
                    const Ee = ln(Os[Ao]);
                    Ee && Ee.impliedArity !== void 0 && (De(xL(Un, Ao, Ku + na - Ee.impliedArity), Os[Ao]), De(xL(Un, Ao + Ee.impliedArity, Ku), Os[Ao + 1]));
                  } else if (gl[Ao] & 8 && gl[Ao + 1] & 4) {
                    const Ee = (Zi = ln(Os[Ao])) == null ? void 0 : Zi.typeParameter, er = Ee && qu(Ee);
                    if (er && Fo(er) && !er.target.hasRestElement) {
                      const Qn = er.target.fixedLength;
                      De(xL(Un, Ao, na - (Ao + Qn)), Os[Ao]), De(DL(Un, Ao + Qn, Ku), Os[Ao + 1]);
                    }
                  } else if (gl[Ao] & 4 && gl[Ao + 1] & 8) {
                    const Ee = (Ga = ln(Os[Ao + 1])) == null ? void 0 : Ga.typeParameter, er = Ee && qu(Ee);
                    if (er && Fo(er) && !er.target.hasRestElement) {
                      const Qn = er.target.fixedLength, Tr = na - LP(sr.target, 3), wr = Tr - Qn, Ra = Fp(hs(Un).slice(wr, Tr), Un.target.elementFlags.slice(wr, Tr), !1, Un.target.labeledElementDeclarations && Un.target.labeledElementDeclarations.slice(wr, Tr));
                      De(DL(Un, Ao, Ku + Qn), Os[Ao]), De(Ra, Os[Ao + 1]);
                    }
                  }
                } else if (dt === 1 && gl[Ao] & 8) {
                  const Ee = sr.target.elementFlags[Zo - 1] & 2, er = xL(Un, Ao, Ku);
                  _t(er, Os[Ao], Ee ? 2 : 0);
                } else if (dt === 1 && gl[Ao] & 4) {
                  const Ee = DL(Un, Ao, Ku);
                  Ee && De(Ee, Os[Ao]);
                }
              }
              for (let dt = 0; dt < Ku; dt++)
                De(hs(Un)[na - dt - 1], Os[Zo - dt - 1]);
              return;
            }
            if (Hf(sr)) {
              oa(Un, sr);
              return;
            }
          }
          Ec(Un, sr), Wf(Un, sr, 0), Wf(Un, sr, 1), oa(Un, sr);
        }
      }
      function Ec(Un, sr) {
        const Zi = rv(sr);
        for (const Ga of Zi) {
          const na = uo(Un, Ga.escapedName);
          na && !kt(na.declarations, Xie) && De(ar(na), ar(Ga));
        }
      }
      function Wf(Un, sr, Zi) {
        const Ga = za(Un, Zi), na = za(sr, Zi), Zo = Ga.length, Os = na.length, gl = Zo < Os ? Zo : Os;
        for (let Ao = 0; Ao < gl; Ao++)
          Ef(r$e(Ga[Zo - gl + Ao]), dD(na[Os - gl + Ao]));
      }
      function Ef(Un, sr) {
        const Zi = g, Ga = sr.declaration ? sr.declaration.kind : 0;
        g = g || Ga === 171 || Ga === 170 || Ga === 173, Vie(Un, sr, yr), g = Zi, jie(Un, sr, De);
      }
      function oa(Un, sr) {
        const Zi = ti(Un) & ti(sr) & 32 ? 8 : 0, Ga = Lu(sr);
        if (eV(Un))
          for (const na of Ga) {
            const Zo = [];
            for (const Os of ms(Un))
              if (O2(AL(Os, 8576), na.keyType)) {
                const gl = ar(Os);
                Zo.push(Os.flags & 16777216 ? Gie(gl) : gl);
              }
            for (const Os of Lu(Un))
              O2(Os.keyType, na.keyType) && Zo.push(Os.type);
            Zo.length && _t(Qr(Zo), na.type, Zi);
          }
        for (const na of Ga) {
          const Zo = SP(Un, na.keyType);
          Zo && _t(Zo.type, na.type, Zi);
        }
      }
    }
    function YZe(n, a) {
      return a === Xe ? n === a : Kh(n, a) || !!(a.flags & 4 && n.flags & 128 || a.flags & 8 && n.flags & 256);
    }
    function $Ze(n, a) {
      return !!(n.flags & 524288 && a.flags & 524288 && n.symbol && n.symbol === a.symbol || n.aliasSymbol && n.aliasTypeArguments && n.aliasSymbol === a.aliasSymbol);
    }
    function QZe(n) {
      const a = Cu(n);
      return !!a && pl(a.flags & 16777216 ? Lre(a) : a, 406978556);
    }
    function R0(n) {
      return !!(ti(n) & 128);
    }
    function Qie(n) {
      return !!(ti(n) & 16512);
    }
    function ZZe(n) {
      if (n.length > 1) {
        const a = lr(n, Qie);
        if (a.length) {
          const l = Qr(a, 2);
          return va(lr(n, (u) => !Qie(u)), [l]);
        }
      }
      return n;
    }
    function eet(n) {
      return n.priority & 416 ? wo(n.contraCandidates) : yZe(n.contraCandidates);
    }
    function tet(n, a) {
      const l = ZZe(n.candidates), u = QZe(n.typeParameter) || EP(n.typeParameter), p = !u && n.topLevel && (n.isFixed || !UZe(a, n.typeParameter)), g = u ? _a(l, yd) : p ? _a(l, jb) : l, x = n.priority & 416 ? Qr(g, 2) : gZe(g);
      return ef(x);
    }
    function Zie(n, a) {
      const l = n.inferences[a];
      if (!l.inferredType) {
        let u;
        const p = n.signature;
        if (p) {
          const x = l.candidates ? tet(l, p) : void 0;
          if (l.contraCandidates)
            u = x && !(x.flags & 131072) && kt(l.contraCandidates, (M) => cv(x, M)) && Yn(n.inferences, (M) => M !== l && Cu(M.typeParameter) !== l.typeParameter || Yn(M.candidates, (J) => cv(J, x))) ? x : eet(l);
          else if (x)
            u = x;
          else if (n.flags & 1)
            u = ft;
          else {
            const R = IE(l.typeParameter);
            R && (u = Yi(R, DQe(wQe(n, a), n.nonFixingMapper)));
          }
        } else
          u = OLe(l);
        l.inferredType = u || eae(!!(n.flags & 2));
        const g = Cu(l.typeParameter);
        if (g) {
          const x = Yi(g, n.nonFixingMapper);
          (!u || !n.compareTypes(u, Uf(x, u))) && (l.inferredType = u = x);
        }
      }
      return l.inferredType;
    }
    function eae(n) {
      return n ? we : he;
    }
    function tae(n) {
      const a = [];
      for (let l = 0; l < n.inferences.length; l++)
        a.push(Zie(n, l));
      return a;
    }
    function GLe(n) {
      switch (n.escapedText) {
        case "document":
        case "console":
          return _.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom;
        case "$":
          return Y.types ? _.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig : _.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery;
        case "describe":
        case "suite":
        case "it":
        case "test":
          return Y.types ? _.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig : _.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha;
        case "process":
        case "require":
        case "Buffer":
        case "module":
          return Y.types ? _.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig : _.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode;
        case "Map":
        case "Set":
        case "Promise":
        case "Symbol":
        case "WeakMap":
        case "WeakSet":
        case "Iterator":
        case "AsyncIterator":
        case "SharedArrayBuffer":
        case "Atomics":
        case "AsyncIterable":
        case "AsyncIterableIterator":
        case "AsyncGenerator":
        case "AsyncGeneratorFunction":
        case "BigInt":
        case "Reflect":
        case "BigInt64Array":
        case "BigUint64Array":
          return _.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later;
        case "await":
          if (no(n.parent))
            return _.Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function;
        default:
          return n.parent.kind === 300 ? _.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer : _.Cannot_find_name_0;
      }
    }
    function w_(n) {
      const a = Jr(n);
      return a.resolvedSymbol || (a.resolvedSymbol = !Al(n) && _l(n, n.escapedText, 1160127, GLe(n), n, !eq(n), !1) || an), a.resolvedSymbol;
    }
    function RL(n) {
      return !!nr(n, (a) => a.kind === 183 ? !0 : a.kind === 79 || a.kind === 163 ? !1 : "quit");
    }
    function ULe(n) {
      return !!(n.flags & 16777216 || nr(n, (a) => nd(a) || uf(a)));
    }
    function aV(n, a, l, u) {
      switch (n.kind) {
        case 79:
          if (!lx(n)) {
            const x = w_(n);
            return x !== an ? `${u ? ps(u) : "-1"}|${ku(a)}|${ku(l)}|${bo(x)}` : void 0;
          }
        case 108:
          return `0|${u ? ps(u) : "-1"}|${ku(a)}|${ku(l)}`;
        case 232:
        case 214:
          return aV(n.expression, a, l, u);
        case 163:
          const p = aV(n.left, a, l, u);
          return p && p + "." + n.right.escapedText;
        case 208:
        case 209:
          const g = ME(n);
          if (g !== void 0) {
            const x = aV(n.expression, a, l, u);
            return x && x + "." + g;
          }
          break;
        case 203:
        case 204:
        case 259:
        case 215:
        case 216:
        case 171:
          return `${ps(n)}#${ku(a)}`;
      }
    }
    function Kc(n, a) {
      switch (a.kind) {
        case 214:
        case 232:
          return Kc(n, a.expression);
        case 223:
          return ed(a) && Kc(n, a.left) || br(a) && a.operatorToken.kind === 27 && Kc(n, a.right);
      }
      switch (n.kind) {
        case 233:
          return a.kind === 233 && n.keywordToken === a.keywordToken && n.name.escapedText === a.name.escapedText;
        case 79:
        case 80:
          return lx(n) ? a.kind === 108 : a.kind === 79 && w_(n) === w_(a) || (Ki(a) || _s(a)) && Np(w_(n)) === Ir(a);
        case 108:
          return a.kind === 108;
        case 106:
          return a.kind === 106;
        case 232:
        case 214:
          return Kc(n.expression, a);
        case 208:
        case 209:
          const l = ME(n), u = ll(a) ? ME(a) : void 0;
          return l !== void 0 && u !== void 0 && u === l && Kc(n.expression, a.expression);
        case 163:
          return ll(a) && n.right.escapedText === ME(a) && Kc(n.left, a.expression);
        case 223:
          return br(n) && n.operatorToken.kind === 27 && Kc(n.right, a);
      }
      return !1;
    }
    function ME(n) {
      if (Fr(n))
        return n.name.escapedText;
      if (cl(n))
        return net(n);
      if (_s(n)) {
        const a = Cn(n);
        return a ? sl(a) : void 0;
      }
      if (Ba(n))
        return "" + n.parent.parameters.indexOf(n);
    }
    function VLe(n) {
      return n.flags & 8192 ? n.escapedName : n.flags & 384 ? sl("" + n.value) : void 0;
    }
    function net(n) {
      if (Xf(n.argumentExpression))
        return sl(n.argumentExpression.text);
      if (zl(n.argumentExpression)) {
        const a = Rl(n.argumentExpression, 111551, !0);
        if (!a || !(OL(a) || a.flags & 8))
          return;
        const l = a.valueDeclaration;
        if (l === void 0)
          return;
        const u = Pd(l);
        if (u) {
          const p = VLe(u);
          if (p !== void 0)
            return p;
        }
        if (aT(l) && Rg(l, n.argumentExpression)) {
          const p = hN(l);
          if (p)
            return VLe(Du(p));
          if (O1(l))
            return OA(l.name);
        }
      }
    }
    function jLe(n, a) {
      for (; ll(n); )
        if (n = n.expression, Kc(n, a))
          return !0;
      return !1;
    }
    function AS(n, a) {
      for (; yu(n); )
        if (n = n.expression, Kc(n, a))
          return !0;
      return !1;
    }
    function AD(n, a) {
      if (n && n.flags & 1048576) {
        const l = Dre(n, a);
        if (l && Ll(l) & 2)
          return l.links.isDiscriminantProperty === void 0 && (l.links.isDiscriminantProperty = (l.links.checkFlags & 192) === 192 && !CL(ar(l))), !!l.links.isDiscriminantProperty;
      }
      return !1;
    }
    function HLe(n, a) {
      let l;
      for (const u of n)
        if (AD(a, u.escapedName)) {
          if (l) {
            l.push(u);
            continue;
          }
          l = [u];
        }
      return l;
    }
    function ret(n, a) {
      const l = /* @__PURE__ */ new Map();
      let u = 0;
      for (const p of n)
        if (p.flags & 61603840) {
          const g = fc(p, a);
          if (g) {
            if (!bD(g))
              return;
            let x = !1;
            BE(g, (R) => {
              const M = ku(yd(R)), J = l.get(M);
              J ? J !== he && (l.set(M, he), x = !0) : l.set(M, p);
            }), x || u++;
          }
        }
      return u >= 10 && u * 2 >= n.length ? l : void 0;
    }
    function jP(n) {
      const a = n.types;
      if (!(a.length < 10 || ti(n) & 32768 || Bc(a, (l) => !!(l.flags & 59506688)) < 10)) {
        if (n.keyPropertyName === void 0) {
          const l = ze(a, (p) => p.flags & 59506688 ? ze(ms(p), (g) => dp(ar(g)) ? g.escapedName : void 0) : void 0), u = l && ret(a, l);
          n.keyPropertyName = u ? l : "", n.constituentMap = u;
        }
        return n.keyPropertyName.length ? n.keyPropertyName : void 0;
      }
    }
    function HP(n, a) {
      var l;
      const u = (l = n.constituentMap) == null ? void 0 : l.get(ku(yd(a)));
      return u !== he ? u : void 0;
    }
    function WLe(n, a) {
      const l = jP(n), u = l && fc(a, l);
      return u && HP(n, u);
    }
    function iet(n, a) {
      const l = jP(n), u = l && nn(a.properties, (g) => g.symbol && g.kind === 299 && g.symbol.escapedName === l && YP(g.initializer)), p = u && _4(u.initializer);
      return p && HP(n, p);
    }
    function zLe(n, a) {
      return Kc(n, a) || jLe(n, a);
    }
    function qLe(n, a) {
      if (n.arguments) {
        for (const l of n.arguments)
          if (zLe(a, l))
            return !0;
      }
      return !!(n.expression.kind === 208 && zLe(a, n.expression.expression));
    }
    function nae(n) {
      return (!n.id || n.id < 0) && (n.id = tX, tX++), n.id;
    }
    function aet(n, a) {
      if (!(n.flags & 1048576))
        return xo(n, a);
      for (const l of n.types)
        if (xo(l, a))
          return !0;
      return !1;
    }
    function oet(n, a) {
      var l;
      if (n === a)
        return n;
      if (a.flags & 131072)
        return a;
      const u = `A${ku(n)},${ku(a)}`;
      return (l = mb(u)) != null ? l : kg(u, set(n, a));
    }
    function set(n, a) {
      const l = _c(n, (p) => aet(a, p)), u = a.flags & 512 && Gb(a) ? $s(l, H2) : l;
      return xo(a, u) ? u : n;
    }
    function rae(n) {
      const a = cp(n);
      return !!(a.callSignatures.length || a.constructSignatures.length || a.members.get("bind") && cv(n, dl));
    }
    function wu(n) {
      n.flags & 467927040 && (n = qu(n) || he);
      const a = n.flags;
      if (a & 268435460)
        return W ? 16317953 : 16776705;
      if (a & 134217856) {
        const l = a & 128 && n.value === "";
        return W ? l ? 12123649 : 7929345 : l ? 12582401 : 16776705;
      }
      if (a & 40)
        return W ? 16317698 : 16776450;
      if (a & 256) {
        const l = n.value === 0;
        return W ? l ? 12123394 : 7929090 : l ? 12582146 : 16776450;
      }
      if (a & 64)
        return W ? 16317188 : 16775940;
      if (a & 2048) {
        const l = ALe(n);
        return W ? l ? 12122884 : 7928580 : l ? 12581636 : 16775940;
      }
      return a & 16 ? W ? 16316168 : 16774920 : a & 528 ? W ? n === it || n === K ? 12121864 : 7927560 : n === it || n === K ? 12580616 : 16774920 : a & 524288 ? ti(n) & 16 && Xh(n) ? W ? 83427327 : 83886079 : rae(n) ? W ? 7880640 : 16728e3 : W ? 7888800 : 16736160 : a & 16384 ? 9830144 : a & 32768 ? 26607360 : a & 65536 ? 42917664 : a & 12288 ? W ? 7925520 : 16772880 : a & 67108864 ? W ? 7888800 : 16736160 : a & 131072 ? 0 : a & 1048576 ? Ru(n.types, (l, u) => l | wu(u), 0) : a & 2097152 ? cet(n) : 83886079;
    }
    function cet(n) {
      const a = pl(n, 134348796);
      let l = 0, u = 134217727;
      for (const p of n.types)
        if (!(a && p.flags & 524288)) {
          const g = wu(p);
          l |= g, u &= g;
        }
      return l & 8256 | u & 134209471;
    }
    function l_(n, a) {
      return _c(n, (l) => (wu(l) & a) !== 0);
    }
    function FE(n, a) {
      const l = JLe(l_(W && n.flags & 2 ? Ul : n, a));
      if (W)
        switch (a) {
          case 524288:
            return $s(l, (u) => wu(u) & 65536 ? wo([u, wu(u) & 131072 && !pl(l, 65536) ? Qr([pa, Sn]) : pa]) : u);
          case 1048576:
            return $s(l, (u) => wu(u) & 131072 ? wo([u, wu(u) & 65536 && !pl(l, 32768) ? Qr([pa, He]) : pa]) : u);
          case 2097152:
          case 4194304:
            return $s(l, (u) => wu(u) & 262144 ? IZe(u) : u);
        }
      return l;
    }
    function JLe(n) {
      return n === Ul ? he : n;
    }
    function iae(n, a) {
      return a ? Qr([be(n), Du(a)]) : n;
    }
    function KLe(n, a) {
      var l;
      const u = Xg(a);
      if (!qh(u))
        return Ce;
      const p = _m(u);
      return fc(n, p) || CD((l = P2(n, p)) == null ? void 0 : l.type) || Ce;
    }
    function XLe(n, a) {
      return lh(n, wL) && vZe(n, a) || CD(_v(65, n, He, void 0)) || Ce;
    }
    function CD(n) {
      return n && (Y.noUncheckedIndexedAccess ? Qr([n, Xe]) : n);
    }
    function YLe(n) {
      return Iu(_v(65, n, He, void 0) || Ce);
    }
    function uet(n) {
      return n.parent.kind === 206 && aae(n.parent) || n.parent.kind === 299 && aae(n.parent.parent) ? iae(WP(n), n.right) : Du(n.right);
    }
    function aae(n) {
      return n.parent.kind === 223 && n.parent.left === n || n.parent.kind === 247 && n.parent.initializer === n;
    }
    function det(n, a) {
      return XLe(WP(n), n.elements.indexOf(a));
    }
    function fet(n) {
      return YLe(WP(n.parent));
    }
    function $Le(n) {
      return KLe(WP(n.parent), n.name);
    }
    function _et(n) {
      return iae($Le(n), n.objectAssignmentInitializer);
    }
    function WP(n) {
      const { parent: a } = n;
      switch (a.kind) {
        case 246:
          return ue;
        case 247:
          return b4(a) || Ce;
        case 223:
          return uet(a);
        case 217:
          return He;
        case 206:
          return det(a, n);
        case 227:
          return fet(a);
        case 299:
          return $Le(a);
        case 300:
          return _et(a);
      }
      return Ce;
    }
    function pet(n) {
      const a = n.parent, l = ZLe(a.parent), u = a.kind === 203 ? KLe(l, n.propertyName || n.name) : n.dotDotDotToken ? YLe(l) : XLe(l, a.elements.indexOf(n));
      return iae(u, n.initializer);
    }
    function QLe(n) {
      return Jr(n).resolvedType || Du(n);
    }
    function met(n) {
      return n.initializer ? QLe(n.initializer) : n.parent.parent.kind === 246 ? ue : n.parent.parent.kind === 247 && b4(n.parent.parent) || Ce;
    }
    function ZLe(n) {
      return n.kind === 257 ? met(n) : pet(n);
    }
    function het(n) {
      return n.kind === 257 && n.initializer && Is(n.initializer) || n.kind !== 205 && n.parent.kind === 223 && Is(n.parent.right);
    }
    function Hb(n) {
      switch (n.kind) {
        case 214:
          return Hb(n.expression);
        case 223:
          switch (n.operatorToken.kind) {
            case 63:
            case 75:
            case 76:
            case 77:
              return Hb(n.left);
            case 27:
              return Hb(n.right);
          }
      }
      return n;
    }
    function eIe(n) {
      const { parent: a } = n;
      return a.kind === 214 || a.kind === 223 && a.operatorToken.kind === 63 && a.left === n || a.kind === 223 && a.operatorToken.kind === 27 && a.right === n ? eIe(a) : n;
    }
    function get(n) {
      return n.kind === 292 ? yd(Du(n.expression)) : gt;
    }
    function oV(n) {
      const a = Jr(n);
      if (!a.switchTypes) {
        a.switchTypes = [];
        for (const l of n.caseBlock.clauses)
          a.switchTypes.push(get(l));
      }
      return a.switchTypes;
    }
    function tIe(n) {
      if (kt(n.caseBlock.clauses, (l) => l.kind === 292 && !xs(l.expression)))
        return;
      const a = [];
      for (const l of n.caseBlock.clauses) {
        const u = l.kind === 292 ? l.expression.text : void 0;
        a.push(u && !jr(a, u) ? u : void 0);
      }
      return a;
    }
    function yet(n, a) {
      return n.flags & 1048576 ? !ze(n.types, (l) => !jr(a, l)) : jr(a, n);
    }
    function LD(n, a) {
      return n === a || a.flags & 1048576 && vet(n, a);
    }
    function vet(n, a) {
      if (n.flags & 1048576) {
        for (const l of n.types)
          if (!Mb(a.types, l))
            return !1;
        return !0;
      }
      return n.flags & 1056 && rD(n) === a ? !0 : Mb(a.types, n);
    }
    function BE(n, a) {
      return n.flags & 1048576 ? ze(n.types, a) : a(n);
    }
    function Qh(n, a) {
      return n.flags & 1048576 ? kt(n.types, a) : a(n);
    }
    function lh(n, a) {
      return n.flags & 1048576 ? Yn(n.types, a) : a(n);
    }
    function bet(n, a) {
      return n.flags & 3145728 ? Yn(n.types, a) : a(n);
    }
    function _c(n, a) {
      if (n.flags & 1048576) {
        const l = n.types, u = lr(l, a);
        if (u === l)
          return n;
        const p = n.origin;
        let g;
        if (p && p.flags & 1048576) {
          const x = p.types, R = lr(x, (M) => !!(M.flags & 1048576) || a(M));
          if (x.length - R.length === l.length - u.length) {
            if (R.length === 1)
              return R[0];
            g = iie(1048576, R);
          }
        }
        return oie(u, n.objectFlags & 16809984, void 0, void 0, g);
      }
      return n.flags & 131072 || a(n) ? n : gt;
    }
    function sV(n, a) {
      return _c(n, (l) => l !== a);
    }
    function Eet(n) {
      return n.flags & 1048576 ? n.types.length : 1;
    }
    function $s(n, a, l) {
      if (n.flags & 131072)
        return n;
      if (!(n.flags & 1048576))
        return a(n);
      const u = n.origin, p = u && u.flags & 1048576 ? u.types : n.types;
      let g, x = !1;
      for (const R of p) {
        const M = R.flags & 1048576 ? $s(R, a, l) : a(R);
        x || (x = R !== M), M && (g ? g.push(M) : g = [M]);
      }
      return x ? g && Qr(g, l ? 0 : 1) : n;
    }
    function nIe(n, a, l, u) {
      return n.flags & 1048576 && l ? Qr(jt(n.types, a), 1, l, u) : $s(n, a);
    }
    function NL(n, a) {
      return _c(n, (l) => (l.flags & a) !== 0);
    }
    function rIe(n, a) {
      return pl(n, 134217804) && pl(a, 402655616) ? $s(n, (l) => l.flags & 4 ? NL(a, 402653316) : V2(l) && !pl(a, 402653188) ? NL(a, 128) : l.flags & 8 ? NL(a, 264) : l.flags & 64 ? NL(a, 2112) : l) : n;
    }
    function q2(n) {
      return n.flags === 0;
    }
    function GE(n) {
      return n.flags === 0 ? n.type : n;
    }
    function J2(n, a) {
      return a ? { flags: 0, type: n.flags & 131072 ? ft : n } : n;
    }
    function Tet(n) {
      const a = gf(256);
      return a.elementType = n, a;
    }
    function oae(n) {
      return Pi[n.id] || (Pi[n.id] = Tet(n));
    }
    function iIe(n, a) {
      const l = VP(dv(_4(a)));
      return LD(l, n.elementType) ? n : oae(Qr([n.elementType, l]));
    }
    function xet(n) {
      return n.flags & 131072 ? Nn : Iu(n.flags & 1048576 ? Qr(n.types, 2) : n);
    }
    function Aet(n) {
      return n.finalArrayType || (n.finalArrayType = xet(n.elementType));
    }
    function zP(n) {
      return ti(n) & 256 ? Aet(n) : n;
    }
    function Cet(n) {
      return ti(n) & 256 ? n.elementType : gt;
    }
    function Let(n) {
      let a = !1;
      for (const l of n)
        if (!(l.flags & 131072)) {
          if (!(ti(l) & 256))
            return !1;
          a = !0;
        }
      return a;
    }
    function aIe(n) {
      const a = eIe(n), l = a.parent, u = Fr(l) && (l.name.escapedText === "length" || l.parent.kind === 210 && je(l.name) && Cz(l.name)), p = l.kind === 209 && l.expression === a && l.parent.kind === 223 && l.parent.operatorToken.kind === 63 && l.parent.left === l && !bh(l.parent) && Mc(Du(l.argumentExpression), 296);
      return u || p;
    }
    function Iet(n) {
      return (Ki(n) || to(n) || If(n) || Ba(n)) && !!(Zc(n) || fr(n) && kv(n) && n.initializer && lC(n.initializer) && yp(n.initializer));
    }
    function lV(n, a) {
      if (n = Yl(n), n.flags & 8752)
        return ar(n);
      if (n.flags & 7) {
        if (Ll(n) & 262144) {
          const u = n.links.syntheticOrigin;
          if (u && lV(u))
            return ar(n);
        }
        const l = n.valueDeclaration;
        if (l) {
          if (Iet(l))
            return ar(n);
          if (Ki(l) && l.parent.parent.kind === 247) {
            const u = l.parent.parent, p = qP(u.expression, void 0);
            if (p) {
              const g = u.awaitModifier ? 15 : 13;
              return _v(g, p, He, void 0);
            }
          }
          a && Xo(a, Nr(l, _._0_needs_an_explicit_type_annotation, S(n)));
        }
      }
    }
    function qP(n, a) {
      if (!(n.flags & 33554432))
        switch (n.kind) {
          case 79:
            const l = Np(w_(n));
            return lV(l, a);
          case 108:
            return Jet(n);
          case 106:
            return dae(n);
          case 208: {
            const u = qP(n.expression, a);
            if (u) {
              const p = n.name;
              let g;
              if (Ni(p)) {
                if (!u.symbol)
                  return;
                g = uo(u, MN(u.symbol, p.escapedText));
              } else
                g = uo(u, p.escapedText);
              return g && lV(g, a);
            }
            return;
          }
          case 214:
            return qP(n.expression, a);
        }
    }
    function cV(n) {
      const a = Jr(n);
      let l = a.effectsSignature;
      if (l === void 0) {
        let u;
        n.parent.kind === 241 ? u = qP(n.expression, void 0) : n.expression.kind !== 106 && (yu(n) ? u = Gp(ED(ga(n.expression), n.expression), n.expression) : u = FL(n.expression));
        const p = za(u && Ju(u) || he, 0), g = p.length === 1 && !p[0].typeParameters ? p[0] : kt(p, oIe) ? GL(n) : void 0;
        l = a.effectsSignature = g && oIe(g) ? g : rn;
      }
      return l === rn ? void 0 : l;
    }
    function oIe(n) {
      return !!(a_(n) || n.declaration && (M2(n.declaration) || he).flags & 131072);
    }
    function ket(n, a) {
      if (n.kind === 1 || n.kind === 3)
        return a.arguments[n.parameterIndex];
      const l = js(a.expression);
      return ll(l) ? js(l.expression) : void 0;
    }
    function wet(n) {
      const a = nr(n, SW), l = Zn(n), u = gy(l, a.statements.pos);
      Qo.add(Dc(l, u.start, u.length, _.The_containing_function_or_module_body_is_too_large_for_control_flow_analysis));
    }
    function JP(n) {
      const a = uV(n, !1);
      return pn = n, dr = a, a;
    }
    function KP(n) {
      const a = js(n, !0);
      return a.kind === 95 || a.kind === 223 && (a.operatorToken.kind === 55 && (KP(a.left) || KP(a.right)) || a.operatorToken.kind === 56 && KP(a.left) && KP(a.right));
    }
    function uV(n, a) {
      for (; ; ) {
        if (n === pn)
          return dr;
        const l = n.flags;
        if (l & 4096) {
          if (!a) {
            const u = nae(n), p = f2[u];
            return p !== void 0 ? p : f2[u] = uV(n, !0);
          }
          a = !1;
        }
        if (l & 368)
          n = n.antecedent;
        else if (l & 512) {
          const u = cV(n.node);
          if (u) {
            const p = a_(u);
            if (p && p.kind === 3 && !p.type) {
              const g = n.node.arguments[p.parameterIndex];
              if (g && KP(g))
                return !1;
            }
            if (ys(u).flags & 131072)
              return !1;
          }
          n = n.antecedent;
        } else {
          if (l & 4)
            return kt(n.antecedents, (u) => uV(u, !1));
          if (l & 8) {
            const u = n.antecedents;
            if (u === void 0 || u.length === 0)
              return !1;
            n = u[0];
          } else if (l & 128) {
            if (n.clauseStart === n.clauseEnd && Pke(n.switchStatement))
              return !1;
            n = n.antecedent;
          } else if (l & 1024) {
            pn = void 0;
            const u = n.target, p = u.antecedents;
            u.antecedents = n.antecedents;
            const g = uV(n.antecedent, !1);
            return u.antecedents = p, g;
          } else
            return !(l & 1);
        }
      }
    }
    function dV(n, a) {
      for (; ; ) {
        const l = n.flags;
        if (l & 4096) {
          if (!a) {
            const u = nae(n), p = Z1[u];
            return p !== void 0 ? p : Z1[u] = dV(n, !0);
          }
          a = !1;
        }
        if (l & 496)
          n = n.antecedent;
        else if (l & 512) {
          if (n.node.expression.kind === 106)
            return !0;
          n = n.antecedent;
        } else {
          if (l & 4)
            return Yn(n.antecedents, (u) => dV(u, !1));
          if (l & 8)
            n = n.antecedents[0];
          else if (l & 1024) {
            const u = n.target, p = u.antecedents;
            u.antecedents = n.antecedents;
            const g = dV(n.antecedent, !1);
            return u.antecedents = p, g;
          } else
            return !!(l & 1);
        }
      }
    }
    function sIe(n) {
      switch (n.kind) {
        case 79:
          if (!lx(n)) {
            const a = w_(n);
            return OL(a) || Aq(a) && !fV(a);
          }
          break;
        case 208:
        case 209:
          return sIe(n.expression) && _p(Jr(n).resolvedSymbol || an);
      }
      return !1;
    }
    function N0(n, a, l = a, u, p = ((g) => (g = ai(n, IN)) == null ? void 0 : g.flowNode)()) {
      let g, x = !1, R = 0;
      if (Ji)
        return Ce;
      if (!p)
        return a;
      tr++;
      const M = qr, J = GE(Ne(p));
      qr = M;
      const $ = ti(J) & 256 && aIe(n) ? Nn : zP(J);
      if ($ === $n || n.parent && n.parent.kind === 232 && !($.flags & 131072) && l_($, 2097152).flags & 131072)
        return a;
      return $ === j ? he : $;
      function ge() {
        return x ? g : (x = !0, g = aV(n, a, l, u));
      }
      function Ne(bt) {
        var Ft;
        if (R === 2e3)
          return (Ft = bi) == null || Ft.instant(bi.Phase.CheckTypes, "getTypeAtFlowNode_DepthLimit", { flowId: bt.id }), Ji = !0, wet(n), Ce;
        R++;
        let en;
        for (; ; ) {
          const $t = bt.flags;
          if ($t & 4096) {
            for (let zn = M; zn < qr; zn++)
              if (Q1[zn] === bt)
                return R--, t0[zn];
            en = bt;
          }
          let kn;
          if ($t & 16) {
            if (kn = _t(bt), !kn) {
              bt = bt.antecedent;
              continue;
            }
          } else if ($t & 512) {
            if (kn = Mn(bt), !kn) {
              bt = bt.antecedent;
              continue;
            }
          } else if ($t & 96)
            kn = Kn(bt);
          else if ($t & 128)
            kn = gn(bt);
          else if ($t & 12) {
            if (bt.antecedents.length === 1) {
              bt = bt.antecedents[0];
              continue;
            }
            kn = $t & 4 ? xn(bt) : yr(bt);
          } else if ($t & 256) {
            if (kn = An(bt), !kn) {
              bt = bt.antecedent;
              continue;
            }
          } else if ($t & 1024) {
            const zn = bt.target, sa = zn.antecedents;
            zn.antecedents = bt.antecedents, kn = Ne(bt.antecedent), zn.antecedents = sa;
          } else if ($t & 2) {
            const zn = bt.node;
            if (zn && zn !== u && n.kind !== 208 && n.kind !== 209 && n.kind !== 108) {
              bt = zn.flowNode;
              continue;
            }
            kn = l;
          } else
            kn = zD(a);
          return en && (Q1[qr] = en, t0[qr] = kn, qr++), R--, kn;
        }
      }
      function De(bt) {
        const Ft = bt.node;
        return sae(Ft.kind === 257 || Ft.kind === 205 ? ZLe(Ft) : WP(Ft), n);
      }
      function _t(bt) {
        const Ft = bt.node;
        if (Kc(n, Ft)) {
          if (!JP(bt))
            return $n;
          if (pT(Ft) === 2) {
            const en = Ne(bt.antecedent);
            return J2(dv(GE(en)), q2(en));
          }
          if (a === yt || a === Nn) {
            if (het(Ft))
              return oae(gt);
            const en = jb(De(bt));
            return xo(en, a) ? en : Dt;
          }
          return a.flags & 1048576 ? oet(a, De(bt)) : a;
        }
        if (jLe(n, Ft)) {
          if (!JP(bt))
            return $n;
          if (Ki(Ft) && (fr(Ft) || ug(Ft))) {
            const en = gN(Ft);
            if (en && (en.kind === 215 || en.kind === 216))
              return Ne(bt.antecedent);
          }
          return a;
        }
        if (Ki(Ft) && Ft.parent.parent.kind === 246 && (Kc(n, Ft.parent.parent.expression) || AS(Ft.parent.parent.expression, n)))
          return Iae(zP(GE(Ne(bt.antecedent))));
      }
      function Bt(bt, Ft) {
        const en = js(Ft, !0);
        if (en.kind === 95)
          return $n;
        if (en.kind === 223) {
          if (en.operatorToken.kind === 55)
            return Bt(Bt(bt, en.left), en.right);
          if (en.operatorToken.kind === 56)
            return Qr([Bt(bt, en.left), Bt(bt, en.right)]);
        }
        return Di(bt, en, !0);
      }
      function Mn(bt) {
        const Ft = cV(bt.node);
        if (Ft) {
          const en = a_(Ft);
          if (en && (en.kind === 2 || en.kind === 3)) {
            const $t = Ne(bt.antecedent), kn = zP(GE($t)), zn = en.type ? Ra(kn, en, bt.node, !0) : en.kind === 3 && en.parameterIndex >= 0 && en.parameterIndex < bt.node.arguments.length ? Bt(kn, bt.node.arguments[en.parameterIndex]) : kn;
            return zn === kn ? $t : J2(zn, q2($t));
          }
          if (ys(Ft).flags & 131072)
            return $n;
        }
      }
      function An(bt) {
        if (a === yt || a === Nn) {
          const Ft = bt.node, en = Ft.kind === 210 ? Ft.expression.expression : Ft.left.expression;
          if (Kc(n, Hb(en))) {
            const $t = Ne(bt.antecedent), kn = GE($t);
            if (ti(kn) & 256) {
              let zn = kn;
              if (Ft.kind === 210)
                for (const sa of Ft.arguments)
                  zn = iIe(zn, sa);
              else {
                const sa = _4(Ft.left.argumentExpression);
                Mc(sa, 296) && (zn = iIe(zn, Ft.right));
              }
              return zn === kn ? $t : J2(zn, q2($t));
            }
            return $t;
          }
        }
      }
      function Kn(bt) {
        const Ft = Ne(bt.antecedent), en = GE(Ft);
        if (en.flags & 131072)
          return Ft;
        const $t = (bt.flags & 32) !== 0, kn = zP(en), zn = Di(kn, bt.node, $t);
        return zn === kn ? Ft : J2(zn, q2(Ft));
      }
      function gn(bt) {
        const Ft = bt.switchStatement.expression, en = Ne(bt.antecedent);
        let $t = GE(en);
        if (Kc(n, Ft))
          $t = Zo($t, bt.switchStatement, bt.clauseStart, bt.clauseEnd);
        else if (Ft.kind === 218 && Kc(n, Ft.expression))
          $t = Ao($t, bt.switchStatement, bt.clauseStart, bt.clauseEnd);
        else {
          W && (AS(Ft, n) ? $t = na($t, bt.switchStatement, bt.clauseStart, bt.clauseEnd, (zn) => !(zn.flags & 163840)) : Ft.kind === 218 && AS(Ft.expression, n) && ($t = na($t, bt.switchStatement, bt.clauseStart, bt.clauseEnd, (zn) => !(zn.flags & 131072 || zn.flags & 128 && zn.value === "undefined"))));
          const kn = qn(Ft, $t);
          kn && ($t = ma($t, kn, bt.switchStatement, bt.clauseStart, bt.clauseEnd));
        }
        return J2($t, q2(en));
      }
      function xn(bt) {
        const Ft = [];
        let en = !1, $t = !1, kn;
        for (const zn of bt.antecedents) {
          if (!kn && zn.flags & 128 && zn.clauseStart === zn.clauseEnd) {
            kn = zn;
            continue;
          }
          const sa = Ne(zn), yi = GE(sa);
          if (yi === a && a === l)
            return yi;
          d_(Ft, yi), LD(yi, a) || (en = !0), q2(sa) && ($t = !0);
        }
        if (kn) {
          const zn = Ne(kn), sa = GE(zn);
          if (!(sa.flags & 131072) && !jr(Ft, sa) && !Pke(kn.switchStatement)) {
            if (sa === a && a === l)
              return sa;
            Ft.push(sa), LD(sa, a) || (en = !0), q2(zn) && ($t = !0);
          }
        }
        return J2(ln(Ft, en ? 2 : 1), $t);
      }
      function yr(bt) {
        const Ft = nae(bt), en = Cg[Ft] || (Cg[Ft] = /* @__PURE__ */ new Map()), $t = ge();
        if (!$t)
          return a;
        const kn = en.get($t);
        if (kn)
          return kn;
        for (let ur = Tn; ur < Hn; ur++)
          if (iS[ur] === bt && Y1[ur] === $t && $1[ur].length)
            return J2(ln($1[ur], 1), !0);
        const zn = [];
        let sa = !1, yi;
        for (const ur of bt.antecedents) {
          let ei;
          if (!yi)
            ei = yi = Ne(ur);
          else {
            iS[Hn] = bt, Y1[Hn] = $t, $1[Hn] = zn, Hn++;
            const Sa = Aa;
            Aa = void 0, ei = Ne(ur), Aa = Sa, Hn--;
            const cs = en.get($t);
            if (cs)
              return cs;
          }
          const vr = GE(ei);
          if (d_(zn, vr), LD(vr, a) || (sa = !0), vr === a)
            break;
        }
        const yn = ln(zn, sa ? 2 : 1);
        return q2(yi) ? J2(yn, !0) : (en.set($t, yn), yn);
      }
      function ln(bt, Ft) {
        if (Let(bt))
          return oae(Qr(jt(bt, Cet)));
        const en = JLe(Qr(_a(bt, zP), Ft));
        return en !== a && en.flags & a.flags & 1048576 && es(en.types, a.types) ? a : en;
      }
      function Gn(bt) {
        if (Xa(n) || lC(n) || B_(n)) {
          if (je(bt)) {
            const en = w_(bt).valueDeclaration;
            if (en && (_s(en) || Ba(en)) && n === en.parent && !en.initializer && !en.dotDotDotToken)
              return en;
          }
        } else if (ll(bt)) {
          if (Kc(n, bt.expression))
            return bt;
        } else if (je(bt)) {
          const Ft = w_(bt);
          if (OL(Ft)) {
            const en = Ft.valueDeclaration;
            if (Ki(en) && !en.type && en.initializer && ll(en.initializer) && Kc(n, en.initializer.expression))
              return en.initializer;
            if (_s(en) && !en.initializer) {
              const $t = en.parent.parent;
              if (Ki($t) && !$t.type && $t.initializer && (je($t.initializer) || ll($t.initializer)) && Kc(n, $t.initializer))
                return en;
            }
          }
        }
      }
      function qn(bt, Ft) {
        const en = a.flags & 1048576 ? a : Ft;
        if (en.flags & 1048576) {
          const $t = Gn(bt);
          if ($t) {
            const kn = ME($t);
            if (kn && AD(en, kn))
              return $t;
          }
        }
      }
      function Zr(bt, Ft, en) {
        const $t = ME(Ft);
        if ($t === void 0)
          return bt;
        const kn = yu(Ft), zn = W && (kn || efe(Ft)) && pl(bt, 98304);
        let sa = fc(zn ? l_(bt, 2097152) : bt, $t);
        if (!sa)
          return bt;
        sa = zn && kn ? Qg(sa) : sa;
        const yi = en(sa);
        return _c(bt, (yn) => {
          const ur = _P(yn, $t);
          return !(ur.flags & 131072) && !(yi.flags & 131072) && NP(yi, ur);
        });
      }
      function ri(bt, Ft, en, $t, kn) {
        if ((en === 36 || en === 37) && bt.flags & 1048576) {
          const zn = jP(bt);
          if (zn && zn === ME(Ft)) {
            const sa = HP(bt, Du($t));
            if (sa)
              return en === (kn ? 36 : 37) ? sa : dp(fc(sa, zn) || he) ? sV(bt, sa) : bt;
          }
        }
        return Zr(bt, Ft, (zn) => sr(zn, en, $t, kn));
      }
      function ma(bt, Ft, en, $t, kn) {
        if ($t < kn && bt.flags & 1048576 && jP(bt) === ME(Ft)) {
          const zn = oV(en).slice($t, kn), sa = Qr(jt(zn, (yi) => HP(bt, yi) || he));
          if (sa !== he)
            return sa;
        }
        return Zr(bt, Ft, (zn) => Zo(zn, en, $t, kn));
      }
      function Qa(bt, Ft, en) {
        if (Kc(n, Ft))
          return FE(bt, en ? 4194304 : 8388608);
        W && en && AS(Ft, n) && (bt = FE(bt, 2097152));
        const $t = qn(Ft, bt);
        return $t ? Zr(bt, $t, (kn) => l_(kn, en ? 4194304 : 8388608)) : bt;
      }
      function Ec(bt, Ft, en) {
        const $t = uo(bt, Ft);
        return $t ? !!($t.flags & 16777216) || en : !!P2(bt, Ft) || !en;
      }
      function Wf(bt, Ft, en) {
        const $t = _m(Ft);
        if (Qh(bt, (zn) => Ec(zn, $t, !0)))
          return _c(bt, (zn) => Ec(zn, $t, en));
        if (en) {
          const zn = N$e();
          if (zn)
            return wo([bt, G2(zn, [Ft, he])]);
        }
        return bt;
      }
      function Ef(bt, Ft, en) {
        switch (Ft.operatorToken.kind) {
          case 63:
          case 75:
          case 76:
          case 77:
            return Qa(Di(bt, Ft.right, en), Ft.left, en);
          case 34:
          case 35:
          case 36:
          case 37:
            const $t = Ft.operatorToken.kind, kn = Hb(Ft.left), zn = Hb(Ft.right);
            if (kn.kind === 218 && xs(zn))
              return Zi(bt, kn, $t, zn, en);
            if (zn.kind === 218 && xs(kn))
              return Zi(bt, zn, $t, kn, en);
            if (Kc(n, kn))
              return sr(bt, $t, zn, en);
            if (Kc(n, zn))
              return sr(bt, $t, kn, en);
            W && (AS(kn, n) ? bt = Un(bt, $t, zn, en) : AS(zn, n) && (bt = Un(bt, $t, kn, en)));
            const sa = qn(kn, bt);
            if (sa)
              return ri(bt, sa, $t, zn, en);
            const yi = qn(zn, bt);
            if (yi)
              return ri(bt, yi, $t, kn, en);
            if (Ku(kn))
              return dt(bt, $t, zn, en);
            if (Ku(zn))
              return dt(bt, $t, kn, en);
            break;
          case 102:
            return Ee(bt, Ft, en);
          case 101:
            if (Ni(Ft.left))
              return oa(bt, Ft, en);
            const yn = Hb(Ft.right), ur = Du(Ft.left);
            if (ur.flags & 8576) {
              if (TD(bt) && ll(n) && Kc(n.expression, yn) && ME(n) === _m(ur))
                return l_(bt, en ? 524288 : 65536);
              if (Kc(n, yn))
                return Wf(bt, ur, en);
            }
            break;
          case 27:
            return Di(bt, Ft.right, en);
          case 55:
            return en ? Di(Di(bt, Ft.left, !0), Ft.right, !0) : Qr([Di(bt, Ft.left, !1), Di(bt, Ft.right, !1)]);
          case 56:
            return en ? Qr([Di(bt, Ft.left, !0), Di(bt, Ft.right, !0)]) : Di(Di(bt, Ft.left, !1), Ft.right, !1);
        }
        return bt;
      }
      function oa(bt, Ft, en) {
        const $t = Hb(Ft.right);
        if (!Kc(n, $t))
          return bt;
        D.assertNode(Ft.left, Ni);
        const kn = SV(Ft.left);
        if (kn === void 0)
          return bt;
        const zn = kn.parent, sa = gc(D.checkDefined(kn.valueDeclaration, "should always have a declaration")) ? ar(zn) : Us(zn);
        return Qn(bt, sa, en, !0);
      }
      function Un(bt, Ft, en, $t) {
        const kn = Ft === 34 || Ft === 36, zn = Ft === 34 || Ft === 35 ? 98304 : 32768, sa = Du(en);
        return kn !== $t && lh(sa, (yn) => !!(yn.flags & zn)) || kn === $t && lh(sa, (yn) => !(yn.flags & (3 | zn))) ? FE(bt, 2097152) : bt;
      }
      function sr(bt, Ft, en, $t) {
        if (bt.flags & 1)
          return bt;
        (Ft === 35 || Ft === 37) && ($t = !$t);
        const kn = Du(en), zn = Ft === 34 || Ft === 35;
        if (kn.flags & 98304) {
          if (!W)
            return bt;
          const sa = zn ? $t ? 262144 : 2097152 : kn.flags & 65536 ? $t ? 131072 : 1048576 : $t ? 65536 : 524288;
          return FE(bt, sa);
        }
        if ($t) {
          if (!zn && (bt.flags & 2 || Qh(bt, Yh))) {
            if (kn.flags & 201457660 || Yh(kn))
              return kn;
            if (kn.flags & 524288)
              return oi;
          }
          const sa = _c(bt, (yi) => NP(yi, kn) || zn && kZe(yi, kn));
          return rIe(sa, kn);
        }
        return dp(kn) ? _c(bt, (sa) => !(TLe(sa) && NP(sa, kn))) : bt;
      }
      function Zi(bt, Ft, en, $t, kn) {
        (en === 35 || en === 37) && (kn = !kn);
        const zn = Hb(Ft.expression);
        if (!Kc(n, zn)) {
          W && AS(zn, n) && kn === ($t.text !== "undefined") && (bt = FE(bt, 2097152));
          const sa = qn(zn, bt);
          return sa ? Zr(bt, sa, (yi) => Ga(yi, $t, kn)) : bt;
        }
        return Ga(bt, $t, kn);
      }
      function Ga(bt, Ft, en) {
        return en ? Os(bt, Ft.text) : FE(bt, j5.get(Ft.text) || 32768);
      }
      function na(bt, Ft, en, $t, kn) {
        return en !== $t && Yn(oV(Ft).slice(en, $t), kn) ? l_(bt, 2097152) : bt;
      }
      function Zo(bt, Ft, en, $t) {
        const kn = oV(Ft);
        if (!kn.length)
          return bt;
        const zn = kn.slice(en, $t), sa = en === $t || jr(zn, gt);
        if (bt.flags & 2 && !sa) {
          let ei;
          for (let vr = 0; vr < zn.length; vr += 1) {
            const Sa = zn[vr];
            if (Sa.flags & 201457660)
              ei !== void 0 && ei.push(Sa);
            else if (Sa.flags & 524288)
              ei === void 0 && (ei = zn.slice(0, vr)), ei.push(oi);
            else
              return bt;
          }
          return Qr(ei === void 0 ? zn : ei);
        }
        const yi = Qr(zn), yn = yi.flags & 131072 ? gt : rIe(_c(bt, (ei) => NP(yi, ei)), yi);
        if (!sa)
          return yn;
        const ur = _c(bt, (ei) => !(TLe(ei) && jr(kn, yd(EZe(ei)))));
        return yn.flags & 131072 ? ur : Qr([yn, ur]);
      }
      function Os(bt, Ft) {
        switch (Ft) {
          case "string":
            return gl(bt, ue, 1);
          case "number":
            return gl(bt, mt, 2);
          case "bigint":
            return gl(bt, zt, 4);
          case "boolean":
            return gl(bt, Re, 8);
          case "symbol":
            return gl(bt, q, 16);
          case "object":
            return bt.flags & 1 ? bt : Qr([gl(bt, oi, 32), gl(bt, Sn, 131072)]);
          case "function":
            return bt.flags & 1 ? bt : gl(bt, dl, 64);
          case "undefined":
            return gl(bt, He, 65536);
        }
        return gl(bt, oi, 128);
      }
      function gl(bt, Ft, en) {
        return $s(bt, ($t) => ym($t, Ft, tp) ? wu($t) & en ? $t : gt : cv(Ft, $t) ? Ft : wu($t) & en ? wo([$t, Ft]) : gt);
      }
      function Ao(bt, Ft, en, $t) {
        const kn = tIe(Ft);
        if (!kn)
          return bt;
        const zn = vi(Ft.caseBlock.clauses, (yn) => yn.kind === 293);
        if (en === $t || zn >= en && zn < $t) {
          const yn = Oke(en, $t, kn);
          return _c(bt, (ur) => (wu(ur) & yn) === yn);
        }
        const yi = kn.slice(en, $t);
        return Qr(jt(yi, (yn) => yn ? Os(bt, yn) : gt));
      }
      function Ku(bt) {
        return (Fr(bt) && Mr(bt.name) === "constructor" || cl(bt) && xs(bt.argumentExpression) && bt.argumentExpression.text === "constructor") && Kc(n, bt.expression);
      }
      function dt(bt, Ft, en, $t) {
        if ($t ? Ft !== 34 && Ft !== 36 : Ft !== 35 && Ft !== 37)
          return bt;
        const kn = Du(en);
        if (!woe(kn) && !S0(kn))
          return bt;
        const zn = uo(kn, "prototype");
        if (!zn)
          return bt;
        const sa = ar(zn), yi = Ss(sa) ? void 0 : sa;
        if (!yi || yi === Ya || yi === dl)
          return bt;
        if (Ss(bt))
          return yi;
        return _c(bt, (ur) => yn(ur, yi));
        function yn(ur, ei) {
          return ur.flags & 524288 && ti(ur) & 1 || ei.flags & 524288 && ti(ei) & 1 ? ur.symbol === ei.symbol : cv(ur, ei);
        }
      }
      function Ee(bt, Ft, en) {
        const $t = Hb(Ft.left);
        if (!Kc(n, $t))
          return en && W && AS($t, n) ? FE(bt, 2097152) : bt;
        const kn = Du(Ft.right);
        if (!Vb(kn, dl))
          return bt;
        const zn = $s(kn, er);
        return Ss(bt) && (zn === Ya || zn === dl) || !en && !(zn.flags & 524288 && !Yh(zn)) ? bt : Qn(bt, zn, en, !0);
      }
      function er(bt) {
        const Ft = fc(bt, "prototype");
        if (Ft && !Ss(Ft))
          return Ft;
        const en = za(bt, 1);
        return en.length ? Qr(jt(en, ($t) => ys(dD($t)))) : pa;
      }
      function Qn(bt, Ft, en, $t) {
        var kn;
        const zn = bt.flags & 1048576 ? `N${ku(bt)},${ku(Ft)},${(en ? 1 : 0) | ($t ? 2 : 0)}` : void 0;
        return (kn = mb(zn)) != null ? kn : kg(zn, Tr(bt, Ft, en, $t));
      }
      function Tr(bt, Ft, en, $t) {
        if (!en) {
          if ($t)
            return _c(bt, (yn) => !Vb(yn, Ft));
          const yi = Qn(bt, Ft, !0, !1);
          return _c(bt, (yn) => !LD(yn, yi));
        }
        if (bt.flags & 3)
          return Ft;
        const kn = $t ? Vb : cv, zn = bt.flags & 1048576 ? jP(bt) : void 0, sa = $s(Ft, (yi) => {
          const yn = zn && fc(yi, zn), ur = yn && HP(bt, yn), ei = $s(ur || bt, $t ? (vr) => Vb(vr, yi) ? vr : Vb(yi, vr) ? yi : gt : (vr) => aLe(vr, yi) ? vr : aLe(yi, vr) ? yi : cv(vr, yi) ? vr : cv(yi, vr) ? yi : gt);
          return ei.flags & 131072 ? $s(bt, (vr) => pl(vr, 465829888) && kn(yi, qu(vr) || he) ? wo([vr, yi]) : gt) : ei;
        });
        return sa.flags & 131072 ? cv(Ft, bt) ? Ft : xo(bt, Ft) ? bt : xo(Ft, bt) ? Ft : wo([bt, Ft]) : sa;
      }
      function wr(bt, Ft, en) {
        if (qLe(Ft, n)) {
          const $t = en || !tT(Ft) ? cV(Ft) : void 0, kn = $t && a_($t);
          if (kn && (kn.kind === 0 || kn.kind === 1))
            return Ra(bt, kn, Ft, en);
        }
        if (TD(bt) && ll(n) && Fr(Ft.expression)) {
          const $t = Ft.expression;
          if (Kc(n.expression, Hb($t.expression)) && je($t.name) && $t.name.escapedText === "hasOwnProperty" && Ft.arguments.length === 1) {
            const kn = Ft.arguments[0];
            if (xs(kn) && ME(n) === sl(kn.text))
              return l_(bt, en ? 524288 : 65536);
          }
        }
        return bt;
      }
      function Ra(bt, Ft, en, $t) {
        if (Ft.type && !(Ss(bt) && (Ft.type === Ya || Ft.type === dl))) {
          const kn = ket(Ft, en);
          if (kn) {
            if (Kc(n, kn))
              return Qn(bt, Ft.type, $t, !1);
            W && $t && AS(kn, n) && !(wu(Ft.type) & 65536) && (bt = FE(bt, 2097152));
            const zn = qn(kn, bt);
            if (zn)
              return Zr(bt, zn, (sa) => Qn(sa, Ft.type, $t, !1));
          }
        }
        return bt;
      }
      function Di(bt, Ft, en) {
        if (NM(Ft) || br(Ft.parent) && (Ft.parent.operatorToken.kind === 60 || Ft.parent.operatorToken.kind === 77) && Ft.parent.left === Ft)
          return Lr(bt, Ft, en);
        switch (Ft.kind) {
          case 79:
            if (!Kc(n, Ft) && k < 5) {
              const $t = w_(Ft);
              if (OL($t)) {
                const kn = $t.valueDeclaration;
                if (kn && Ki(kn) && !kn.type && kn.initializer && sIe(n)) {
                  k++;
                  const zn = Di(bt, kn.initializer, en);
                  return k--, zn;
                }
              }
            }
          case 108:
          case 106:
          case 208:
          case 209:
            return Qa(bt, Ft, en);
          case 210:
            return wr(bt, Ft, en);
          case 214:
          case 232:
            return Di(bt, Ft.expression, en);
          case 223:
            return Ef(bt, Ft, en);
          case 221:
            if (Ft.operator === 53)
              return Di(bt, Ft.operand, !en);
            break;
        }
        return bt;
      }
      function Lr(bt, Ft, en) {
        if (Kc(n, Ft))
          return FE(bt, en ? 2097152 : 262144);
        const $t = qn(Ft, bt);
        return $t ? Zr(bt, $t, (kn) => l_(kn, en ? 2097152 : 262144)) : bt;
      }
    }
    function Det(n, a) {
      if (n = Np(n), (a.kind === 79 || a.kind === 80) && (tk(a) && (a = a.parent), dg(a) && (!bh(a) || ok(a)))) {
        const l = Du(a);
        if (Np(Jr(a).resolvedSymbol) === n)
          return l;
      }
      return _g(a) && hy(a.parent) && F(a.parent) ? ea(a.parent.symbol) : E0(n);
    }
    function ID(n) {
      return nr(n.parent, (a) => Ka(a) && !dT(a) || a.kind === 265 || a.kind === 308 || a.kind === 169);
    }
    function fV(n) {
      if (!n.valueDeclaration)
        return !1;
      const a = Fm(n.valueDeclaration).parent, l = Jr(a);
      return l.flags & 524288 || (l.flags |= 524288, Ret(a) || lIe(a)), n.isAssigned || !1;
    }
    function Ret(n) {
      return !!nr(n.parent, (a) => (Ka(a) || xC(a)) && !!(Jr(a).flags & 524288));
    }
    function lIe(n) {
      if (n.kind === 79) {
        if (bh(n)) {
          const a = w_(n);
          Aq(a) && (a.isAssigned = !0);
        }
      } else
        Ma(n, lIe);
    }
    function OL(n) {
      return n.flags & 3 && (bV(n) & 2) !== 0;
    }
    function Net(n) {
      const a = Jr(n);
      if (a.parameterInitializerContainsUndefined === void 0) {
        if (!Bf(n, 9))
          return gL(n.symbol), !0;
        const l = !!(wu(FD(n, 0)) & 16777216);
        if (!i_())
          return gL(n.symbol), !0;
        a.parameterInitializerContainsUndefined = l;
      }
      return a.parameterInitializerContainsUndefined;
    }
    function Oet(n, a) {
      return W && a.kind === 166 && a.initializer && wu(n) & 16777216 && !Net(a) ? l_(n, 524288) : n;
    }
    function Pet(n, a) {
      const l = a.parent;
      return l.kind === 208 || l.kind === 163 || l.kind === 210 && l.expression === a || l.kind === 209 && l.expression === a && !(Qh(n, uIe) && A0(Du(l.argumentExpression)));
    }
    function cIe(n) {
      return n.flags & 2097152 ? kt(n.types, cIe) : !!(n.flags & 465829888 && iv(n).flags & 1146880);
    }
    function uIe(n) {
      return n.flags & 2097152 ? kt(n.types, uIe) : !!(n.flags & 465829888 && !pl(iv(n), 98304));
    }
    function Met(n, a) {
      const l = (je(n) || Fr(n) || cl(n)) && !((kh(n.parent) || wx(n.parent)) && n.parent.tagName === n) && (a && a & 64 ? ad(n, 8) : ad(n, void 0));
      return l && !CL(l);
    }
    function sae(n, a, l) {
      return !(l && l & 2) && Qh(n, cIe) && (Pet(n, a) || Met(a, l)) ? $s(n, iv) : n;
    }
    function dIe(n) {
      return !!nr(n, (a) => {
        const l = a.parent;
        return l === void 0 ? "quit" : Bl(l) ? l.expression === a && zl(a) : dd(l) ? l.name === a || l.propertyName === a : !1;
      });
    }
    function _V(n, a) {
      if (!Y.verbatimModuleSyntax && Vy(n, 111551) && !RL(a) && !Rd(n, 111551)) {
        const l = nc(n);
        uu(l) & 1160127 && (j_(Y) || C1(Y) && dIe(a) || !qD(Np(l)) ? Lb(n) : Ib(n));
      }
    }
    function Fet(n, a) {
      var l;
      const u = ar(n), p = n.valueDeclaration;
      if (p) {
        if (_s(p) && !p.initializer && !p.dotDotDotToken && p.parent.elements.length >= 2) {
          const g = p.parent.parent;
          if (g.kind === 257 && hp(p) & 2 || g.kind === 166) {
            const x = Jr(g);
            if (!(x.flags & 16777216)) {
              x.flags |= 16777216;
              const R = I2(g, 0), M = R && $s(R, iv);
              if (x.flags &= -16777217, M && M.flags & 1048576 && !(g.kind === 166 && fV(n))) {
                const J = p.parent, $ = N0(J, M, M, void 0, a.flowNode);
                return $.flags & 131072 ? gt : xi(p, $);
              }
            }
          }
        }
        if (Ba(p) && !p.type && !p.initializer && !p.dotDotDotToken) {
          const g = p.parent;
          if (g.parameters.length >= 2 && jU(g)) {
            const x = wD(g);
            if (x && x.parameters.length === 1 && Eu(x)) {
              const R = TL(Yi(ar(x.parameters[0]), (l = CS(g)) == null ? void 0 : l.nonFixingMapper));
              if (R.flags & 1048576 && lh(R, Fo) && !fV(n)) {
                const M = N0(g, R, R, void 0, a.flowNode), J = g.parameters.indexOf(p) - (S1(g) ? 1 : 0);
                return Md(M, Bp(J));
              }
            }
          }
        }
      }
      return u;
    }
    function Bet(n, a) {
      if (lx(n))
        return XP(n);
      const l = w_(n);
      if (l === an)
        return Ce;
      if (l === Ct) {
        if (KIe(n))
          return Ke(n, _.arguments_cannot_be_referenced_in_property_initializers), Ce;
        const Kn = Cf(n);
        return P < 2 && (Kn.kind === 216 ? Ke(n, _.The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression) : Yr(Kn, 512) && Ke(n, _.The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method)), Jr(Kn).flags |= 512, ar(l);
      }
      Uet(n) && _V(l, n);
      const u = Np(l), p = Jwe(u, n);
      o0(p) && lie(n, p) && p.declarations && wg(n, p.declarations, n.escapedText);
      let g = u.valueDeclaration;
      if (g && u.flags & 32) {
        if (g.kind === 260 && UA(re, g)) {
          let Kn = xc(n);
          for (; Kn !== void 0; ) {
            if (Kn === g && Kn.name !== n) {
              Jr(g).flags |= 1048576, Jr(n).flags |= 2097152;
              break;
            }
            Kn = xc(Kn);
          }
        } else if (g.kind === 228) {
          let Kn = Sd(n, !1, !1);
          for (; Kn.kind !== 308; ) {
            if (Kn.parent === g) {
              (to(Kn) && Ja(Kn) || Il(Kn)) && (Jr(g).flags |= 1048576, Jr(n).flags |= 2097152);
              break;
            }
            Kn = Sd(Kn, !1, !1);
          }
        }
      }
      Het(n, l);
      let x = Fet(u, n);
      const R = pT(n);
      if (R) {
        if (!(u.flags & 3) && !(fr(n) && u.flags & 512)) {
          const Kn = u.flags & 384 ? _.Cannot_assign_to_0_because_it_is_an_enum : u.flags & 32 ? _.Cannot_assign_to_0_because_it_is_a_class : u.flags & 1536 ? _.Cannot_assign_to_0_because_it_is_a_namespace : u.flags & 16 ? _.Cannot_assign_to_0_because_it_is_a_function : u.flags & 2097152 ? _.Cannot_assign_to_0_because_it_is_an_import : _.Cannot_assign_to_0_because_it_is_not_a_variable;
          return Ke(n, Kn, S(l)), Ce;
        }
        if (_p(u))
          return u.flags & 3 ? Ke(n, _.Cannot_assign_to_0_because_it_is_a_constant, S(l)) : Ke(n, _.Cannot_assign_to_0_because_it_is_a_read_only_property, S(l)), Ce;
      }
      const M = u.flags & 2097152;
      if (u.flags & 3) {
        if (R === 1)
          return x;
      } else if (M)
        g = md(l);
      else
        return x;
      if (!g)
        return x;
      x = sae(x, n, a);
      const J = Fm(g).kind === 166, $ = ID(g);
      let ge = ID(n);
      const Ne = ge !== $, De = n.parent && n.parent.parent && Ox(n.parent) && aae(n.parent.parent), _t = l.flags & 134217728;
      for (; ge !== $ && (ge.kind === 215 || ge.kind === 216 || o3(ge)) && (OL(u) && x !== Nn || J && !fV(u)); )
        ge = ID(ge);
      const Bt = J || M || Ne || De || _t || Get(n, g) || x !== yt && x !== Nn && (!W || (x.flags & 16387) !== 0 || RL(n) || ULe(n) || n.parent.kind === 278) || n.parent.kind === 232 || g.kind === 257 && g.exclamationToken || g.flags & 16777216, Mn = Bt ? J ? Oet(x, g) : x : x === yt || x === Nn ? He : Qg(x), An = N0(n, x, Mn, ge);
      if (!aIe(n) && (x === yt || x === Nn)) {
        if (An === yt || An === Nn)
          return Te && (Ke(ka(g), _.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined, S(l), ke(An)), Ke(n, _.Variable_0_implicitly_has_an_1_type, S(l), ke(An))), zD(An);
      } else if (!Bt && !LL(x) && LL(An))
        return Ke(n, _.Variable_0_is_used_before_being_assigned, S(l)), x;
      return R ? dv(An) : An;
    }
    function Get(n, a) {
      if (_s(a)) {
        const l = nr(n, _s);
        return l && Fm(l) === Fm(a);
      }
    }
    function Uet(n) {
      var a;
      const l = n.parent;
      if (l) {
        if (Fr(l) && l.expression === n || dd(l) && l.isTypeOnly)
          return !1;
        const u = (a = l.parent) == null ? void 0 : a.parent;
        if (u && eu(u) && u.isTypeOnly)
          return !1;
      }
      return !0;
    }
    function Vet(n, a) {
      return !!nr(n, (l) => l === a ? "quit" : Ka(l) || l.parent && to(l.parent) && !gc(l.parent) && l.parent.initializer === l);
    }
    function jet(n, a) {
      return nr(n, (l) => l === a ? "quit" : l === a.initializer || l === a.condition || l === a.incrementor || l === a.statement);
    }
    function lae(n) {
      return nr(n, (a) => !a || Lz(a) ? "quit" : Lv(a, !1));
    }
    function Het(n, a) {
      if (P >= 2 || !(a.flags & 34) || !a.valueDeclaration || qi(a.valueDeclaration) || a.valueDeclaration.parent.kind === 295)
        return;
      const l = Mm(a.valueDeclaration), u = Vet(n, l), p = lae(l);
      if (p) {
        if (u) {
          let g = !0;
          if (LT(l)) {
            const x = q0(a.valueDeclaration, 258);
            if (x && x.parent === l) {
              const R = jet(n.parent, l);
              if (R) {
                const M = Jr(R);
                M.flags |= 8192;
                const J = M.capturedBlockScopeBindings || (M.capturedBlockScopeBindings = []);
                d_(J, a), R === l.initializer && (g = !1);
              }
            }
          }
          g && (Jr(p).flags |= 4096);
        }
        if (LT(l)) {
          const g = q0(a.valueDeclaration, 258);
          g && g.parent === l && zet(n, l) && (Jr(a.valueDeclaration).flags |= 262144);
        }
        Jr(a.valueDeclaration).flags |= 32768;
      }
      u && (Jr(a.valueDeclaration).flags |= 16384);
    }
    function Wet(n, a) {
      const l = Jr(n);
      return !!l && jr(l.capturedBlockScopeBindings, Ir(a));
    }
    function zet(n, a) {
      let l = n;
      for (; l.parent.kind === 214; )
        l = l.parent;
      let u = !1;
      if (bh(l))
        u = !0;
      else if (l.parent.kind === 221 || l.parent.kind === 222) {
        const p = l.parent;
        u = p.operator === 45 || p.operator === 46;
      }
      return u ? !!nr(l, (p) => p === a ? "quit" : p === a.statement) : !1;
    }
    function cae(n, a) {
      if (Jr(n).flags |= 2, a.kind === 169 || a.kind === 173) {
        const l = a.parent;
        Jr(l).flags |= 4;
      } else
        Jr(a).flags |= 4;
    }
    function fIe(n) {
      return MA(n) ? n : Ka(n) ? void 0 : Ma(n, fIe);
    }
    function _Ie(n) {
      const a = Ir(n), l = Us(a);
      return ii(l) === Er;
    }
    function pIe(n, a, l) {
      const u = a.parent;
      E1(u) && !_Ie(u) && IN(n) && n.flowNode && !dV(n.flowNode, !1) && Ke(n, l);
    }
    function qet(n, a) {
      to(a) && gc(a) && re && a.initializer && CM(a.initializer, n.pos) && $f(a.parent) && Ke(n, _.Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class);
    }
    function XP(n) {
      const a = RL(n);
      let l = Sd(n, !0, !0), u = !1, p = !1;
      for (l.kind === 173 && pIe(n, l, _.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class); ; ) {
        if (l.kind === 216 && (l = Sd(l, !1, !p), u = !0), l.kind === 164) {
          l = Sd(l, !u, !1), p = !0;
          continue;
        }
        break;
      }
      if (qet(n, l), p)
        Ke(n, _.this_cannot_be_referenced_in_a_computed_property_name);
      else
        switch (l.kind) {
          case 264:
            Ke(n, _.this_cannot_be_referenced_in_a_module_or_namespace_body);
            break;
          case 263:
            Ke(n, _.this_cannot_be_referenced_in_current_location);
            break;
          case 173:
            mIe(n, l) && Ke(n, _.this_cannot_be_referenced_in_constructor_arguments);
            break;
        }
      !a && u && P < 2 && cae(n, l);
      const g = uae(n, !0, l);
      if (ee) {
        const x = ar(st);
        if (g === x && u)
          Ke(n, _.The_containing_arrow_function_captures_the_global_value_of_this);
        else if (!g) {
          const R = Ke(n, _.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation);
          if (!qi(l)) {
            const M = uae(l);
            M && M !== x && Xo(R, Nr(l, _.An_outer_value_of_this_is_shadowed_by_this_container));
          }
        }
      }
      return g || we;
    }
    function uae(n, a = !0, l = Sd(n, !1, !1)) {
      const u = fr(n);
      if (Ka(l) && (!_ae(n) || S1(l))) {
        let p = Kt(l) || u && Xet(l);
        if (!p) {
          const g = Ket(l);
          if (u && g) {
            const x = ga(g).symbol;
            x && x.members && x.flags & 16 && (p = Us(x).thisType);
          } else
            Up(l) && (p = Us(as(l.symbol)).thisType);
          p || (p = gIe(l));
        }
        if (p)
          return N0(n, p);
      }
      if (di(l.parent)) {
        const p = Ir(l.parent), g = Ja(l) ? ar(p) : Us(p).thisType;
        return N0(n, g);
      }
      if (qi(l))
        if (l.commonJsModuleIndicator) {
          const p = Ir(l);
          return p && ar(p);
        } else {
          if (l.externalModuleIndicator)
            return He;
          if (a)
            return ar(st);
        }
    }
    function Jet(n) {
      const a = Sd(n, !1, !1);
      if (Ka(a)) {
        const l = Mp(a);
        if (l.thisParameter)
          return lV(l.thisParameter);
      }
      if (di(a.parent)) {
        const l = Ir(a.parent);
        return Ja(a) ? ar(l) : Us(l).thisType;
      }
    }
    function Ket(n) {
      if (n.kind === 215 && br(n.parent) && Cl(n.parent) === 3)
        return n.parent.left.expression.expression;
      if (n.kind === 171 && n.parent.kind === 207 && br(n.parent.parent) && Cl(n.parent.parent) === 6)
        return n.parent.parent.left.expression;
      if (n.kind === 215 && n.parent.kind === 299 && n.parent.parent.kind === 207 && br(n.parent.parent.parent) && Cl(n.parent.parent.parent) === 6)
        return n.parent.parent.parent.left.expression;
      if (n.kind === 215 && zc(n.parent) && je(n.parent.name) && (n.parent.name.escapedText === "value" || n.parent.name.escapedText === "get" || n.parent.name.escapedText === "set") && Ls(n.parent.parent) && no(n.parent.parent.parent) && n.parent.parent.parent.arguments[2] === n.parent.parent && Cl(n.parent.parent.parent) === 9)
        return n.parent.parent.parent.arguments[0].expression;
      if (ac(n) && je(n.name) && (n.name.escapedText === "value" || n.name.escapedText === "get" || n.name.escapedText === "set") && Ls(n.parent) && no(n.parent.parent) && n.parent.parent.arguments[2] === n.parent && Cl(n.parent.parent) === 9)
        return n.parent.parent.arguments[0].expression;
    }
    function Xet(n) {
      const a = xv(n);
      if (a && a.kind === 320) {
        const u = a;
        if (u.parameters.length > 0 && u.parameters[0].name && u.parameters[0].name.escapedText === "this")
          return fi(u.parameters[0].type);
      }
      const l = wM(n);
      if (l && l.typeExpression)
        return fi(l.typeExpression);
    }
    function mIe(n, a) {
      return !!nr(n, (l) => Qs(l) ? "quit" : l.kind === 166 && l.parent === a);
    }
    function dae(n) {
      const a = n.parent.kind === 210 && n.parent.expression === n, l = uN(n, !0);
      let u = l, p = !1, g = !1;
      if (!a) {
        for (; u && u.kind === 216; )
          Yr(u, 512) && (g = !0), u = uN(u, !0), p = P < 2;
        u && Yr(u, 512) && (g = !0);
      }
      let x = 0;
      if (!u || !$(u)) {
        const ge = nr(n, (Ne) => Ne === u ? "quit" : Ne.kind === 164);
        return ge && ge.kind === 164 ? Ke(n, _.super_cannot_be_referenced_in_a_computed_property_name) : a ? Ke(n, _.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors) : !u || !u.parent || !(di(u.parent) || u.parent.kind === 207) ? Ke(n, _.super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions) : Ke(n, _.super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class), Ce;
      }
      if (!a && l.kind === 173 && pIe(n, u, _.super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class), Ja(u) || a ? (x = 32, !a && P >= 2 && P <= 8 && (to(u) || Il(u)) && rue(n.parent, (ge) => {
        (!qi(ge) || sf(ge)) && (Jr(ge).flags |= 8388608);
      })) : x = 16, Jr(n).flags |= x, u.kind === 171 && g && (ud(n.parent) && bh(n.parent) ? Jr(u).flags |= 256 : Jr(u).flags |= 128), p && cae(n.parent, u), u.parent.kind === 207)
        return P < 2 ? (Ke(n, _.super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher), Ce) : we;
      const R = u.parent;
      if (!E1(R))
        return Ke(n, _.super_can_only_be_referenced_in_a_derived_class), Ce;
      const M = Us(Ir(R)), J = M && Mo(M)[0];
      if (!J)
        return Ce;
      if (u.kind === 173 && mIe(n, u))
        return Ke(n, _.super_cannot_be_referenced_in_constructor_arguments), Ce;
      return x === 32 ? ii(M) : Uf(J, M.thisType);
      function $(ge) {
        return a ? ge.kind === 173 : di(ge.parent) || ge.parent.kind === 207 ? Ja(ge) ? ge.kind === 171 || ge.kind === 170 || ge.kind === 174 || ge.kind === 175 || ge.kind === 169 || ge.kind === 172 : ge.kind === 171 || ge.kind === 170 || ge.kind === 174 || ge.kind === 175 || ge.kind === 169 || ge.kind === 168 || ge.kind === 173 : !1;
      }
    }
    function Yet(n) {
      return (n.kind === 171 || n.kind === 174 || n.kind === 175) && n.parent.kind === 207 ? n.parent : n.kind === 215 && n.parent.kind === 299 ? n.parent.parent : void 0;
    }
    function hIe(n) {
      return ti(n) & 4 && n.target === xe ? hs(n)[0] : void 0;
    }
    function $et(n) {
      return $s(n, (a) => a.flags & 2097152 ? ze(a.types, hIe) : hIe(a));
    }
    function gIe(n) {
      if (n.kind === 216)
        return;
      if (jU(n)) {
        const l = wD(n);
        if (l) {
          const u = l.thisParameter;
          if (u)
            return ar(u);
        }
      }
      const a = fr(n);
      if (ee || a) {
        const l = Yet(n);
        if (l) {
          const p = Wb(l, void 0);
          let g = l, x = p;
          for (; x; ) {
            const R = $et(x);
            if (R)
              return Yi(R, zie(CS(l)));
            if (g.parent.kind !== 299)
              break;
            g = g.parent.parent, x = Wb(g, void 0);
          }
          return ef(p ? Zg(p) : Ql(l));
        }
        const u = Dv(n.parent);
        if (u.kind === 223 && u.operatorToken.kind === 63) {
          const p = u.left;
          if (ll(p)) {
            const { expression: g } = p;
            if (a && je(g)) {
              const x = Zn(u);
              if (x.commonJsModuleIndicator && w_(g) === x.symbol)
                return;
            }
            return ef(Ql(g));
          }
        }
      }
    }
    function yIe(n) {
      const a = n.parent;
      if (!jU(a))
        return;
      const l = dT(a);
      if (l && l.arguments) {
        const p = Vae(l), g = a.parameters.indexOf(n);
        if (n.dotDotDotToken)
          return Gae(p, g, p.length, we, void 0, 0);
        const x = Jr(l), R = x.resolvedSignature;
        x.resolvedSignature = Ks;
        const M = g < p.length ? jb(ga(p[g])) : n.initializer ? void 0 : Ze;
        return x.resolvedSignature = R, M;
      }
      const u = wD(a);
      if (u) {
        const p = a.parameters.indexOf(n) - (S1(a) ? 1 : 0);
        return n.dotDotDotToken && tl(a.parameters) === n ? ND(u, p) : VE(u, p);
      }
    }
    function fae(n, a) {
      const l = Zc(n) || (fr(n) ? Q3(n) : void 0);
      if (l)
        return fi(l);
      switch (n.kind) {
        case 166:
          return yIe(n);
        case 205:
          return Qet(n, a);
        case 169:
          if (Ja(n))
            return Zet(n, a);
      }
    }
    function Qet(n, a) {
      const l = n.parent.parent, u = n.propertyName || n.name, p = fae(l, a) || l.kind !== 205 && l.initializer && FD(l, n.dotDotDotToken ? 64 : 0);
      if (!p || Xa(u) || sN(u))
        return;
      if (l.name.kind === 204) {
        const x = NA(n.parent.elements, n);
        return x < 0 ? void 0 : SIe(p, x);
      }
      const g = Xg(u);
      if (qh(g)) {
        const x = _m(g);
        return fc(p, x);
      }
    }
    function Zet(n, a) {
      const l = vt(n.parent) && ad(n.parent, a);
      if (l)
        return UE(l, Ir(n).escapedName);
    }
    function ett(n, a) {
      const l = n.parent;
      if (kv(l) && n === l.initializer) {
        const u = fae(l, a);
        if (u)
          return u;
        if (!(a & 8) && Xa(l.name) && l.name.elements.length > 0)
          return ko(l.name, !0, !1);
      }
    }
    function ttt(n, a) {
      const l = Cf(n);
      if (l) {
        let u = pae(l, a);
        if (u) {
          const p = Vc(l);
          if (p & 1) {
            const g = (p & 2) !== 0;
            u.flags & 1048576 && (u = _c(u, (R) => !!qb(1, R, g)));
            const x = qb(1, u, (p & 2) !== 0);
            if (!x)
              return;
            u = x;
          }
          if (p & 2) {
            const g = $s(u, ty);
            return g && Qr([g, Dke(g)]);
          }
          return u;
        }
      }
    }
    function ntt(n, a) {
      const l = ad(n, a);
      if (l) {
        const u = ty(l);
        return u && Qr([u, Dke(u)]);
      }
    }
    function rtt(n, a) {
      const l = Cf(n);
      if (l) {
        const u = Vc(l);
        let p = pae(l, a);
        if (p) {
          const g = (u & 2) !== 0;
          return !n.asteriskToken && p.flags & 1048576 && (p = _c(p, (x) => !!qb(1, x, g))), n.asteriskToken ? p : qb(0, p, g);
        }
      }
    }
    function _ae(n) {
      let a = !1;
      for (; n.parent && !Ka(n.parent); ) {
        if (Ba(n.parent) && (a || n.parent.initializer === n))
          return !0;
        _s(n.parent) && n.parent.initializer === n && (a = !0), n = n.parent;
      }
      return !1;
    }
    function vIe(n, a) {
      const l = !!(Vc(a) & 2), u = pae(a, void 0);
      if (u)
        return qb(n, u, l) || void 0;
    }
    function pae(n, a) {
      const l = M2(n);
      if (l)
        return l;
      const u = yae(n);
      if (u && !Vre(u))
        return ys(u);
      const p = dT(n);
      if (p)
        return ad(p, a);
    }
    function bIe(n, a) {
      const u = Vae(n).indexOf(a);
      return u === -1 ? void 0 : mae(n, u);
    }
    function mae(n, a) {
      if (lf(n))
        return a === 0 ? ue : a === 1 ? _Ce(!1) : we;
      const l = Jr(n).resolvedSignature === jl ? jl : GL(n);
      if (Qu(n) && a === 0)
        return gV(l, n);
      const u = l.parameters.length - 1;
      return Eu(l) && a >= u ? Md(ar(l.parameters[u]), Bp(a - u), 256) : fp(l, a);
    }
    function itt(n) {
      const a = $ae(n);
      return a ? kE(a) : void 0;
    }
    function att(n, a) {
      if (n.parent.kind === 212)
        return bIe(n.parent, a);
    }
    function ott(n, a) {
      const l = n.parent, { left: u, operatorToken: p, right: g } = l;
      switch (p.kind) {
        case 63:
        case 76:
        case 75:
        case 77:
          return n === g ? ltt(l) : void 0;
        case 56:
        case 60:
          const x = ad(l, a);
          return n === g && (x && x.pattern || !x && !Tue(l)) ? Du(u) : x;
        case 55:
        case 27:
          return n === g ? ad(l, a) : void 0;
        default:
          return;
      }
    }
    function stt(n) {
      if (Rm(n) && n.symbol)
        return n.symbol;
      if (je(n))
        return w_(n);
      if (Fr(n)) {
        const l = Du(n.expression);
        return Ni(n.name) ? a(l, n.name) : uo(l, n.name.escapedText);
      }
      if (cl(n)) {
        const l = Ql(n.argumentExpression);
        if (!qh(l))
          return;
        const u = Du(n.expression);
        return uo(u, _m(l));
      }
      return;
      function a(l, u) {
        const p = TV(u.escapedText, u);
        return p && kae(l, p);
      }
    }
    function ltt(n) {
      var a, l;
      const u = Cl(n);
      switch (u) {
        case 0:
        case 4:
          const p = stt(n.left), g = p && p.valueDeclaration;
          if (g && (to(g) || If(g))) {
            const M = Zc(g);
            return M && Yi(fi(M), Wi(p).mapper) || (to(g) ? g.initializer && Du(n.left) : void 0);
          }
          return u === 0 ? Du(n.left) : EIe(n);
        case 5:
          if (pV(n, u))
            return EIe(n);
          if (!Rm(n.left) || !n.left.symbol)
            return Du(n.left);
          {
            const M = n.left.symbol.valueDeclaration;
            if (!M)
              return;
            const J = oo(n.left, ll), $ = Zc(M);
            if ($)
              return fi($);
            if (je(J.expression)) {
              const ge = J.expression, Ne = _l(ge, ge.escapedText, 111551, void 0, ge.escapedText, !0);
              if (Ne) {
                const De = Ne.valueDeclaration && Zc(Ne.valueDeclaration);
                if (De) {
                  const _t = fg(J);
                  if (_t !== void 0)
                    return UE(fi(De), _t);
                }
                return;
              }
            }
            return fr(M) ? void 0 : Du(n.left);
          }
        case 1:
        case 6:
        case 3:
        case 2:
          let x;
          u !== 2 && (x = Rm(n.left) ? (a = n.left.symbol) == null ? void 0 : a.valueDeclaration : void 0), x || (x = (l = n.symbol) == null ? void 0 : l.valueDeclaration);
          const R = x && Zc(x);
          return R ? fi(R) : void 0;
        case 7:
        case 8:
        case 9:
          return D.fail("Does not apply");
        default:
          return D.assertNever(u);
      }
    }
    function pV(n, a = Cl(n)) {
      if (a === 4)
        return !0;
      if (!fr(n) || a !== 5 || !je(n.left.expression))
        return !1;
      const l = n.left.expression.escapedText, u = _l(n.left, l, 111551, void 0, void 0, !0, !0);
      return u3(u == null ? void 0 : u.valueDeclaration);
    }
    function EIe(n) {
      if (!n.symbol)
        return Du(n.left);
      if (n.symbol.valueDeclaration) {
        const p = Zc(n.symbol.valueDeclaration);
        if (p) {
          const g = fi(p);
          if (g)
            return g;
        }
      }
      const a = oo(n.left, ll);
      if (!B_(Sd(a.expression, !1, !1)))
        return;
      const l = XP(a.expression), u = fg(a);
      return u !== void 0 && UE(l, u) || void 0;
    }
    function ctt(n) {
      return !!(Ll(n) & 262144 && !n.links.type && ih(n, 0) >= 0);
    }
    function UE(n, a, l) {
      return $s(n, (u) => {
        var p;
        if (Vf(u) && !u.declaration.nameType) {
          const g = Pp(u), x = qu(g) || g, R = l || jf(ta(a));
          if (xo(R, x))
            return RU(u, R);
        } else if (u.flags & 3670016) {
          const g = uo(u, a);
          if (g)
            return ctt(g) ? void 0 : ar(g);
          if (Fo(u) && xh(a) && +a >= 0) {
            const x = DL(u, u.target.fixedLength, 0, !1, !0);
            if (x)
              return x;
          }
          return (p = Pre(Mre(u), l || jf(ta(a)))) == null ? void 0 : p.type;
        }
      }, !0);
    }
    function TIe(n, a) {
      if (D.assert(B_(n)), !(n.flags & 33554432))
        return hae(n, a);
    }
    function hae(n, a) {
      const l = n.parent, u = zc(n) && fae(n, a);
      if (u)
        return u;
      const p = Wb(l, a);
      if (p) {
        if (N2(n)) {
          const g = Ir(n);
          return UE(p, g.escapedName, Wi(g).nameType);
        }
        if (n.name) {
          const g = Xg(n.name);
          return $s(p, (x) => {
            var R;
            return (R = Pre(Mre(x), g)) == null ? void 0 : R.type;
          }, !0);
        }
      }
    }
    function SIe(n, a) {
      return n && (a >= 0 && UE(n, "" + a) || $s(n, (l) => Fo(l) ? DL(l, 0, 0, !1, !0) : hoe(1, l, He, void 0, !1), !0));
    }
    function utt(n, a) {
      const l = n.parent;
      return n === l.whenTrue || n === l.whenFalse ? ad(l, a) : void 0;
    }
    function dtt(n, a, l) {
      const u = Wb(n.openingElement.tagName, l), p = vV(K2(n));
      if (!(u && !Ss(u) && p && p !== ""))
        return;
      const g = UN(n.children), x = g.indexOf(a), R = UE(u, p);
      return R && (g.length === 1 ? R : $s(R, (M) => w0(M) ? Md(M, Bp(x)) : M, !0));
    }
    function ftt(n, a) {
      const l = n.parent;
      return VM(l) ? ad(n, a) : Ay(l) ? dtt(l, n, a) : void 0;
    }
    function xIe(n, a) {
      if (nm(n)) {
        const l = Wb(n.parent, a);
        return !l || Ss(l) ? void 0 : UE(l, n.name.escapedText);
      } else
        return ad(n.parent, a);
    }
    function YP(n) {
      switch (n.kind) {
        case 10:
        case 8:
        case 9:
        case 14:
        case 110:
        case 95:
        case 104:
        case 79:
        case 155:
          return !0;
        case 208:
        case 214:
          return YP(n.expression);
        case 291:
          return !n.expression || YP(n.expression);
      }
      return !1;
    }
    function _tt(n, a) {
      return iet(a, n) || Iie(a, va(jt(lr(n.properties, (l) => !!l.symbol && l.kind === 299 && YP(l.initializer) && AD(a, l.symbol.escapedName)), (l) => [() => _4(l.initializer), l.symbol.escapedName]), jt(lr(ms(a), (l) => {
        var u;
        return !!(l.flags & 16777216) && !!((u = n == null ? void 0 : n.symbol) != null && u.members) && !n.symbol.members.has(l.escapedName) && AD(a, l.escapedName);
      }), (l) => [() => He, l.escapedName])), xo, a);
    }
    function ptt(n, a) {
      return Iie(a, va(jt(lr(n.properties, (l) => !!l.symbol && l.kind === 288 && AD(a, l.symbol.escapedName) && (!l.initializer || YP(l.initializer))), (l) => [l.initializer ? () => _4(l.initializer) : () => Pe, l.symbol.escapedName]), jt(lr(ms(a), (l) => {
        var u;
        return !!(l.flags & 16777216) && !!((u = n == null ? void 0 : n.symbol) != null && u.members) && !n.symbol.members.has(l.escapedName) && AD(a, l.escapedName);
      }), (l) => [() => He, l.escapedName])), xo, a);
    }
    function Wb(n, a) {
      const l = B_(n) ? TIe(n, a) : ad(n, a), u = mV(l, n, a);
      if (u && !(a && a & 2 && u.flags & 8650752)) {
        const p = $s(u, Ju, !0);
        return p.flags & 1048576 && Ls(n) ? _tt(n, p) : p.flags & 1048576 && N1(n) ? ptt(n, p) : p;
      }
    }
    function mV(n, a, l) {
      if (n && pl(n, 465829888)) {
        const u = CS(a);
        if (u && l & 1 && kt(u.inferences, Jrt))
          return hV(n, u.nonFixingMapper);
        if (u != null && u.returnMapper) {
          const p = hV(n, u.returnMapper);
          return p.flags & 1048576 && Mb(p.types, K) && Mb(p.types, Z) ? _c(p, (g) => g !== K && g !== Z) : p;
        }
      }
      return n;
    }
    function hV(n, a) {
      return n.flags & 465829888 ? Yi(n, a) : n.flags & 1048576 ? Qr(jt(n.types, (l) => hV(l, a)), 0) : n.flags & 2097152 ? wo(jt(n.types, (l) => hV(l, a))) : n;
    }
    function ad(n, a) {
      var l, u;
      if (n.flags & 33554432)
        return;
      const p = CIe(n, !a);
      if (p >= 0)
        return sc[p];
      const { parent: g } = n;
      switch (g.kind) {
        case 257:
        case 166:
        case 169:
        case 168:
        case 205:
          return ett(n, a);
        case 216:
        case 250:
          return ttt(n, a);
        case 226:
          return rtt(g, a);
        case 220:
          return ntt(g, a);
        case 210:
        case 211:
          return bIe(g, n);
        case 167:
          return itt(g);
        case 213:
        case 231:
          return sg(g.type) ? ad(g, a) : fi(g.type);
        case 223:
          return ott(n, a);
        case 299:
        case 300:
          return hae(g, a);
        case 301:
          return ad(g.parent, a);
        case 206: {
          const x = g, R = Wb(x, a), M = (u = (l = Jr(x)).firstSpreadIndex) != null ? u : l.firstSpreadIndex = vi(x.elements, Lh), J = NA(x.elements, n);
          return SIe(R, M < 0 || J < M ? J : -1);
        }
        case 224:
          return utt(n, a);
        case 236:
          return D.assert(g.parent.kind === 225), att(g.parent, n);
        case 214: {
          if (fr(g)) {
            if (kq(g))
              return fi(wq(g));
            const x = u1(g);
            if (x && !sg(x.typeExpression.type))
              return fi(x.typeExpression.type);
          }
          return ad(g, a);
        }
        case 232:
          return ad(g, a);
        case 235:
          return fi(g.type);
        case 274:
          return Pd(g);
        case 291:
          return ftt(g, a);
        case 288:
        case 290:
          return xIe(g, a);
        case 283:
        case 282:
          return gtt(g, a);
      }
    }
    function AIe(n) {
      $P(n, ad(n, void 0), !0);
    }
    function $P(n, a, l) {
      Ys[xg] = n, sc[xg] = a, Ym[xg] = l, xg++;
    }
    function kD() {
      xg--;
    }
    function CIe(n, a) {
      for (let l = xg - 1; l >= 0; l--)
        if (n === Ys[l] && (a || !Ym[l]))
          return l;
      return -1;
    }
    function mtt(n, a) {
      Z_[Qv] = n, ub[Qv] = a, Qv++;
    }
    function htt() {
      Qv--;
    }
    function CS(n) {
      for (let a = Qv - 1; a >= 0; a--)
        if (mT(n, Z_[a]))
          return ub[a];
    }
    function gtt(n, a) {
      if (kh(n) && a !== 4) {
        const l = CIe(n.parent, !a);
        if (l >= 0)
          return sc[l];
      }
      return mae(n, 0);
    }
    function gV(n, a) {
      return lke(a) !== 0 ? ytt(n, a) : Ett(n, a);
    }
    function ytt(n, a) {
      let l = Xae(n, he);
      l = LIe(a, K2(a), l);
      const u = zb(kf.IntrinsicAttributes, a);
      return rs(u) || (l = yP(u, l)), l;
    }
    function vtt(n, a) {
      if (n.compositeSignatures) {
        const u = [];
        for (const p of n.compositeSignatures) {
          const g = ys(p);
          if (Ss(g))
            return g;
          const x = fc(g, a);
          if (!x)
            return;
          u.push(x);
        }
        return wo(u);
      }
      const l = ys(n);
      return Ss(l) ? l : fc(l, a);
    }
    function btt(n) {
      if (ML(n.tagName)) {
        const l = MIe(n), u = kV(n, l);
        return kE(u);
      }
      const a = Ql(n.tagName);
      if (a.flags & 128) {
        const l = PIe(a, n);
        if (!l)
          return Ce;
        const u = kV(n, l);
        return kE(u);
      }
      return a;
    }
    function LIe(n, a, l) {
      const u = Utt(a);
      if (u) {
        const p = Us(u), g = btt(n);
        if (u.flags & 524288) {
          const x = Wi(u).typeParameters;
          if (Le(x) >= 2) {
            const R = av([g, l], x, 2, fr(n));
            return G2(u, R);
          }
        }
        if (Le(p.typeParameters) >= 2) {
          const x = av([g, l], p.typeParameters, 2, fr(n));
          return Kg(p, x);
        }
      }
      return l;
    }
    function Ett(n, a) {
      const l = K2(a), u = Vtt(l);
      let p = u === void 0 ? Xae(n, he) : u === "" ? ys(n) : vtt(n, u);
      if (!p)
        return u && Le(a.attributes.properties) && Ke(a, _.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property, ta(u)), he;
      if (p = LIe(a, l, p), Ss(p))
        return p;
      {
        let g = p;
        const x = zb(kf.IntrinsicClassAttributes, a);
        if (!rs(x)) {
          const M = ev(x.symbol), J = ys(n);
          let $;
          if (M) {
            const ge = av([J], M, mm(M), fr(a));
            $ = Yi(x, vd(M, ge));
          } else
            $ = x;
          g = yP($, g);
        }
        const R = zb(kf.IntrinsicAttributes, a);
        return rs(R) || (g = yP(R, g)), g;
      }
    }
    function Ttt(n) {
      return y_(Y, "noImplicitAny") ? Ru(n, (a, l) => a === l || !a ? a : OAe(a.typeParameters, l.typeParameters) ? Att(a, l) : void 0) : void 0;
    }
    function Stt(n, a, l) {
      if (!n || !a)
        return n || a;
      const u = Qr([ar(n), Yi(ar(a), l)]);
      return OE(n, u);
    }
    function xtt(n, a, l) {
      const u = tf(n), p = tf(a), g = u >= p ? n : a, x = g === n ? a : n, R = g === n ? u : p, M = Em(n) || Em(a), J = M && !Em(g), $ = new Array(R + (J ? 1 : 0));
      for (let ge = 0; ge < R; ge++) {
        let Ne = VE(g, ge);
        g === a && (Ne = Yi(Ne, l));
        let De = VE(x, ge) || he;
        x === a && (De = Yi(De, l));
        const _t = Qr([Ne, De]), Bt = M && !J && ge === R - 1, Mn = ge >= bm(g) && ge >= bm(x), An = ge >= u ? void 0 : UL(n, ge), Kn = ge >= p ? void 0 : UL(a, ge), gn = An === Kn ? An : An ? Kn ? void 0 : An : Kn, xn = ns(1 | (Mn && !Bt ? 16777216 : 0), gn || `arg${ge}`);
        xn.links.type = Bt ? Iu(_t) : _t, $[ge] = xn;
      }
      if (J) {
        const ge = ns(1, "args");
        ge.links.type = Iu(fp(x, R)), x === a && (ge.links.type = Yi(ge.links.type, l)), $[R] = ge;
      }
      return $;
    }
    function Att(n, a) {
      const l = n.typeParameters || a.typeParameters;
      let u;
      n.typeParameters && a.typeParameters && (u = vd(a.typeParameters, n.typeParameters));
      const p = n.declaration, g = xtt(n, a, u), x = Stt(n.thisParameter, a.thisParameter, u), R = Math.max(n.minArgumentCount, a.minArgumentCount), M = oh(p, l, x, g, void 0, void 0, R, (n.flags | a.flags) & 39);
      return M.compositeKind = 2097152, M.compositeSignatures = va(n.compositeKind === 2097152 && n.compositeSignatures || [n], [a]), u && (M.mapper = n.compositeKind === 2097152 && n.mapper && n.compositeSignatures ? k0(n.mapper, u) : u), M;
    }
    function gae(n, a) {
      const l = za(n, 0), u = lr(l, (p) => !Ctt(p, a));
      return u.length === 1 ? u[0] : Ttt(u);
    }
    function Ctt(n, a) {
      let l = 0;
      for (; l < a.parameters.length; l++) {
        const u = a.parameters[l];
        if (u.initializer || u.questionToken || u.dotDotDotToken || fO(u))
          break;
      }
      return a.parameters.length && x1(a.parameters[0]) && l--, !Em(n) && tf(n) < l;
    }
    function yae(n) {
      return lC(n) || B_(n) ? wD(n) : void 0;
    }
    function wD(n) {
      D.assert(n.kind !== 171 || B_(n));
      const a = cD(n);
      if (a)
        return a;
      const l = Wb(n, 1);
      if (!l)
        return;
      if (!(l.flags & 1048576))
        return gae(l, n);
      let u;
      const p = l.types;
      for (const g of p) {
        const x = gae(g, n);
        if (x)
          if (!u)
            u = [x];
          else if (GP(u[0], x, !1, !0, !0, gD))
            u.push(x);
          else
            return;
      }
      if (u)
        return u.length === 1 ? u[0] : RAe(u[0], u);
    }
    function Ltt(n, a) {
      P < 2 && pc(n, Y.downlevelIteration ? 1536 : 1024);
      const l = ga(n.expression, a);
      return _v(33, l, He, n.expression);
    }
    function Itt(n) {
      return n.isSpread ? Md(n.type, mt) : n.type;
    }
    function PL(n) {
      return n.kind === 205 && !!n.initializer || n.kind === 223 && n.operatorToken.kind === 63;
    }
    function IIe(n, a, l) {
      const u = n.elements, p = u.length, g = [], x = [];
      AIe(n);
      const R = bh(n), M = VL(n), J = Wb(n, void 0), $ = !!J && Qh(J, wL);
      let ge = !1;
      for (let Ne = 0; Ne < p; Ne++) {
        const De = u[Ne];
        if (De.kind === 227) {
          P < 2 && pc(De, Y.downlevelIteration ? 1536 : 1024);
          const _t = ga(De.expression, a, l);
          if (w0(_t))
            g.push(_t), x.push(8);
          else if (R) {
            const Bt = Jg(_t, mt) || hoe(65, _t, He, void 0, !1) || he;
            g.push(Bt), x.push(4);
          } else
            g.push(_v(33, _t, He, De.expression)), x.push(4);
        } else if (qe && De.kind === 229)
          ge = !0, g.push(Ut), x.push(2);
        else {
          const _t = jL(De, a, l);
          if (g.push(Io(_t, !0, ge)), x.push(ge ? 2 : 1), $ && a && a & 2 && !(a & 4) && k_(De)) {
            const Bt = CS(n);
            D.assert(Bt), wLe(Bt, De, _t);
          }
        }
      }
      return kD(), R ? Fp(g, x) : kIe(l || M || $ ? Fp(g, x, M) : Iu(g.length ? Qr(_a(g, (Ne, De) => x[De] & 8 ? sv(Ne, mt) || we : Ne), 2) : W ? _n : Ze, M));
    }
    function kIe(n) {
      if (!(ti(n) & 4))
        return n;
      let a = n.literalType;
      return a || (a = n.literalType = tCe(n), a.objectFlags |= 147456), a;
    }
    function ktt(n) {
      switch (n.kind) {
        case 164:
          return wtt(n);
        case 79:
          return xh(n.escapedText);
        case 8:
        case 10:
          return xh(n.text);
        default:
          return !1;
      }
    }
    function wtt(n) {
      return Mc(ey(n), 296);
    }
    function ey(n) {
      const a = Jr(n.expression);
      if (!a.resolvedType) {
        if ((uf(n.parent.parent) || di(n.parent.parent) || nd(n.parent.parent)) && br(n.expression) && n.expression.operatorToken.kind === 101 && n.parent.kind !== 174 && n.parent.kind !== 175)
          return a.resolvedType = Ce;
        if (a.resolvedType = ga(n.expression), to(n.parent) && !gc(n.parent) && Gu(n.parent.parent)) {
          const l = Mm(n.parent.parent), u = lae(l);
          u && (Jr(u).flags |= 4096, Jr(n).flags |= 32768, Jr(n.parent.parent).flags |= 32768);
        }
        (a.resolvedType.flags & 98304 || !Mc(a.resolvedType, 402665900) && !xo(a.resolvedType, Ci)) && Ke(n, _.A_computed_property_name_must_be_of_type_string_number_symbol_or_any);
      }
      return a.resolvedType;
    }
    function Dtt(n) {
      var a;
      const l = (a = n.declarations) == null ? void 0 : a[0];
      return xh(n.escapedName) || l && gu(l) && ktt(l.name);
    }
    function wIe(n) {
      var a;
      const l = (a = n.declarations) == null ? void 0 : a[0];
      return FN(n) || l && gu(l) && As(l.name) && Mc(ey(l.name), 4096);
    }
    function vae(n, a, l, u) {
      const p = [];
      for (let x = a; x < l.length; x++) {
        const R = l[x];
        (u === ue && !wIe(R) || u === mt && Dtt(R) || u === q && wIe(R)) && p.push(ar(l[x]));
      }
      const g = p.length ? Qr(p, 2) : He;
      return hm(u, g, VL(n));
    }
    function bae(n) {
      D.assert((n.flags & 2097152) !== 0, "Should only get Alias here.");
      const a = Wi(n);
      if (!a.immediateTarget) {
        const l = md(n);
        if (!l)
          return D.fail();
        a.immediateTarget = ap(l, !0);
      }
      return a.immediateTarget;
    }
    function Rtt(n, a) {
      var l;
      const u = bh(n);
      Nst(n, u);
      const p = W ? lo() : void 0;
      let g = lo(), x = [], R = pa;
      AIe(n);
      const M = Wb(n, void 0), J = M && M.pattern && (M.pattern.kind === 203 || M.pattern.kind === 207), $ = VL(n), ge = $ ? 8 : 0, Ne = fr(n) && !m3(n), De = dW(n), _t = !M && Ne && !De;
      let Bt = Be, Mn = !1, An = !1, Kn = !1, gn = !1;
      for (const ln of n.properties)
        ln.name && As(ln.name) && ey(ln.name);
      let xn = 0;
      for (const ln of n.properties) {
        let Gn = Ir(ln);
        const qn = ln.name && ln.name.kind === 164 ? ey(ln.name) : void 0;
        if (ln.kind === 299 || ln.kind === 300 || B_(ln)) {
          let Zr = ln.kind === 299 ? zke(ln, a) : ln.kind === 300 ? jL(!u && ln.objectAssignmentInitializer ? ln.objectAssignmentInitializer : ln.name, a) : qke(ln, a);
          if (Ne) {
            const Qa = ki(ln);
            Qa ? (id(Zr, Qa, ln), Zr = Qa) : De && De.typeExpression && id(Zr, fi(De.typeExpression), ln);
          }
          Bt |= ti(Zr) & 458752;
          const ri = qn && qh(qn) ? qn : void 0, ma = ri ? ns(4 | Gn.flags, _m(ri), ge | 4096) : ns(4 | Gn.flags, Gn.escapedName, ge);
          if (ri && (ma.links.nameType = ri), u)
            (ln.kind === 299 && PL(ln.initializer) || ln.kind === 300 && ln.objectAssignmentInitializer) && (ma.flags |= 16777216);
          else if (J && !(ti(M) & 512)) {
            const Qa = uo(M, Gn.escapedName);
            Qa ? ma.flags |= Qa.flags & 16777216 : !Y.suppressExcessPropertyErrors && !sh(M, ue) && Ke(ln.name, _.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1, S(Gn), ke(M));
          }
          if (ma.declarations = Gn.declarations, ma.parent = Gn.parent, Gn.valueDeclaration && (ma.valueDeclaration = Gn.valueDeclaration), ma.links.type = Zr, ma.links.target = Gn, Gn = ma, p == null || p.set(ma.escapedName, ma), M && a && a & 2 && !(a & 4) && (ln.kind === 299 || ln.kind === 171) && k_(ln)) {
            const Qa = CS(n);
            D.assert(Qa);
            const Ec = ln.kind === 299 ? ln.initializer : ln;
            wLe(Qa, Ec, Zr);
          }
        } else if (ln.kind === 301) {
          P < 2 && pc(ln, 2), x.length > 0 && (R = Bb(R, yr(), n.symbol, Bt, $), x = [], g = lo(), An = !1, Kn = !1, gn = !1);
          const Zr = up(ga(ln.expression));
          if (QP(Zr)) {
            const ri = _ie(Zr, $);
            if (p && RIe(ri, p, ln), xn = x.length, rs(R))
              continue;
            R = Bb(R, ri, n.symbol, Bt, $);
          } else
            Ke(ln, _.Spread_types_may_only_be_created_from_object_types), R = Ce;
          continue;
        } else
          D.assert(ln.kind === 174 || ln.kind === 175), KL(ln);
        qn && !(qn.flags & 8576) ? xo(qn, Ci) && (xo(qn, mt) ? Kn = !0 : xo(qn, q) ? gn = !0 : An = !0, u && (Mn = !0)) : g.set(Gn.escapedName, Gn), x.push(Gn);
      }
      if (kD(), J) {
        const ln = nr(M.pattern.parent, (qn) => qn.kind === 257 || qn.kind === 223 || qn.kind === 166);
        if (nr(n, (qn) => qn === ln || qn.kind === 301).kind !== 301)
          for (const qn of ms(M))
            !g.get(qn.escapedName) && !uo(R, qn.escapedName) && (qn.flags & 16777216 || Ke(qn.valueDeclaration || ((l = ai(qn, Om)) == null ? void 0 : l.links.bindingElement), _.Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value), g.set(qn.escapedName, qn), x.push(qn));
      }
      if (rs(R))
        return Ce;
      if (R !== pa)
        return x.length > 0 && (R = Bb(R, yr(), n.symbol, Bt, $), x = [], g = lo(), An = !1, Kn = !1), $s(R, (ln) => ln === pa ? yr() : ln);
      return yr();
      function yr() {
        const ln = [];
        An && ln.push(vae(n, xn, x, ue)), Kn && ln.push(vae(n, xn, x, mt)), gn && ln.push(vae(n, xn, x, q));
        const Gn = Ns(n.symbol, g, rt, rt, ln);
        return Gn.objectFlags |= Bt | 128 | 131072, _t && (Gn.objectFlags |= 4096), Mn && (Gn.objectFlags |= 512), u && (Gn.pattern = n), Gn;
      }
    }
    function QP(n) {
      const a = CLe($s(n, iv));
      return !!(a.flags & 126615553 || a.flags & 3145728 && Yn(a.types, QP));
    }
    function Ntt(n) {
      xae(n);
    }
    function Ott(n, a) {
      return KL(n), ZP(n) || we;
    }
    function Ptt(n) {
      xae(n.openingElement), ML(n.closingElement.tagName) ? Tae(n.closingElement) : ga(n.closingElement.tagName), yV(n);
    }
    function Mtt(n, a) {
      return KL(n), ZP(n) || we;
    }
    function Ftt(n) {
      xae(n.openingFragment);
      const a = Zn(n);
      return cq(Y) && (Y.jsxFactory || a.pragmas.has("jsx")) && !Y.jsxFragmentFactory && !a.pragmas.has("jsxfrag") && Ke(n, Y.jsxFactory ? _.The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option : _.An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments), yV(n), ZP(n) || we;
    }
    function Eae(n) {
      return pu(n, "-");
    }
    function ML(n) {
      return n.kind === 79 && KI(n.escapedText);
    }
    function DIe(n, a) {
      return n.initializer ? jL(n.initializer, a) : Pe;
    }
    function Btt(n, a) {
      const l = n.attributes, u = ad(l, 0), p = W ? lo() : void 0;
      let g = lo(), x = ec, R = !1, M, J = !1, $ = 2048;
      const ge = vV(K2(n));
      for (const _t of l.properties) {
        const Bt = _t.symbol;
        if (nm(_t)) {
          const Mn = DIe(_t, a);
          $ |= ti(Mn) & 458752;
          const An = ns(4 | Bt.flags, Bt.escapedName);
          if (An.declarations = Bt.declarations, An.parent = Bt.parent, Bt.valueDeclaration && (An.valueDeclaration = Bt.valueDeclaration), An.links.type = Mn, An.links.target = Bt, g.set(An.escapedName, An), p == null || p.set(An.escapedName, An), _t.name.escapedText === ge && (J = !0), u) {
            const Kn = uo(u, Bt.escapedName);
            Kn && Kn.declarations && o0(Kn) && wg(_t.name, Kn.declarations, _t.name.escapedText);
          }
        } else {
          D.assert(_t.kind === 290), g.size > 0 && (x = Bb(x, De(), l.symbol, $, !1), g = lo());
          const Mn = up(Ql(_t.expression, a));
          Ss(Mn) && (R = !0), QP(Mn) ? (x = Bb(x, Mn, l.symbol, $, !1), p && RIe(Mn, p, _t)) : (Ke(_t.expression, _.Spread_types_may_only_be_created_from_object_types), M = M ? wo([M, Mn]) : Mn);
        }
      }
      R || g.size > 0 && (x = Bb(x, De(), l.symbol, $, !1));
      const Ne = n.parent.kind === 281 ? n.parent : void 0;
      if (Ne && Ne.openingElement === n && Ne.children.length > 0) {
        const _t = yV(Ne, a);
        if (!R && ge && ge !== "") {
          J && Ke(l, _._0_are_specified_twice_The_attribute_named_0_will_be_overwritten, ta(ge));
          const Bt = Wb(n.attributes, void 0), Mn = Bt && UE(Bt, ge), An = ns(4, ge);
          An.links.type = _t.length === 1 ? _t[0] : Mn && Qh(Mn, wL) ? Fp(_t) : Iu(Qr(_t)), An.valueDeclaration = N.createPropertySignature(void 0, ta(ge), void 0, void 0), Vo(An.valueDeclaration, l), An.valueDeclaration.symbol = An;
          const Kn = lo();
          Kn.set(ge, An), x = Bb(x, Ns(l.symbol, Kn, rt, rt, rt), l.symbol, $, !1);
        }
      }
      if (R)
        return we;
      if (M && x !== ec)
        return wo([M, x]);
      return M || (x === ec ? De() : x);
      function De() {
        $ |= Be;
        const _t = Ns(l.symbol, g, rt, rt, rt);
        return _t.objectFlags |= $ | 128 | 131072, _t;
      }
    }
    function yV(n, a) {
      const l = [];
      for (const u of n.children)
        if (u.kind === 11)
          u.containsOnlyTriviaWhiteSpaces || l.push(ue);
        else {
          if (u.kind === 291 && !u.expression)
            continue;
          l.push(jL(u, a));
        }
      return l;
    }
    function RIe(n, a, l) {
      for (const u of ms(n))
        if (!(u.flags & 16777216)) {
          const p = a.get(u.escapedName);
          if (p) {
            const g = Ke(p.valueDeclaration, _._0_is_specified_more_than_once_so_this_usage_will_be_overwritten, ta(p.escapedName));
            Xo(g, Nr(l, _.This_spread_always_overwrites_this_property));
          }
        }
    }
    function Gtt(n, a) {
      return Btt(n.parent, a);
    }
    function zb(n, a) {
      const l = K2(a), u = l && hf(l), p = u && Xd(u, n, 788968);
      return p ? Us(p) : Ce;
    }
    function Tae(n) {
      const a = Jr(n);
      if (!a.resolvedSymbol) {
        const l = zb(kf.IntrinsicElements, n);
        if (rs(l))
          return Te && Ke(n, _.JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists, ta(kf.IntrinsicElements)), a.resolvedSymbol = an;
        {
          if (!je(n.tagName))
            return D.fail();
          const u = uo(l, n.tagName.escapedText);
          return u ? (a.jsxFlags |= 1, a.resolvedSymbol = u) : Jg(l, ue) ? (a.jsxFlags |= 2, a.resolvedSymbol = l.symbol) : (Ke(n, _.Property_0_does_not_exist_on_type_1, Mr(n.tagName), "JSX." + kf.IntrinsicElements), a.resolvedSymbol = an);
        }
      }
      return a.resolvedSymbol;
    }
    function Sae(n) {
      const a = n && Zn(n), l = a && Jr(a);
      if (l && l.jsxImplicitImportContainer === !1)
        return;
      if (l && l.jsxImplicitImportContainer)
        return l.jsxImplicitImportContainer;
      const u = W3(H3(Y, a), Y);
      if (!u)
        return;
      const g = vl(Y) === 1 ? _.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option : _.Cannot_find_module_0_or_its_corresponding_type_declarations, x = bc(n, u, g, n), R = x && x !== an ? as(Yl(x)) : void 0;
      return l && (l.jsxImplicitImportContainer = R || !1), R;
    }
    function K2(n) {
      const a = n && Jr(n);
      if (a && a.jsxNamespace)
        return a.jsxNamespace;
      if (!a || a.jsxNamespace !== !1) {
        let u = Sae(n);
        if (!u || u === an) {
          const p = hb(n);
          u = _l(n, p, 1920, void 0, p, !1);
        }
        if (u) {
          const p = Yl(Xd(hf(Yl(u)), kf.JSX, 1920));
          if (p && p !== an)
            return a && (a.jsxNamespace = p), p;
        }
        a && (a.jsxNamespace = !1);
      }
      const l = Yl(fD(kf.JSX, 1920, void 0));
      if (l !== an)
        return l;
    }
    function NIe(n, a) {
      const l = a && Xd(a.exports, n, 788968), u = l && Us(l), p = u && ms(u);
      if (p) {
        if (p.length === 0)
          return "";
        if (p.length === 1)
          return p[0].escapedName;
        p.length > 1 && l.declarations && Ke(l.declarations[0], _.The_global_type_JSX_0_may_not_have_more_than_one_property, ta(n));
      }
    }
    function Utt(n) {
      return n && Xd(n.exports, kf.LibraryManagedAttributes, 788968);
    }
    function Vtt(n) {
      return NIe(kf.ElementAttributesPropertyNameContainer, n);
    }
    function vV(n) {
      return NIe(kf.ElementChildrenAttributeNameContainer, n);
    }
    function OIe(n, a) {
      if (n.flags & 4)
        return [Ks];
      if (n.flags & 128) {
        const p = PIe(n, a);
        return p ? [kV(a, p)] : (Ke(a, _.Property_0_does_not_exist_on_type_1, n.value, "JSX." + kf.IntrinsicElements), rt);
      }
      const l = Ju(n);
      let u = za(l, 1);
      return u.length === 0 && (u = za(l, 0)), u.length === 0 && l.flags & 1048576 && (u = Tre(jt(l.types, (p) => OIe(p, a)))), u;
    }
    function PIe(n, a) {
      const l = zb(kf.IntrinsicElements, a);
      if (!rs(l)) {
        const u = n.value, p = uo(l, sl(u));
        if (p)
          return ar(p);
        const g = Jg(l, ue);
        return g || void 0;
      }
      return we;
    }
    function jtt(n, a, l) {
      if (n === 1) {
        const p = BIe(l);
        p && s_(a, p, kd, l.tagName, _.Its_return_type_0_is_not_a_valid_JSX_element, u);
      } else if (n === 0) {
        const p = FIe(l);
        p && s_(a, p, kd, l.tagName, _.Its_instance_type_0_is_not_a_valid_JSX_element, u);
      } else {
        const p = BIe(l), g = FIe(l);
        if (!p || !g)
          return;
        const x = Qr([p, g]);
        s_(a, x, kd, l.tagName, _.Its_element_type_0_is_not_a_valid_JSX_element, u);
      }
      function u() {
        const p = Sc(l.tagName);
        return Na(void 0, _._0_cannot_be_used_as_a_JSX_component, p);
      }
    }
    function MIe(n) {
      D.assert(ML(n.tagName));
      const a = Jr(n);
      if (!a.resolvedJsxElementAttributesType) {
        const l = Tae(n);
        return a.jsxFlags & 1 ? a.resolvedJsxElementAttributesType = ar(l) || Ce : a.jsxFlags & 2 ? a.resolvedJsxElementAttributesType = Jg(zb(kf.IntrinsicElements, n), ue) || Ce : a.resolvedJsxElementAttributesType = Ce;
      }
      return a.resolvedJsxElementAttributesType;
    }
    function FIe(n) {
      const a = zb(kf.ElementClass, n);
      if (!rs(a))
        return a;
    }
    function ZP(n) {
      return zb(kf.Element, n);
    }
    function BIe(n) {
      const a = ZP(n);
      if (a)
        return Qr([a, Sn]);
    }
    function Htt(n) {
      const a = zb(kf.IntrinsicElements, n);
      return a ? ms(a) : rt;
    }
    function Wtt(n) {
      (Y.jsx || 0) === 0 && Ke(n, _.Cannot_use_JSX_unless_the_jsx_flag_is_provided), ZP(n) === void 0 && Te && Ke(n, _.JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist);
    }
    function xae(n) {
      const a = Qu(n);
      if (a && Ost(n), Wtt(n), !Sae(n)) {
        const l = Qo && Y.jsx === 2 ? _.Cannot_find_name_0 : void 0, u = hb(n), p = a ? n.tagName : n;
        let g;
        if (Nx(n) && u === "null" || (g = _l(p, u, 111551, l, u, !0)), g && (g.isReferenced = 67108863, !Y.verbatimModuleSyntax && g.flags & 2097152 && !Rd(g) && Lb(g)), Nx(n)) {
          const x = Zn(n), R = oS(x);
          R && _l(p, R, 111551, l, R, !0);
        }
      }
      if (a) {
        const l = n, u = GL(l);
        DV(u, n), jtt(lke(l), ys(u), l);
      }
    }
    function Aae(n, a, l) {
      if (n.flags & 524288) {
        if (Rb(n, a) || P2(n, a) || iD(a) && sh(n, ue) || l && Eae(a))
          return !0;
      } else if (n.flags & 3145728 && e4(n)) {
        for (const u of n.types)
          if (Aae(u, a, l))
            return !0;
      }
      return !1;
    }
    function e4(n) {
      return !!(n.flags & 524288 && !(ti(n) & 512) || n.flags & 67108864 || n.flags & 1048576 && kt(n.types, e4) || n.flags & 2097152 && Yn(n.types, e4));
    }
    function ztt(n, a) {
      if (Mst(n), n.expression) {
        const l = ga(n.expression, a);
        return n.dotDotDotToken && l !== we && !Hf(l) && Ke(n, _.JSX_spread_child_must_be_an_array_type), l;
      } else
        return Ce;
    }
    function bV(n) {
      return n.valueDeclaration ? hp(n.valueDeclaration) : 0;
    }
    function Cae(n) {
      if (n.flags & 8192 || Ll(n) & 4)
        return !0;
      if (fr(n.valueDeclaration)) {
        const a = n.valueDeclaration.parent;
        return a && br(a) && Cl(a) === 3;
      }
    }
    function Lae(n, a, l, u, p, g = !0) {
      const x = g ? n.kind === 163 ? n.right : n.kind === 202 ? n : n.kind === 205 && n.propertyName ? n.propertyName : n.name : void 0;
      return GIe(n, a, l, u, p, x);
    }
    function GIe(n, a, l, u, p, g) {
      const x = Qf(p, l);
      if (a) {
        if (P < 2 && UIe(p))
          return g && Ke(g, _.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword), !1;
        if (x & 256)
          return g && Ke(g, _.Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression, S(p), ke(xS(p))), !1;
      }
      if (x & 256 && UIe(p) && (dN(n) || yue(n) || Hm(n.parent) && u3(n.parent.parent))) {
        const M = mg(gd(p));
        if (M && Pot(n))
          return g && Ke(g, _.Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor, S(p), U_(M.name)), !1;
      }
      if (!(x & 24))
        return !0;
      if (x & 8) {
        const M = mg(gd(p));
        return Loe(n, M) ? !0 : (g && Ke(g, _.Property_0_is_private_and_only_accessible_within_class_1, S(p), ke(xS(p))), !1);
      }
      if (a)
        return !0;
      let R = nDe(n, (M) => {
        const J = Us(Ir(M));
        return vLe(J, p, l);
      });
      return !R && (R = qtt(n), R = R && vLe(R, p, l), x & 32 || !R) ? (g && Ke(g, _.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses, S(p), ke(xS(p) || u)), !1) : x & 32 ? !0 : (u.flags & 262144 && (u = u.isThisType ? Cu(u) : qu(u)), !u || !AE(u, R) ? (g && Ke(g, _.Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2, S(p), ke(R), ke(u)), !1) : !0);
    }
    function qtt(n) {
      const a = Jtt(n);
      let l = (a == null ? void 0 : a.type) && fi(a.type);
      if (l && l.flags & 262144 && (l = Cu(l)), l && ti(l) & 7)
        return R2(l);
    }
    function Jtt(n) {
      const a = Sd(n, !1, !1);
      return a && Ka(a) ? S1(a) : void 0;
    }
    function UIe(n) {
      return !!FP(n, (a) => !(a.flags & 8192));
    }
    function FL(n) {
      return Gp(ga(n), n);
    }
    function EV(n) {
      return !!(wu(n) & 50331648);
    }
    function Iae(n) {
      return EV(n) ? Zg(n) : n;
    }
    function Ktt(n, a) {
      const l = zl(n) ? Af(n) : void 0;
      if (n.kind === 104) {
        Ke(n, _.The_value_0_cannot_be_used_here, "null");
        return;
      }
      if (l !== void 0 && l.length < 100) {
        if (je(n) && l === "undefined") {
          Ke(n, _.The_value_0_cannot_be_used_here, "undefined");
          return;
        }
        Ke(n, a & 16777216 ? a & 33554432 ? _._0_is_possibly_null_or_undefined : _._0_is_possibly_undefined : _._0_is_possibly_null, l);
      } else
        Ke(n, a & 16777216 ? a & 33554432 ? _.Object_is_possibly_null_or_undefined : _.Object_is_possibly_undefined : _.Object_is_possibly_null);
    }
    function Xtt(n, a) {
      Ke(n, a & 16777216 ? a & 33554432 ? _.Cannot_invoke_an_object_which_is_possibly_null_or_undefined : _.Cannot_invoke_an_object_which_is_possibly_undefined : _.Cannot_invoke_an_object_which_is_possibly_null);
    }
    function VIe(n, a, l) {
      if (W && n.flags & 2) {
        if (zl(a)) {
          const p = Af(a);
          if (p.length < 100)
            return Ke(a, _._0_is_of_type_unknown, p), Ce;
        }
        return Ke(a, _.Object_is_of_type_unknown), Ce;
      }
      const u = wu(n);
      if (u & 50331648) {
        l(a, u);
        const p = Zg(n);
        return p.flags & 229376 ? Ce : p;
      }
      return n;
    }
    function Gp(n, a) {
      return VIe(n, a, Ktt);
    }
    function jIe(n, a) {
      const l = Gp(n, a);
      if (l.flags & 16384) {
        if (zl(a)) {
          const u = Af(a);
          if (je(a) && u === "undefined")
            return Ke(a, _.The_value_0_cannot_be_used_here, u), l;
          if (u.length < 100)
            return Ke(a, _._0_is_possibly_undefined, u), l;
        }
        Ke(a, _.Object_is_possibly_undefined);
      }
      return l;
    }
    function HIe(n, a) {
      return n.flags & 32 ? Ytt(n, a) : wae(n, n.expression, FL(n.expression), n.name, a);
    }
    function Ytt(n, a) {
      const l = ga(n.expression), u = ED(l, n.expression);
      return ZU(wae(n, n.expression, Gp(u, n.expression), n.name, a), n, u !== l);
    }
    function WIe(n, a) {
      const l = p3(n) && yT(n.left) ? Gp(XP(n.left), n.left) : FL(n.left);
      return wae(n, n.left, l, n.right, a);
    }
    function zIe(n) {
      for (; n.parent.kind === 214; )
        n = n.parent;
      return lg(n.parent) && n.parent.expression === n;
    }
    function TV(n, a) {
      for (let l = xc(a); l; l = xc(l)) {
        const { symbol: u } = l, p = MN(u, n), g = u.members && u.members.get(p) || u.exports && u.exports.get(p);
        if (g)
          return g;
      }
    }
    function $tt(n) {
      if (!xc(n))
        return En(n, _.Private_identifiers_are_not_allowed_outside_class_bodies);
      if (!bJ(n.parent)) {
        if (!dg(n))
          return En(n, _.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression);
        const a = br(n.parent) && n.parent.operatorToken.kind === 101;
        if (!SV(n) && !a)
          return En(n, _.Cannot_find_name_0, Mr(n));
      }
      return !1;
    }
    function Qtt(n) {
      $tt(n);
      const a = SV(n);
      return a && n4(a, void 0, !1), we;
    }
    function SV(n) {
      if (!dg(n))
        return;
      const a = Jr(n);
      return a.resolvedSymbol === void 0 && (a.resolvedSymbol = TV(n.escapedText, n)), a.resolvedSymbol;
    }
    function kae(n, a) {
      return uo(n, a.escapedName);
    }
    function Ztt(n, a, l) {
      let u;
      const p = ms(n);
      p && ze(p, (x) => {
        const R = x.valueDeclaration;
        if (R && gu(R) && Ni(R.name) && R.name.escapedText === a.escapedText)
          return u = x, !0;
      });
      const g = r_(a);
      if (u) {
        const x = D.checkDefined(u.valueDeclaration), R = D.checkDefined(xc(x));
        if (l != null && l.valueDeclaration) {
          const M = l.valueDeclaration, J = xc(M);
          if (D.assert(!!J), nr(J, ($) => R === $)) {
            const $ = Ke(a, _.The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling, g, ke(n));
            return Xo($, Nr(M, _.The_shadowing_declaration_of_0_is_defined_here, g), Nr(x, _.The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here, g)), !0;
          }
        }
        return Ke(a, _.Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier, g, r_(R.name || T8)), !0;
      }
      return !1;
    }
    function qIe(n, a) {
      return (Od(a) || dN(n) && Op(a)) && Sd(n, !0, !1) === fm(a);
    }
    function wae(n, a, l, u, p) {
      const g = Jr(a).resolvedSymbol, x = pT(n), R = Ju(x !== 0 || zIe(n) ? ef(l) : l), M = Ss(R) || R === ft;
      let J;
      if (Ni(u)) {
        P < 99 && (x !== 0 && pc(n, 1048576), x !== 1 && pc(n, 524288));
        const ge = TV(u.escapedText, u);
        if (x && ge && ge.valueDeclaration && ac(ge.valueDeclaration) && En(u, _.Cannot_assign_to_private_method_0_Private_methods_are_not_writable, Mr(u)), M) {
          if (ge)
            return rs(R) ? Ce : R;
          if (!xc(u))
            return En(u, _.Private_identifiers_are_not_allowed_outside_class_bodies), we;
        }
        if (J = ge ? kae(l, ge) : void 0, !J && Ztt(l, u, ge))
          return Ce;
        J && J.flags & 65536 && !(J.flags & 32768) && x !== 1 && Ke(n, _.Private_accessor_was_defined_without_a_getter);
      } else {
        if (M)
          return je(a) && g && _V(g, n), rs(R) ? Ce : R;
        J = uo(R, u.escapedText, !1, n.kind === 163);
      }
      je(a) && g && (j_(Y) || !(J && (qD(J) || J.flags & 8 && n.parent.kind === 302)) || C1(Y) && dIe(n)) && _V(g, n);
      let $;
      if (J) {
        o0(J) && lie(n, J) && J.declarations && wg(u, J.declarations, u.escapedText), ent(J, n, u), n4(J, n, ZIe(a, g)), Jr(n).resolvedSymbol = J;
        const ge = ok(n);
        if (Lae(n, a.kind === 106, ge, R, J), Gke(n, J, x))
          return Ke(u, _.Cannot_assign_to_0_because_it_is_a_read_only_property, Mr(u)), Ce;
        $ = qIe(n, J) ? yt : ge ? yL(J) : ar(J);
      } else {
        const ge = !Ni(u) && (x === 0 || !Fb(l) || vk(l)) ? P2(R, u.escapedText) : void 0;
        if (!(ge && ge.type)) {
          const Ne = Dae(n, l.symbol, !0);
          return !Ne && pD(l) ? we : l.symbol === st ? (st.exports.has(u.escapedText) && st.exports.get(u.escapedText).flags & 418 ? Ke(u, _.Property_0_does_not_exist_on_type_1, ta(u.escapedText), ke(l)) : Te && Ke(u, _.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature, ke(l)), we) : (u.escapedText && !s0(n) && XIe(u, vk(l) ? R : l, Ne), Ce);
        }
        ge.isReadonly && (bh(n) || Tz(n)) && Ke(n, _.Index_signature_in_type_0_only_permits_reading, ke(R)), $ = Y.noUncheckedIndexedAccess && !bh(n) ? Qr([ge.type, Xe]) : ge.type, Y.noPropertyAccessFromIndexSignature && Fr(n) && Ke(u, _.Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0, ta(u.escapedText)), ge.declaration && hp(ge.declaration) & 268435456 && wg(u, [ge.declaration], u.escapedText);
      }
      return JIe(n, J, $, u, p);
    }
    function Dae(n, a, l) {
      const u = Zn(n);
      if (u && Y.checkJs === void 0 && u.checkJsDirective === void 0 && (u.scriptKind === 1 || u.scriptKind === 2)) {
        const p = ze(a == null ? void 0 : a.declarations, Zn);
        return !(u !== p && p && Qm(p)) && !(l && a && a.flags & 32) && !(n && l && Fr(n) && n.expression.kind === 108);
      }
      return !1;
    }
    function JIe(n, a, l, u, p) {
      const g = pT(n);
      if (g === 1)
        return NE(l, !!(a && a.flags & 16777216));
      if (a && !(a.flags & 98311) && !(a.flags & 8192 && l.flags & 1048576) && !KV(a.declarations))
        return l;
      if (l === yt)
        return w2(n, a);
      l = sae(l, n, p);
      let x = !1;
      if (W && ve && ll(n) && n.expression.kind === 108) {
        const M = a && a.valueDeclaration;
        if (M && jwe(M) && !Ja(M)) {
          const J = ID(n);
          J.kind === 173 && J.parent === M.parent && !(M.flags & 16777216) && (x = !0);
        }
      } else
        W && a && a.valueDeclaration && Fr(a.valueDeclaration) && EN(a.valueDeclaration) && ID(n) === ID(a.valueDeclaration) && (x = !0);
      const R = N0(n, l, x ? Qg(l) : l);
      return x && !LL(l) && LL(R) ? (Ke(u, _.Property_0_is_used_before_being_assigned, S(a)), l) : g ? dv(R) : R;
    }
    function ent(n, a, l) {
      const { valueDeclaration: u } = n;
      if (!u || Zn(a).isDeclarationFile)
        return;
      let p;
      const g = Mr(l);
      KIe(a) && !JYe(u) && !(ll(a) && ll(a.expression)) && !Rg(u, l) && !(ac(u) && _y(u) & 32) && (Y.useDefineForClassFields || !tnt(n)) ? p = Ke(l, _.Property_0_is_used_before_its_initialization, g) : u.kind === 260 && a.parent.kind !== 180 && !(u.flags & 16777216) && !Rg(u, l) && (p = Ke(l, _.Class_0_used_before_its_declaration, g)), p && Xo(p, Nr(u, _._0_is_declared_here, g));
    }
    function KIe(n) {
      return !!nr(n, (a) => {
        switch (a.kind) {
          case 169:
            return !0;
          case 299:
          case 171:
          case 174:
          case 175:
          case 301:
          case 164:
          case 236:
          case 291:
          case 288:
          case 289:
          case 290:
          case 283:
          case 230:
          case 294:
            return !1;
          case 216:
          case 241:
            return co(a.parent) && Il(a.parent.parent) ? !0 : "quit";
          default:
            return dg(a) ? !1 : "quit";
        }
      });
    }
    function tnt(n) {
      if (!(n.parent.flags & 32))
        return !1;
      let a = ar(n.parent);
      for (; ; ) {
        if (a = a.symbol && nnt(a), !a)
          return !1;
        const l = uo(a, n.escapedName);
        if (l && l.valueDeclaration)
          return !0;
      }
    }
    function nnt(n) {
      const a = Mo(n);
      if (a.length !== 0)
        return wo(a);
    }
    function XIe(n, a, l) {
      let u, p;
      if (!Ni(n) && a.flags & 1048576 && !(a.flags & 134348796)) {
        for (const x of a.types)
          if (!uo(x, n.escapedText) && !P2(x, n.escapedText)) {
            u = Na(u, _.Property_0_does_not_exist_on_type_1, ws(n), ke(x));
            break;
          }
      }
      if (YIe(n.escapedText, a)) {
        const x = ws(n), R = ke(a);
        u = Na(u, _.Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead, x, R, R + "." + x);
      } else {
        const x = VD(a);
        if (x && uo(x, n.escapedText))
          u = Na(u, _.Property_0_does_not_exist_on_type_1, ws(n), ke(a)), p = Nr(n, _.Did_you_forget_to_use_await);
        else {
          const R = ws(n), M = ke(a), J = ant(R, a);
          if (J !== void 0)
            u = Na(u, _.Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later, R, M, J);
          else {
            const $ = Rae(n, a);
            if ($ !== void 0) {
              const ge = Ml($), Ne = l ? _.Property_0_may_not_exist_on_type_1_Did_you_mean_2 : _.Property_0_does_not_exist_on_type_1_Did_you_mean_2;
              u = Na(u, Ne, R, M, ge), p = $.valueDeclaration && Nr($.valueDeclaration, _._0_is_declared_here, ge);
            } else {
              const ge = rnt(a) ? _.Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom : _.Property_0_does_not_exist_on_type_1;
              u = Na(Nre(u, a), ge, R, M);
            }
          }
        }
      }
      const g = cg(Zn(n), n, u);
      p && Xo(g, p), My(!l || u.code !== _.Property_0_may_not_exist_on_type_1_Did_you_mean_2.code, g);
    }
    function rnt(n) {
      return Y.lib && !Y.lib.includes("dom") && bet(n, (a) => a.symbol && /^(EventTarget|Node|((HTML[a-zA-Z]*)?Element))$/.test(ta(a.symbol.escapedName))) && Xh(n);
    }
    function YIe(n, a) {
      const l = a.symbol && uo(ar(a.symbol), n);
      return l !== void 0 && !!l.valueDeclaration && Ja(l.valueDeclaration);
    }
    function int(n) {
      const a = r_(n), u = WW().get(a);
      return u && Ase(u.keys());
    }
    function ant(n, a) {
      const l = Ju(a).symbol;
      if (!l)
        return;
      const u = Ml(l), g = WW().get(u);
      if (g) {
        for (const [x, R] of g)
          if (jr(R, n))
            return x;
      }
    }
    function $Ie(n, a) {
      return t4(n, ms(a), 106500);
    }
    function Rae(n, a) {
      let l = ms(a);
      if (typeof n != "string") {
        const u = n.parent;
        Fr(u) && (l = lr(l, (p) => eke(u, a, p))), n = Mr(n);
      }
      return t4(n, l, 111551);
    }
    function QIe(n, a) {
      const l = Ha(n) ? n : Mr(n), u = ms(a), p = l === "for" ? nn(u, (g) => Ml(g) === "htmlFor") : l === "class" ? nn(u, (g) => Ml(g) === "className") : void 0;
      return p ?? t4(l, u, 111551);
    }
    function Nae(n, a) {
      const l = Rae(n, a);
      return l && Ml(l);
    }
    function Oae(n, a, l) {
      return D.assert(a !== void 0, "outername should always be defined"), Eb(n, a, l, void 0, a, !1, !1, !0, (p, g, x) => {
        D.assertEqual(a, g, "name should equal outerName");
        const R = Xd(p, g, x);
        if (R)
          return R;
        let M;
        return p === We ? M = ia(["string", "number", "boolean", "object", "bigint", "symbol"], ($) => p.has($.charAt(0).toUpperCase() + $.slice(1)) ? ns(524288, $) : void 0).concat(Ro(p.values())) : M = Ro(p.values()), t4(ta(g), M, x);
      });
    }
    function ont(n, a, l) {
      const u = Oae(n, a, l);
      return u && Ml(u);
    }
    function xV(n, a) {
      return a.exports && t4(Mr(n), Hy(a), 2623475);
    }
    function snt(n, a) {
      const l = xV(n, a);
      return l && Ml(l);
    }
    function lnt(n, a, l) {
      function u(x) {
        const R = Rb(n, x);
        if (R) {
          const M = LS(ar(R));
          return !!M && bm(M) >= 1 && xo(l, fp(M, 0));
        }
        return !1;
      }
      const p = bh(a) ? "set" : "get";
      if (!u(p))
        return;
      let g = XN(a.expression);
      return g === void 0 ? g = p : g += "." + p, g;
    }
    function cnt(n, a) {
      const l = a.types.filter((u) => !!(u.flags & 128));
      return sI(n.value, l, (u) => u.value);
    }
    function t4(n, a, l) {
      return sI(n, a, u);
      function u(p) {
        const g = Ml(p);
        if (!xa(g, '"')) {
          if (p.flags & l)
            return g;
          if (p.flags & 2097152) {
            const x = Mg(p);
            if (x && x.flags & l)
              return g;
          }
        }
      }
    }
    function n4(n, a, l) {
      const u = n && n.flags & 106500 && n.valueDeclaration;
      if (!u)
        return;
      const p = Gd(u, 8), g = n.valueDeclaration && gu(n.valueDeclaration) && Ni(n.valueDeclaration.name);
      if (!(!p && !g) && !(a && eq(a) && !(n.flags & 65536))) {
        if (l) {
          const x = nr(a, Qs);
          if (x && x.symbol === n)
            return;
        }
        (Ll(n) & 1 ? Wi(n).target : n).isReferenced = 67108863;
      }
    }
    function ZIe(n, a) {
      return n.kind === 108 || !!a && zl(n) && a === w_(Lf(n));
    }
    function unt(n, a) {
      switch (n.kind) {
        case 208:
          return Pae(n, n.expression.kind === 106, a, ef(ga(n.expression)));
        case 163:
          return Pae(n, !1, a, ef(ga(n.left)));
        case 202:
          return Pae(n, !1, a, fi(n));
      }
    }
    function eke(n, a, l) {
      return Mae(n, n.kind === 208 && n.expression.kind === 106, !1, a, l);
    }
    function Pae(n, a, l, u) {
      if (Ss(u))
        return !0;
      const p = uo(u, l);
      return !!p && Mae(n, a, !1, u, p);
    }
    function Mae(n, a, l, u, p) {
      if (Ss(u))
        return !0;
      if (p.valueDeclaration && $u(p.valueDeclaration)) {
        const g = xc(p.valueDeclaration);
        return !yu(n) && !!nr(n, (x) => x === g);
      }
      return GIe(n, a, l, u, p);
    }
    function dnt(n) {
      const a = n.initializer;
      if (a.kind === 258) {
        const l = a.declarations[0];
        if (l && !Xa(l.name))
          return Ir(l);
      } else if (a.kind === 79)
        return w_(a);
    }
    function fnt(n) {
      return Lu(n).length === 1 && !!sh(n, mt);
    }
    function _nt(n) {
      const a = js(n);
      if (a.kind === 79) {
        const l = w_(a);
        if (l.flags & 3) {
          let u = n, p = n.parent;
          for (; p; ) {
            if (p.kind === 246 && u === p.statement && dnt(p) === l && fnt(Du(p.expression)))
              return !0;
            u = p, p = p.parent;
          }
        }
      }
      return !1;
    }
    function pnt(n, a) {
      return n.flags & 32 ? mnt(n, a) : tke(n, FL(n.expression), a);
    }
    function mnt(n, a) {
      const l = ga(n.expression), u = ED(l, n.expression);
      return ZU(tke(n, Gp(u, n.expression), a), n, u !== l);
    }
    function tke(n, a, l) {
      const u = pT(n) !== 0 || zIe(n) ? ef(a) : a, p = n.argumentExpression, g = ga(p);
      if (rs(u) || u === ft)
        return u;
      if (eoe(u) && !xs(p))
        return Ke(p, _.A_const_enum_member_can_only_be_accessed_using_a_string_literal), Ce;
      const x = _nt(p) ? mt : g, R = bh(n) ? 4 | (Fb(u) && !vk(u) ? 2 : 0) : 32, M = sv(u, x, R, n) || Ce;
      return awe(JIe(n, Jr(n).resolvedSymbol, M, p, l), n);
    }
    function nke(n) {
      return lg(n) || AT(n) || Qu(n);
    }
    function X2(n) {
      return nke(n) && ze(n.typeArguments, go), n.kind === 212 ? ga(n.template) : Qu(n) ? ga(n.attributes) : n.kind !== 167 && ze(n.arguments, (a) => {
        ga(a);
      }), Ks;
    }
    function vm(n) {
      return X2(n), rn;
    }
    function hnt(n, a, l) {
      let u, p, g = 0, x, R = -1, M;
      D.assert(!a.length);
      for (const J of n) {
        const $ = J.declaration && Ir(J.declaration), ge = J.declaration && J.declaration.parent;
        !p || $ === p ? u && ge === u ? x = x + 1 : (u = ge, x = g) : (x = g = a.length, u = ge), p = $, $K(J) ? (R++, M = R, g++) : M = x, a.splice(M, 0, l ? gYe(J, l) : J);
      }
    }
    function AV(n) {
      return !!n && (n.kind === 227 || n.kind === 234 && n.isSpread);
    }
    function CV(n) {
      return vi(n, AV);
    }
    function rke(n) {
      return !!(n.flags & 16384);
    }
    function gnt(n) {
      return !!(n.flags & 49155);
    }
    function LV(n, a, l, u = !1) {
      let p, g = !1, x = tf(l), R = bm(l);
      if (n.kind === 212)
        if (p = a.length, n.template.kind === 225) {
          const M = qo(n.template.templateSpans);
          g = Al(M.literal) || !!M.literal.isUnterminated;
        } else {
          const M = n.template;
          D.assert(M.kind === 14), g = !!M.isUnterminated;
        }
      else if (n.kind === 167)
        p = uke(n, l);
      else if (Qu(n)) {
        if (g = n.attributes.end === n.end, g)
          return !0;
        p = R === 0 ? a.length : 1, x = a.length === 0 ? x : 1, R = Math.min(R, 1);
      } else if (n.arguments) {
        p = u ? a.length + 1 : a.length, g = n.arguments.end === n.end;
        const M = CV(a);
        if (M >= 0)
          return M >= bm(l) && (Em(l) || M < tf(l));
      } else
        return D.assert(n.kind === 211), bm(l) === 0;
      if (!Em(l) && p > x)
        return !1;
      if (g || p >= R)
        return !0;
      for (let M = p; M < R; M++) {
        const J = fp(l, M);
        if (_c(J, fr(n) && !W ? gnt : rke).flags & 131072)
          return !1;
      }
      return !0;
    }
    function Fae(n, a) {
      const l = Le(n.typeParameters), u = mm(n.typeParameters);
      return !kt(a) || a.length >= u && a.length <= l;
    }
    function LS(n) {
      return DD(n, 0, !1);
    }
    function ike(n) {
      return DD(n, 0, !1) || DD(n, 1, !1);
    }
    function DD(n, a, l) {
      if (n.flags & 524288) {
        const u = cp(n);
        if (l || u.properties.length === 0 && u.indexInfos.length === 0) {
          if (a === 0 && u.callSignatures.length === 1 && u.constructSignatures.length === 0)
            return u.callSignatures[0];
          if (a === 1 && u.constructSignatures.length === 1 && u.callSignatures.length === 0)
            return u.constructSignatures[0];
        }
      }
    }
    function ake(n, a, l, u) {
      const p = SD(n.typeParameters, n, 0, u), g = OD(a), x = l && (g && g.flags & 262144 ? l.nonFixingMapper : l.mapper), R = x ? W2(a, x) : a;
      return Vie(R, n, (M, J) => {
        $h(p.inferences, M, J);
      }), l || jie(a, n, (M, J) => {
        $h(p.inferences, M, J, 128);
      }), uD(n, tae(p), fr(a.declaration));
    }
    function ynt(n, a, l, u) {
      const p = gV(a, n), g = Y2(n.attributes, p, u, l);
      return $h(u.inferences, g, p), tae(u);
    }
    function oke(n) {
      if (!n)
        return Rt;
      const a = ga(n);
      return xI(n.parent) ? Zg(a) : yu(n.parent) ? Bie(a) : a;
    }
    function Bae(n, a, l, u, p) {
      if (Qu(n))
        return ynt(n, a, u, p);
      if (n.kind !== 167) {
        const M = Yn(a.typeParameters, ($) => !!IE($)), J = ad(n, M ? 8 : 0);
        if (J) {
          const $ = ys(a);
          if (PE($)) {
            const ge = CS(n);
            if (!(!M && ad(n, 8) !== J)) {
              const Bt = zie(PZe(ge, 1)), Mn = Yi(J, Bt), An = LS(Mn), Kn = An && An.typeParameters ? kE(jre(An, An.typeParameters)) : Mn;
              $h(p.inferences, Kn, $, 128);
            }
            const De = SD(a.typeParameters, a, p.flags), _t = Yi(J, ge && ge.returnMapper);
            $h(De.inferences, _t, $), p.returnMapper = kt(De.inferences, $2) ? zie(GZe(De)) : void 0;
          }
        }
      }
      const g = PD(a), x = g ? Math.min(tf(a) - 1, l.length) : l.length;
      if (g && g.flags & 262144) {
        const M = nn(p.inferences, (J) => J.typeParameter === g);
        M && (M.impliedArity = vi(l, AV, x) < 0 ? l.length - x : void 0);
      }
      const R = Ob(a);
      if (R && PE(R)) {
        const M = cke(n);
        $h(p.inferences, oke(M), R);
      }
      for (let M = 0; M < x; M++) {
        const J = l[M];
        if (J.kind !== 229 && !(u & 32 && Xie(J))) {
          const $ = fp(a, M);
          if (PE($)) {
            const ge = Y2(J, $, p, u);
            $h(p.inferences, ge, $);
          }
        }
      }
      if (g && PE(g)) {
        const M = Gae(l, x, l.length, g, p, u);
        $h(p.inferences, M, g);
      }
      return tae(p);
    }
    function ske(n) {
      return n.flags & 1048576 ? $s(n, ske) : n.flags & 1 || XU(qu(n) || n) ? n : Fo(n) ? Fp(hs(n), n.target.elementFlags, !1, n.target.labeledElementDeclarations) : Fp([n], [8]);
    }
    function Gae(n, a, l, u, p, g) {
      if (a >= l - 1) {
        const $ = n[l - 1];
        if (AV($))
          return ske($.kind === 234 ? $.type : Y2($.expression, u, p, g));
      }
      const x = [], R = [], M = [], J = EP(u);
      for (let $ = a; $ < l; $++) {
        const ge = n[$];
        if (AV(ge)) {
          const Ne = ge.kind === 234 ? ge.type : ga(ge.expression);
          w0(Ne) ? (x.push(Ne), R.push(8)) : (x.push(_v(33, Ne, He, ge.kind === 227 ? ge.expression : ge)), R.push(4));
        } else {
          const Ne = Md(u, Bp($ - a), 256), De = Y2(ge, Ne, p, g), _t = J || pl(Ne, 406978556);
          x.push(_t ? yd(De) : jb(De)), R.push(1);
        }
        ge.kind === 234 && ge.tupleNameSource && M.push(ge.tupleNameSource);
      }
      return Fp(x, R, J, Le(M) === Le(x) ? M : void 0);
    }
    function Uae(n, a, l, u) {
      const p = fr(n.declaration), g = n.typeParameters, x = av(jt(a, fi), g, mm(g), p);
      let R;
      for (let M = 0; M < a.length; M++) {
        D.assert(g[M] !== void 0, "Should not call checkTypeArguments with too many type arguments");
        const J = Cu(g[M]);
        if (J) {
          const $ = l && u ? () => Na(void 0, _.Type_0_does_not_satisfy_the_constraint_1) : void 0, ge = u || _.Type_0_does_not_satisfy_the_constraint_1;
          R || (R = vd(g, x));
          const Ne = x[M];
          if (!id(Ne, Uf(Yi(J, R), Ne), l ? a[M] : void 0, ge, $))
            return;
        }
      }
      return x;
    }
    function lke(n) {
      if (ML(n.tagName))
        return 2;
      const a = Ju(ga(n.tagName));
      return Le(za(a, 1)) ? 0 : Le(za(a, 0)) ? 1 : 2;
    }
    function vnt(n, a, l, u, p, g, x) {
      const R = gV(a, n), M = Y2(n.attributes, R, void 0, u);
      return J() && Sie(M, R, l, p ? n.tagName : void 0, n.attributes, void 0, g, x);
      function J() {
        var $;
        if (Sae(n))
          return !0;
        const ge = kh(n) || wx(n) && !ML(n.tagName) ? ga(n.tagName) : void 0;
        if (!ge)
          return !0;
        const Ne = za(ge, 0);
        if (!Le(Ne))
          return !0;
        const De = _De(n);
        if (!De)
          return !0;
        const _t = Rl(De, 111551, !0, !1, n);
        if (!_t)
          return !0;
        const Bt = ar(_t), Mn = za(Bt, 0);
        if (!Le(Mn))
          return !0;
        let An = !1, Kn = 0;
        for (const xn of Mn) {
          const yr = fp(xn, 0), ln = za(yr, 0);
          if (Le(ln))
            for (const Gn of ln) {
              if (An = !0, Em(Gn))
                return !0;
              const qn = tf(Gn);
              qn > Kn && (Kn = qn);
            }
        }
        if (!An)
          return !0;
        let gn = 1 / 0;
        for (const xn of Ne) {
          const yr = bm(xn);
          yr < gn && (gn = yr);
        }
        if (gn <= Kn)
          return !0;
        if (p) {
          const xn = Nr(n.tagName, _.Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3, Af(n.tagName), gn, Af(De), Kn), yr = ($ = D_(n.tagName)) == null ? void 0 : $.valueDeclaration;
          yr && Xo(xn, Nr(yr, _._0_is_declared_here, Af(n.tagName))), x && x.skipLogging && (x.errors || (x.errors = [])).push(xn), x.skipLogging || Qo.add(xn);
        }
        return !1;
      }
    }
    function r4(n, a, l, u, p, g, x) {
      const R = { errors: void 0, skipLogging: !0 };
      if (Qu(n))
        return vnt(n, l, u, p, g, x, R) ? void 0 : (D.assert(!g || !!R.errors, "jsx should have errors when reporting errors"), R.errors || rt);
      const M = Ob(l);
      if (M && M !== Rt && !(D1(n) || no(n) && ud(n.expression))) {
        const De = cke(n), _t = oke(De), Bt = g ? De || n : void 0, Mn = _.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1;
        if (!s_(_t, M, u, Bt, Mn, x, R))
          return D.assert(!g || !!R.errors, "this parameter should have errors when reporting errors"), R.errors || rt;
      }
      const J = _.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1, $ = PD(l), ge = $ ? Math.min(tf(l) - 1, a.length) : a.length;
      for (let De = 0; De < ge; De++) {
        const _t = a[De];
        if (_t.kind !== 229) {
          const Bt = fp(l, De), Mn = Y2(_t, Bt, void 0, p), An = p & 4 ? VP(Mn) : Mn;
          if (!Sie(An, Bt, u, g ? _t : void 0, _t, J, x, R))
            return D.assert(!g || !!R.errors, "parameter should have errors when reporting errors"), Ne(_t, An, Bt), R.errors || rt;
        }
      }
      if ($) {
        const De = Gae(a, ge, a.length, $, void 0, p), _t = a.length - ge, Bt = g ? _t === 0 ? n : _t === 1 ? a[ge] : Vm(i4(n, De), a[ge].pos, a[a.length - 1].end) : void 0;
        if (!s_(De, $, u, Bt, J, void 0, R))
          return D.assert(!g || !!R.errors, "rest parameter should have errors when reporting errors"), Ne(Bt, De, $), R.errors || rt;
      }
      return;
      function Ne(De, _t, Bt) {
        if (De && g && R.errors && R.errors.length) {
          if (UD(Bt))
            return;
          const Mn = UD(_t);
          Mn && ym(Mn, Bt, u) && Xo(R.errors[0], Nr(De, _.Did_you_forget_to_use_await));
        }
      }
    }
    function cke(n) {
      const a = n.kind === 210 ? n.expression : n.kind === 212 ? n.tag : void 0;
      if (a) {
        const l = bu(a);
        if (ll(l))
          return l.expression;
      }
    }
    function i4(n, a, l, u) {
      const p = Jm.createSyntheticExpression(a, l, u);
      return ht(p, n), Vo(p, n), p;
    }
    function Vae(n) {
      if (n.kind === 212) {
        const u = n.template, p = [i4(u, u$e())];
        return u.kind === 225 && ze(u.templateSpans, (g) => {
          p.push(g.expression);
        }), p;
      }
      if (n.kind === 167)
        return bnt(n);
      if (Qu(n))
        return n.attributes.properties.length > 0 || kh(n) && n.parent.children.length > 0 ? [n.attributes] : rt;
      const a = n.arguments || rt, l = CV(a);
      if (l >= 0) {
        const u = a.slice(0, l);
        for (let p = l; p < a.length; p++) {
          const g = a[p], x = g.kind === 227 && (Hn ? ga(g.expression) : Ql(g.expression));
          x && Fo(x) ? ze(hs(x), (R, M) => {
            var J;
            const $ = x.target.elementFlags[M], ge = i4(g, $ & 4 ? Iu(R) : R, !!($ & 12), (J = x.target.labeledElementDeclarations) == null ? void 0 : J[M]);
            u.push(ge);
          }) : u.push(g);
        }
        return u;
      }
      return a;
    }
    function bnt(n) {
      const a = n.expression, l = $ae(n);
      if (l) {
        const u = [];
        for (const p of l.parameters) {
          const g = ar(p);
          u.push(i4(a, g));
        }
        return u;
      }
      return D.fail();
    }
    function uke(n, a) {
      return Y.experimentalDecorators ? Ent(n, a) : 2;
    }
    function Ent(n, a) {
      switch (n.parent.kind) {
        case 260:
        case 228:
          return 1;
        case 169:
          return Bm(n.parent) ? 3 : 2;
        case 171:
        case 174:
        case 175:
          return P === 0 || a.parameters.length <= 2 ? 2 : 3;
        case 166:
          return 3;
        default:
          return D.fail();
      }
    }
    function dke(n, a) {
      let l, u;
      const p = Zn(n);
      if (Fr(n.expression)) {
        const g = g1(p, n.expression.name);
        l = g.start, u = a ? g.length : n.end - l;
      } else {
        const g = g1(p, n.expression);
        l = g.start, u = a ? g.length : n.end - l;
      }
      return { start: l, length: u, sourceFile: p };
    }
    function RD(n, a, l, u, p, g) {
      if (no(n)) {
        const { sourceFile: x, start: R, length: M } = dke(n);
        return "message" in a ? Dc(x, R, M, a, l, u, p, g) : nz(x, a);
      } else
        return "message" in a ? Nr(n, a, l, u, p, g) : cg(Zn(n), n, a);
    }
    function Tnt(n) {
      if (!no(n) || !je(n.expression))
        return !1;
      const a = _l(n.expression, n.expression.escapedText, 111551, void 0, void 0, !1), l = a == null ? void 0 : a.valueDeclaration;
      if (!l || !Ba(l) || !lC(l.parent) || !D1(l.parent.parent) || !je(l.parent.parent.expression))
        return !1;
      const u = $re(!1);
      return u ? D_(l.parent.parent.expression, !0) === u : !1;
    }
    function fke(n, a, l, u) {
      var p;
      const g = CV(l);
      if (g > -1)
        return Nr(l[g], _.A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter);
      let x = Number.POSITIVE_INFINITY, R = Number.NEGATIVE_INFINITY, M = Number.NEGATIVE_INFINITY, J = Number.POSITIVE_INFINITY, $;
      for (const Bt of a) {
        const Mn = bm(Bt), An = tf(Bt);
        Mn < x && (x = Mn, $ = Bt), R = Math.max(R, An), Mn < l.length && Mn > M && (M = Mn), l.length < An && An < J && (J = An);
      }
      const ge = kt(a, Em), Ne = ge ? x : x < R ? x + "-" + R : x, De = !ge && Ne === 1 && l.length === 0 && Tnt(n);
      if (De && fr(n))
        return RD(n, _.Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments);
      const _t = Fu(n) ? ge ? _.The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0 : _.The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0 : ge ? _.Expected_at_least_0_arguments_but_got_1 : De ? _.Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise : _.Expected_0_arguments_but_got_1;
      if (x < l.length && l.length < R) {
        if (u) {
          let Bt = Na(void 0, _.No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments, l.length, M, J);
          return Bt = Na(Bt, u), RD(n, Bt);
        }
        return RD(n, _.No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments, l.length, M, J);
      } else if (l.length < x) {
        let Bt;
        if (u) {
          let An = Na(void 0, _t, Ne, l.length);
          An = Na(An, u), Bt = RD(n, An);
        } else
          Bt = RD(n, _t, Ne, l.length);
        const Mn = (p = $ == null ? void 0 : $.declaration) == null ? void 0 : p.parameters[$.thisParameter ? l.length + 1 : l.length];
        if (Mn) {
          const An = Nr(Mn, Xa(Mn.name) ? _.An_argument_matching_this_binding_pattern_was_not_provided : gh(Mn) ? _.Arguments_for_the_rest_parameter_0_were_not_provided : _.An_argument_for_0_was_not_provided, Mn.name ? Xa(Mn.name) ? void 0 : Mr(Lf(Mn.name)) : l.length);
          return Xo(Bt, An);
        }
        return Bt;
      } else {
        const Bt = N.createNodeArray(l.slice(R)), Mn = us(Bt).pos;
        let An = qo(Bt).end;
        if (An === Mn && An++, Vm(Bt, Mn, An), u) {
          let Kn = Na(void 0, _t, Ne, l.length);
          return Kn = Na(Kn, u), lN(Zn(n), Bt, Kn);
        }
        return PA(Zn(n), Bt, _t, Ne, l.length);
      }
    }
    function Snt(n, a, l, u) {
      const p = l.length;
      if (a.length === 1) {
        const R = a[0], M = mm(R.typeParameters), J = Le(R.typeParameters);
        if (u) {
          let $ = Na(void 0, _.Expected_0_type_arguments_but_got_1, M < J ? M + "-" + J : M, p);
          return $ = Na($, u), lN(Zn(n), l, $);
        }
        return PA(Zn(n), l, _.Expected_0_type_arguments_but_got_1, M < J ? M + "-" + J : M, p);
      }
      let g = -1 / 0, x = 1 / 0;
      for (const R of a) {
        const M = mm(R.typeParameters), J = Le(R.typeParameters);
        M > p ? x = Math.min(x, M) : J < p && (g = Math.max(g, J));
      }
      if (g !== -1 / 0 && x !== 1 / 0) {
        if (u) {
          let R = Na(void 0, _.No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments, p, g, x);
          return R = Na(R, u), lN(Zn(n), l, R);
        }
        return PA(Zn(n), l, _.No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments, p, g, x);
      }
      if (u) {
        let R = Na(void 0, _.Expected_0_type_arguments_but_got_1, g === -1 / 0 ? x : g, p);
        return R = Na(R, u), lN(Zn(n), l, R);
      }
      return PA(Zn(n), l, _.Expected_0_type_arguments_but_got_1, g === -1 / 0 ? x : g, p);
    }
    function BL(n, a, l, u, p, g) {
      const x = n.kind === 212, R = n.kind === 167, M = Qu(n), J = !H && !l;
      let $;
      !R && !MA(n) && ($ = n.typeArguments, (x || M || n.expression.kind !== 106) && ze($, go));
      const ge = l || [];
      if (hnt(a, ge, p), !ge.length)
        return J && Qo.add(RD(n, _.Call_target_does_not_contain_any_signatures)), vm(n);
      const Ne = Vae(n), De = ge.length === 1 && !ge[0].typeParameters;
      let _t = !R && !De && kt(Ne, k_) ? 4 : 0;
      _t |= u & 32;
      let Bt, Mn, An, Kn;
      const gn = !!(u & 16) && n.kind === 210 && n.arguments.hasTrailingComma;
      if (ge.length > 1 && (Kn = yr(ge, $m, De, gn)), Kn || (Kn = yr(ge, kd, De, gn)), Kn)
        return Kn;
      if (Kn = xnt(n, ge, Ne, !!l, u), Jr(n).resolvedSignature = Kn, J)
        if (Bt)
          if (Bt.length === 1 || Bt.length > 3) {
            const ln = Bt[Bt.length - 1];
            let Gn;
            Bt.length > 3 && (Gn = Na(Gn, _.The_last_overload_gave_the_following_error), Gn = Na(Gn, _.No_overload_matches_this_call)), g && (Gn = Na(Gn, g));
            const qn = r4(n, Ne, ln, kd, 0, !0, () => Gn);
            if (qn)
              for (const Zr of qn)
                ln.declaration && Bt.length > 3 && Xo(Zr, Nr(ln.declaration, _.The_last_overload_is_declared_here)), xn(ln, Zr), Qo.add(Zr);
            else
              D.fail("No error for last overload signature");
          } else {
            const ln = [];
            let Gn = 0, qn = Number.MAX_VALUE, Zr = 0, ri = 0;
            for (const Ef of Bt) {
              const Un = r4(n, Ne, Ef, kd, 0, !0, () => Na(void 0, _.Overload_0_of_1_2_gave_the_following_error, ri + 1, ge.length, le(Ef)));
              Un ? (Un.length <= qn && (qn = Un.length, Zr = ri), Gn = Math.max(Gn, Un.length), ln.push(Un)) : D.fail("No error for 3 or fewer overload signatures"), ri++;
            }
            const ma = Gn > 1 ? ln[Zr] : No(ln);
            D.assert(ma.length > 0, "No errors reported for 3 or fewer overload signatures");
            let Qa = Na(jt(ma, aue), _.No_overload_matches_this_call);
            g && (Qa = Na(Qa, g));
            const Ec = [...ca(ma, (Ef) => Ef.relatedInformation)];
            let Wf;
            if (Yn(ma, (Ef) => Ef.start === ma[0].start && Ef.length === ma[0].length && Ef.file === ma[0].file)) {
              const { file: Ef, start: oa, length: Un } = ma[0];
              Wf = { file: Ef, start: oa, length: Un, code: Qa.code, category: Qa.category, messageText: Qa, relatedInformation: Ec };
            } else
              Wf = cg(Zn(n), n, Qa, Ec);
            xn(Bt[0], Wf), Qo.add(Wf);
          }
        else if (Mn)
          Qo.add(fke(n, [Mn], Ne, g));
        else if (An)
          Uae(An, n.typeArguments, !0, g);
        else {
          const ln = lr(a, (Gn) => Fae(Gn, $));
          ln.length === 0 ? Qo.add(Snt(n, a, $, g)) : Qo.add(fke(n, ln, Ne, g));
        }
      return Kn;
      function xn(ln, Gn) {
        var qn, Zr;
        const ri = Bt, ma = Mn, Qa = An, Ec = ((Zr = (qn = ln.declaration) == null ? void 0 : qn.symbol) == null ? void 0 : Zr.declarations) || rt, Ef = Ec.length > 1 ? nn(Ec, (oa) => Qs(oa) && __(oa.body)) : void 0;
        if (Ef) {
          const oa = Mp(Ef), Un = !oa.typeParameters;
          yr([oa], kd, Un) && Xo(Gn, Nr(Ef, _.The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible));
        }
        Bt = ri, Mn = ma, An = Qa;
      }
      function yr(ln, Gn, qn, Zr = !1) {
        if (Bt = void 0, Mn = void 0, An = void 0, qn) {
          const ri = ln[0];
          if (kt($) || !LV(n, Ne, ri, Zr))
            return;
          if (r4(n, Ne, ri, Gn, 0, !1, void 0)) {
            Bt = [ri];
            return;
          }
          return ri;
        }
        for (let ri = 0; ri < ln.length; ri++) {
          const ma = ln[ri];
          if (!Fae(ma, $) || !LV(n, Ne, ma, Zr))
            continue;
          let Qa, Ec;
          if (ma.typeParameters) {
            let Wf;
            if (kt($)) {
              if (Wf = Uae(ma, $, !1), !Wf) {
                An = ma;
                continue;
              }
            } else
              Ec = SD(ma.typeParameters, ma, fr(n) ? 2 : 0), Wf = Bae(n, ma, Ne, _t | 8, Ec), _t |= Ec.flags & 4 ? 8 : 0;
            if (Qa = uD(ma, Wf, fr(ma.declaration), Ec && Ec.inferredTypeParameters), PD(ma) && !LV(n, Ne, Qa, Zr)) {
              Mn = Qa;
              continue;
            }
          } else
            Qa = ma;
          if (r4(n, Ne, Qa, Gn, _t, !1, void 0)) {
            (Bt || (Bt = [])).push(Qa);
            continue;
          }
          if (_t) {
            if (_t = u & 32, Ec) {
              const Wf = Bae(n, ma, Ne, _t, Ec);
              if (Qa = uD(ma, Wf, fr(ma.declaration), Ec.inferredTypeParameters), PD(ma) && !LV(n, Ne, Qa, Zr)) {
                Mn = Qa;
                continue;
              }
            }
            if (r4(n, Ne, Qa, Gn, _t, !1, void 0)) {
              (Bt || (Bt = [])).push(Qa);
              continue;
            }
          }
          return ln[ri] = Qa, Qa;
        }
      }
    }
    function xnt(n, a, l, u, p) {
      return D.assert(a.length > 0), KL(n), u || a.length === 1 || a.some((g) => !!g.typeParameters) ? Lnt(n, a, l, p) : Ant(a);
    }
    function Ant(n) {
      const a = ia(n, (M) => M.thisParameter);
      let l;
      a.length && (l = _ke(a, a.map(o4)));
      const { min: u, max: p } = zde(n, Cnt), g = [];
      for (let M = 0; M < p; M++) {
        const J = ia(n, ($) => Eu($) ? M < $.parameters.length - 1 ? $.parameters[M] : qo($.parameters) : M < $.parameters.length ? $.parameters[M] : void 0);
        D.assert(J.length !== 0), g.push(_ke(J, ia(n, ($) => VE($, M))));
      }
      const x = ia(n, (M) => Eu(M) ? qo(M.parameters) : void 0);
      let R = 0;
      if (x.length !== 0) {
        const M = Iu(Qr(ia(n, YAe), 2));
        g.push(pke(x, M)), R |= 1;
      }
      return n.some($K) && (R |= 2), oh(n[0].declaration, void 0, l, g, wo(n.map(ys)), void 0, u, R);
    }
    function Cnt(n) {
      const a = n.parameters.length;
      return Eu(n) ? a - 1 : a;
    }
    function _ke(n, a) {
      return pke(n, Qr(a, 2));
    }
    function pke(n, a) {
      return OE(us(n), a);
    }
    function Lnt(n, a, l, u) {
      const p = wnt(a, tt === void 0 ? l.length : tt), g = a[p], { typeParameters: x } = g;
      if (!x)
        return g;
      const R = nke(n) ? n.typeArguments : void 0, M = R ? TU(g, Int(R, x, fr(n))) : knt(n, x, g, l, u);
      return a[p] = M, M;
    }
    function Int(n, a, l) {
      const u = n.map(IS);
      for (; u.length > a.length; )
        u.pop();
      for (; u.length < a.length; )
        u.push(IE(a[u.length]) || Cu(a[u.length]) || eae(l));
      return u;
    }
    function knt(n, a, l, u, p) {
      const g = SD(a, l, fr(n) ? 2 : 0), x = Bae(n, l, u, p | 4 | 8, g);
      return TU(l, x);
    }
    function wnt(n, a) {
      let l = -1, u = -1;
      for (let p = 0; p < n.length; p++) {
        const g = n[p], x = tf(g);
        if (Em(g) || x >= a)
          return p;
        x > u && (u = x, l = p);
      }
      return l;
    }
    function Dnt(n, a, l) {
      if (n.expression.kind === 106) {
        const M = dae(n.expression);
        if (Ss(M)) {
          for (const J of n.arguments)
            ga(J);
          return Ks;
        }
        if (!rs(M)) {
          const J = Xp(xc(n));
          if (J) {
            const $ = Ur(M, J.typeArguments, J);
            return BL(n, $, a, l, 0);
          }
        }
        return X2(n);
      }
      let u, p = ga(n.expression);
      if (tT(n)) {
        const M = ED(p, n.expression);
        u = M === p ? 0 : AI(n) ? 16 : 8, p = M;
      } else
        u = 0;
      if (p = VIe(p, n.expression, Xtt), p === ft)
        return xu;
      const g = Ju(p);
      if (rs(g))
        return vm(n);
      const x = za(g, 0), R = za(g, 1).length;
      if (IV(p, g, x.length, R))
        return !rs(p) && n.typeArguments && Ke(n, _.Untyped_function_calls_may_not_accept_type_arguments), X2(n);
      if (!x.length) {
        if (R)
          Ke(n, _.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new, ke(p));
        else {
          let M;
          if (n.arguments.length === 1) {
            const J = Zn(n).text;
            hu(J.charCodeAt(Ko(J, n.expression.end, !0) - 1)) && (M = Nr(n.expression, _.Are_you_missing_a_semicolon));
          }
          Hae(n.expression, g, 0, M);
        }
        return vm(n);
      }
      return l & 8 && !n.typeArguments && x.some(Rnt) ? (Kke(n, l), jl) : x.some((M) => fr(M.declaration) && !!cW(M.declaration)) ? (Ke(n, _.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new, ke(p)), vm(n)) : BL(n, x, a, l, u);
    }
    function Rnt(n) {
      return !!(n.typeParameters && woe(ys(n)));
    }
    function IV(n, a, l, u) {
      return Ss(n) || Ss(a) && !!(n.flags & 262144) || !l && !u && !(a.flags & 1048576) && !(up(a).flags & 131072) && xo(n, dl);
    }
    function Nnt(n, a, l) {
      if (n.arguments && P < 1) {
        const x = CV(n.arguments);
        x >= 0 && Ke(n.arguments[x], _.Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher);
      }
      let u = FL(n.expression);
      if (u === ft)
        return xu;
      if (u = Ju(u), rs(u))
        return vm(n);
      if (Ss(u))
        return n.typeArguments && Ke(n, _.Untyped_function_calls_may_not_accept_type_arguments), X2(n);
      const p = za(u, 1);
      if (p.length) {
        if (!Ont(n, p[0]))
          return vm(n);
        if (mke(p, (R) => !!(R.flags & 4)))
          return Ke(n, _.Cannot_create_an_instance_of_an_abstract_class), vm(n);
        const x = u.symbol && mg(u.symbol);
        return x && Yr(x, 256) ? (Ke(n, _.Cannot_create_an_instance_of_an_abstract_class), vm(n)) : BL(n, p, a, l, 0);
      }
      const g = za(u, 0);
      if (g.length) {
        const x = BL(n, g, a, l, 0);
        return Te || (x.declaration && !Up(x.declaration) && ys(x) !== Rt && Ke(n, _.Only_a_void_function_can_be_called_with_the_new_keyword), Ob(x) === Rt && Ke(n, _.A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void)), x;
      }
      return Hae(n.expression, u, 1), vm(n);
    }
    function mke(n, a) {
      return Va(n) ? kt(n, (l) => mke(l, a)) : n.compositeKind === 1048576 ? kt(n.compositeSignatures, a) : a(n);
    }
    function jae(n, a) {
      const l = Mo(a);
      if (!Le(l))
        return !1;
      const u = l[0];
      if (u.flags & 2097152) {
        const p = u.types, g = MAe(p);
        let x = 0;
        for (const R of u.types) {
          if (!g[x] && ti(R) & 3 && (R.symbol === n || jae(n, R)))
            return !0;
          x++;
        }
        return !1;
      }
      return u.symbol === n ? !0 : jae(n, u);
    }
    function Ont(n, a) {
      if (!a || !a.declaration)
        return !0;
      const l = a.declaration, u = cx(l, 24);
      if (!u || l.kind !== 173)
        return !0;
      const p = mg(l.parent.symbol), g = Us(l.parent.symbol);
      if (!Loe(n, p)) {
        const x = xc(n);
        if (x && u & 16) {
          const R = IS(x);
          if (jae(l.parent.symbol, R))
            return !0;
        }
        return u & 8 && Ke(n, _.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration, ke(g)), u & 16 && Ke(n, _.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration, ke(g)), !1;
      }
      return !0;
    }
    function hke(n, a, l) {
      let u;
      const p = l === 0, g = HE(a), x = g && za(g, l).length > 0;
      if (a.flags & 1048576) {
        const M = a.types;
        let J = !1;
        for (const $ of M)
          if (za($, l).length !== 0) {
            if (J = !0, u)
              break;
          } else if (u || (u = Na(u, p ? _.Type_0_has_no_call_signatures : _.Type_0_has_no_construct_signatures, ke($)), u = Na(u, p ? _.Not_all_constituents_of_type_0_are_callable : _.Not_all_constituents_of_type_0_are_constructable, ke(a))), J)
            break;
        J || (u = Na(void 0, p ? _.No_constituent_of_type_0_is_callable : _.No_constituent_of_type_0_is_constructable, ke(a))), u || (u = Na(u, p ? _.Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other : _.Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other, ke(a)));
      } else
        u = Na(u, p ? _.Type_0_has_no_call_signatures : _.Type_0_has_no_construct_signatures, ke(a));
      let R = p ? _.This_expression_is_not_callable : _.This_expression_is_not_constructable;
      if (no(n.parent) && n.parent.arguments.length === 0) {
        const { resolvedSymbol: M } = Jr(n);
        M && M.flags & 32768 && (R = _.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without);
      }
      return {
        messageChain: Na(u, R),
        relatedMessage: x ? _.Did_you_forget_to_use_await : void 0
      };
    }
    function Hae(n, a, l, u) {
      const { messageChain: p, relatedMessage: g } = hke(n, a, l), x = cg(Zn(n), n, p);
      if (g && Xo(x, Nr(n, g)), no(n.parent)) {
        const { start: R, length: M } = dke(n.parent, !0);
        x.start = R, x.length = M;
      }
      Qo.add(x), gke(a, l, u ? Xo(x, u) : x);
    }
    function gke(n, a, l) {
      if (!n.symbol)
        return;
      const u = Wi(n.symbol).originatingImport;
      if (u && !lf(u)) {
        const p = za(ar(Wi(n.symbol).target), a);
        if (!p || !p.length)
          return;
        Xo(l, Nr(u, _.Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead));
      }
    }
    function Pnt(n, a, l) {
      const u = ga(n.tag), p = Ju(u);
      if (rs(p))
        return vm(n);
      const g = za(p, 0), x = za(p, 1).length;
      if (IV(u, p, g.length, x))
        return X2(n);
      if (!g.length) {
        if (Bu(n.parent)) {
          const R = Nr(n.tag, _.It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked);
          return Qo.add(R), vm(n);
        }
        return Hae(n.tag, p, 0), vm(n);
      }
      return BL(n, g, a, l, 0);
    }
    function Mnt(n) {
      switch (n.parent.kind) {
        case 260:
        case 228:
          return _.Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression;
        case 166:
          return _.Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression;
        case 169:
          return _.Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression;
        case 171:
        case 174:
        case 175:
          return _.Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression;
        default:
          return D.fail();
      }
    }
    function Fnt(n, a, l) {
      const u = ga(n.expression), p = Ju(u);
      if (rs(p))
        return vm(n);
      const g = za(p, 0), x = za(p, 1).length;
      if (IV(u, p, g.length, x))
        return X2(n);
      if (Gnt(n, g) && !Vd(n.expression)) {
        const M = Sc(n.expression, !1);
        return Ke(n, _._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0, M), vm(n);
      }
      const R = Mnt(n);
      if (!g.length) {
        const M = hke(n.expression, p, 0), J = Na(M.messageChain, R), $ = cg(Zn(n.expression), n.expression, J);
        return M.relatedMessage && Xo($, Nr(n.expression, M.relatedMessage)), Qo.add($), gke(p, 0, $), vm(n);
      }
      return BL(n, g, a, l, 0, R);
    }
    function kV(n, a) {
      const l = K2(n), u = l && hf(l), p = u && Xd(u, kf.Element, 788968), g = p && Ye.symbolToEntityName(p, 788968, n), x = N.createFunctionTypeNode(void 0, [N.createParameterDeclaration(void 0, void 0, "props", void 0, Ye.typeToTypeNode(a, n))], g ? N.createTypeReferenceNode(g, void 0) : N.createKeywordTypeNode(131)), R = ns(1, "props");
      return R.links.type = a, oh(x, void 0, void 0, [R], p ? Us(p) : Ce, void 0, 1, 0);
    }
    function Bnt(n, a, l) {
      if (ML(n.tagName)) {
        const x = MIe(n), R = kV(n, x);
        return uv(Y2(n.attributes, gV(R, n), void 0, 0), x, n.tagName, n.attributes), Le(n.typeArguments) && (ze(n.typeArguments, go), Qo.add(PA(Zn(n), n.typeArguments, _.Expected_0_type_arguments_but_got_1, 0, Le(n.typeArguments)))), R;
      }
      const u = ga(n.tagName), p = Ju(u);
      if (rs(p))
        return vm(n);
      const g = OIe(u, n);
      return IV(u, p, g.length, 0) ? X2(n) : g.length === 0 ? (Ke(n.tagName, _.JSX_element_type_0_does_not_have_any_construct_or_call_signatures, Sc(n.tagName)), vm(n)) : BL(n, g, a, l, 0);
    }
    function Gnt(n, a) {
      return a.length && Yn(a, (l) => l.minArgumentCount === 0 && !Eu(l) && l.parameters.length < uke(n, l));
    }
    function Unt(n, a, l) {
      switch (n.kind) {
        case 210:
          return Dnt(n, a, l);
        case 211:
          return Nnt(n, a, l);
        case 212:
          return Pnt(n, a, l);
        case 167:
          return Fnt(n, a, l);
        case 283:
        case 282:
          return Bnt(n, a, l);
      }
      throw D.assertNever(n, "Branch in 'resolveSignature' should be unreachable.");
    }
    function GL(n, a, l) {
      const u = Jr(n), p = u.resolvedSignature;
      if (p && p !== jl && !a)
        return p;
      u.resolvedSignature = jl;
      const g = Unt(n, a, l || 0);
      return g !== jl && (u.resolvedSignature = Tn === Hn ? g : p), g;
    }
    function Up(n) {
      var a;
      if (!n || !fr(n))
        return !1;
      const l = yc(n) || Bs(n) ? n : (Ki(n) || zc(n)) && n.initializer && Bs(n.initializer) ? n.initializer : void 0;
      if (l) {
        if (cW(n))
          return !0;
        if (zc(Dv(l.parent)))
          return !1;
        const u = Ir(l);
        return !!((a = u == null ? void 0 : u.members) != null && a.size);
      }
      return !1;
    }
    function Wae(n, a) {
      var l, u;
      if (a) {
        const p = Wi(a);
        if (!p.inferredClassSymbol || !p.inferredClassSymbol.has(bo(n))) {
          const g = Om(n) ? n : vb(n);
          return g.exports = g.exports || lo(), g.members = g.members || lo(), g.flags |= a.flags & 32, (l = a.exports) != null && l.size && Pc(g.exports, a.exports), (u = a.members) != null && u.size && Pc(g.members, a.members), (p.inferredClassSymbol || (p.inferredClassSymbol = /* @__PURE__ */ new Map())).set(bo(g), g), g;
        }
        return p.inferredClassSymbol.get(bo(n));
      }
    }
    function Vnt(n) {
      var a;
      const l = n && wV(n, !0), u = (a = l == null ? void 0 : l.exports) == null ? void 0 : a.get("prototype"), p = (u == null ? void 0 : u.valueDeclaration) && jnt(u.valueDeclaration);
      return p ? Ir(p) : void 0;
    }
    function wV(n, a) {
      if (!n.parent)
        return;
      let l, u;
      if (Ki(n.parent) && n.parent.initializer === n) {
        if (!fr(n) && !(ug(n.parent) && Qs(n)))
          return;
        l = n.parent.name, u = n.parent;
      } else if (br(n.parent)) {
        const p = n.parent, g = n.parent.operatorToken.kind;
        if (g === 63 && (a || p.right === n))
          l = p.left, u = l;
        else if ((g === 56 || g === 60) && (Ki(p.parent) && p.parent.initializer === p ? (l = p.parent.name, u = p.parent) : br(p.parent) && p.parent.operatorToken.kind === 63 && (a || p.parent.right === p) && (l = p.parent.left, u = l), !l || !tx(l) || !jA(l, p.left)))
          return;
      } else
        a && yc(n) && (l = n.name, u = n);
      if (!(!u || !l || !a && !W0(n, K0(l))))
        return Yd(u);
    }
    function jnt(n) {
      if (!n.parent)
        return !1;
      let a = n.parent;
      for (; a && a.kind === 208; )
        a = a.parent;
      if (a && br(a) && K0(a.left) && a.operatorToken.kind === 63) {
        const l = gz(a);
        return Ls(l) && l;
      }
    }
    function Hnt(n, a) {
      var l, u, p;
      A4(n, n.typeArguments);
      const g = GL(n, void 0, a);
      if (g === jl)
        return ft;
      if (DV(g, n), n.expression.kind === 106)
        return Rt;
      if (n.kind === 211) {
        const R = g.declaration;
        if (R && R.kind !== 173 && R.kind !== 177 && R.kind !== 182 && !(P1(R) && ((u = (l = HI(R)) == null ? void 0 : l.parent) == null ? void 0 : u.kind) === 173) && !zA(R) && !Up(R))
          return Te && Ke(n, _.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type), we;
      }
      if (fr(n) && vl(Y) !== 100 && Tke(n))
        return KAe(n.arguments[0]);
      const x = ys(g);
      if (x.flags & 12288 && yke(n))
        return mie(Dv(n.parent));
      if (n.kind === 210 && !n.questionDotToken && n.parent.kind === 241 && x.flags & 16384 && a_(g)) {
        if (!ek(n.expression))
          Ke(n.expression, _.Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name);
        else if (!cV(n)) {
          const R = Ke(n.expression, _.Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation);
          qP(n.expression, R);
        }
      }
      if (fr(n)) {
        const R = wV(n, !1);
        if ((p = R == null ? void 0 : R.exports) != null && p.size) {
          const M = Ns(R, R.exports, rt, rt, rt);
          return M.objectFlags |= 4096, wo([x, M]);
        }
      }
      return x;
    }
    function DV(n, a) {
      if (n.declaration && n.declaration.flags & 268435456) {
        const l = a4(a), u = XN(d3(a));
        sS(l, n.declaration, u, le(n));
      }
    }
    function a4(n) {
      switch (n = js(n), n.kind) {
        case 210:
        case 167:
        case 211:
          return a4(n.expression);
        case 212:
          return a4(n.tag);
        case 283:
        case 282:
          return a4(n.tagName);
        case 209:
          return n.argumentExpression;
        case 208:
          return n.name;
        case 180:
          const a = n;
          return Cd(a.typeName) ? a.typeName.right : a;
        default:
          return n;
      }
    }
    function yke(n) {
      if (!no(n))
        return !1;
      let a = n.expression;
      if (Fr(a) && a.name.escapedText === "for" && (a = a.expression), !je(a) || a.escapedText !== "Symbol")
        return !1;
      const l = pCe(!1);
      return l ? l === _l(a, "Symbol", 111551, void 0, void 0, !1) : !1;
    }
    function Wnt(n) {
      if (alt(n), n.arguments.length === 0)
        return c4(n, we);
      const a = n.arguments[0], l = Ql(a), u = n.arguments.length > 1 ? Ql(n.arguments[1]) : void 0;
      for (let g = 2; g < n.arguments.length; ++g)
        Ql(n.arguments[g]);
      if ((l.flags & 32768 || l.flags & 65536 || !xo(l, ue)) && Ke(a, _.Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0, ke(l)), u) {
        const g = _Ce(!0);
        g !== pa && id(u, QU(g, 32768), n.arguments[1]);
      }
      const p = du(n, a);
      if (p) {
        const g = wb(p, a, !0, !1);
        if (g)
          return c4(n, bke(ar(g), g, p, a) || Eke(ar(g), g, p, a));
      }
      return c4(n, we);
    }
    function vke(n, a, l) {
      const u = lo(), p = ns(2097152, "default");
      return p.parent = a, p.links.nameType = jf("default"), p.links.aliasTarget = Yl(n), u.set("default", p), Ns(l, u, rt, rt, rt);
    }
    function bke(n, a, l, u) {
      if (Rs(u) && n && !rs(n)) {
        const g = n;
        if (!g.defaultOnlyType) {
          const x = vke(a, l);
          g.defaultOnlyType = x;
        }
        return g.defaultOnlyType;
      }
    }
    function Eke(n, a, l, u) {
      var p;
      if (ae && n && !rs(n)) {
        const g = n;
        if (!g.syntheticType) {
          const x = (p = l.declarations) == null ? void 0 : p.find(qi);
          if (By(x, l, !1, u)) {
            const M = ns(2048, "__type"), J = vke(a, l, M);
            M.links.type = J, g.syntheticType = QP(n) ? Bb(n, J, M, 0, !1) : J;
          } else
            g.syntheticType = n;
        }
        return g.syntheticType;
      }
      return n;
    }
    function Tke(n) {
      if (!xd(n, !0))
        return !1;
      if (!je(n.expression))
        return D.fail();
      const a = _l(n.expression, n.expression.escapedText, 111551, void 0, void 0, !0);
      if (a === Et)
        return !0;
      if (a.flags & 2097152)
        return !1;
      const l = a.flags & 16 ? 259 : a.flags & 3 ? 257 : 0;
      if (l !== 0) {
        const u = xl(a, l);
        return !!u && !!(u.flags & 16777216);
      }
      return !1;
    }
    function znt(n) {
      wst(n) || A4(n, n.typeArguments), P < 2 && pc(n, 262144);
      const a = GL(n);
      return DV(a, n), ys(a);
    }
    function qnt(n) {
      if (n.kind === 213) {
        const a = Zn(n);
        a && Tc(a.fileName, [".cts", ".mts"]) && En(n, _.This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead);
      }
      return Ske(n, n.type, n.expression);
    }
    function zae(n) {
      switch (n.kind) {
        case 10:
        case 14:
        case 8:
        case 9:
        case 110:
        case 95:
        case 206:
        case 207:
        case 225:
          return !0;
        case 214:
          return zae(n.expression);
        case 221:
          const a = n.operator, l = n.operand;
          return a === 40 && (l.kind === 8 || l.kind === 9) || a === 39 && l.kind === 8;
        case 208:
        case 209:
          const u = js(n.expression), p = zl(u) ? Rl(u, 111551, !0) : void 0;
          return !!(p && p.flags & 384);
      }
      return !1;
    }
    function Ske(n, a, l, u) {
      let p = ga(l, u);
      if (sg(a))
        return zae(l) || Ke(l, _.A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals), yd(p);
      go(a), p = VP(dv(p));
      const g = fi(a);
      return rs(g) || i(() => {
        const x = ef(p);
        HU(g, x) || dLe(p, g, n, _.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first);
      }), g;
    }
    function Jnt(n) {
      const a = ga(n.expression), l = ED(a, n.expression);
      return ZU(Zg(l), n, l !== a);
    }
    function Knt(n) {
      return n.flags & 32 ? Jnt(n) : Zg(ga(n.expression));
    }
    function xke(n) {
      hDe(n), ze(n.typeArguments, go);
      const a = n.kind === 230 ? ga(n.expression) : yT(n.exprName) ? XP(n.exprName) : ga(n.exprName);
      return Ake(a, n);
    }
    function Ake(n, a) {
      const l = a.typeArguments;
      if (n === ft || rs(n) || !kt(l))
        return n;
      let u = !1, p;
      const g = R(n), x = u ? p : n;
      return x && Qo.add(PA(Zn(a), l, _.Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable, ke(x))), g;
      function R(J) {
        let $ = !1, ge = !1;
        const Ne = De(J);
        return u || (u = ge), $ && !ge && (p ?? (p = J)), Ne;
        function De(_t) {
          if (_t.flags & 524288) {
            const Bt = cp(_t), Mn = M(Bt.callSignatures), An = M(Bt.constructSignatures);
            if ($ || ($ = Bt.callSignatures.length !== 0 || Bt.constructSignatures.length !== 0), ge || (ge = Mn.length !== 0 || An.length !== 0), Mn !== Bt.callSignatures || An !== Bt.constructSignatures) {
              const Kn = Ns(void 0, Bt.members, Mn, An, Bt.indexInfos);
              return Kn.objectFlags |= 8388608, Kn.node = a, Kn;
            }
          } else if (_t.flags & 58982400) {
            const Bt = qu(_t);
            if (Bt) {
              const Mn = De(Bt);
              if (Mn !== Bt)
                return Mn;
            }
          } else {
            if (_t.flags & 1048576)
              return $s(_t, R);
            if (_t.flags & 2097152)
              return wo(_a(_t.types, De));
          }
          return _t;
        }
      }
      function M(J) {
        const $ = lr(J, (ge) => !!ge.typeParameters && Fae(ge, l));
        return _a($, (ge) => {
          const Ne = Uae(ge, l, !0);
          return Ne ? uD(ge, Ne, fr(ge.declaration)) : ge;
        });
      }
    }
    function Xnt(n) {
      return go(n.type), qae(n.expression, n.type);
    }
    function qae(n, a, l) {
      const u = ga(n, l), p = fi(a);
      return rs(p) ? p : (uv(u, p, a, n, _.Type_0_does_not_satisfy_the_expected_type_1), u);
    }
    function Ynt(n) {
      return qst(n), n.keywordToken === 103 ? Jae(n) : n.keywordToken === 100 ? $nt(n) : D.assertNever(n.keywordToken);
    }
    function Cke(n) {
      switch (n.keywordToken) {
        case 100:
          return fCe();
        case 103:
          const a = Jae(n);
          return rs(a) ? Ce : mrt(a);
        default:
          D.assertNever(n.keywordToken);
      }
    }
    function Jae(n) {
      const a = gue(n);
      if (a)
        if (a.kind === 173) {
          const l = Ir(a.parent);
          return ar(l);
        } else {
          const l = Ir(a);
          return ar(l);
        }
      else
        return Ke(n, _.Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor, "new.target"), Ce;
    }
    function $nt(n) {
      de === 100 || de === 199 ? Zn(n).impliedNodeFormat !== 99 && Ke(n, _.The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output) : de < 6 && de !== 4 && Ke(n, _.The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_or_nodenext);
      const a = Zn(n);
      return D.assert(!!(a.flags & 4194304), "Containing file is missing import meta node flag."), n.name.escapedText === "meta" ? dCe() : Ce;
    }
    function o4(n) {
      const a = ar(n);
      if (W) {
        const l = n.valueDeclaration;
        if (l && kv(l))
          return Qg(a);
      }
      return a;
    }
    function RV(n) {
      return D.assert(je(n.name)), n.name.escapedText;
    }
    function UL(n, a, l) {
      const u = n.parameters.length - (Eu(n) ? 1 : 0);
      if (a < u)
        return n.parameters[a].escapedName;
      const p = n.parameters[u] || an, g = l || ar(p);
      if (Fo(g)) {
        const x = g.target.labeledElementDeclarations, R = a - u;
        return x && RV(x[R]) || p.escapedName + "_" + R;
      }
      return p.escapedName;
    }
    function Qnt(n, a) {
      var l;
      if (((l = n.declaration) == null ? void 0 : l.kind) === 320)
        return;
      const u = n.parameters.length - (Eu(n) ? 1 : 0);
      if (a < u) {
        const x = n.parameters[a];
        return Lke(x) ? [x.escapedName, !1] : void 0;
      }
      const p = n.parameters[u] || an;
      if (!Lke(p))
        return;
      const g = ar(p);
      if (Fo(g)) {
        const x = g.target.labeledElementDeclarations, R = a - u, M = x == null ? void 0 : x[R], J = !!(M != null && M.dotDotDotToken);
        return M ? [
          RV(M),
          J
        ] : void 0;
      }
      if (a === u)
        return [p.escapedName, !0];
    }
    function Lke(n) {
      return n.valueDeclaration && Ba(n.valueDeclaration) && je(n.valueDeclaration.name);
    }
    function Ike(n) {
      return n.kind === 199 || Ba(n) && n.name && je(n.name);
    }
    function Znt(n, a) {
      const l = n.parameters.length - (Eu(n) ? 1 : 0);
      if (a < l) {
        const g = n.parameters[a].valueDeclaration;
        return g && Ike(g) ? g : void 0;
      }
      const u = n.parameters[l] || an, p = ar(u);
      if (Fo(p)) {
        const g = p.target.labeledElementDeclarations, x = a - l;
        return g && g[x];
      }
      return u.valueDeclaration && Ike(u.valueDeclaration) ? u.valueDeclaration : void 0;
    }
    function fp(n, a) {
      return VE(n, a) || we;
    }
    function VE(n, a) {
      const l = n.parameters.length - (Eu(n) ? 1 : 0);
      if (a < l)
        return o4(n.parameters[a]);
      if (Eu(n)) {
        const u = ar(n.parameters[l]), p = a - l;
        if (!Fo(u) || u.target.hasRestElement || p < u.target.fixedLength)
          return Md(u, Bp(p));
      }
    }
    function ND(n, a) {
      const l = tf(n), u = bm(n), p = OD(n);
      if (p && a >= l - 1)
        return a === l - 1 ? p : Iu(Md(p, mt));
      const g = [], x = [], R = [];
      for (let M = a; M < l; M++) {
        !p || M < l - 1 ? (g.push(fp(n, M)), x.push(M < u ? 1 : 2)) : (g.push(p), x.push(8));
        const J = Znt(n, M);
        J && R.push(J);
      }
      return Fp(g, x, !1, Le(R) === Le(g) ? R : void 0);
    }
    function tf(n) {
      const a = n.parameters.length;
      if (Eu(n)) {
        const l = ar(n.parameters[a - 1]);
        if (Fo(l))
          return a + l.target.fixedLength - (l.target.hasRestElement ? 0 : 1);
      }
      return a;
    }
    function bm(n, a) {
      const l = a & 1, u = a & 2;
      if (u || n.resolvedMinArgumentCount === void 0) {
        let p;
        if (Eu(n)) {
          const g = ar(n.parameters[n.parameters.length - 1]);
          if (Fo(g)) {
            const x = vi(g.target.elementFlags, (M) => !(M & 1)), R = x < 0 ? g.target.fixedLength : x;
            R > 0 && (p = n.parameters.length - 1 + R);
          }
        }
        if (p === void 0) {
          if (!l && n.flags & 32)
            return 0;
          p = n.minArgumentCount;
        }
        if (u)
          return p;
        for (let g = p - 1; g >= 0; g--) {
          const x = fp(n, g);
          if (_c(x, rke).flags & 131072)
            break;
          p = g;
        }
        n.resolvedMinArgumentCount = p;
      }
      return n.resolvedMinArgumentCount;
    }
    function Em(n) {
      if (Eu(n)) {
        const a = ar(n.parameters[n.parameters.length - 1]);
        return !Fo(a) || a.target.hasRestElement;
      }
      return !1;
    }
    function OD(n) {
      if (Eu(n)) {
        const a = ar(n.parameters[n.parameters.length - 1]);
        if (!Fo(a))
          return a;
        if (a.target.hasRestElement)
          return xL(a, a.target.fixedLength);
      }
    }
    function PD(n) {
      const a = OD(n);
      return a && !Hf(a) && !Ss(a) && !(up(a).flags & 131072) ? a : void 0;
    }
    function Kae(n) {
      return Xae(n, gt);
    }
    function Xae(n, a) {
      return n.parameters.length > 0 ? fp(n, 0) : a;
    }
    function ert(n, a, l) {
      const u = n.parameters.length - (Eu(n) ? 1 : 0);
      for (let p = 0; p < u; p++) {
        const g = n.parameters[p].valueDeclaration;
        if (g.type) {
          const x = Zc(g);
          x && $h(l.inferences, fi(x), fp(a, p));
        }
      }
    }
    function trt(n, a) {
      if (a.typeParameters)
        if (!n.typeParameters)
          n.typeParameters = a.typeParameters;
        else
          return;
      if (a.thisParameter) {
        const u = n.thisParameter;
        (!u || u.valueDeclaration && !u.valueDeclaration.type) && (u || (n.thisParameter = OE(a.thisParameter, void 0)), s4(n.thisParameter, ar(a.thisParameter)));
      }
      const l = n.parameters.length - (Eu(n) ? 1 : 0);
      for (let u = 0; u < l; u++) {
        const p = n.parameters[u];
        if (!Zc(p.valueDeclaration)) {
          const g = VE(a, u);
          s4(p, g);
        }
      }
      if (Eu(n)) {
        const u = qo(n.parameters);
        if (u.valueDeclaration ? !Zc(u.valueDeclaration) : Ll(u) & 65536) {
          const p = ND(a, l);
          s4(u, p);
        }
      }
    }
    function nrt(n) {
      n.thisParameter && s4(n.thisParameter);
      for (const a of n.parameters)
        s4(a);
    }
    function s4(n, a) {
      const l = Wi(n);
      if (l.type)
        a && D.assertEqual(l.type, a, "Parameter symbol already has a cached type which differs from newly assigned type");
      else {
        const u = n.valueDeclaration;
        l.type = a || (u ? El(u, !0) : ar(n)), u && u.name.kind !== 79 && (l.type === he && (l.type = ko(u.name)), kke(u.name, l.type));
      }
    }
    function kke(n, a) {
      for (const l of n.elements)
        if (!Rc(l)) {
          const u = xi(l, a);
          l.name.kind === 79 ? Wi(Ir(l)).type = u : kke(l.name, u);
        }
    }
    function rrt(n) {
      return B2(x$e(!0), [n]);
    }
    function irt(n, a) {
      return B2(A$e(!0), [n, a]);
    }
    function art(n, a) {
      return B2(C$e(!0), [n, a]);
    }
    function ort(n, a) {
      return B2(L$e(!0), [n, a]);
    }
    function srt(n, a) {
      return B2(I$e(!0), [n, a]);
    }
    function lrt(n, a) {
      return B2(D$e(!0), [n, a]);
    }
    function crt(n, a, l) {
      const u = `${a ? "p" : "P"}${l ? "s" : "S"}${n.id}`;
      let p = rr.get(u);
      if (!p) {
        const g = lo();
        g.set("name", rE("name", n)), g.set("private", rE("private", a ? Pe : it)), g.set("static", rE("static", l ? Pe : it)), p = Ns(void 0, g, rt, rt, rt), rr.set(u, p);
      }
      return p;
    }
    function wke(n, a, l) {
      const u = gc(n), p = Ni(n.name), g = p ? jf(Mr(n.name)) : Xg(n.name), x = ac(n) ? irt(a, l) : z_(n) ? art(a, l) : e_(n) ? ort(a, l) : af(n) ? srt(a, l) : to(n) ? lrt(a, l) : D.failBadSyntaxKind(n), R = crt(g, p, u);
      return wo([x, R]);
    }
    function urt(n, a) {
      return B2(k$e(!0), [n, a]);
    }
    function drt(n, a) {
      return B2(w$e(!0), [n, a]);
    }
    function frt(n, a) {
      const l = np("this", n), u = np("value", a);
      return uoe(void 0, l, [u], a, void 0, 1);
    }
    function Yae(n, a, l) {
      const u = np("target", n), p = np("context", a), g = Qr([l, Rt]);
      return HD(void 0, void 0, [u, p], g);
    }
    function _rt(n) {
      const { parent: a } = n, l = Jr(a);
      if (!l.decoratorSignature)
        switch (l.decoratorSignature = Ks, a.kind) {
          case 260:
          case 228: {
            const p = ar(Ir(a)), g = rrt(p);
            l.decoratorSignature = Yae(p, g, p);
            break;
          }
          case 171:
          case 174:
          case 175: {
            const u = a;
            if (!di(u.parent))
              break;
            const p = ac(u) ? kE(Mp(u)) : IS(u), g = gc(u) ? ar(Ir(u.parent)) : zu(Ir(u.parent)), x = z_(u) ? lwe(p) : e_(u) ? cwe(p) : p, R = wke(u, g, p), M = z_(u) ? lwe(p) : e_(u) ? cwe(p) : p;
            l.decoratorSignature = Yae(x, R, M);
            break;
          }
          case 169: {
            const u = a;
            if (!di(u.parent))
              break;
            const p = IS(u), g = gc(u) ? ar(Ir(u.parent)) : zu(Ir(u.parent)), x = Bm(u) ? urt(g, p) : He, R = wke(u, g, p), M = Bm(u) ? drt(g, p) : frt(g, p);
            l.decoratorSignature = Yae(x, R, M);
            break;
          }
        }
      return l.decoratorSignature === Ks ? void 0 : l.decoratorSignature;
    }
    function prt(n) {
      const { parent: a } = n, l = Jr(a);
      if (!l.decoratorSignature)
        switch (l.decoratorSignature = Ks, a.kind) {
          case 260:
          case 228: {
            const p = ar(Ir(a)), g = np("target", p);
            l.decoratorSignature = HD(void 0, void 0, [g], Qr([p, Rt]));
            break;
          }
          case 166: {
            const u = a;
            if (!ql(u.parent) && !(ac(u.parent) || e_(u.parent) && di(u.parent.parent)) || S1(u.parent) === u)
              break;
            const p = S1(u.parent) ? u.parent.parameters.indexOf(u) - 1 : u.parent.parameters.indexOf(u);
            D.assert(p >= 0);
            const g = ql(u.parent) ? ar(Ir(u.parent.parent)) : aDe(u.parent), x = ql(u.parent) ? He : oDe(u.parent), R = Bp(p), M = np("target", g), J = np("propertyKey", x), $ = np("parameterIndex", R);
            l.decoratorSignature = HD(void 0, void 0, [M, J, $], Rt);
            break;
          }
          case 171:
          case 174:
          case 175:
          case 169: {
            const u = a;
            if (!di(u.parent))
              break;
            const p = aDe(u), g = np("target", p), x = oDe(u), R = np("propertyKey", x), M = to(u) ? Rt : yCe(IS(u));
            if (P !== 0 && (!to(a) || Bm(a))) {
              const $ = yCe(IS(u)), ge = np("descriptor", $);
              l.decoratorSignature = HD(void 0, void 0, [g, R, ge], Qr([M, Rt]));
            } else
              l.decoratorSignature = HD(void 0, void 0, [g, R], Qr([M, Rt]));
            break;
          }
        }
      return l.decoratorSignature === Ks ? void 0 : l.decoratorSignature;
    }
    function $ae(n) {
      return re ? prt(n) : _rt(n);
    }
    function l4(n) {
      const a = CP(!0);
      return a !== Co ? (n = ty(HL(n)) || he, Kg(a, [n])) : he;
    }
    function Dke(n) {
      const a = hCe(!0);
      return a !== Co ? (n = ty(HL(n)) || he, Kg(a, [n])) : he;
    }
    function c4(n, a) {
      const l = l4(a);
      return l === he ? (Ke(n, lf(n) ? _.A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option : _.An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option), Ce) : ($re(!0) || Ke(n, lf(n) ? _.A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option : _.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option), l);
    }
    function mrt(n) {
      const a = ns(0, "NewTargetExpression"), l = ns(4, "target", 8);
      l.parent = a, l.links.type = n;
      const u = lo([l]);
      return a.members = u, Ns(a, u, rt, rt, rt);
    }
    function NV(n, a) {
      if (!n.body)
        return Ce;
      const l = Vc(n), u = (l & 2) !== 0, p = (l & 1) !== 0;
      let g, x, R, M = Rt;
      if (n.body.kind !== 238)
        g = Ql(n.body, a && a & -9), u && (g = HL(jD(g, !1, n, _.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member)));
      else if (p) {
        const J = Fke(n, a);
        J ? J.length > 0 && (g = Qr(J, 2)) : M = gt;
        const { yieldTypes: $, nextTypes: ge } = hrt(n, a);
        x = kt($) ? Qr($, 2) : void 0, R = kt(ge) ? wo(ge) : void 0;
      } else {
        const J = Fke(n, a);
        if (!J)
          return l & 2 ? c4(n, gt) : gt;
        if (J.length === 0)
          return l & 2 ? c4(n, Rt) : Rt;
        g = Qr(J, 2);
      }
      if (g || x || R) {
        if (x && nV(n, x, 3), g && nV(n, g, 1), R && nV(n, R, 2), g && dp(g) || x && dp(x) || R && dp(R)) {
          const J = yae(n), $ = J ? J === Mp(n) ? p ? void 0 : g : mV(ys(J), n, void 0) : void 0;
          p ? (x = Fie(x, $, 0, u), g = Fie(g, $, 1, u), R = Fie(R, $, 2, u)) : g = SZe(g, $, u);
        }
        x && (x = ef(x)), g && (g = ef(g)), R && (R = ef(R));
      }
      return p ? Rke(x || gt, g || M, R || vIe(2, n) || he, u) : u ? l4(g || M) : g || M;
    }
    function Rke(n, a, l, u) {
      const p = u ? xt : mn, g = p.getGlobalGeneratorType(!1);
      if (n = p.resolveIterationType(n, void 0) || he, a = p.resolveIterationType(a, void 0) || he, l = p.resolveIterationType(l, void 0) || he, g === Co) {
        const x = p.getGlobalIterableIteratorType(!1), R = x !== Co ? Awe(x, p) : void 0, M = R ? R.returnType : we, J = R ? R.nextType : He;
        return xo(a, M) && xo(J, l) ? x !== Co ? _D(x, [n]) : (p.getGlobalIterableIteratorType(!0), pa) : (p.getGlobalGeneratorType(!0), pa);
      }
      return _D(g, [n, a, l]);
    }
    function hrt(n, a) {
      const l = [], u = [], p = (Vc(n) & 2) !== 0;
      return sue(n.body, (g) => {
        const x = g.expression ? ga(g.expression, a) : Ze;
        d_(l, Nke(g, x, we, p));
        let R;
        if (g.asteriskToken) {
          const M = HV(x, p ? 19 : 17, g.expression);
          R = M && M.nextType;
        } else
          R = ad(g, void 0);
        R && d_(u, R);
      }), { yieldTypes: l, nextTypes: u };
    }
    function Nke(n, a, l, u) {
      const p = n.expression || n, g = n.asteriskToken ? _v(u ? 19 : 17, a, l, p) : a;
      return u ? HE(g, p, n.asteriskToken ? _.Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member : _.Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member) : g;
    }
    function Oke(n, a, l) {
      let u = 0;
      for (let p = 0; p < l.length; p++) {
        const g = p < n || p >= a ? l[p] : void 0;
        u |= g !== void 0 ? j5.get(g) || 32768 : 0;
      }
      return u;
    }
    function Pke(n) {
      const a = Jr(n);
      if (a.isExhaustive === void 0) {
        a.isExhaustive = 0;
        const l = grt(n);
        a.isExhaustive === 0 && (a.isExhaustive = l);
      } else
        a.isExhaustive === 0 && (a.isExhaustive = !1);
      return a.isExhaustive;
    }
    function grt(n) {
      if (n.expression.kind === 218) {
        const u = tIe(n);
        if (!u)
          return !1;
        const p = iv(Ql(n.expression.expression)), g = Oke(0, 0, u);
        return p.flags & 3 ? (556800 & g) === 556800 : !Qh(p, (x) => (wu(x) & g) === g);
      }
      const a = Ql(n.expression);
      if (!bD(a))
        return !1;
      const l = oV(n);
      return !l.length || kt(l, bZe) ? !1 : yet($s(a, yd), l);
    }
    function Mke(n) {
      return n.endFlowNode && JP(n.endFlowNode);
    }
    function Fke(n, a) {
      const l = Vc(n), u = [];
      let p = Mke(n), g = !1;
      if (cT(n.body, (x) => {
        const R = x.expression;
        if (R) {
          let M = Ql(R, a && a & -9);
          l & 2 && (M = HL(jD(M, !1, n, _.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member))), M.flags & 131072 && (g = !0), d_(u, M);
        } else
          p = !0;
      }), !(u.length === 0 && !p && (g || yrt(n))))
        return W && u.length && p && !(Up(n) && u.some((x) => x.symbol === n.symbol)) && d_(u, He), u;
    }
    function yrt(n) {
      switch (n.kind) {
        case 215:
        case 216:
          return !0;
        case 171:
          return n.parent.kind === 207;
        default:
          return !1;
      }
    }
    function Qae(n, a) {
      i(l);
      return;
      function l() {
        const u = Vc(n), p = a && WV(a, u);
        if (p && pl(p, 16385) || n.kind === 170 || Al(n.body) || n.body.kind !== 238 || !Mke(n))
          return;
        const g = n.flags & 512, x = yp(n) || n;
        if (p && p.flags & 131072)
          Ke(x, _.A_function_returning_never_cannot_have_a_reachable_end_point);
        else if (p && !g)
          Ke(x, _.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value);
        else if (p && W && !xo(He, p))
          Ke(x, _.Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined);
        else if (Y.noImplicitReturns) {
          if (!p) {
            if (!g)
              return;
            const R = ys(Mp(n));
            if (Rwe(n, R))
              return;
          }
          Ke(x, _.Not_all_code_paths_return_a_value);
        }
      }
    }
    function Bke(n, a) {
      if (D.assert(n.kind !== 171 || B_(n)), KL(n), Bs(n) && zL(n, n.name), a && a & 4 && k_(n)) {
        if (!yp(n) && !Y3(n)) {
          const u = wD(n);
          if (u && PE(ys(u))) {
            const p = Jr(n);
            if (p.contextFreeType)
              return p.contextFreeType;
            const g = NV(n, a), x = oh(void 0, void 0, void 0, rt, g, void 0, 0, 0), R = Ns(n.symbol, te, [x], rt, rt);
            return R.objectFlags |= 262144, p.contextFreeType = R;
          }
        }
        return La;
      }
      return !tj(n) && n.kind === 215 && Ooe(n), vrt(n, a), ar(Ir(n));
    }
    function vrt(n, a) {
      const l = Jr(n);
      if (!(l.flags & 64)) {
        const u = wD(n);
        if (!(l.flags & 64)) {
          l.flags |= 64;
          const p = Yc(za(ar(Ir(n)), 0));
          if (!p)
            return;
          if (k_(n))
            if (u) {
              const g = CS(n);
              let x;
              if (a && a & 2) {
                ert(p, u, g);
                const R = OD(u);
                R && R.flags & 262144 && (x = W2(u, g.nonFixingMapper));
              }
              x || (x = g ? W2(u, g.mapper) : u), trt(p, x);
            } else
              nrt(p);
          if (u && !M2(n) && !p.resolvedReturnType) {
            const g = NV(n, a);
            p.resolvedReturnType || (p.resolvedReturnType = g);
          }
          BD(n);
        }
      }
    }
    function brt(n) {
      D.assert(n.kind !== 171 || B_(n));
      const a = Vc(n), l = M2(n);
      if (Qae(n, l), n.body)
        if (yp(n) || ys(Mp(n)), n.body.kind === 238)
          go(n.body);
        else {
          const u = ga(n.body), p = l && WV(l, a);
          if (p)
            if ((a & 3) === 2) {
              const g = jD(u, !1, n.body, _.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member);
              uv(g, p, n.body, n.body);
            } else
              uv(u, p, n.body, n.body);
        }
    }
    function OV(n, a, l, u = !1) {
      if (!xo(a, mo)) {
        const p = u && UD(a);
        return a0(n, !!p && xo(p, mo), l), !1;
      }
      return !0;
    }
    function Ert(n) {
      if (!no(n) || !ex(n))
        return !1;
      const a = Ql(n.arguments[2]);
      if (fc(a, "value")) {
        const p = uo(a, "writable"), g = p && ar(p);
        if (!g || g === it || g === K)
          return !0;
        if (p && p.valueDeclaration && zc(p.valueDeclaration)) {
          const x = p.valueDeclaration.initializer, R = ga(x);
          if (R === it || R === K)
            return !0;
        }
        return !1;
      }
      return !uo(a, "set");
    }
    function _p(n) {
      return !!(Ll(n) & 8 || n.flags & 4 && Qf(n) & 64 || n.flags & 3 && bV(n) & 2 || n.flags & 98304 && !(n.flags & 65536) || n.flags & 8 || kt(n.declarations, Ert));
    }
    function Gke(n, a, l) {
      var u, p;
      if (l === 0)
        return !1;
      if (_p(a)) {
        if (a.flags & 4 && ll(n) && n.expression.kind === 108) {
          const g = Cf(n);
          if (!(g && (g.kind === 173 || Up(g))))
            return !0;
          if (a.valueDeclaration) {
            const x = br(a.valueDeclaration), R = g.parent === a.valueDeclaration.parent, M = g === a.valueDeclaration.parent, J = x && ((u = a.parent) == null ? void 0 : u.valueDeclaration) === g.parent, $ = x && ((p = a.parent) == null ? void 0 : p.valueDeclaration) === g;
            return !(R || M || J || $);
          }
        }
        return !0;
      }
      if (ll(n)) {
        const g = js(n.expression);
        if (g.kind === 79) {
          const x = Jr(g).resolvedSymbol;
          if (x.flags & 2097152) {
            const R = md(x);
            return !!R && R.kind === 271;
          }
        }
      }
      return !1;
    }
    function MD(n, a, l) {
      const u = bu(n, 7);
      return u.kind !== 79 && !ll(u) ? (Ke(n, a), !1) : u.flags & 32 ? (Ke(n, l), !1) : !0;
    }
    function Trt(n) {
      ga(n.expression);
      const a = js(n.expression);
      if (!ll(a))
        return Ke(a, _.The_operand_of_a_delete_operator_must_be_a_property_reference), Re;
      Fr(a) && Ni(a.name) && Ke(a, _.The_operand_of_a_delete_operator_cannot_be_a_private_identifier);
      const l = Jr(a), u = Np(l.resolvedSymbol);
      return u && (_p(u) && Ke(a, _.The_operand_of_a_delete_operator_cannot_be_a_read_only_property), Srt(a, u)), Re;
    }
    function Srt(n, a) {
      const l = ar(a);
      W && !(l.flags & 131075) && !(qe ? a.flags & 16777216 : wu(l) & 16777216) && Ke(n, _.The_operand_of_a_delete_operator_must_be_optional);
    }
    function xrt(n) {
      return ga(n.expression), uL;
    }
    function Art(n) {
      return ga(n.expression), Ze;
    }
    function Crt(n) {
      const a = l3(n);
      if (a && Il(a))
        Ke(n, _.Await_expression_cannot_be_used_inside_a_class_static_block);
      else if (!(n.flags & 32768))
        if (c3(n)) {
          const l = Zn(n);
          if (!Jb(l)) {
            let u;
            if (!QS(l, Y)) {
              u ?? (u = gy(l, n.pos));
              const p = Dc(l, u.start, u.length, _.await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module);
              Qo.add(p);
            }
            switch (de) {
              case 100:
              case 199:
                if (l.impliedNodeFormat === 1) {
                  u ?? (u = gy(l, n.pos)), Qo.add(Dc(l, u.start, u.length, _.The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level));
                  break;
                }
              case 7:
              case 99:
              case 4:
                if (P >= 4)
                  break;
              default:
                u ?? (u = gy(l, n.pos)), Qo.add(Dc(l, u.start, u.length, _.Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher));
                break;
            }
          }
        } else {
          const l = Zn(n);
          if (!Jb(l)) {
            const u = gy(l, n.pos), p = Dc(l, u.start, u.length, _.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules);
            if (a && a.kind !== 173 && !(Vc(a) & 2)) {
              const g = Nr(a, _.Did_you_mean_to_mark_this_function_as_async);
              Xo(p, g);
            }
            Qo.add(p);
          }
        }
      _ae(n) && Ke(n, _.await_expressions_cannot_be_used_in_a_parameter_initializer);
    }
    function Lrt(n) {
      i(() => Crt(n));
      const a = ga(n.expression), l = jD(a, !0, n, _.Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member);
      return l === a && !rs(l) && !(a.flags & 3) && My(!1, Nr(n, _.await_has_no_effect_on_the_type_of_this_expression)), l;
    }
    function Irt(n) {
      const a = ga(n.operand);
      if (a === ft)
        return ft;
      switch (n.operand.kind) {
        case 8:
          switch (n.operator) {
            case 40:
              return H2(Bp(-n.operand.text));
            case 39:
              return H2(Bp(+n.operand.text));
          }
          break;
        case 9:
          if (n.operator === 40)
            return H2(PU({
              negative: !0,
              base10Value: pk(n.operand.text)
            }));
      }
      switch (n.operator) {
        case 39:
        case 40:
        case 54:
          return Gp(a, n.operand), u4(a, 12288) && Ke(n.operand, _.The_0_operator_cannot_be_applied_to_type_symbol, yo(n.operator)), n.operator === 39 ? (u4(a, 2112) && Ke(n.operand, _.Operator_0_cannot_be_applied_to_type_1, yo(n.operator), ke(dv(a))), mt) : Zae(a);
        case 53:
          Q2(n.operand);
          const l = wu(a) & 12582912;
          return l === 4194304 ? it : l === 8388608 ? Pe : Re;
        case 45:
        case 46:
          return OV(n.operand, Gp(a, n.operand), _.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type) && MD(n.operand, _.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access, _.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access), Zae(a);
      }
      return Ce;
    }
    function krt(n) {
      const a = ga(n.operand);
      return a === ft ? ft : (OV(n.operand, Gp(a, n.operand), _.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type) && MD(n.operand, _.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access, _.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access), Zae(a));
    }
    function Zae(n) {
      return pl(n, 2112) ? Mc(n, 3) || pl(n, 296) ? mo : zt : mt;
    }
    function u4(n, a) {
      if (pl(n, a))
        return !0;
      const l = iv(n);
      return !!l && pl(l, a);
    }
    function pl(n, a) {
      if (n.flags & a)
        return !0;
      if (n.flags & 3145728) {
        const l = n.types;
        for (const u of l)
          if (pl(u, a))
            return !0;
      }
      return !1;
    }
    function Mc(n, a, l) {
      return n.flags & a ? !0 : l && n.flags & 114691 ? !1 : !!(a & 296) && xo(n, mt) || !!(a & 2112) && xo(n, zt) || !!(a & 402653316) && xo(n, ue) || !!(a & 528) && xo(n, Re) || !!(a & 16384) && xo(n, Rt) || !!(a & 131072) && xo(n, gt) || !!(a & 65536) && xo(n, Sn) || !!(a & 32768) && xo(n, He) || !!(a & 4096) && xo(n, q) || !!(a & 67108864) && xo(n, oi);
    }
    function d4(n, a, l) {
      return n.flags & 1048576 ? Yn(n.types, (u) => d4(u, a, l)) : Mc(n, a, l);
    }
    function eoe(n) {
      return !!(ti(n) & 16) && !!n.symbol && toe(n.symbol);
    }
    function toe(n) {
      return (n.flags & 128) !== 0;
    }
    function wrt(n, a, l, u) {
      return l === ft || u === ft ? ft : (!Ss(l) && d4(l, 134348796) && Ke(n, _.The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter), Ss(u) || $V(u) || cv(u, dl) || Ke(a, _.The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type), Re);
    }
    function Drt(n) {
      return Qh(n, (a) => a === Xl || !!(a.flags & 2097152) && Yh(iv(a)));
    }
    function Rrt(n, a, l, u) {
      if (l === ft || u === ft)
        return ft;
      if (Ni(n)) {
        if (P < 99 && pc(n, 2097152), !Jr(n).resolvedSymbol && xc(n)) {
          const p = Dae(n, u.symbol, !0);
          XIe(n, u, p);
        }
      } else
        id(Gp(l, n), Ci, n);
      return id(Gp(u, a), oi, a) && Drt(u) && Ke(a, _.Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator, ke(u)), Re;
    }
    function Nrt(n, a, l) {
      const u = n.properties;
      if (W && u.length === 0)
        return Gp(a, n);
      for (let p = 0; p < u.length; p++)
        Uke(n, a, p, u, l);
      return a;
    }
    function Uke(n, a, l, u, p = !1) {
      const g = n.properties, x = g[l];
      if (x.kind === 299 || x.kind === 300) {
        const R = x.name, M = Xg(R);
        if (qh(M)) {
          const ge = _m(M), Ne = uo(a, ge);
          Ne && (n4(Ne, x, p), Lae(x, !1, !0, a, Ne));
        }
        const J = Md(a, M, 32, R), $ = $e(x, J);
        return jE(x.kind === 300 ? x : x.initializer, $);
      } else if (x.kind === 301)
        if (l < g.length - 1)
          Ke(x, _.A_rest_element_must_be_last_in_a_destructuring_pattern);
        else {
          P < 99 && pc(x, 4);
          const R = [];
          if (u)
            for (const J of u)
              Ox(J) || R.push(J.name);
          const M = k2(a, R, a.symbol);
          return kS(u, _.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma), jE(x.expression, M);
        }
      else
        Ke(x, _.Property_assignment_expected);
    }
    function Ort(n, a, l) {
      const u = n.elements;
      P < 2 && Y.downlevelIteration && pc(n, 512);
      const p = _v(193, a, He, n) || Ce;
      let g = Y.noUncheckedIndexedAccess ? void 0 : p;
      for (let x = 0; x < u.length; x++) {
        let R = p;
        n.elements[x].kind === 227 && (R = g = g ?? (_v(65, a, He, n) || Ce)), Vke(n, a, x, R, l);
      }
      return a;
    }
    function Vke(n, a, l, u, p) {
      const g = n.elements, x = g[l];
      if (x.kind !== 229) {
        if (x.kind !== 227) {
          const R = Bp(l);
          if (w0(a)) {
            const M = 32 | (PL(x) ? 16 : 0), J = sv(a, R, M, i4(x, R)) || Ce, $ = PL(x) ? l_(J, 524288) : J, ge = $e(x, $);
            return jE(x, ge, p);
          }
          return jE(x, u, p);
        }
        if (l < g.length - 1)
          Ke(x, _.A_rest_element_must_be_last_in_a_destructuring_pattern);
        else {
          const R = x.expression;
          if (R.kind === 223 && R.operatorToken.kind === 63)
            Ke(R.operatorToken, _.A_rest_element_cannot_have_an_initializer);
          else {
            kS(n.elements, _.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma);
            const M = lh(a, Fo) ? $s(a, (J) => xL(J, l)) : Iu(u);
            return jE(R, M, p);
          }
        }
      }
    }
    function jE(n, a, l, u) {
      let p;
      if (n.kind === 300) {
        const g = n;
        g.objectAssignmentInitializer && (W && !(wu(ga(g.objectAssignmentInitializer)) & 16777216) && (a = l_(a, 524288)), Brt(g.name, g.equalsToken, g.objectAssignmentInitializer, l)), p = n.name;
      } else
        p = n;
      return p.kind === 223 && p.operatorToken.kind === 63 && (Oe(p, l), p = p.left, W && (a = l_(a, 524288))), p.kind === 207 ? Nrt(p, a, u) : p.kind === 206 ? Ort(p, a, l) : Prt(p, a, l);
    }
    function Prt(n, a, l) {
      const u = ga(n, l), p = n.parent.kind === 301 ? _.The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access : _.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access, g = n.parent.kind === 301 ? _.The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access : _.The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access;
      return MD(n, p, g) && uv(a, u, n, n), AA(n) && pc(n.parent, 1048576), a;
    }
    function f4(n) {
      switch (n = js(n), n.kind) {
        case 79:
        case 10:
        case 13:
        case 212:
        case 225:
        case 14:
        case 8:
        case 9:
        case 110:
        case 95:
        case 104:
        case 155:
        case 215:
        case 228:
        case 216:
        case 206:
        case 207:
        case 218:
        case 232:
        case 282:
        case 281:
          return !0;
        case 224:
          return f4(n.whenTrue) && f4(n.whenFalse);
        case 223:
          return yy(n.operatorToken.kind) ? !1 : f4(n.left) && f4(n.right);
        case 221:
        case 222:
          switch (n.operator) {
            case 53:
            case 39:
            case 40:
            case 54:
              return !0;
          }
          return !1;
        case 219:
        case 213:
        case 231:
        default:
          return !1;
      }
    }
    function noe(n, a) {
      return (a.flags & 98304) !== 0 || HU(n, a);
    }
    function Mrt() {
      const n = n5(a, l, u, p, g, x);
      return (Ne, De) => {
        const _t = n(Ne, De);
        return D.assertIsDefined(_t), _t;
      };
      function a(Ne, De, _t) {
        return De ? (De.stackIndex++, De.skip = !1, J(De, void 0), ge(De, void 0)) : De = {
          checkMode: _t,
          skip: !1,
          stackIndex: 0,
          typeStack: [void 0, void 0]
        }, fr(Ne) && ZS(Ne) ? (De.skip = !0, ge(De, ga(Ne.right, _t)), De) : (Frt(Ne), Ne.operatorToken.kind === 63 && (Ne.left.kind === 207 || Ne.left.kind === 206) && (De.skip = !0, ge(De, jE(Ne.left, ga(Ne.right, _t), _t, Ne.right.kind === 108))), De);
      }
      function l(Ne, De, _t) {
        if (!De.skip)
          return R(De, Ne);
      }
      function u(Ne, De, _t) {
        if (!De.skip) {
          const Bt = $(De);
          D.assertIsDefined(Bt), J(De, Bt), ge(De, void 0);
          const Mn = Ne.kind;
          if (zN(Mn)) {
            let An = _t.parent;
            for (; An.kind === 214 || qN(An); )
              An = An.parent;
            (Mn === 55 || CT(An)) && moe(_t.left, Bt, CT(An) ? An.thenStatement : void 0), Ewe(Bt, _t.left);
          }
        }
      }
      function p(Ne, De, _t) {
        if (!De.skip)
          return R(De, Ne);
      }
      function g(Ne, De) {
        let _t;
        if (De.skip)
          _t = $(De);
        else {
          const Bt = M(De);
          D.assertIsDefined(Bt);
          const Mn = $(De);
          D.assertIsDefined(Mn), _t = jke(Ne.left, Ne.operatorToken, Ne.right, Bt, Mn, Ne);
        }
        return De.skip = !1, J(De, void 0), ge(De, void 0), De.stackIndex--, _t;
      }
      function x(Ne, De, _t) {
        return ge(Ne, De), Ne;
      }
      function R(Ne, De) {
        if (br(De))
          return De;
        ge(Ne, ga(De, Ne.checkMode));
      }
      function M(Ne) {
        return Ne.typeStack[Ne.stackIndex];
      }
      function J(Ne, De) {
        Ne.typeStack[Ne.stackIndex] = De;
      }
      function $(Ne) {
        return Ne.typeStack[Ne.stackIndex + 1];
      }
      function ge(Ne, De) {
        Ne.typeStack[Ne.stackIndex + 1] = De;
      }
    }
    function Frt(n) {
      const { left: a, operatorToken: l, right: u } = n;
      l.kind === 60 && (br(a) && (a.operatorToken.kind === 56 || a.operatorToken.kind === 55) && En(a, _._0_and_1_operations_cannot_be_mixed_without_parentheses, yo(a.operatorToken.kind), yo(l.kind)), br(u) && (u.operatorToken.kind === 56 || u.operatorToken.kind === 55) && En(u, _._0_and_1_operations_cannot_be_mixed_without_parentheses, yo(u.operatorToken.kind), yo(l.kind)));
    }
    function Brt(n, a, l, u, p) {
      const g = a.kind;
      if (g === 63 && (n.kind === 207 || n.kind === 206))
        return jE(n, ga(l, u), u, l.kind === 108);
      let x;
      zN(g) ? x = Q2(n, u) : x = ga(n, u);
      const R = ga(l, u);
      return jke(n, a, l, x, R, p);
    }
    function jke(n, a, l, u, p, g) {
      const x = a.kind;
      switch (x) {
        case 41:
        case 42:
        case 66:
        case 67:
        case 43:
        case 68:
        case 44:
        case 69:
        case 40:
        case 65:
        case 47:
        case 70:
        case 48:
        case 71:
        case 49:
        case 72:
        case 51:
        case 74:
        case 52:
        case 78:
        case 50:
        case 73:
          if (u === ft || p === ft)
            return ft;
          u = Gp(u, n), p = Gp(p, l);
          let gn;
          if (u.flags & 528 && p.flags & 528 && (gn = ge(a.kind)) !== void 0)
            return Ke(g || a, _.The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead, yo(a.kind), yo(gn)), mt;
          {
            const ln = OV(n, u, _.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type, !0), Gn = OV(l, p, _.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type, !0);
            let qn;
            if (Mc(u, 3) && Mc(p, 3) || !(pl(u, 2112) || pl(p, 2112)))
              qn = mt;
            else if (R(u, p)) {
              switch (x) {
                case 49:
                case 72:
                  Bt();
                  break;
                case 42:
                case 67:
                  P < 3 && Ke(g, _.Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later);
              }
              qn = zt;
            } else
              Bt(R), qn = Ce;
            return ln && Gn && Ne(qn), qn;
          }
        case 39:
        case 64:
          if (u === ft || p === ft)
            return ft;
          !Mc(u, 402653316) && !Mc(p, 402653316) && (u = Gp(u, n), p = Gp(p, l));
          let xn;
          return Mc(u, 296, !0) && Mc(p, 296, !0) ? xn = mt : Mc(u, 2112, !0) && Mc(p, 2112, !0) ? xn = zt : Mc(u, 402653316, !0) || Mc(p, 402653316, !0) ? xn = ue : (Ss(u) || Ss(p)) && (xn = rs(u) || rs(p) ? Ce : we), xn && !$(x) ? xn : xn ? (x === 64 && Ne(xn), xn) : (Bt((Gn, qn) => Mc(Gn, 402655727) && Mc(qn, 402655727)), we);
        case 29:
        case 31:
        case 32:
        case 33:
          return $(x) && (u = Pie(Gp(u, n)), p = Pie(Gp(p, l)), _t((ln, Gn) => {
            if (Ss(ln) || Ss(Gn))
              return !0;
            const qn = xo(ln, mo), Zr = xo(Gn, mo);
            return qn && Zr || !qn && !Zr && NP(ln, Gn);
          })), Re;
        case 34:
        case 35:
        case 36:
        case 37:
          if (vW(n) || vW(l)) {
            const ln = x === 34 || x === 36;
            Ke(g, _.This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value, ln ? "false" : "true");
          }
          return An(g, x, n, l), _t((ln, Gn) => noe(ln, Gn) || noe(Gn, ln)), Re;
        case 102:
          return wrt(n, l, u, p);
        case 101:
          return Rrt(n, l, u, p);
        case 55:
        case 76: {
          const ln = wu(u) & 4194304 ? Qr([CZe(W ? u : dv(p)), p]) : u;
          return x === 76 && Ne(p), ln;
        }
        case 56:
        case 75: {
          const ln = wu(u) & 8388608 ? Qr([Zg(CLe(u)), p], 2) : u;
          return x === 75 && Ne(p), ln;
        }
        case 60:
        case 77: {
          const ln = wu(u) & 262144 ? Qr([Zg(u), p], 2) : u;
          return x === 77 && Ne(p), ln;
        }
        case 63:
          const yr = br(n.parent) ? Cl(n.parent) : 0;
          return M(yr, p), De(yr) ? ((!(p.flags & 524288) || yr !== 2 && yr !== 6 && !Xh(p) && !rae(p) && !(ti(p) & 1)) && Ne(p), u) : (Ne(p), p);
        case 27:
          if (!Y.allowUnreachableCode && f4(n) && !J(n.parent)) {
            const ln = Zn(n), Gn = ln.text, qn = Ko(Gn, n.pos);
            ln.parseDiagnostics.some((ri) => ri.code !== _.JSX_expressions_must_have_one_parent_element.code ? !1 : iW(ri, qn)) || Ke(n, _.Left_side_of_comma_operator_is_unused_and_has_no_side_effects);
          }
          return p;
        default:
          return D.fail();
      }
      function R(gn, xn) {
        return Mc(gn, 2112) && Mc(xn, 2112);
      }
      function M(gn, xn) {
        if (gn === 2)
          for (const yr of rv(xn)) {
            const ln = ar(yr);
            if (ln.symbol && ln.symbol.flags & 32) {
              const Gn = yr.escapedName, qn = _l(yr.valueDeclaration, Gn, 788968, void 0, Gn, !1);
              qn != null && qn.declarations && qn.declarations.some(DJ) && (bb(qn, _.Duplicate_identifier_0, ta(Gn), yr), bb(yr, _.Duplicate_identifier_0, ta(Gn), qn));
            }
          }
      }
      function J(gn) {
        return gn.parent.kind === 214 && v_(gn.left) && gn.left.text === "0" && (no(gn.parent.parent) && gn.parent.parent.expression === gn.parent || gn.parent.parent.kind === 212) && (ll(gn.right) || je(gn.right) && gn.right.escapedText === "eval");
      }
      function $(gn) {
        const xn = u4(u, 12288) ? n : u4(p, 12288) ? l : void 0;
        return xn ? (Ke(xn, _.The_0_operator_cannot_be_applied_to_type_symbol, yo(gn)), !1) : !0;
      }
      function ge(gn) {
        switch (gn) {
          case 51:
          case 74:
            return 56;
          case 52:
          case 78:
            return 37;
          case 50:
          case 73:
            return 55;
          default:
            return;
        }
      }
      function Ne(gn) {
        yy(x) && i(xn);
        function xn() {
          if (MD(n, _.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access, _.The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access)) {
            let yr;
            if (qe && Fr(n) && pl(gn, 32768)) {
              const ln = fc(Du(n.expression), n.name.escapedText);
              zU(gn, ln) && (yr = _.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target);
            }
            uv(gn, u, n, l, yr);
          }
        }
      }
      function De(gn) {
        var xn;
        switch (gn) {
          case 2:
            return !0;
          case 1:
          case 5:
          case 6:
          case 3:
          case 4:
            const yr = Yd(n), ln = ZS(l);
            return !!ln && Ls(ln) && !!((xn = yr == null ? void 0 : yr.exports) != null && xn.size);
          default:
            return !1;
        }
      }
      function _t(gn) {
        return gn(u, p) ? !1 : (Bt(gn), !0);
      }
      function Bt(gn) {
        let xn = !1;
        const yr = g || a;
        if (gn) {
          const ri = ty(u), ma = ty(p);
          xn = !(ri === u && ma === p) && !!(ri && ma) && gn(ri, ma);
        }
        let ln = u, Gn = p;
        !xn && gn && ([ln, Gn] = Grt(u, p, gn));
        const [qn, Zr] = on(ln, Gn);
        Mn(yr, xn, qn, Zr) || a0(yr, xn, _.Operator_0_cannot_be_applied_to_types_1_and_2, yo(a.kind), qn, Zr);
      }
      function Mn(gn, xn, yr, ln) {
        switch (a.kind) {
          case 36:
          case 34:
          case 37:
          case 35:
            return a0(gn, xn, _.This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap, yr, ln);
          default:
            return;
        }
      }
      function An(gn, xn, yr, ln) {
        const Gn = Kn(js(yr)), qn = Kn(js(ln));
        if (Gn || qn) {
          const Zr = Ke(gn, _.This_condition_will_always_return_0, yo(xn === 36 || xn === 34 ? 95 : 110));
          if (Gn && qn)
            return;
          const ri = xn === 37 || xn === 35 ? yo(53) : "", ma = Gn ? ln : yr, Qa = js(ma);
          Xo(Zr, Nr(ma, _.Did_you_mean_0, `${ri}Number.isNaN(${zl(Qa) ? Af(Qa) : "..."})`));
        }
      }
      function Kn(gn) {
        if (je(gn) && gn.escapedText === "NaN") {
          const xn = R$e();
          return !!xn && xn === w_(gn);
        }
        return !1;
      }
    }
    function Grt(n, a, l) {
      let u = n, p = a;
      const g = dv(n), x = dv(a);
      return l(g, x) || (u = g, p = x), [u, p];
    }
    function Urt(n) {
      i(Ne);
      const a = Cf(n);
      if (!a)
        return we;
      const l = Vc(a);
      if (!(l & 1))
        return we;
      const u = (l & 2) !== 0;
      n.asteriskToken && (u && P < 99 && pc(n, 26624), !u && P < 2 && Y.downlevelIteration && pc(n, 256));
      const p = M2(a), g = p && Dwe(p, u), x = g && g.yieldType || we, R = g && g.nextType || we, M = u ? HE(R) || we : R, J = n.expression ? ga(n.expression) : Ze, $ = Nke(n, J, M, u);
      if (p && $ && uv($, x, n.expression || n, n.expression), n.asteriskToken)
        return goe(u ? 19 : 17, 1, J, n.expression) || we;
      if (p)
        return qb(2, p, u) || we;
      let ge = vIe(2, a);
      return ge || (ge = we, i(() => {
        if (Te && !Yde(n)) {
          const De = ad(n, void 0);
          (!De || Ss(De)) && Ke(n, _.yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation);
        }
      })), ge;
      function Ne() {
        n.flags & 8192 || Fc(n, _.A_yield_expression_is_only_allowed_in_a_generator_body), _ae(n) && Ke(n, _.yield_expressions_cannot_be_used_in_a_parameter_initializer);
      }
    }
    function Vrt(n, a) {
      const l = Q2(n.condition);
      moe(n.condition, l, n.whenTrue);
      const u = ga(n.whenTrue, a), p = ga(n.whenFalse, a);
      return Qr([u, p], 2);
    }
    function Hke(n) {
      const a = n.parent;
      return Vd(a) && Hke(a) || cl(a) && a.argumentExpression === n;
    }
    function jrt(n) {
      const a = [n.head.text], l = [];
      for (const u of n.templateSpans) {
        const p = ga(u.expression);
        u4(p, 12288) && Ke(u.expression, _.Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String), a.push(u.literal.text), l.push(xo(p, To) ? p : ue);
      }
      return VL(n) || Hke(n) || Qh(ad(n, void 0) || he, Hrt) ? wE(a, l) : ue;
    }
    function Hrt(n) {
      return !!(n.flags & 134217856 || n.flags & 58982400 && pl(qu(n) || he, 402653316));
    }
    function Wrt(n) {
      return N1(n) && !wx(n.parent) ? n.parent.parent : n;
    }
    function Y2(n, a, l, u) {
      const p = Wrt(n);
      $P(p, a, !1), mtt(p, l);
      const g = ga(n, u | 1 | (l ? 2 : 0));
      l && l.intraExpressionInferenceSites && (l.intraExpressionInferenceSites = void 0);
      const x = pl(g, 2944) && PV(g, mV(a, n, void 0)) ? yd(g) : g;
      return htt(), kD(), x;
    }
    function Ql(n, a) {
      if (a)
        return ga(n, a);
      const l = Jr(n);
      if (!l.resolvedType) {
        const u = Tn, p = Aa;
        Tn = Hn, Aa = void 0, l.resolvedType = ga(n, a), Aa = p, Tn = u;
      }
      return l.resolvedType;
    }
    function Wke(n) {
      return n = js(n, !0), n.kind === 213 || n.kind === 231 || jk(n);
    }
    function FD(n, a, l) {
      const u = hN(n);
      if (fr(n)) {
        const g = Q3(n);
        if (g)
          return qae(u, g, a);
      }
      const p = aoe(u) || (l ? Y2(u, l, void 0, a || 0) : Ql(u, a));
      return Ba(n) && n.name.kind === 204 && Fo(p) && !p.target.hasRestElement && x0(p) < n.name.elements.length ? zrt(p, n.name) : p;
    }
    function zrt(n, a) {
      const l = a.elements, u = hs(n).slice(), p = n.target.elementFlags.slice();
      for (let g = x0(n); g < l.length; g++) {
        const x = l[g];
        (g < l.length - 1 || !(x.kind === 205 && x.dotDotDotToken)) && (u.push(!Rc(x) && PL(x) ? Qy(x, !1, !1) : we), p.push(2), !Rc(x) && !PL(x) && D0(x, we));
      }
      return Fp(u, p, n.target.readonly);
    }
    function roe(n, a) {
      const l = hp(n) & 2 || e3(n) ? a : jb(a);
      if (fr(n)) {
        if (ELe(l))
          return D0(n, we), we;
        if (YU(l))
          return D0(n, Dt), Dt;
      }
      return l;
    }
    function PV(n, a) {
      if (a) {
        if (a.flags & 3145728) {
          const l = a.types;
          return kt(l, (u) => PV(n, u));
        }
        if (a.flags & 58982400) {
          const l = qu(a) || he;
          return pl(l, 4) && pl(n, 128) || pl(l, 8) && pl(n, 256) || pl(l, 64) && pl(n, 2048) || pl(l, 4096) && pl(n, 8192) || PV(n, l);
        }
        return !!(a.flags & 406847616 && pl(n, 128) || a.flags & 256 && pl(n, 256) || a.flags & 2048 && pl(n, 2048) || a.flags & 512 && pl(n, 512) || a.flags & 8192 && pl(n, 8192));
      }
      return !1;
    }
    function VL(n) {
      const a = n.parent;
      return iT(a) && sg(a.type) || jk(a) && sg(Q7(a)) || zae(n) && qrt(n) || (Vd(a) || Bu(a) || Lh(a)) && VL(a) || (zc(a) || t_(a) || Ok(a)) && VL(a.parent);
    }
    function qrt(n) {
      const a = ad(n, 0);
      return !!a && Qh(a, EP);
    }
    function jL(n, a, l) {
      const u = ga(n, a, l);
      return VL(n) || uue(n) ? yd(u) : Wke(n) ? u : Mie(u, mV(ad(n, void 0), n, void 0));
    }
    function zke(n, a) {
      return n.name.kind === 164 && ey(n.name), jL(n.initializer, a);
    }
    function qke(n, a) {
      vDe(n), n.name.kind === 164 && ey(n.name);
      const l = Bke(n, a);
      return Jke(n, l, a);
    }
    function Jke(n, a, l) {
      if (l && l & 10) {
        const u = DD(a, 0, !0), p = DD(a, 1, !0), g = u || p;
        if (g && g.typeParameters) {
          const x = Wb(n, 2);
          if (x) {
            const R = DD(Zg(x), u ? 0 : 1, !1);
            if (R && !R.typeParameters) {
              if (l & 8)
                return Kke(n, l), La;
              const M = CS(n), J = M.signature && ys(M.signature), $ = J && ike(J);
              if ($ && !$.typeParameters && !Yn(M.inferences, $2)) {
                const ge = Yrt(M, g.typeParameters), Ne = jre(g, ge), De = jt(M.inferences, (_t) => Wie(_t.typeParameter));
                if (Vie(Ne, R, (_t, Bt) => {
                  $h(De, _t, Bt, 0, !0);
                }), kt(De, $2) && (jie(Ne, R, (_t, Bt) => {
                  $h(De, _t, Bt);
                }), !Krt(M.inferences, De)))
                  return Xrt(M.inferences, De), M.inferredTypeParameters = va(M.inferredTypeParameters, ge), kE(Ne);
              }
              return kE(ake(g, R, M));
            }
          }
        }
      }
      return a;
    }
    function Kke(n, a) {
      if (a & 2) {
        const l = CS(n);
        l.flags |= 4;
      }
    }
    function $2(n) {
      return !!(n.candidates || n.contraCandidates);
    }
    function Jrt(n) {
      return !!(n.candidates || n.contraCandidates || HAe(n.typeParameter));
    }
    function Krt(n, a) {
      for (let l = 0; l < n.length; l++)
        if ($2(n[l]) && $2(a[l]))
          return !0;
      return !1;
    }
    function Xrt(n, a) {
      for (let l = 0; l < n.length; l++)
        !$2(n[l]) && $2(a[l]) && (n[l] = a[l]);
    }
    function Yrt(n, a) {
      const l = [];
      let u, p;
      for (const g of a) {
        const x = g.symbol.escapedName;
        if (ioe(n.inferredTypeParameters, x) || ioe(l, x)) {
          const R = $rt(va(n.inferredTypeParameters, l), x), M = ns(262144, R), J = Nd(M);
          J.target = g, u = Fn(u, g), p = Fn(p, J), l.push(J);
        } else
          l.push(g);
      }
      if (p) {
        const g = vd(u, p);
        for (const x of p)
          x.mapper = g;
      }
      return l;
    }
    function ioe(n, a) {
      return kt(n, (l) => l.symbol.escapedName === a);
    }
    function $rt(n, a) {
      let l = a.length;
      for (; l > 1 && a.charCodeAt(l - 1) >= 48 && a.charCodeAt(l - 1) <= 57; )
        l--;
      const u = a.slice(0, l);
      for (let p = 1; ; p++) {
        const g = u + p;
        if (!ioe(n, g))
          return g;
      }
    }
    function Xke(n) {
      const a = LS(n);
      if (a && !a.typeParameters)
        return ys(a);
    }
    function Qrt(n) {
      const a = ga(n.expression), l = ED(a, n.expression), u = Xke(a);
      return u && ZU(u, n, l !== a);
    }
    function Du(n) {
      const a = aoe(n);
      if (a)
        return a;
      if (n.flags & 134217728 && Aa) {
        const p = Aa[ps(n)];
        if (p)
          return p;
      }
      const l = tr, u = ga(n);
      if (tr !== l) {
        const p = Aa || (Aa = []);
        p[ps(n)] = u, Xde(n, n.flags | 134217728);
      }
      return u;
    }
    function aoe(n) {
      let a = js(n, !0);
      if (jk(a)) {
        const l = Q7(a);
        if (!sg(l))
          return fi(l);
      }
      if (a = js(n), TC(a)) {
        const l = aoe(a.expression);
        return l ? HE(l) : void 0;
      }
      if (no(a) && a.expression.kind !== 106 && !xd(a, !0) && !yke(a))
        return tT(a) ? Qrt(a) : Xke(FL(a.expression));
      if (iT(a) && !sg(a.type))
        return fi(a.type);
      if (nT(n) || gce(n))
        return ga(n);
    }
    function _4(n) {
      const a = Jr(n);
      if (a.contextFreeType)
        return a.contextFreeType;
      $P(n, we, !1);
      const l = a.contextFreeType = ga(n, 4);
      return kD(), l;
    }
    function ga(n, a, l) {
      var u, p;
      (u = bi) == null || u.push(bi.Phase.Check, "checkExpression", { kind: n.kind, pos: n.pos, end: n.end, path: n.tracingPath });
      const g = G;
      G = n, I = 0;
      const x = tit(n, a, l), R = Jke(n, x, a);
      return eoe(R) && Zrt(n, R), G = g, (p = bi) == null || p.pop(), R;
    }
    function Zrt(n, a) {
      n.parent.kind === 208 && n.parent.expression === n || n.parent.kind === 209 && n.parent.expression === n || (n.kind === 79 || n.kind === 163) && XV(n) || n.parent.kind === 183 && n.parent.exprName === n || n.parent.kind === 278 || Ke(n, _.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query), j_(Y) && (D.assert(!!(a.symbol.flags & 128)), a.symbol.valueDeclaration.flags & 16777216 && Ke(n, _.Cannot_access_ambient_const_enums_when_0_is_enabled, Vt));
    }
    function eit(n, a) {
      if (xf(n)) {
        if (kq(n))
          return qae(n.expression, wq(n), a);
        if (jk(n)) {
          const l = Q7(n);
          return Ske(l, l, n.expression, a);
        }
      }
      return ga(n.expression, a);
    }
    function tit(n, a, l) {
      const u = n.kind;
      if (o)
        switch (u) {
          case 228:
          case 215:
          case 216:
            o.throwIfCancellationRequested();
        }
      switch (u) {
        case 79:
          return Bet(n, a);
        case 80:
          return Qtt(n);
        case 108:
          return XP(n);
        case 106:
          return dae(n);
        case 104:
          return Er;
        case 14:
        case 10:
          return H2(jf(n.text));
        case 8:
          return Boe(n), H2(Bp(+n.text));
        case 9:
          return tlt(n), H2(PU({
            negative: !1,
            base10Value: pk(n.text)
          }));
        case 110:
          return Pe;
        case 95:
          return it;
        case 225:
          return jrt(n);
        case 13:
          return Nf;
        case 206:
          return IIe(n, a, l);
        case 207:
          return Rtt(n, a);
        case 208:
          return HIe(n, a);
        case 163:
          return WIe(n, a);
        case 209:
          return pnt(n, a);
        case 210:
          if (n.expression.kind === 100)
            return Wnt(n);
        case 211:
          return Hnt(n, a);
        case 212:
          return znt(n);
        case 214:
          return eit(n, a);
        case 228:
          return Vat(n);
        case 215:
        case 216:
          return Bke(n, a);
        case 218:
          return xrt(n);
        case 213:
        case 231:
          return qnt(n);
        case 232:
          return Knt(n);
        case 230:
          return xke(n);
        case 235:
          return Xnt(n);
        case 233:
          return Ynt(n);
        case 217:
          return Trt(n);
        case 219:
          return Art(n);
        case 220:
          return Lrt(n);
        case 221:
          return Irt(n);
        case 222:
          return krt(n);
        case 223:
          return Oe(n, a);
        case 224:
          return Vrt(n, a);
        case 227:
          return Ltt(n, a);
        case 229:
          return Ze;
        case 226:
          return Urt(n);
        case 234:
          return Itt(n);
        case 291:
          return ztt(n, a);
        case 281:
          return Mtt(n);
        case 282:
          return Ott(n);
        case 285:
          return Ftt(n);
        case 289:
          return Gtt(n, a);
        case 283:
          D.fail("Shouldn't ever directly check a JsxOpeningElement");
      }
      return Ce;
    }
    function Yke(n) {
      uh(n), n.expression && Fc(n.expression, _.Type_expected), go(n.constraint), go(n.default);
      const a = CE(Ir(n));
      qu(a), VYe(a) || Ke(n.default, _.Type_parameter_0_has_a_circular_default, ke(a));
      const l = Cu(a), u = IE(a);
      l && u && id(u, Uf(Yi(l, Ub(a, u)), u), n.default, _.Type_0_does_not_satisfy_the_constraint_1), KL(n), i(() => qL(n.name, _.Type_parameter_name_cannot_be_0));
    }
    function nit(n) {
      var a, l;
      if (nd(n.parent) || di(n.parent) || em(n.parent)) {
        const u = CE(Ir(n)), p = wie(u) & 98304;
        if (p) {
          const g = Ir(n.parent);
          if (em(n.parent) && !(ti(Us(g)) & 48))
            Ke(n, _.Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types);
          else if (p === 32768 || p === 65536) {
            (a = bi) == null || a.push(bi.Phase.CheckTypes, "checkTypeParameterDeferred", { parent: ku(Us(g)), id: ku(u) });
            const x = MP(g, u, p === 65536 ? hl : Ds), R = MP(g, u, p === 65536 ? Ds : hl), M = u;
            V = u, id(x, R, n, _.Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation), V = M, (l = bi) == null || l.pop();
          }
        }
      }
    }
    function $ke(n) {
      uh(n), v4(n);
      const a = Cf(n);
      Yr(n, 16476) && (a.kind === 173 && __(a.body) || Ke(n, _.A_parameter_property_is_only_allowed_in_a_constructor_implementation), a.kind === 173 && je(n.name) && n.name.escapedText === "constructor" && Ke(n.name, _.constructor_cannot_be_used_as_a_parameter_property_name)), !n.initializer && Iq(n) && Xa(n.name) && a.body && Ke(n, _.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature), n.name && je(n.name) && (n.name.escapedText === "this" || n.name.escapedText === "new") && (a.parameters.indexOf(n) !== 0 && Ke(n, _.A_0_parameter_must_be_the_first_parameter, n.name.escapedText), (a.kind === 173 || a.kind === 177 || a.kind === 182) && Ke(n, _.A_constructor_cannot_have_a_this_parameter), a.kind === 216 && Ke(n, _.An_arrow_function_cannot_have_a_this_parameter), (a.kind === 174 || a.kind === 175) && Ke(n, _.get_and_set_accessors_cannot_declare_this_parameters)), n.dotDotDotToken && !Xa(n.name) && !xo(up(ar(n.symbol)), Xi) && Ke(n, _.A_rest_parameter_must_be_of_an_array_type);
    }
    function rit(n) {
      const a = iit(n);
      if (!a) {
        Ke(n, _.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);
        return;
      }
      const l = Mp(a), u = a_(l);
      if (!u)
        return;
      go(n.type);
      const { parameterName: p } = n;
      if (u.kind === 0 || u.kind === 2)
        MU(p);
      else if (u.parameterIndex >= 0) {
        if (Eu(l) && u.parameterIndex === l.parameters.length - 1)
          Ke(p, _.A_type_predicate_cannot_reference_a_rest_parameter);
        else if (u.type) {
          const g = () => Na(void 0, _.A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type);
          id(u.type, ar(l.parameters[u.parameterIndex]), n.type, void 0, g);
        }
      } else if (p) {
        let g = !1;
        for (const { name: x } of a.parameters)
          if (Xa(x) && Qke(x, p, u.parameterName)) {
            g = !0;
            break;
          }
        g || Ke(n.parameterName, _.Cannot_find_parameter_0, u.parameterName);
      }
    }
    function iit(n) {
      switch (n.parent.kind) {
        case 216:
        case 176:
        case 259:
        case 215:
        case 181:
        case 171:
        case 170:
          const a = n.parent;
          if (n === a.type)
            return a;
      }
    }
    function Qke(n, a, l) {
      for (const u of n.elements) {
        if (Rc(u))
          continue;
        const p = u.name;
        if (p.kind === 79 && p.escapedText === l)
          return Ke(a, _.A_type_predicate_cannot_reference_element_0_in_a_binding_pattern, l), !0;
        if ((p.kind === 204 || p.kind === 203) && Qke(p, a, l))
          return !0;
      }
    }
    function BD(n) {
      n.kind === 178 ? Ist(n) : (n.kind === 181 || n.kind === 259 || n.kind === 182 || n.kind === 176 || n.kind === 173 || n.kind === 177) && tj(n);
      const a = Vc(n);
      a & 4 || ((a & 3) === 3 && P < 99 && pc(n, 6144), (a & 3) === 2 && P < 4 && pc(n, 64), a & 3 && P < 2 && pc(n, 128)), E4(Av(n)), Bat(n), ze(n.parameters, $ke), n.type && go(n.type), i(l);
      function l() {
        tat(n);
        const u = yp(n);
        if (Te && !u)
          switch (n.kind) {
            case 177:
              Ke(n, _.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);
              break;
            case 176:
              Ke(n, _.Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);
              break;
          }
        if (u) {
          const p = Vc(n);
          if ((p & 5) === 1) {
            const g = fi(u);
            if (g === Rt)
              Ke(u, _.A_generator_cannot_have_a_void_type_annotation);
            else {
              const x = qb(0, g, (p & 2) !== 0) || we, R = qb(1, g, (p & 2) !== 0) || x, M = qb(2, g, (p & 2) !== 0) || he, J = Rke(x, R, M, !!(p & 2));
              id(J, g, u);
            }
          } else
            (p & 3) === 2 && Pit(n, u);
        }
        n.kind !== 178 && n.kind !== 320 && fv(n);
      }
    }
    function ait(n) {
      const a = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map();
      for (const g of n.members)
        if (g.kind === 173)
          for (const x of g.parameters)
            nf(x, g) && !Xa(x.name) && p(a, x.name, x.name.escapedText, 3);
        else {
          const x = Ja(g), R = g.name;
          if (!R)
            continue;
          const M = Ni(R), J = M && x ? 16 : 0, $ = M ? u : x ? l : a, ge = R && T1(R);
          if (ge)
            switch (g.kind) {
              case 174:
                p($, R, ge, 1 | J);
                break;
              case 175:
                p($, R, ge, 2 | J);
                break;
              case 169:
                p($, R, ge, 3 | J);
                break;
              case 171:
                p($, R, ge, 8 | J);
                break;
            }
        }
      function p(g, x, R, M) {
        const J = g.get(R);
        if (J)
          if ((J & 16) !== (M & 16))
            Ke(x, _.Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name, Sc(x));
          else {
            const $ = !!(J & 8), ge = !!(M & 8);
            $ || ge ? $ !== ge && Ke(x, _.Duplicate_identifier_0, Sc(x)) : J & M & -17 ? Ke(x, _.Duplicate_identifier_0, Sc(x)) : g.set(R, J | M);
          }
        else
          g.set(R, M);
      }
    }
    function oit(n) {
      for (const a of n.members) {
        const l = a.name;
        if (Ja(a) && l) {
          const p = T1(l);
          switch (p) {
            case "name":
            case "length":
            case "caller":
            case "arguments":
            case "prototype":
              const g = _.Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1, x = Xy(Ir(n));
              Ke(l, g, p, x);
              break;
          }
        }
      }
    }
    function Zke(n) {
      const a = /* @__PURE__ */ new Map();
      for (const l of n.members)
        if (l.kind === 168) {
          let u;
          const p = l.name;
          switch (p.kind) {
            case 10:
            case 8:
              u = p.text;
              break;
            case 79:
              u = Mr(p);
              break;
            default:
              continue;
          }
          a.get(u) ? (Ke(ka(l.symbol.valueDeclaration), _.Duplicate_identifier_0, u), Ke(l.name, _.Duplicate_identifier_0, u)) : a.set(u, !0);
        }
    }
    function ooe(n) {
      if (n.kind === 261) {
        const l = Ir(n);
        if (l.declarations && l.declarations.length > 0 && l.declarations[0] !== n)
          return;
      }
      const a = $Ae(Ir(n));
      if (a != null && a.declarations) {
        const l = /* @__PURE__ */ new Map();
        for (const u of a.declarations)
          u.parameters.length === 1 && u.parameters[0].type && BE(fi(u.parameters[0].type), (p) => {
            const g = l.get(ku(p));
            g ? g.declarations.push(u) : l.set(ku(p), { type: p, declarations: [u] });
          });
        l.forEach((u) => {
          if (u.declarations.length > 1)
            for (const p of u.declarations)
              Ke(p, _.Duplicate_index_signature_for_type_0, ke(u.type));
        });
      }
    }
    function ewe(n) {
      !uh(n) && !Yst(n) && nj(n.name), v4(n), soe(n), Yr(n, 256) && n.kind === 169 && n.initializer && Ke(n, _.Property_0_cannot_have_an_initializer_because_it_is_marked_abstract, ws(n.name));
    }
    function sit(n) {
      return Ni(n.name) && Ke(n, _.Private_identifiers_are_not_allowed_outside_class_bodies), ewe(n);
    }
    function lit(n) {
      vDe(n) || nj(n.name), ac(n) && n.asteriskToken && je(n.name) && Mr(n.name) === "constructor" && Ke(n.name, _.Class_constructor_may_not_be_a_generator), _we(n), Yr(n, 256) && n.kind === 171 && n.body && Ke(n, _.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract, ws(n.name)), Ni(n.name) && !xc(n) && Ke(n, _.Private_identifiers_are_not_allowed_outside_class_bodies), soe(n);
    }
    function soe(n) {
      if (Ni(n.name) && P < 99) {
        for (let a = Mm(n); a; a = Mm(a))
          Jr(a).flags |= 4194304;
        if (Gu(n.parent)) {
          const a = lae(n.parent);
          a && (Jr(n.name).flags |= 32768, Jr(a).flags |= 4096);
        }
      }
    }
    function cit(n) {
      uh(n), Ma(n, go);
    }
    function uit(n) {
      BD(n), Kst(n) || Xst(n), go(n.body);
      const a = Ir(n), l = xl(a, n.kind);
      if (n === l && BV(a), Al(n.body))
        return;
      i(p);
      return;
      function u(g) {
        return $u(g) ? !0 : g.kind === 169 && !Ja(g) && !!g.initializer;
      }
      function p() {
        const g = n.parent;
        if (E1(g)) {
          cae(n.parent, g);
          const x = _Ie(g), R = fIe(n.body);
          if (R) {
            if (x && Ke(R, _.A_constructor_cannot_contain_a_super_call_when_its_class_extends_null), (ts(Y) !== 99 || !ye) && (kt(n.parent.members, u) || kt(n.parameters, (J) => Yr(J, 16476))))
              if (!dit(R, n.body))
                Ke(R, _.A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers);
              else {
                let J;
                for (const $ of n.body.statements) {
                  if (ou($) && MA(bu($.expression))) {
                    J = $;
                    break;
                  }
                  if (twe($))
                    break;
                }
                J === void 0 && Ke(n, _.A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers);
              }
          } else
            x || Ke(n, _.Constructors_for_derived_classes_must_contain_a_super_call);
        }
      }
    }
    function dit(n, a) {
      const l = Dv(n.parent);
      return ou(l) && l.parent === a;
    }
    function twe(n) {
      return n.kind === 106 || n.kind === 108 ? !0 : hue(n) ? !1 : !!Ma(n, twe);
    }
    function nwe(n) {
      je(n.name) && Mr(n.name) === "constructor" && Ke(n.name, _.Class_constructor_may_not_be_an_accessor), i(a), go(n.body), soe(n);
      function a() {
        if (!tj(n) && !Fst(n) && nj(n.name), m4(n), BD(n), n.kind === 174 && !(n.flags & 16777216) && __(n.body) && n.flags & 256 && (n.flags & 512 || Ke(n.name, _.A_get_accessor_must_return_a_value)), n.name.kind === 164 && ey(n.name), N2(n)) {
          const u = Ir(n), p = xl(u, 174), g = xl(u, 175);
          if (p && g && !(eA(p) & 1)) {
            Jr(p).flags |= 1;
            const x = Mu(p), R = Mu(g);
            (x & 256) !== (R & 256) && (Ke(p.name, _.Accessors_must_both_be_abstract_or_non_abstract), Ke(g.name, _.Accessors_must_both_be_abstract_or_non_abstract)), (x & 16 && !(R & 24) || x & 8 && !(R & 8)) && (Ke(p.name, _.A_get_accessor_must_be_at_least_as_accessible_as_the_setter), Ke(g.name, _.A_get_accessor_must_be_at_least_as_accessible_as_the_setter));
            const M = se(p), J = se(g);
            M && J && id(M, J, p, _.The_return_type_of_a_get_accessor_must_be_assignable_to_its_set_accessor_type);
          }
        }
        const l = Gr(Ir(n));
        n.kind === 174 && Qae(n, l);
      }
    }
    function fit(n) {
      m4(n);
    }
    function _it(n, a, l) {
      return n.typeArguments && l < n.typeArguments.length ? fi(n.typeArguments[l]) : MV(n, a)[l];
    }
    function MV(n, a) {
      return av(jt(n.typeArguments, fi), a, mm(a), fr(n));
    }
    function rwe(n, a) {
      let l, u, p = !0;
      for (let g = 0; g < a.length; g++) {
        const x = Cu(a[g]);
        x && (l || (l = MV(n, a), u = vd(a, l)), p = p && id(l[g], Yi(x, u), n.typeArguments[g], _.Type_0_does_not_satisfy_the_constraint_1));
      }
      return p;
    }
    function pit(n, a) {
      if (!rs(n))
        return a.flags & 524288 && Wi(a).typeParameters || (ti(n) & 4 ? n.target.localTypeParameters : void 0);
    }
    function loe(n) {
      const a = fi(n);
      if (!rs(a)) {
        const l = Jr(n).resolvedSymbol;
        if (l)
          return pit(a, l);
      }
    }
    function coe(n) {
      if (A4(n, n.typeArguments), n.kind === 180 && !fr(n) && !pN(n) && n.typeArguments && n.typeName.end !== n.typeArguments.pos) {
        const a = Zn(n);
        oue(a, n.typeName.end) === 24 && Kb(n, Ko(a.text, n.typeName.end), 1, _.JSDoc_types_can_only_be_used_inside_documentation_comments);
      }
      ze(n.typeArguments, go), iwe(n);
    }
    function iwe(n) {
      const a = fi(n);
      if (!rs(a)) {
        n.typeArguments && i(() => {
          const u = loe(n);
          u && rwe(n, u);
        });
        const l = Jr(n).resolvedSymbol;
        l && kt(l.declarations, (u) => cC(u) && !!(u.flags & 268435456)) && wg(a4(n), l.declarations, l.escapedName);
      }
    }
    function mit(n) {
      const a = ai(n.parent, HM);
      if (!a)
        return;
      const l = loe(a);
      if (!l)
        return;
      const u = Cu(l[a.typeArguments.indexOf(n)]);
      return u && Yi(u, vd(l, MV(a, l)));
    }
    function hit(n) {
      lCe(n);
    }
    function git(n) {
      ze(n.members, go), i(a);
      function a() {
        const l = XCe(n);
        zV(l, l.symbol), ooe(n), Zke(n);
      }
    }
    function yit(n) {
      go(n.elementType);
    }
    function vit(n) {
      const a = n.elements;
      let l = !1, u = !1;
      const p = kt(a, wk);
      for (const g of a) {
        if (g.kind !== 199 && p) {
          En(g, _.Tuple_members_must_all_have_names_or_all_not_have_names);
          break;
        }
        const x = eie(g);
        if (x & 8) {
          const R = fi(g.type);
          if (!w0(R)) {
            Ke(g, _.A_rest_element_type_must_be_an_array_type);
            break;
          }
          (Hf(R) || Fo(R) && R.target.combinedFlags & 4) && (u = !0);
        } else if (x & 4) {
          if (u) {
            En(g, _.A_rest_element_cannot_follow_another_rest_element);
            break;
          }
          u = !0;
        } else if (x & 2) {
          if (u) {
            En(g, _.An_optional_element_cannot_follow_a_rest_element);
            break;
          }
          l = !0;
        } else if (l) {
          En(g, _.A_required_element_cannot_follow_an_optional_element);
          break;
        }
      }
      ze(n.elements, go), fi(n);
    }
    function bit(n) {
      ze(n.types, go), fi(n);
    }
    function awe(n, a) {
      if (!(n.flags & 8388608))
        return n;
      const l = n.objectType, u = n.indexType;
      if (xo(u, gm(l, !1)))
        return a.kind === 209 && bh(a) && ti(l) & 32 && pm(l) & 1 && Ke(a, _.Index_signature_in_type_0_only_permits_reading, ke(l)), n;
      const p = Ju(l);
      if (sh(p, mt) && Mc(u, 296))
        return n;
      if (Fb(l)) {
        const g = wU(u, a);
        if (g) {
          const x = BE(p, (R) => uo(R, g));
          if (x && Qf(x) & 24)
            return Ke(a, _.Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter, ta(g)), Ce;
        }
      }
      return Ke(a, _.Type_0_cannot_be_used_to_index_type_1, ke(u), ke(l)), Ce;
    }
    function Eit(n) {
      go(n.objectType), go(n.indexType), awe(HCe(n), n);
    }
    function Tit(n) {
      Sit(n), go(n.typeParameter), go(n.nameType), go(n.type), n.type || D0(n, we);
      const a = uie(n), l = nv(a);
      if (l)
        id(l, ji, n.nameType);
      else {
        const u = Pp(a);
        id(u, ji, xA(n.typeParameter));
      }
    }
    function Sit(n) {
      var a;
      if ((a = n.members) != null && a.length)
        return En(n.members[0], _.A_mapped_type_may_not_declare_properties_or_methods);
    }
    function xit(n) {
      MU(n);
    }
    function Ait(n) {
      Gst(n), go(n.type);
    }
    function Cit(n) {
      Ma(n, go);
    }
    function Lit(n) {
      nr(n, (l) => l.parent && l.parent.kind === 191 && l.parent.extendsType === l) || En(n, _.infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type), go(n.typeParameter);
      const a = Ir(n.typeParameter);
      if (a.declarations && a.declarations.length > 1) {
        const l = Wi(a);
        if (!l.typeParametersChecked) {
          l.typeParametersChecked = !0;
          const u = CE(a), p = Mce(a, 165);
          if (!Pwe(p, [u], (g) => [g])) {
            const g = S(a);
            for (const x of p)
              Ke(x.name, _.All_declarations_of_0_must_have_identical_constraints, g);
          }
        }
      }
      fv(n);
    }
    function Iit(n) {
      for (const a of n.templateSpans) {
        go(a.type);
        const l = fi(a.type);
        id(l, To, a.type);
      }
      fi(n);
    }
    function kit(n) {
      go(n.argument), n.assertions && Vx(n.assertions.assertClause, En) && (jN() || En(n.assertions.assertClause, _.resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next), vl(Y) !== 3 && vl(Y) !== 99 && En(n.assertions.assertClause, _.resolution_mode_assertions_are_only_supported_when_moduleResolution_is_node16_or_nodenext)), iwe(n);
    }
    function wit(n) {
      n.dotDotDotToken && n.questionToken && En(n, _.A_tuple_member_cannot_be_both_optional_and_rest), n.type.kind === 187 && En(n.type, _.A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type), n.type.kind === 188 && En(n.type, _.A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type), go(n.type), fi(n);
    }
    function p4(n) {
      return (Gd(n, 8) || $u(n)) && !!(n.flags & 16777216);
    }
    function FV(n, a) {
      let l = _y(n);
      return n.parent.kind !== 261 && n.parent.kind !== 260 && n.parent.kind !== 228 && n.flags & 16777216 && (!(l & 2) && !(tm(n.parent) && Jl(n.parent.parent) && Kp(n.parent.parent)) && (l |= 1), l |= 2), l & a;
    }
    function BV(n) {
      i(() => Dit(n));
    }
    function Dit(n) {
      function a(xn, yr) {
        return yr !== void 0 && yr.parent === xn[0].parent ? yr : xn[0];
      }
      function l(xn, yr, ln, Gn, qn) {
        if ((Gn ^ qn) !== 0) {
          const ri = FV(a(xn, yr), ln);
          ze(xn, (ma) => {
            const Qa = FV(ma, ln) ^ ri;
            Qa & 1 ? Ke(ka(ma), _.Overload_signatures_must_all_be_exported_or_non_exported) : Qa & 2 ? Ke(ka(ma), _.Overload_signatures_must_all_be_ambient_or_non_ambient) : Qa & 24 ? Ke(ka(ma) || ma, _.Overload_signatures_must_all_be_public_private_or_protected) : Qa & 256 && Ke(ka(ma), _.Overload_signatures_must_all_be_abstract_or_non_abstract);
          });
        }
      }
      function u(xn, yr, ln, Gn) {
        if (ln !== Gn) {
          const qn = rx(a(xn, yr));
          ze(xn, (Zr) => {
            rx(Zr) !== qn && Ke(ka(Zr), _.Overload_signatures_must_all_be_optional_or_required);
          });
        }
      }
      const p = 283;
      let g = 0, x = p, R = !1, M = !0, J = !1, $, ge, Ne;
      const De = n.declarations, _t = (n.flags & 16384) !== 0;
      function Bt(xn) {
        if (xn.name && Al(xn.name))
          return;
        let yr = !1;
        const ln = Ma(xn.parent, (qn) => {
          if (yr)
            return qn;
          yr = qn === xn;
        });
        if (ln && ln.pos === xn.end && ln.kind === xn.kind) {
          const qn = ln.name || ln, Zr = ln.name;
          if (xn.name && Zr && (Ni(xn.name) && Ni(Zr) && xn.name.escapedText === Zr.escapedText || As(xn.name) && As(Zr) || G_(xn.name) && G_(Zr) && qI(xn.name) === qI(Zr))) {
            if ((xn.kind === 171 || xn.kind === 170) && Ja(xn) !== Ja(ln)) {
              const ma = Ja(xn) ? _.Function_overload_must_be_static : _.Function_overload_must_not_be_static;
              Ke(qn, ma);
            }
            return;
          }
          if (__(ln.body)) {
            Ke(qn, _.Function_implementation_name_must_be_0, ws(xn.name));
            return;
          }
        }
        const Gn = xn.name || xn;
        _t ? Ke(Gn, _.Constructor_implementation_is_missing) : Yr(xn, 256) ? Ke(Gn, _.All_declarations_of_an_abstract_method_must_be_consecutive) : Ke(Gn, _.Function_implementation_is_missing_or_not_immediately_following_the_declaration);
      }
      let Mn = !1, An = !1, Kn = !1;
      const gn = [];
      if (De)
        for (const xn of De) {
          const yr = xn, ln = yr.flags & 16777216, Gn = yr.parent && (yr.parent.kind === 261 || yr.parent.kind === 184) || ln;
          if (Gn && (Ne = void 0), (yr.kind === 260 || yr.kind === 228) && !ln && (Kn = !0), yr.kind === 259 || yr.kind === 171 || yr.kind === 170 || yr.kind === 173) {
            gn.push(yr);
            const qn = FV(yr, p);
            g |= qn, x &= qn, R = R || rx(yr), M = M && rx(yr);
            const Zr = __(yr.body);
            Zr && $ ? _t ? An = !0 : Mn = !0 : (Ne == null ? void 0 : Ne.parent) === yr.parent && Ne.end !== yr.pos && Bt(Ne), Zr ? $ || ($ = yr) : J = !0, Ne = yr, Gn || (ge = yr);
          }
          if (fr(xn) && Ka(xn) && xn.jsDoc) {
            for (const qn of xn.jsDoc)
              if (qn.tags)
                for (const Zr of qn.tags)
                  Gk(Zr) && (J = !0);
          }
        }
      if (An && ze(gn, (xn) => {
        Ke(xn, _.Multiple_constructor_implementations_are_not_allowed);
      }), Mn && ze(gn, (xn) => {
        Ke(ka(xn) || xn, _.Duplicate_function_implementation);
      }), Kn && !_t && n.flags & 16 && De) {
        const xn = lr(De, (yr) => yr.kind === 260).map((yr) => Nr(yr, _.Consider_adding_a_declare_modifier_to_this_class));
        ze(De, (yr) => {
          const ln = yr.kind === 260 ? _.Class_declaration_cannot_implement_overload_list_for_0 : yr.kind === 259 ? _.Function_with_bodies_can_only_merge_with_classes_that_are_ambient : void 0;
          ln && Xo(Ke(ka(yr) || yr, ln, Ml(n)), ...xn);
        });
      }
      if (ge && !ge.body && !Yr(ge, 256) && !ge.questionToken && Bt(ge), J && (De && (l(De, $, p, g, x), u(De, $, R, M)), $)) {
        const xn = Nb(n), yr = Mp($);
        for (const ln of xn)
          if (!nZe(yr, ln)) {
            const Gn = ln.declaration && P1(ln.declaration) ? ln.declaration.parent.tagName : ln.declaration;
            Xo(Ke(Gn, _.This_overload_signature_is_not_compatible_with_its_implementation_signature), Nr($, _.The_implementation_signature_is_declared_here));
            break;
          }
      }
    }
    function GD(n) {
      i(() => Rit(n));
    }
    function Rit(n) {
      let a = n.localSymbol;
      if (!a && (a = Ir(n), !a.exportSymbol) || xl(a, n.kind) !== n)
        return;
      let l = 0, u = 0, p = 0;
      for (const J of a.declarations) {
        const $ = M(J), ge = FV(J, 1025);
        ge & 1 ? ge & 1024 ? p |= $ : l |= $ : u |= $;
      }
      const g = l | u, x = l & u, R = p & g;
      if (x || R)
        for (const J of a.declarations) {
          const $ = M(J), ge = ka(J);
          $ & R ? Ke(ge, _.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead, ws(ge)) : $ & x && Ke(ge, _.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, ws(ge));
        }
      function M(J) {
        let $ = J;
        switch ($.kind) {
          case 261:
          case 262:
          case 349:
          case 341:
          case 343:
            return 2;
          case 264:
            return Pu($) || vg($) !== 0 ? 5 : 4;
          case 260:
          case 263:
          case 302:
            return 3;
          case 308:
            return 7;
          case 274:
          case 223:
            const ge = $, Ne = Bl(ge) ? ge.expression : ge.right;
            if (!zl(Ne))
              return 1;
            $ = Ne;
          case 268:
          case 271:
          case 270:
            let De = 0;
            const _t = nc(Ir($));
            return ze(_t.declarations, (Bt) => {
              De |= M(Bt);
            }), De;
          case 257:
          case 205:
          case 259:
          case 273:
          case 79:
            return 1;
          case 170:
          case 168:
            return 2;
          default:
            return D.failBadSyntaxKind($);
        }
      }
    }
    function UD(n, a, l, u) {
      const p = VD(n, a);
      return p && HE(p, a, l, u);
    }
    function VD(n, a, l) {
      if (Ss(n))
        return;
      const u = n;
      if (u.promisedTypeOfPromise)
        return u.promisedTypeOfPromise;
      if (T0(n, CP(!1)))
        return u.promisedTypeOfPromise = hs(n)[0];
      if (d4(iv(n), 134479868))
        return;
      const p = fc(n, "then");
      if (Ss(p))
        return;
      const g = p ? za(p, 0) : rt;
      if (g.length === 0) {
        a && Ke(a, _.A_promise_must_have_a_then_method);
        return;
      }
      let x, R;
      for (const $ of g) {
        const ge = Ob($);
        ge && ge !== Rt && !ym(n, ge, $m) ? x = ge : R = Fn(R, $);
      }
      if (!R) {
        D.assertIsDefined(x), l && (l.value = x), a && Ke(a, _.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1, ke(n), ke(x));
        return;
      }
      const M = l_(Qr(jt(R, Kae)), 2097152);
      if (Ss(M))
        return;
      const J = za(M, 0);
      if (J.length === 0) {
        a && Ke(a, _.The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback);
        return;
      }
      return u.promisedTypeOfPromise = Qr(jt(J, Kae), 2);
    }
    function jD(n, a, l, u, p) {
      return (a ? HE(n, l, u, p) : ty(n, l, u, p)) || Ce;
    }
    function owe(n) {
      if (d4(iv(n), 134479868))
        return !1;
      const a = fc(n, "then");
      return !!a && za(l_(a, 2097152), 0).length > 0;
    }
    function GV(n) {
      var a;
      if (n.flags & 16777216) {
        const l = Zre(!1);
        return !!l && n.aliasSymbol === l && ((a = n.aliasTypeArguments) == null ? void 0 : a.length) === 1;
      }
      return !1;
    }
    function HL(n) {
      return n.flags & 1048576 ? $s(n, HL) : GV(n) ? n.aliasTypeArguments[0] : n;
    }
    function swe(n) {
      if (Ss(n) || GV(n))
        return !1;
      if (Fb(n)) {
        const a = qu(n);
        if (a ? a.flags & 3 || Xh(a) || Qh(a, owe) : pl(n, 8650752))
          return !0;
      }
      return !1;
    }
    function Nit(n) {
      const a = Zre(!0);
      if (a)
        return G2(a, [HL(n)]);
    }
    function Oit(n) {
      if (swe(n)) {
        const a = Nit(n);
        if (a)
          return a;
      }
      return D.assert(GV(n) || VD(n) === void 0, "type provided should not be a non-generic 'promise'-like."), n;
    }
    function HE(n, a, l, u) {
      const p = ty(n, a, l, u);
      return p && Oit(p);
    }
    function ty(n, a, l, u) {
      if (Ss(n) || GV(n))
        return n;
      const p = n;
      if (p.awaitedTypeOfType)
        return p.awaitedTypeOfType;
      if (n.flags & 1048576) {
        if (Lg.lastIndexOf(n.id) >= 0) {
          a && Ke(a, _.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method);
          return;
        }
        const R = a ? (J) => ty(J, a, l, u) : ty;
        Lg.push(n.id);
        const M = $s(n, R);
        return Lg.pop(), p.awaitedTypeOfType = M;
      }
      if (swe(n))
        return p.awaitedTypeOfType = n;
      const g = { value: void 0 }, x = VD(n, void 0, g);
      if (x) {
        if (n.id === x.id || Lg.lastIndexOf(x.id) >= 0) {
          a && Ke(a, _.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method);
          return;
        }
        Lg.push(n.id);
        const R = ty(x, a, l, u);
        return Lg.pop(), R ? p.awaitedTypeOfType = R : void 0;
      }
      if (owe(n)) {
        if (a) {
          D.assertIsDefined(l);
          let R;
          g.value && (R = Na(R, _.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1, ke(n), ke(g.value))), R = Na(R, l, u), Qo.add(cg(Zn(a), a, R));
        }
        return;
      }
      return p.awaitedTypeOfType = n;
    }
    function Pit(n, a) {
      const l = fi(a);
      if (P >= 2) {
        if (rs(l))
          return;
        const u = CP(!0);
        if (u !== Co && !T0(l, u)) {
          Ke(a, _.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0, ke(ty(l) || Rt));
          return;
        }
      } else {
        if (Fit(a), rs(l))
          return;
        const u = fN(a);
        if (u === void 0) {
          Ke(a, _.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, ke(l));
          return;
        }
        const p = Rl(u, 111551, !0), g = p ? ar(p) : Ce;
        if (rs(g)) {
          u.kind === 79 && u.escapedText === "Promise" && R2(l) === CP(!1) ? Ke(a, _.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option) : Ke(a, _.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, Af(u));
          return;
        }
        const x = f$e(!0);
        if (x === pa) {
          Ke(a, _.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, Af(u));
          return;
        }
        if (!id(g, x, a, _.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value))
          return;
        const R = u && Lf(u), M = Xd(n.locals, R.escapedText, 111551);
        if (M) {
          Ke(M.valueDeclaration, _.Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions, Mr(R), Af(u));
          return;
        }
      }
      jD(l, !1, n, _.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member);
    }
    function Mit(n) {
      const a = GL(n);
      DV(a, n);
      const l = ys(a);
      if (l.flags & 1)
        return;
      const u = $ae(n);
      if (!(u != null && u.resolvedReturnType))
        return;
      let p;
      const g = u.resolvedReturnType;
      switch (n.parent.kind) {
        case 260:
        case 228:
          p = _.Decorator_function_return_type_0_is_not_assignable_to_type_1;
          break;
        case 169:
          if (!re) {
            p = _.Decorator_function_return_type_0_is_not_assignable_to_type_1;
            break;
          }
        case 166:
          p = _.Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any;
          break;
        case 171:
        case 174:
        case 175:
          p = _.Decorator_function_return_type_0_is_not_assignable_to_type_1;
          break;
        default:
          return D.failBadSyntaxKind(n.parent);
      }
      id(l, g, n.expression, p);
    }
    function HD(n, a, l, u, p, g = l.length, x = 0) {
      const R = N.createFunctionTypeNode(void 0, rt, N.createKeywordTypeNode(131));
      return oh(R, n, a, l, u, p, g, x);
    }
    function uoe(n, a, l, u, p, g, x) {
      const R = HD(n, a, l, u, p, g, x);
      return kE(R);
    }
    function lwe(n) {
      return uoe(void 0, void 0, rt, n);
    }
    function cwe(n) {
      const a = np("value", n);
      return uoe(void 0, void 0, [a], Rt);
    }
    function Fit(n) {
      uwe(n && fN(n), !1);
    }
    function uwe(n, a) {
      if (!n)
        return;
      const l = Lf(n), u = (n.kind === 79 ? 788968 : 1920) | 2097152, p = _l(l, l.escapedText, u, void 0, void 0, !0);
      if (p && p.flags & 2097152) {
        if (!Y.verbatimModuleSyntax && Gg(p) && !qD(nc(p)) && !Rd(p))
          Lb(p);
        else if (a && j_(Y) && au(Y) >= 5 && !Gg(p) && !kt(p.declarations, _1)) {
          const g = Ke(n, _.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled), x = nn(p.declarations || rt, Og);
          x && Xo(g, Nr(x, _._0_was_imported_here, Mr(l)));
        }
      }
    }
    function WL(n) {
      const a = doe(n);
      a && rf(a) && uwe(a, !0);
    }
    function doe(n) {
      if (n)
        switch (n.kind) {
          case 190:
          case 189:
            return dwe(n.types);
          case 191:
            return dwe([n.trueType, n.falseType]);
          case 193:
          case 199:
            return doe(n.type);
          case 180:
            return n.typeName;
        }
    }
    function dwe(n) {
      let a;
      for (let l of n) {
        for (; l.kind === 193 || l.kind === 199; )
          l = l.type;
        if (l.kind === 144 || !W && (l.kind === 198 && l.literal.kind === 104 || l.kind === 155))
          continue;
        const u = doe(l);
        if (!u)
          return;
        if (a) {
          if (!je(a) || !je(u) || a.escapedText !== u.escapedText)
            return;
        } else
          a = u;
      }
      return a;
    }
    function UV(n) {
      const a = Zc(n);
      return gh(n) ? sz(a) : a;
    }
    function m4(n) {
      if (!Mx(n) || !$f(n) || !n.modifiers || !f3(re, n, n.parent, n.parent.parent))
        return;
      const a = nn(n.modifiers, Fu);
      if (a) {
        if (re ? (pc(a, 8), n.kind === 166 && pc(a, 32)) : P < 99 && (pc(a, 8), Nc(n) ? n.name ? Mwe(n) && pc(a, 8388608) : pc(a, 8388608) : Gu(n) || (Ni(n.name) && (ac(n) || V0(n) || af(n)) && pc(a, 8388608), As(n.name) && pc(a, 16777216))), Y.emitDecoratorMetadata)
          switch (pc(a, 16), n.kind) {
            case 260:
              const l = Eh(n);
              if (l)
                for (const x of l.parameters)
                  WL(UV(x));
              break;
            case 174:
            case 175:
              const u = n.kind === 174 ? 175 : 174, p = xl(Ir(n), u);
              WL(F(n) || p && F(p));
              break;
            case 171:
              for (const x of n.parameters)
                WL(UV(x));
              WL(yp(n));
              break;
            case 169:
              WL(Zc(n));
              break;
            case 166:
              WL(UV(n));
              const g = n.parent;
              for (const x of g.parameters)
                WL(UV(x));
              break;
          }
        for (const l of n.modifiers)
          Fu(l) && Mit(l);
      }
    }
    function Bit(n) {
      i(a);
      function a() {
        _we(n), Ooe(n), zL(n, n.name);
      }
    }
    function Git(n) {
      n.typeExpression || Ke(n.name, _.JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags), n.name && qL(n.name, _.Type_alias_name_cannot_be_0), go(n.typeExpression), E4(Av(n));
    }
    function Uit(n) {
      go(n.constraint);
      for (const a of n.typeParameters)
        go(a);
    }
    function Vit(n) {
      go(n.typeExpression);
    }
    function jit(n) {
      go(n.typeExpression);
      const a = JA(n);
      if (a) {
        const l = _W(a, X7);
        if (Le(l) > 1)
          for (let u = 1; u < Le(l); u++) {
            const p = l[u].tagName;
            Ke(p, _._0_tag_already_specified, Mr(p));
          }
      }
    }
    function Hit(n) {
      n.name && S4(n.name, !0);
    }
    function Wit(n) {
      go(n.typeExpression);
    }
    function zit(n) {
      go(n.typeExpression);
    }
    function qit(n) {
      i(a), BD(n);
      function a() {
        !n.type && !zA(n) && D0(n, we);
      }
    }
    function Jit(n) {
      const a = JA(n);
      (!a || !Nc(a) && !Gu(a)) && Ke(a, _.JSDoc_0_is_not_attached_to_a_class, Mr(n.tagName));
    }
    function Kit(n) {
      const a = JA(n);
      if (!a || !Nc(a) && !Gu(a)) {
        Ke(a, _.JSDoc_0_is_not_attached_to_a_class, Mr(n.tagName));
        return;
      }
      const l = d1(a).filter(LC);
      D.assert(l.length > 0), l.length > 1 && Ke(l[1], _.Class_declarations_cannot_have_more_than_one_augments_or_extends_tag);
      const u = fwe(n.class.expression), p = E1(a);
      if (p) {
        const g = fwe(p.expression);
        g && u.escapedText !== g.escapedText && Ke(u, _.JSDoc_0_1_does_not_match_the_extends_2_clause, Mr(n.tagName), Mr(u), Mr(g));
      }
    }
    function Xit(n) {
      const a = ix(n);
      a && $u(a) && Ke(n, _.An_accessibility_modifier_cannot_be_used_with_a_private_identifier);
    }
    function fwe(n) {
      switch (n.kind) {
        case 79:
          return n;
        case 208:
          return n.name;
        default:
          return;
      }
    }
    function _we(n) {
      var a;
      m4(n), BD(n);
      const l = Vc(n);
      if (n.name && n.name.kind === 164 && ey(n.name), N2(n)) {
        const g = Ir(n), x = n.localSymbol || g, R = (a = x.declarations) == null ? void 0 : a.find((M) => M.kind === n.kind && !(M.flags & 262144));
        n === R && BV(x), g.parent && BV(g);
      }
      const u = n.kind === 170 ? void 0 : n.body;
      if (go(u), Qae(n, M2(n)), i(p), fr(n)) {
        const g = u1(n);
        g && g.typeExpression && !gae(fi(g.typeExpression), n) && Ke(g.typeExpression.type, _.The_type_of_a_function_declaration_must_match_the_function_s_signature);
      }
      function p() {
        yp(n) || (Al(u) && !p4(n) && D0(n, we), l & 1 && __(u) && ys(Mp(n)));
      }
    }
    function fv(n) {
      i(a);
      function a() {
        const l = Zn(n);
        let u = bn.get(l.path);
        u || (u = [], bn.set(l.path, u)), u.push(n);
      }
    }
    function pwe(n, a) {
      for (const l of n)
        switch (l.kind) {
          case 260:
          case 228:
            Yit(l, a), foe(l, a);
            break;
          case 308:
          case 264:
          case 238:
          case 266:
          case 245:
          case 246:
          case 247:
            gwe(l, a);
            break;
          case 173:
          case 215:
          case 259:
          case 216:
          case 171:
          case 174:
          case 175:
            l.body && gwe(l, a), foe(l, a);
            break;
          case 170:
          case 176:
          case 177:
          case 181:
          case 182:
          case 262:
          case 261:
            foe(l, a);
            break;
          case 192:
            $it(l, a);
            break;
          default:
            D.assertNever(l, "Node should not have been registered for unused identifiers check");
        }
    }
    function mwe(n, a, l) {
      const u = ka(n) || n, p = cC(n) ? _._0_is_declared_but_never_used : _._0_is_declared_but_its_value_is_never_read;
      l(n, 0, Nr(u, p, a));
    }
    function h4(n) {
      return je(n) && Mr(n).charCodeAt(0) === 95;
    }
    function Yit(n, a) {
      for (const l of n.members)
        switch (l.kind) {
          case 171:
          case 169:
          case 174:
          case 175:
            if (l.kind === 175 && l.symbol.flags & 32768)
              break;
            const u = Ir(l);
            !u.isReferenced && (Gd(l, 8) || gu(l) && Ni(l.name)) && !(l.flags & 16777216) && a(l, 0, Nr(l.name, _._0_is_declared_but_its_value_is_never_read, S(u)));
            break;
          case 173:
            for (const p of l.parameters)
              !p.symbol.isReferenced && Yr(p, 8) && a(p, 0, Nr(p.name, _.Property_0_is_declared_but_its_value_is_never_read, Ml(p.symbol)));
            break;
          case 178:
          case 237:
          case 172:
            break;
          default:
            D.fail("Unexpected class member");
        }
    }
    function $it(n, a) {
      const { typeParameter: l } = n;
      _oe(l) && a(n, 1, Nr(n, _._0_is_declared_but_its_value_is_never_read, Mr(l.name)));
    }
    function foe(n, a) {
      const l = Ir(n).declarations;
      if (!l || qo(l) !== n)
        return;
      const u = Av(n), p = /* @__PURE__ */ new Set();
      for (const g of u) {
        if (!_oe(g))
          continue;
        const x = Mr(g.name), { parent: R } = g;
        if (R.kind !== 192 && R.typeParameters.every(_oe)) {
          if (hv(p, R)) {
            const M = Zn(R), J = Ep(R) ? bq(R) : Eq(M, R.typeParameters), $ = R.typeParameters.length === 1, ge = $ ? _._0_is_declared_but_its_value_is_never_read : _.All_type_parameters_are_unused, Ne = $ ? x : void 0;
            a(g, 1, Dc(M, J.pos, J.end - J.pos, ge, Ne));
          }
        } else
          a(g, 1, Nr(g, _._0_is_declared_but_its_value_is_never_read, x));
      }
    }
    function _oe(n) {
      return !(as(n.symbol).isReferenced & 262144) && !h4(n.name);
    }
    function g4(n, a, l, u) {
      const p = String(u(a)), g = n.get(p);
      g ? g[1].push(l) : n.set(p, [a, [l]]);
    }
    function hwe(n) {
      return ai(Fm(n), Ba);
    }
    function Qit(n) {
      return _s(n) ? Hm(n.parent) ? !!(n.propertyName && h4(n.name)) : h4(n.name) : Pu(n) || (Ki(n) && kA(n.parent.parent) || ywe(n)) && h4(n.name);
    }
    function gwe(n, a) {
      const l = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Map();
      n.locals.forEach((g) => {
        if (!(g.flags & 262144 ? !(g.flags & 3 && !(g.isReferenced & 3)) : g.isReferenced || g.exportSymbol) && g.declarations) {
          for (const x of g.declarations)
            if (!Qit(x))
              if (ywe(x))
                g4(l, eat(x), x, ps);
              else if (_s(x) && Hm(x.parent)) {
                const R = qo(x.parent.elements);
                (x === R || !qo(x.parent.elements).dotDotDotToken) && g4(u, x.parent, x, ps);
              } else if (Ki(x))
                g4(p, x.parent, x, ps);
              else {
                const R = g.valueDeclaration && hwe(g.valueDeclaration), M = g.valueDeclaration && ka(g.valueDeclaration);
                R && M ? !nf(R, R.parent) && !x1(R) && !h4(M) && (_s(x) && bC(x.parent) ? g4(u, x.parent, x, ps) : a(R, 1, Nr(M, _._0_is_declared_but_its_value_is_never_read, Ml(g)))) : mwe(x, Ml(g), a);
              }
        }
      }), l.forEach(([g, x]) => {
        const R = g.parent;
        if ((g.name ? 1 : 0) + (g.namedBindings ? g.namedBindings.kind === 271 ? 1 : g.namedBindings.elements.length : 0) === x.length)
          a(R, 0, x.length === 1 ? Nr(R, _._0_is_declared_but_its_value_is_never_read, Mr(us(x).name)) : Nr(R, _.All_imports_in_import_declaration_are_unused));
        else
          for (const J of x)
            mwe(J, Mr(J.name), a);
      }), u.forEach(([g, x]) => {
        const R = hwe(g.parent) ? 1 : 0;
        if (g.elements.length === x.length)
          x.length === 1 && g.parent.kind === 257 && g.parent.parent.kind === 258 ? g4(p, g.parent.parent, g.parent, ps) : a(g, R, x.length === 1 ? Nr(g, _._0_is_declared_but_its_value_is_never_read, y4(us(x).name)) : Nr(g, _.All_destructured_elements_are_unused));
        else
          for (const M of x)
            a(M, R, Nr(M, _._0_is_declared_but_its_value_is_never_read, y4(M.name)));
      }), p.forEach(([g, x]) => {
        if (g.declarations.length === x.length)
          a(g, 0, x.length === 1 ? Nr(us(x).name, _._0_is_declared_but_its_value_is_never_read, y4(us(x).name)) : Nr(g.parent.kind === 240 ? g.parent : g, _.All_variables_are_unused));
        else
          for (const R of x)
            a(R, 0, Nr(R, _._0_is_declared_but_its_value_is_never_read, y4(R.name)));
      });
    }
    function Zit() {
      var n;
      for (const a of aS)
        if (!((n = Ir(a)) != null && n.isReferenced)) {
          const l = SA(a);
          D.assert(hT(l), "Only parameter declaration should be checked here");
          const u = Nr(a.name, _._0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation, ws(a.name), ws(a.propertyName));
          l.type || Xo(u, Dc(Zn(l), l.end, 1, _.We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here, ws(a.propertyName))), Qo.add(u);
        }
    }
    function y4(n) {
      switch (n.kind) {
        case 79:
          return Mr(n);
        case 204:
        case 203:
          return y4(oo(us(n.elements), _s).name);
        default:
          return D.assertNever(n);
      }
    }
    function ywe(n) {
      return n.kind === 270 || n.kind === 273 || n.kind === 271;
    }
    function eat(n) {
      return n.kind === 270 ? n : n.kind === 271 ? n.parent : n.parent.parent;
    }
    function VV(n) {
      if (n.kind === 238 && Zh(n), SW(n)) {
        const a = Ji;
        ze(n.statements, go), Ji = a;
      } else
        ze(n.statements, go);
      n.locals && fv(n);
    }
    function tat(n) {
      P >= 2 || !OW(n) || n.flags & 16777216 || Al(n.body) || ze(n.parameters, (a) => {
        a.name && !Xa(a.name) && a.name.escapedText === Ct.escapedName && i0("noEmit", a, _.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters);
      });
    }
    function WD(n, a, l) {
      if ((a == null ? void 0 : a.escapedText) !== l || n.kind === 169 || n.kind === 168 || n.kind === 171 || n.kind === 170 || n.kind === 174 || n.kind === 175 || n.kind === 299 || n.flags & 16777216 || (Wm(n) || su(n) || Ld(n)) && _1(n))
        return !1;
      const u = Fm(n);
      return !(Ba(u) && Al(u.parent.body));
    }
    function nat(n) {
      nr(n, (a) => eA(a) & 4 ? (n.kind !== 79 ? Ke(ka(n), _.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference) : Ke(n, _.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference), !0) : !1);
    }
    function rat(n) {
      nr(n, (a) => eA(a) & 8 ? (n.kind !== 79 ? Ke(ka(n), _.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference) : Ke(n, _.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference), !0) : !1);
    }
    function iat(n, a) {
      if (de >= 5 && !(de >= 100 && Zn(n).impliedNodeFormat === 1) || !a || !WD(n, a, "require") && !WD(n, a, "exports") || Jl(n) && vg(n) !== 1)
        return;
      const l = SE(n);
      l.kind === 308 && sf(l) && i0("noEmit", a, _.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module, ws(a), ws(a));
    }
    function aat(n, a) {
      if (!a || P >= 4 || !WD(n, a, "Promise") || Jl(n) && vg(n) !== 1)
        return;
      const l = SE(n);
      l.kind === 308 && sf(l) && l.flags & 2048 && i0("noEmit", a, _.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions, ws(a), ws(a));
    }
    function oat(n, a) {
      P <= 8 && (WD(n, a, "WeakMap") || WD(n, a, "WeakSet")) && fb.push(n);
    }
    function sat(n) {
      const a = Mm(n);
      eA(a) & 4194304 && (D.assert(gu(n) && je(n.name) && typeof n.name.escapedText == "string", "The target of a WeakMap/WeakSet collision check should be an identifier"), i0("noEmit", n, _.Compiler_reserves_name_0_when_emitting_private_identifier_downlevel, n.name.escapedText));
    }
    function lat(n, a) {
      a && P >= 2 && P <= 8 && WD(n, a, "Reflect") && r0.push(n);
    }
    function cat(n) {
      let a = !1;
      if (Gu(n)) {
        for (const l of n.members)
          if (eA(l) & 8388608) {
            a = !0;
            break;
          }
      } else if (Bs(n))
        eA(n) & 8388608 && (a = !0);
      else {
        const l = Mm(n);
        l && eA(l) & 8388608 && (a = !0);
      }
      a && (D.assert(gu(n) && je(n.name), "The target of a Reflect collision check should be an identifier"), i0("noEmit", n, _.Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers, ws(n.name), "Reflect"));
    }
    function zL(n, a) {
      a && (iat(n, a), aat(n, a), oat(n, a), lat(n, a), di(n) ? (qL(a, _.Class_name_cannot_be_0), n.flags & 16777216 || Fat(a)) : eb(n) && qL(a, _.Enum_name_cannot_be_0));
    }
    function uat(n) {
      if (hp(n) & 3 || hT(n) || n.kind === 257 && !n.initializer)
        return;
      const a = Ir(n);
      if (a.flags & 1) {
        if (!je(n.name))
          return D.fail();
        const l = _l(n, n.name.escapedText, 3, void 0, void 0, !1);
        if (l && l !== a && l.flags & 2 && bV(l) & 3) {
          const u = q0(l.valueDeclaration, 258), p = u.parent.kind === 240 && u.parent.parent ? u.parent.parent : void 0;
          if (!(p && (p.kind === 238 && Ka(p.parent) || p.kind === 265 || p.kind === 264 || p.kind === 308))) {
            const x = S(l);
            Ke(n, _.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, x, x);
          }
        }
      }
    }
    function zD(n) {
      return n === yt ? we : n === Nn ? Dt : n;
    }
    function v4(n) {
      var a;
      if (m4(n), _s(n) || go(n.type), !n.name)
        return;
      if (n.name.kind === 164 && (ey(n.name), aT(n) && n.initializer && Ql(n.initializer)), _s(n)) {
        if (n.propertyName && je(n.name) && hT(n) && Al(Cf(n).body)) {
          aS.push(n);
          return;
        }
        Hm(n.parent) && n.dotDotDotToken && P < 5 && pc(n, 4), n.propertyName && n.propertyName.kind === 164 && ey(n.propertyName);
        const p = n.parent.parent, g = n.dotDotDotToken ? 64 : 0, x = I2(p, g), R = n.propertyName || n.name;
        if (x && !Xa(R)) {
          const M = Xg(R);
          if (qh(M)) {
            const J = _m(M), $ = uo(x, J);
            $ && (n4($, void 0, !1), Lae(n, !!p.initializer && p.initializer.kind === 106, !1, x, $));
          }
        }
      }
      if (Xa(n.name) && (n.name.kind === 204 && P < 2 && Y.downlevelIteration && pc(n, 512), ze(n.name.elements, go)), Ba(n) && n.initializer && Al(Cf(n).body)) {
        Ke(n, _.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation);
        return;
      }
      if (Xa(n.name)) {
        const p = aT(n) && n.initializer && n.parent.parent.kind !== 246, g = !kt(n.name.elements, K4(Rc));
        if (p || g) {
          const x = El(n);
          if (p) {
            const R = Ql(n.initializer);
            W && g ? jIe(R, n) : uv(R, El(n), n, n.initializer);
          }
          g && (bC(n.name) ? _v(65, x, He, n) : W && jIe(x, n));
        }
        return;
      }
      const l = Ir(n);
      if (l.flags & 2097152 && (b1(n) || bue(n))) {
        qV(n);
        return;
      }
      const u = zD(ar(l));
      if (n === l.valueDeclaration) {
        const p = aT(n) && hN(n);
        p && !(fr(n) && Ls(p) && (p.properties.length === 0 || K0(n.name)) && ((a = l.exports) != null && a.size)) && n.parent.parent.kind !== 246 && uv(Ql(p), u, n, p, void 0), l.declarations && l.declarations.length > 1 && kt(l.declarations, (g) => g !== n && BA(g) && !bwe(g, n)) && Ke(n.name, _.All_declarations_of_0_must_have_identical_modifiers, ws(n.name));
      } else {
        const p = zD(El(n));
        !rs(u) && !rs(p) && !Kh(u, p) && !(l.flags & 67108864) && vwe(l.valueDeclaration, u, n, p), aT(n) && n.initializer && uv(Ql(n.initializer), p, n, n.initializer, void 0), l.valueDeclaration && !bwe(n, l.valueDeclaration) && Ke(n.name, _.All_declarations_of_0_must_have_identical_modifiers, ws(n.name));
      }
      n.kind !== 169 && n.kind !== 168 && (GD(n), (n.kind === 257 || n.kind === 205) && uat(n), zL(n, n.name));
    }
    function vwe(n, a, l, u) {
      const p = ka(l), g = l.kind === 169 || l.kind === 168 ? _.Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2 : _.Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2, x = ws(p), R = Ke(p, g, x, ke(a), ke(u));
      n && Xo(R, Nr(n, _._0_was_also_declared_here, x));
    }
    function bwe(n, a) {
      if (n.kind === 166 && a.kind === 257 || n.kind === 257 && a.kind === 166)
        return !0;
      if (rx(n) !== rx(a))
        return !1;
      const l = 888;
      return cx(n, l) === cx(a, l);
    }
    function poe(n) {
      var a, l;
      (a = bi) == null || a.push(bi.Phase.Check, "checkVariableDeclaration", { kind: n.kind, pos: n.pos, end: n.end, path: n.tracingPath }), Wst(n), v4(n), (l = bi) == null || l.pop();
    }
    function dat(n) {
      return Vst(n), v4(n);
    }
    function fat(n) {
      !uh(n) && !Foe(n.declarationList) && zst(n), ze(n.declarationList.declarations, go);
    }
    function _at(n) {
      Zh(n), ga(n.expression);
    }
    function pat(n) {
      Zh(n);
      const a = Q2(n.expression);
      moe(n.expression, a, n.thenStatement), go(n.thenStatement), n.thenStatement.kind === 239 && Ke(n.thenStatement, _.The_body_of_an_if_statement_cannot_be_the_empty_statement), go(n.elseStatement);
    }
    function moe(n, a, l) {
      if (!W)
        return;
      u(n, l);
      function u(g, x) {
        for (g = js(g), p(g, x); br(g) && (g.operatorToken.kind === 56 || g.operatorToken.kind === 60); )
          g = js(g.left), p(g, x);
      }
      function p(g, x) {
        const R = qN(g) ? js(g.right) : g;
        if (vh(R))
          return;
        if (qN(R)) {
          u(R, x);
          return;
        }
        const M = R === g ? a : Q2(R), J = Fr(R) && Wke(R.expression);
        if (!(wu(M) & 4194304) || J)
          return;
        const $ = za(M, 0), ge = !!UD(M);
        if ($.length === 0 && !ge)
          return;
        const Ne = je(R) ? R : Fr(R) ? R.name : void 0, De = Ne && D_(Ne);
        if (!De && !ge)
          return;
        De && br(g.parent) && hat(g.parent, De) || De && x && mat(g, x, Ne, De) || (ge ? a0(R, !0, _.This_condition_will_always_return_true_since_this_0_is_always_defined, Cr(M)) : Ke(R, _.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead));
      }
    }
    function mat(n, a, l, u) {
      return !!Ma(a, function p(g) {
        if (je(g)) {
          const x = D_(g);
          if (x && x === u) {
            if (je(n) || je(l) && br(l.parent))
              return !0;
            let R = l.parent, M = g.parent;
            for (; R && M; ) {
              if (je(R) && je(M) || R.kind === 108 && M.kind === 108)
                return D_(R) === D_(M);
              if (Fr(R) && Fr(M)) {
                if (D_(R.name) !== D_(M.name))
                  return !1;
                M = M.expression, R = R.expression;
              } else if (no(R) && no(M))
                M = M.expression, R = R.expression;
              else
                return !1;
            }
          }
        }
        return Ma(g, p);
      });
    }
    function hat(n, a) {
      for (; br(n) && n.operatorToken.kind === 55; ) {
        if (Ma(n.right, function u(p) {
          if (je(p)) {
            const g = D_(p);
            if (g && g === a)
              return !0;
          }
          return Ma(p, u);
        }))
          return !0;
        n = n.parent;
      }
      return !1;
    }
    function gat(n) {
      Zh(n), go(n.statement), Q2(n.expression);
    }
    function yat(n) {
      Zh(n), Q2(n.expression), go(n.statement);
    }
    function Ewe(n, a) {
      return n.flags & 16384 && Ke(a, _.An_expression_of_type_void_cannot_be_tested_for_truthiness), n;
    }
    function Q2(n, a) {
      return Ewe(ga(n, a), n);
    }
    function vat(n) {
      Zh(n) || n.initializer && n.initializer.kind === 258 && Foe(n.initializer), n.initializer && (n.initializer.kind === 258 ? ze(n.initializer.declarations, poe) : ga(n.initializer)), n.condition && Q2(n.condition), n.incrementor && ga(n.incrementor), go(n.statement), n.locals && fv(n);
    }
    function bat(n) {
      yDe(n);
      const a = l3(n);
      if (n.awaitModifier ? a && Il(a) ? En(n.awaitModifier, _.For_await_loops_cannot_be_used_inside_a_class_static_block) : (Vc(a) & 6) === 2 && P < 99 && pc(n, 16384) : Y.downlevelIteration && P < 2 && pc(n, 256), n.initializer.kind === 258)
        Twe(n);
      else {
        const l = n.initializer, u = b4(n);
        if (l.kind === 206 || l.kind === 207)
          jE(l, u || Ce);
        else {
          const p = ga(l);
          MD(l, _.The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access, _.The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access), u && uv(u, p, l, n.expression);
        }
      }
      go(n.statement), n.locals && fv(n);
    }
    function Eat(n) {
      yDe(n);
      const a = Iae(ga(n.expression));
      if (n.initializer.kind === 258) {
        const l = n.initializer.declarations[0];
        l && Xa(l.name) && Ke(l.name, _.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern), Twe(n);
      } else {
        const l = n.initializer, u = ga(l);
        l.kind === 206 || l.kind === 207 ? Ke(l, _.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern) : xo(oQe(a), u) ? MD(l, _.The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access, _.The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access) : Ke(l, _.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any);
      }
      (a === gt || !Mc(a, 126091264)) && Ke(n.expression, _.The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0, ke(a)), go(n.statement), n.locals && fv(n);
    }
    function Twe(n) {
      const a = n.initializer;
      if (a.declarations.length >= 1) {
        const l = a.declarations[0];
        poe(l);
      }
    }
    function b4(n) {
      const a = n.awaitModifier ? 15 : 13;
      return _v(a, FL(n.expression), He, n.expression);
    }
    function _v(n, a, l, u) {
      return Ss(a) ? a : hoe(n, a, l, u, !0) || we;
    }
    function hoe(n, a, l, u, p) {
      const g = (n & 2) !== 0;
      if (a === gt) {
        Eoe(u, a, g);
        return;
      }
      const x = P >= 2, R = !x && Y.downlevelIteration, M = Y.noUncheckedIndexedAccess && !!(n & 128);
      if (x || R || g) {
        const _t = HV(a, n, x ? u : void 0);
        if (p && _t) {
          const Bt = n & 8 ? _.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0 : n & 32 ? _.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0 : n & 64 ? _.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0 : n & 16 ? _.Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0 : void 0;
          Bt && id(l, _t.nextType, u, Bt);
        }
        if (_t || x)
          return M ? CD(_t && _t.yieldType) : _t && _t.yieldType;
      }
      let J = a, $ = !1, ge = !1;
      if (n & 4) {
        if (J.flags & 1048576) {
          const _t = a.types, Bt = lr(_t, (Mn) => !(Mn.flags & 402653316));
          Bt !== _t && (J = Qr(Bt, 2));
        } else
          J.flags & 402653316 && (J = gt);
        if (ge = J !== a, ge && (P < 1 && u && (Ke(u, _.Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher), $ = !0), J.flags & 131072))
          return M ? CD(ue) : ue;
      }
      if (!w0(J)) {
        if (u && !$) {
          const _t = !!(n & 4) && !ge, [Bt, Mn] = De(_t, R);
          a0(u, Mn && !!UD(J), Bt, ke(J));
        }
        return ge ? M ? CD(ue) : ue : void 0;
      }
      const Ne = Jg(J, mt);
      if (ge && Ne)
        return Ne.flags & 402653316 && !Y.noUncheckedIndexedAccess ? ue : Qr(M ? [Ne, ue, He] : [Ne, ue], 2);
      return n & 128 ? CD(Ne) : Ne;
      function De(_t, Bt) {
        var Mn;
        return Bt ? _t ? [_.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator, !0] : [_.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator, !0] : goe(n, 0, a, void 0) ? [_.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher, !1] : Tat((Mn = a.symbol) == null ? void 0 : Mn.escapedName) ? [_.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher, !0] : _t ? [_.Type_0_is_not_an_array_type_or_a_string_type, !0] : [_.Type_0_is_not_an_array_type, !0];
      }
    }
    function Tat(n) {
      switch (n) {
        case "Float32Array":
        case "Float64Array":
        case "Int16Array":
        case "Int32Array":
        case "Int8Array":
        case "NodeList":
        case "Uint16Array":
        case "Uint32Array":
        case "Uint8Array":
        case "Uint8ClampedArray":
          return !0;
      }
      return !1;
    }
    function goe(n, a, l, u) {
      if (Ss(l))
        return;
      const p = HV(l, n, u);
      return p && p[Hme(a)];
    }
    function ny(n = gt, a = gt, l = he) {
      if (n.flags & 67359327 && a.flags & 180227 && l.flags & 180227) {
        const u = o_([n, a, l]);
        let p = fe.get(u);
        return p || (p = { yieldType: n, returnType: a, nextType: l }, fe.set(u, p)), p;
      }
      return { yieldType: n, returnType: a, nextType: l };
    }
    function Swe(n) {
      let a, l, u;
      for (const p of n)
        if (!(p === void 0 || p === It)) {
          if (p === Ht)
            return Ht;
          a = Fn(a, p.yieldType), l = Fn(l, p.returnType), u = Fn(u, p.nextType);
        }
      return a || l || u ? ny(a && Qr(a), l && Qr(l), u && wo(u)) : It;
    }
    function jV(n, a) {
      return n[a];
    }
    function ch(n, a, l) {
      return n[a] = l;
    }
    function HV(n, a, l) {
      var u, p;
      if (Ss(n))
        return Ht;
      if (!(n.flags & 1048576)) {
        const J = l ? { errors: void 0 } : void 0, $ = xwe(n, a, l, J);
        if ($ === It) {
          if (l) {
            const ge = Eoe(l, n, !!(a & 2));
            J != null && J.errors && Xo(ge, ...J.errors);
          }
          return;
        } else if ((u = J == null ? void 0 : J.errors) != null && u.length)
          for (const ge of J.errors)
            Qo.add(ge);
        return $;
      }
      const g = a & 2 ? "iterationTypesOfAsyncIterable" : "iterationTypesOfIterable", x = jV(n, g);
      if (x)
        return x === It ? void 0 : x;
      let R;
      for (const J of n.types) {
        const $ = l ? { errors: void 0 } : void 0, ge = xwe(J, a, l, $);
        if (ge === It) {
          if (l) {
            const Ne = Eoe(l, n, !!(a & 2));
            $ != null && $.errors && Xo(Ne, ...$.errors);
          }
          ch(n, g, It);
          return;
        } else if ((p = $ == null ? void 0 : $.errors) != null && p.length)
          for (const Ne of $.errors)
            Qo.add(Ne);
        R = Fn(R, ge);
      }
      const M = R ? Swe(R) : It;
      return ch(n, g, M), M === It ? void 0 : M;
    }
    function yoe(n, a) {
      if (n === It)
        return It;
      if (n === Ht)
        return Ht;
      const { yieldType: l, returnType: u, nextType: p } = n;
      return a && Zre(!0), ny(HE(l, a) || we, HE(u, a) || we, p);
    }
    function xwe(n, a, l, u) {
      if (Ss(n))
        return Ht;
      let p = !1;
      if (a & 2) {
        const g = voe(n, xt) || Cwe(n, xt);
        if (g)
          if (g === It && l)
            p = !0;
          else
            return a & 8 ? yoe(g, l) : g;
      }
      if (a & 1) {
        let g = voe(n, mn) || Cwe(n, mn);
        if (g)
          if (g === It && l)
            p = !0;
          else if (a & 2) {
            if (g !== It)
              return g = yoe(g, l), p ? g : ch(n, "iterationTypesOfAsyncIterable", g);
          } else
            return g;
      }
      if (a & 2) {
        const g = boe(n, xt, l, u, p);
        if (g !== It)
          return g;
      }
      if (a & 1) {
        let g = boe(n, mn, l, u, p);
        if (g !== It)
          return a & 2 ? (g = yoe(g, l), p ? g : ch(n, "iterationTypesOfAsyncIterable", g)) : g;
      }
      return It;
    }
    function voe(n, a) {
      return jV(n, a.iterableCacheKey);
    }
    function Awe(n, a) {
      const l = voe(n, a) || boe(n, a, void 0, void 0, !1);
      return l === It ? ot : l;
    }
    function Cwe(n, a) {
      let l;
      if (T0(n, l = a.getGlobalIterableType(!1)) || T0(n, l = a.getGlobalIterableIteratorType(!1))) {
        const [u] = hs(n), { returnType: p, nextType: g } = Awe(l, a);
        return ch(n, a.iterableCacheKey, ny(a.resolveIterationType(u, void 0) || u, a.resolveIterationType(p, void 0) || p, g));
      }
      if (T0(n, a.getGlobalGeneratorType(!1))) {
        const [u, p, g] = hs(n);
        return ch(n, a.iterableCacheKey, ny(a.resolveIterationType(u, void 0) || u, a.resolveIterationType(p, void 0) || p, g));
      }
    }
    function Sat(n) {
      const a = pCe(!1), l = a && fc(ar(a), sl(n));
      return l && qh(l) ? _m(l) : `__@${n}`;
    }
    function boe(n, a, l, u, p) {
      var g;
      const x = uo(n, Sat(a.iteratorSymbolName)), R = x && !(x.flags & 16777216) ? ar(x) : void 0;
      if (Ss(R))
        return p ? Ht : ch(n, a.iterableCacheKey, Ht);
      const M = R ? za(R, 0) : void 0;
      if (!kt(M))
        return p ? It : ch(n, a.iterableCacheKey, It);
      const J = wo(jt(M, ys)), $ = (g = Lwe(J, a, l, u, p)) != null ? g : It;
      return p ? $ : ch(n, a.iterableCacheKey, $);
    }
    function Eoe(n, a, l) {
      const u = l ? _.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator : _.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator, p = !!UD(a) || !l && NO(n.parent) && n.parent.expression === n && kU(!1) !== Co && xo(a, kU(!1));
      return a0(n, p, u, ke(a));
    }
    function xat(n, a, l, u) {
      return Lwe(n, a, l, u, !1);
    }
    function Lwe(n, a, l, u, p) {
      if (Ss(n))
        return Ht;
      let g = Iwe(n, a) || Aat(n, a);
      return g === It && l && (g = void 0, p = !0), g ?? (g = wwe(n, a, l, u, p)), g === It ? void 0 : g;
    }
    function Iwe(n, a) {
      return jV(n, a.iteratorCacheKey);
    }
    function Aat(n, a) {
      const l = a.getGlobalIterableIteratorType(!1);
      if (T0(n, l)) {
        const [u] = hs(n), p = Iwe(l, a) || wwe(l, a, void 0, void 0, !1), { returnType: g, nextType: x } = p === It ? ot : p;
        return ch(n, a.iteratorCacheKey, ny(u, g, x));
      }
      if (T0(n, a.getGlobalIteratorType(!1)) || T0(n, a.getGlobalGeneratorType(!1))) {
        const [u, p, g] = hs(n);
        return ch(n, a.iteratorCacheKey, ny(u, p, g));
      }
    }
    function kwe(n, a) {
      const l = fc(n, "done") || it;
      return xo(a === 0 ? it : Pe, l);
    }
    function Cat(n) {
      return kwe(n, 0);
    }
    function Lat(n) {
      return kwe(n, 1);
    }
    function Iat(n) {
      if (Ss(n))
        return Ht;
      const a = jV(n, "iterationTypesOfIteratorResult");
      if (a)
        return a;
      if (T0(n, v$e(!1))) {
        const x = hs(n)[0];
        return ch(n, "iterationTypesOfIteratorResult", ny(x, void 0, void 0));
      }
      if (T0(n, b$e(!1))) {
        const x = hs(n)[0];
        return ch(n, "iterationTypesOfIteratorResult", ny(void 0, x, void 0));
      }
      const l = _c(n, Cat), u = l !== gt ? fc(l, "value") : void 0, p = _c(n, Lat), g = p !== gt ? fc(p, "value") : void 0;
      return !u && !g ? ch(n, "iterationTypesOfIteratorResult", It) : ch(n, "iterationTypesOfIteratorResult", ny(u, g || Rt, void 0));
    }
    function Toe(n, a, l, u, p) {
      var g, x, R, M, J, $;
      const ge = uo(n, l);
      if (!ge && l !== "next")
        return;
      const Ne = ge && !(l === "next" && ge.flags & 16777216) ? l === "next" ? ar(ge) : l_(ar(ge), 2097152) : void 0;
      if (Ss(Ne))
        return l === "next" ? Ht : Q;
      const De = Ne ? za(Ne, 0) : rt;
      if (De.length === 0) {
        if (u) {
          const ln = l === "next" ? a.mustHaveANextMethodDiagnostic : a.mustBeAMethodDiagnostic;
          p ? ((g = p.errors) != null || (p.errors = []), p.errors.push(Nr(u, ln, l))) : Ke(u, ln, l);
        }
        return l === "next" ? It : void 0;
      }
      if (Ne != null && Ne.symbol && De.length === 1) {
        const ln = a.getGlobalGeneratorType(!1), Gn = a.getGlobalIteratorType(!1), qn = ((R = (x = ln.symbol) == null ? void 0 : x.members) == null ? void 0 : R.get(l)) === Ne.symbol, Zr = !qn && ((J = (M = Gn.symbol) == null ? void 0 : M.members) == null ? void 0 : J.get(l)) === Ne.symbol;
        if (qn || Zr) {
          const ri = qn ? ln : Gn, { mapper: ma } = Ne;
          return ny(I0(ri.typeParameters[0], ma), I0(ri.typeParameters[1], ma), l === "next" ? I0(ri.typeParameters[2], ma) : void 0);
        }
      }
      let _t, Bt;
      for (const ln of De)
        l !== "throw" && kt(ln.parameters) && (_t = Fn(_t, fp(ln, 0))), Bt = Fn(Bt, ys(ln));
      let Mn, An;
      if (l !== "throw") {
        const ln = _t ? Qr(_t) : he;
        if (l === "next")
          An = ln;
        else if (l === "return") {
          const Gn = a.resolveIterationType(ln, u) || we;
          Mn = Fn(Mn, Gn);
        }
      }
      let Kn;
      const gn = Bt ? wo(Bt) : gt, xn = a.resolveIterationType(gn, u) || we, yr = Iat(xn);
      return yr === It ? (u && (p ? (($ = p.errors) != null || (p.errors = []), p.errors.push(Nr(u, a.mustHaveAValueDiagnostic, l))) : Ke(u, a.mustHaveAValueDiagnostic, l)), Kn = we, Mn = Fn(Mn, we)) : (Kn = yr.yieldType, Mn = Fn(Mn, yr.returnType)), ny(Kn, Qr(Mn), An);
    }
    function wwe(n, a, l, u, p) {
      const g = Swe([
        Toe(n, a, "next", l, u),
        Toe(n, a, "return", l, u),
        Toe(n, a, "throw", l, u)
      ]);
      return p ? g : ch(n, a.iteratorCacheKey, g);
    }
    function qb(n, a, l) {
      if (Ss(a))
        return;
      const u = Dwe(a, l);
      return u && u[Hme(n)];
    }
    function Dwe(n, a) {
      if (Ss(n))
        return Ht;
      const l = a ? 2 : 1, u = a ? xt : mn;
      return HV(n, l, void 0) || xat(n, u, void 0, void 0);
    }
    function kat(n) {
      Zh(n) || Ust(n);
    }
    function WV(n, a) {
      const l = !!(a & 1), u = !!(a & 2);
      if (l) {
        const p = qb(1, n, u);
        return p ? u ? ty(HL(p)) : p : Ce;
      }
      return u ? ty(n) || Ce : n;
    }
    function Rwe(n, a) {
      const l = WV(a, Vc(n));
      return !!l && pl(l, 16387);
    }
    function wat(n) {
      var a;
      if (Zh(n))
        return;
      const l = l3(n);
      if (l && Il(l)) {
        Fc(n, _.A_return_statement_cannot_be_used_inside_a_class_static_block);
        return;
      }
      if (!l) {
        Fc(n, _.A_return_statement_can_only_be_used_within_a_function_body);
        return;
      }
      const u = Mp(l), p = ys(u), g = Vc(l);
      if (W || n.expression || p.flags & 131072) {
        const x = n.expression ? Ql(n.expression) : He;
        if (l.kind === 175)
          n.expression && Ke(n, _.Setters_cannot_return_a_value);
        else if (l.kind === 173)
          n.expression && !uv(x, p, n, n.expression) && Ke(n, _.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class);
        else if (M2(l)) {
          const R = (a = WV(p, g)) != null ? a : p, M = g & 2 ? jD(x, !1, n, _.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member) : x;
          R && uv(M, R, n, n.expression);
        }
      } else
        l.kind !== 173 && Y.noImplicitReturns && !Rwe(l, p) && Ke(n, _.Not_all_code_paths_return_a_value);
    }
    function Dat(n) {
      Zh(n) || n.flags & 32768 && Fc(n, _.with_statements_are_not_allowed_in_an_async_function_block), ga(n.expression);
      const a = Zn(n);
      if (!Jb(a)) {
        const l = gy(a, n.pos).start, u = n.statement.pos;
        Kb(a, l, u - l, _.The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any);
      }
    }
    function Rat(n) {
      Zh(n);
      let a, l = !1;
      const u = ga(n.expression);
      ze(n.caseBlock.clauses, (p) => {
        p.kind === 293 && !l && (a === void 0 ? a = p : (En(p, _.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement), l = !0)), p.kind === 292 && i(g(p)), ze(p.statements, go), Y.noFallthroughCasesInSwitch && p.fallthroughFlowNode && JP(p.fallthroughFlowNode) && Ke(p, _.Fallthrough_case_in_switch);
        function g(x) {
          return () => {
            const R = ga(x.expression);
            noe(u, R) || dLe(R, u, x.expression, void 0);
          };
        }
      }), n.caseBlock.locals && fv(n.caseBlock);
    }
    function Nat(n) {
      Zh(n) || nr(n.parent, (a) => Ka(a) ? "quit" : a.kind === 253 && a.label.escapedText === n.label.escapedText ? (En(n.label, _.Duplicate_label_0, Sc(n.label)), !0) : !1), go(n.statement);
    }
    function Oat(n) {
      Zh(n) || je(n.expression) && !n.expression.escapedText && nlt(n, _.Line_break_not_permitted_here), n.expression && ga(n.expression);
    }
    function Pat(n) {
      Zh(n), VV(n.tryBlock);
      const a = n.catchClause;
      if (a) {
        if (a.variableDeclaration) {
          const l = a.variableDeclaration;
          v4(l);
          const u = Zc(l);
          if (u) {
            const p = fi(u);
            p && !(p.flags & 3) && Fc(u, _.Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified);
          } else if (l.initializer)
            Fc(l.initializer, _.Catch_clause_variable_cannot_have_an_initializer);
          else {
            const p = a.block.locals;
            p && RI(a.locals, (g) => {
              const x = p.get(g);
              x != null && x.valueDeclaration && x.flags & 2 && En(x.valueDeclaration, _.Cannot_redeclare_identifier_0_in_catch_clause, g);
            });
          }
        }
        VV(a.block);
      }
      n.finallyBlock && VV(n.finallyBlock);
    }
    function zV(n, a, l) {
      const u = Lu(n);
      if (u.length === 0)
        return;
      for (const g of rv(n))
        l && g.flags & 4194304 || Nwe(n, g, AL(g, 8576, !0), E0(g));
      const p = a.valueDeclaration;
      if (p && di(p)) {
        for (const g of p.members)
          if (!Ja(g) && !N2(g)) {
            const x = Ir(g);
            Nwe(n, x, Du(g.name.expression), E0(x));
          }
      }
      if (u.length > 1)
        for (const g of u)
          Mat(n, g);
    }
    function Nwe(n, a, l, u) {
      const p = a.valueDeclaration, g = ka(p);
      if (g && Ni(g))
        return;
      const x = Fre(n, l), R = ti(n) & 2 ? xl(n.symbol, 261) : void 0, M = p && p.kind === 223 || g && g.kind === 164 ? p : void 0, J = gd(a) === n.symbol ? p : void 0;
      for (const $ of x) {
        const ge = $.declaration && gd(Ir($.declaration)) === n.symbol ? $.declaration : void 0, Ne = J || ge || (R && !kt(Mo(n), (De) => !!Rb(De, a.escapedName) && !!Jg(De, $.keyType)) ? R : void 0);
        if (Ne && !xo(u, $.type)) {
          const De = nE(Ne, _.Property_0_of_type_1_is_not_assignable_to_2_index_type_3, S(a), ke(u), ke($.keyType), ke($.type));
          M && Ne !== M && Xo(De, Nr(M, _._0_is_declared_here, S(a))), Qo.add(De);
        }
      }
    }
    function Mat(n, a) {
      const l = a.declaration, u = Fre(n, a.keyType), p = ti(n) & 2 ? xl(n.symbol, 261) : void 0, g = l && gd(Ir(l)) === n.symbol ? l : void 0;
      for (const x of u) {
        if (x === a)
          continue;
        const R = x.declaration && gd(Ir(x.declaration)) === n.symbol ? x.declaration : void 0, M = g || R || (p && !kt(Mo(n), (J) => !!sh(J, a.keyType) && !!Jg(J, x.keyType)) ? p : void 0);
        M && !xo(a.type, x.type) && Ke(M, _._0_index_type_1_is_not_assignable_to_2_index_type_3, ke(a.keyType), ke(a.type), ke(x.keyType), ke(x.type));
      }
    }
    function qL(n, a) {
      switch (n.escapedText) {
        case "any":
        case "unknown":
        case "never":
        case "number":
        case "bigint":
        case "boolean":
        case "string":
        case "symbol":
        case "void":
        case "object":
          Ke(n, a, n.escapedText);
      }
    }
    function Fat(n) {
      P >= 1 && n.escapedText === "Object" && (de < 5 || Zn(n).impliedNodeFormat === 1) && Ke(n, _.Class_name_cannot_be_Object_when_targeting_ES5_with_module_0, _M[de]);
    }
    function Bat(n) {
      const a = lr(d1(n), rm);
      if (!Le(a))
        return;
      const l = fr(n), u = /* @__PURE__ */ new Set(), p = /* @__PURE__ */ new Set();
      if (ze(n.parameters, ({ name: x }, R) => {
        je(x) && u.add(x.escapedText), Xa(x) && p.add(R);
      }), Ure(n)) {
        const x = a.length - 1, R = a[x];
        l && R && je(R.name) && R.typeExpression && R.typeExpression.type && !u.has(R.name.escapedText) && !p.has(x) && !Hf(fi(R.typeExpression.type)) && Ke(R.name, _.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type, Mr(R.name));
      } else
        ze(a, ({ name: x, isNameFirst: R }, M) => {
          p.has(M) || je(x) && u.has(x.escapedText) || (Cd(x) ? l && Ke(x, _.Qualified_name_0_is_not_allowed_without_a_leading_param_object_1, Af(x), Af(x.left)) : R || om(l, x, _.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name, Mr(x)));
        });
    }
    function E4(n) {
      let a = !1;
      if (n)
        for (let u = 0; u < n.length; u++) {
          const p = n[u];
          Yke(p), i(l(p, u));
        }
      function l(u, p) {
        return () => {
          u.default ? (a = !0, Gat(u.default, n, p)) : a && Ke(u, _.Required_type_parameters_may_not_follow_optional_type_parameters);
          for (let g = 0; g < p; g++)
            n[g].symbol === u.symbol && Ke(u.name, _.Duplicate_identifier_0, ws(u.name));
        };
      }
    }
    function Gat(n, a, l) {
      u(n);
      function u(p) {
        if (p.kind === 180) {
          const g = Xre(p);
          if (g.flags & 262144)
            for (let x = l; x < a.length; x++)
              g.symbol === Ir(a[x]) && Ke(p, _.Type_parameter_defaults_can_only_reference_previously_declared_type_parameters);
        }
        Ma(p, u);
      }
    }
    function Owe(n) {
      if (n.declarations && n.declarations.length === 1)
        return;
      const a = Wi(n);
      if (!a.typeParametersChecked) {
        a.typeParametersChecked = !0;
        const l = Jat(n);
        if (!l || l.length <= 1)
          return;
        const u = Us(n);
        if (!Pwe(l, u.localTypeParameters, Av)) {
          const p = S(n);
          for (const g of l)
            Ke(g.name, _.All_declarations_of_0_must_have_identical_type_parameters, p);
        }
      }
    }
    function Pwe(n, a, l) {
      const u = Le(a), p = mm(a);
      for (const g of n) {
        const x = l(g), R = x.length;
        if (R < p || R > u)
          return !1;
        for (let M = 0; M < R; M++) {
          const J = x[M], $ = a[M];
          if (J.name.escapedText !== $.symbol.escapedName)
            return !1;
          const ge = xA(J), Ne = ge && fi(ge), De = Cu($);
          if (Ne && De && !Kh(Ne, De))
            return !1;
          const _t = J.default && fi(J.default), Bt = IE($);
          if (_t && Bt && !Kh(_t, Bt))
            return !1;
        }
      }
      return !0;
    }
    function Mwe(n) {
      var a;
      const l = !re && P < 99 && v1(!1, n), u = P <= 9, p = !ye || P < 9;
      if (l || u)
        for (const g of n.members) {
          if (l && cz(!1, g, n))
            return (a = Yc(Sv(n))) != null ? a : n;
          if (u) {
            if (Il(g))
              return g;
            if (Ja(g) && ($u(g) || p && L8(g)))
              return g;
          }
        }
    }
    function Uat(n) {
      var a;
      if (n.name)
        return;
      const l = p_e(n);
      if (!Az(l))
        return;
      const u = !re && P < 99;
      let p;
      u && v1(!1, n) ? p = (a = Yc(Sv(n))) != null ? a : n : p = Mwe(n), p && (pc(p, 8388608), (zc(l) || to(l) || _s(l)) && As(l.name) && pc(p, 16777216));
    }
    function Vat(n) {
      return Fwe(n), KL(n), Uat(n), ar(Ir(n));
    }
    function jat(n) {
      ze(n.members, go), fv(n);
    }
    function Hat(n) {
      const a = nn(n.modifiers, Fu);
      re && a && kt(n.members, (l) => gc(l) && $u(l)) && En(a, _.Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator), !n.name && !Yr(n, 1024) && Fc(n, _.A_class_declaration_without_the_default_modifier_must_have_a_name), Fwe(n), ze(n.members, go), fv(n);
    }
    function Fwe(n) {
      Ast(n), m4(n), zL(n, n.name), E4(Av(n)), GD(n);
      const a = Ir(n), l = Us(a), u = Uf(l), p = ar(a);
      Owe(a), BV(a), ait(n), !!(n.flags & 16777216) || oit(n);
      const x = Xp(n);
      if (x) {
        ze(x.typeArguments, go), P < 2 && pc(x.parent, 1);
        const J = E1(n);
        J && J !== x && ga(J.expression);
        const $ = Mo(l);
        $.length && i(() => {
          const ge = $[0], Ne = ii(l), De = Ju(Ne);
          if (zat(De, x), go(x.expression), kt(x.typeArguments)) {
            ze(x.typeArguments, go);
            for (const Bt of Kr(De, x.typeArguments, x))
              if (!rwe(x, Bt.typeParameters))
                break;
          }
          const _t = Uf(ge, l.thisType);
          if (id(u, _t, void 0) ? id(p, iLe(De), n.name || n, _.Class_static_side_0_incorrectly_extends_base_class_static_side_1) : Uwe(n, u, _t, _.Class_0_incorrectly_extends_base_class_1), Ne.flags & 8650752 && (mP(p) ? za(Ne, 1).some((Mn) => Mn.flags & 4) && !Yr(n, 256) && Ke(n.name || n, _.A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract) : Ke(n.name || n, _.A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any)), !(De.symbol && De.symbol.flags & 32) && !(Ne.flags & 8650752)) {
            const Bt = Ur(De, x.typeArguments, x);
            ze(Bt, (Mn) => !Up(Mn.declaration) && !Kh(ys(Mn), ge)) && Ke(x.expression, _.Base_constructors_must_all_have_the_same_return_type);
          }
          Kat(l, ge);
        });
      }
      Wat(n, l, u, p);
      const R = XA(n);
      if (R)
        for (const J of R)
          (!zl(J.expression) || yu(J.expression)) && Ke(J.expression, _.A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments), coe(J), i(M(J));
      i(() => {
        zV(l, a), zV(p, a, !0), ooe(n), $at(n);
      });
      function M(J) {
        return () => {
          const $ = up(fi(J));
          if (!rs($))
            if (ah($)) {
              const ge = $.symbol && $.symbol.flags & 32 ? _.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass : _.Class_0_incorrectly_implements_interface_1, Ne = Uf($, l.thisType);
              id(u, Ne, void 0) || Uwe(n, u, Ne, ge);
            } else
              Ke(J, _.A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members);
        };
      }
    }
    function Wat(n, a, l, u) {
      const g = Xp(n) && Mo(a), x = g != null && g.length ? Uf(us(g), a.thisType) : void 0, R = ii(a);
      for (const M of n.members)
        Hz(M) || (ql(M) && ze(M.parameters, (J) => {
          nf(J, M) && Bwe(n, u, R, x, a, l, J, !0);
        }), Bwe(n, u, R, x, a, l, M, !1));
    }
    function Bwe(n, a, l, u, p, g, x, R, M = !0) {
      const J = x.name && D_(x.name) || D_(x);
      return J ? Gwe(n, a, l, u, p, g, jz(x), A1(x), Ja(x), R, Ml(J), M ? x : void 0) : 0;
    }
    function Gwe(n, a, l, u, p, g, x, R, M, J, $, ge) {
      const Ne = fr(n), De = !!(n.flags & 16777216);
      if (u && (x || Y.noImplicitOverride)) {
        const _t = sl($), Bt = M ? a : g, Mn = M ? l : u, An = uo(Bt, _t), Kn = uo(Mn, _t), gn = ke(u);
        if (An && !Kn && x) {
          if (ge) {
            const xn = $Ie($, Mn);
            xn ? Ke(ge, Ne ? _.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1 : _.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1, gn, S(xn)) : Ke(ge, Ne ? _.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0 : _.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0, gn);
          }
          return 2;
        } else if (An && (Kn != null && Kn.declarations) && Y.noImplicitOverride && !De) {
          const xn = kt(Kn.declarations, A1);
          if (x)
            return 0;
          if (xn) {
            if (R && xn)
              return ge && Ke(ge, _.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0, gn), 1;
          } else {
            if (ge) {
              const yr = J ? Ne ? _.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0 : _.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0 : Ne ? _.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0 : _.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0;
              Ke(ge, yr, gn);
            }
            return 1;
          }
        }
      } else if (x) {
        if (ge) {
          const _t = ke(p);
          Ke(ge, Ne ? _.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class : _.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class, _t);
        }
        return 2;
      }
      return 0;
    }
    function Uwe(n, a, l, u) {
      let p = !1;
      for (const g of n.members) {
        if (Ja(g))
          continue;
        const x = g.name && D_(g.name) || D_(g);
        if (x) {
          const R = uo(a, x.escapedName), M = uo(l, x.escapedName);
          if (R && M) {
            const J = () => Na(void 0, _.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2, S(x), ke(a), ke(l));
            id(ar(R), ar(M), g.name || g, void 0, J) || (p = !0);
          }
        }
      }
      p || id(a, l, n.name || n, u);
    }
    function zat(n, a) {
      const l = za(n, 1);
      if (l.length) {
        const u = l[0].declaration;
        if (u && Gd(u, 8)) {
          const p = mg(n.symbol);
          Loe(a, p) || Ke(a, _.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private, Fh(n.symbol));
        }
      }
    }
    function qat(n, a, l) {
      if (!a.name)
        return 0;
      const u = Ir(n), p = Us(u), g = Uf(p), x = ar(u), M = Xp(n) && Mo(p), J = M != null && M.length ? Uf(us(M), p.thisType) : void 0, $ = ii(p), ge = a.parent ? jz(a) : Yr(a, 16384);
      return Gwe(n, x, $, J, p, g, ge, A1(a), Ja(a), !1, Ml(l));
    }
    function Z2(n) {
      return Ll(n) & 1 ? n.links.target : n;
    }
    function Jat(n) {
      return lr(n.declarations, (a) => a.kind === 260 || a.kind === 261);
    }
    function Kat(n, a) {
      var l, u, p, g;
      const x = ms(a);
      e:
        for (const R of x) {
          const M = Z2(R);
          if (M.flags & 4194304)
            continue;
          const J = Rb(n, M.escapedName);
          if (!J)
            continue;
          const $ = Z2(J), ge = Qf(M);
          if (D.assert(!!$, "derived should point to something, even if it is the base class' declaration."), $ === M) {
            const Ne = mg(n.symbol);
            if (ge & 256 && (!Ne || !Yr(Ne, 256))) {
              for (const De of Mo(n)) {
                if (De === a)
                  continue;
                const _t = Rb(De, M.escapedName), Bt = _t && Z2(_t);
                if (Bt && Bt !== M)
                  continue e;
              }
              Ne.kind === 228 ? Ke(Ne, _.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1, S(R), ke(a)) : Ke(Ne, _.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2, ke(n), S(R), ke(a));
            }
          } else {
            const Ne = Qf($);
            if (ge & 8 || Ne & 8)
              continue;
            let De;
            const _t = M.flags & 98308, Bt = $.flags & 98308;
            if (_t && Bt) {
              if ((Ll(M) & 6 ? (l = M.declarations) != null && l.some((Kn) => Vwe(Kn, ge)) : (u = M.declarations) != null && u.every((Kn) => Vwe(Kn, ge))) || Ll(M) & 262144 || $.valueDeclaration && br($.valueDeclaration))
                continue;
              const Mn = _t !== 4 && Bt === 4;
              if (Mn || _t === 4 && Bt !== 4) {
                const Kn = Mn ? _._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property : _._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor;
                Ke(ka($.valueDeclaration) || $.valueDeclaration, Kn, S(M), ke(a), ke(n));
              } else if (ye) {
                const Kn = (p = $.declarations) == null ? void 0 : p.find((gn) => gn.kind === 169 && !gn.initializer);
                if (Kn && !($.flags & 33554432) && !(ge & 256) && !(Ne & 256) && !((g = $.declarations) != null && g.some((gn) => !!(gn.flags & 16777216)))) {
                  const gn = p0(mg(n.symbol)), xn = Kn.name;
                  if (Kn.exclamationToken || !gn || !je(xn) || !W || !Hwe(xn, n, gn)) {
                    const yr = _.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration;
                    Ke(ka($.valueDeclaration) || $.valueDeclaration, yr, S(M), ke(a));
                  }
                }
              }
              continue;
            } else if (Cae(M)) {
              if (Cae($) || $.flags & 4)
                continue;
              D.assert(!!($.flags & 98304)), De = _.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor;
            } else
              M.flags & 98304 ? De = _.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function : De = _.Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function;
            Ke(ka($.valueDeclaration) || $.valueDeclaration, De, ke(a), S(M), ke(n));
          }
        }
    }
    function Vwe(n, a) {
      return a & 256 && (!to(n) || !n.initializer) || nd(n.parent);
    }
    function Xat(n, a, l) {
      if (!Le(a))
        return l;
      const u = /* @__PURE__ */ new Map();
      ze(l, (p) => {
        u.set(p.escapedName, p);
      });
      for (const p of a) {
        const g = ms(Uf(p, n.thisType));
        for (const x of g) {
          const R = u.get(x.escapedName);
          R && x.parent === R.parent && u.delete(x.escapedName);
        }
      }
      return Ro(u.values());
    }
    function Yat(n, a) {
      const l = Mo(n);
      if (l.length < 2)
        return !0;
      const u = /* @__PURE__ */ new Map();
      ze(yre(n).declaredProperties, (g) => {
        u.set(g.escapedName, { prop: g, containingType: n });
      });
      let p = !0;
      for (const g of l) {
        const x = ms(Uf(g, n.thisType));
        for (const R of x) {
          const M = u.get(R.escapedName);
          if (!M)
            u.set(R.escapedName, { prop: R, containingType: g });
          else if (M.containingType !== n && !_Ze(M.prop, R)) {
            p = !1;
            const $ = ke(M.containingType), ge = ke(g);
            let Ne = Na(void 0, _.Named_property_0_of_types_1_and_2_are_not_identical, S(R), $, ge);
            Ne = Na(Ne, _.Interface_0_cannot_simultaneously_extend_types_1_and_2, ke(n), $, ge), Qo.add(cg(Zn(a), a, Ne));
          }
        }
      }
      return p;
    }
    function $at(n) {
      if (!W || !ve || n.flags & 16777216)
        return;
      const a = p0(n);
      for (const l of n.members)
        if (!(Mu(l) & 2) && !Ja(l) && jwe(l)) {
          const u = l.name;
          if (je(u) || Ni(u) || As(u)) {
            const p = ar(Ir(l));
            p.flags & 3 || LL(p) || (!a || !Hwe(u, p, a)) && Ke(l.name, _.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor, ws(u));
          }
        }
    }
    function jwe(n) {
      return n.kind === 169 && !A1(n) && !n.exclamationToken && !n.initializer;
    }
    function Qat(n, a, l, u, p) {
      for (const g of l)
        if (g.pos >= u && g.pos <= p) {
          const x = N.createPropertyAccessExpression(N.createThis(), n);
          Vo(x.expression, x), Vo(x, g), x.flowNode = g.returnFlowNode;
          const R = N0(x, a, Qg(a));
          if (!LL(R))
            return !0;
        }
      return !1;
    }
    function Hwe(n, a, l) {
      const u = As(n) ? N.createElementAccessExpression(N.createThis(), n.expression) : N.createPropertyAccessExpression(N.createThis(), n);
      Vo(u.expression, u), Vo(u, l), u.flowNode = l.returnFlowNode;
      const p = N0(u, a, Qg(a));
      return !LL(p);
    }
    function Zat(n) {
      uh(n) || Rst(n), E4(n.typeParameters), i(() => {
        qL(n.name, _.Interface_name_cannot_be_0), GD(n);
        const a = Ir(n);
        Owe(a);
        const l = xl(a, 261);
        if (n === l) {
          const u = Us(a), p = Uf(u);
          if (Yat(u, n.name)) {
            for (const g of Mo(u))
              id(p, Uf(g, u.thisType), n.name, _.Interface_0_incorrectly_extends_interface_1);
            zV(u, a);
          }
        }
        Zke(n);
      }), ze(zI(n), (a) => {
        (!zl(a.expression) || yu(a.expression)) && Ke(a.expression, _.An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments), coe(a);
      }), ze(n.members, go), i(() => {
        ooe(n), fv(n);
      });
    }
    function eot(n) {
      uh(n), qL(n.name, _.Type_alias_name_cannot_be_0), GD(n), E4(n.typeParameters), n.type.kind === 139 ? (!S8.has(n.name.escapedText) || Le(n.typeParameters) !== 1) && Ke(n.type, _.The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types) : (go(n.type), fv(n));
    }
    function Wwe(n) {
      const a = Jr(n);
      if (!(a.flags & 1024)) {
        a.flags |= 1024;
        let l = 0;
        for (const u of n.members) {
          const p = tot(u, l);
          Jr(u).enumMemberValue = p, l = typeof p == "number" ? p + 1 : void 0;
        }
      }
    }
    function tot(n, a) {
      if (sN(n.name))
        Ke(n.name, _.Computed_property_names_are_not_allowed_in_enums);
      else {
        const l = OA(n.name);
        xh(l) && !yk(l) && Ke(n.name, _.An_enum_member_cannot_have_a_numeric_name);
      }
      if (n.initializer)
        return not(n);
      if (!(n.parent.flags & 16777216 && !y1(n.parent))) {
        if (a !== void 0)
          return a;
        Ke(n.name, _.Enum_member_must_have_initializer);
      }
    }
    function not(n) {
      const a = y1(n.parent), l = n.initializer, u = JL(l, n);
      return u !== void 0 ? a && typeof u == "number" && !isFinite(u) && Ke(l, isNaN(u) ? _.const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN : _.const_enum_member_initializer_was_evaluated_to_a_non_finite_value) : a ? Ke(l, _.const_enum_member_initializers_must_be_constant_expressions) : n.parent.flags & 16777216 ? Ke(l, _.In_ambient_enum_declarations_member_initializer_must_be_constant_expression) : id(ga(l), mt, l, _.Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values), u;
    }
    function JL(n, a) {
      switch (n.kind) {
        case 221:
          const l = JL(n.operand, a);
          if (typeof l == "number")
            switch (n.operator) {
              case 39:
                return l;
              case 40:
                return -l;
              case 54:
                return ~l;
            }
          break;
        case 223:
          const u = JL(n.left, a), p = JL(n.right, a);
          if (typeof u == "number" && typeof p == "number")
            switch (n.operatorToken.kind) {
              case 51:
                return u | p;
              case 50:
                return u & p;
              case 48:
                return u >> p;
              case 49:
                return u >>> p;
              case 47:
                return u << p;
              case 52:
                return u ^ p;
              case 41:
                return u * p;
              case 43:
                return u / p;
              case 39:
                return u + p;
              case 40:
                return u - p;
              case 44:
                return u % p;
              case 42:
                return u ** p;
            }
          else if ((typeof u == "string" || typeof u == "number") && (typeof p == "string" || typeof p == "number") && n.operatorToken.kind === 39)
            return "" + u + p;
          break;
        case 10:
        case 14:
          return n.text;
        case 225:
          return rot(n, a);
        case 8:
          return Boe(n), +n.text;
        case 214:
          return JL(n.expression, a);
        case 79:
          if (yk(n.escapedText))
            return +n.escapedText;
        case 208:
          if (zl(n)) {
            const x = Rl(n, 111551, !0);
            if (x) {
              if (x.flags & 8)
                return zwe(n, x, a);
              if (OL(x)) {
                const R = x.valueDeclaration;
                if (R && !R.type && R.initializer && R !== a && Rg(R, a))
                  return JL(R.initializer, R);
              }
            }
          }
          break;
        case 209:
          const g = n.expression;
          if (zl(g) && xs(n.argumentExpression)) {
            const x = Rl(g, 111551, !0);
            if (x && x.flags & 384) {
              const R = sl(n.argumentExpression.text), M = x.exports.get(R);
              if (M)
                return zwe(n, M, a);
            }
          }
          break;
      }
    }
    function zwe(n, a, l) {
      const u = a.valueDeclaration;
      if (!u || u === l) {
        Ke(n, _.Property_0_is_used_before_being_assigned, S(a));
        return;
      }
      return Rg(u, l) ? ej(u) : (Ke(n, _.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums), 0);
    }
    function rot(n, a) {
      let l = n.head.text;
      for (const u of n.templateSpans) {
        const p = JL(u.expression, a);
        if (p === void 0)
          return;
        l += p, l += u.literal.text;
      }
      return l;
    }
    function iot(n) {
      i(() => aot(n));
    }
    function aot(n) {
      uh(n), zL(n, n.name), GD(n), n.members.forEach(oot), Wwe(n);
      const a = Ir(n), l = xl(a, n.kind);
      if (n === l) {
        if (a.declarations && a.declarations.length > 1) {
          const p = y1(n);
          ze(a.declarations, (g) => {
            eb(g) && y1(g) !== p && Ke(ka(g), _.Enum_declarations_must_all_be_const_or_non_const);
          });
        }
        let u = !1;
        ze(a.declarations, (p) => {
          if (p.kind !== 263)
            return !1;
          const g = p;
          if (!g.members.length)
            return !1;
          const x = g.members[0];
          x.initializer || (u ? Ke(x.name, _.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element) : u = !0);
        });
      }
    }
    function oot(n) {
      Ni(n.name) && Ke(n, _.An_enum_member_cannot_be_named_with_a_private_identifier), n.initializer && ga(n.initializer);
    }
    function sot(n) {
      const a = n.declarations;
      if (a) {
        for (const l of a)
          if ((l.kind === 260 || l.kind === 259 && __(l.body)) && !(l.flags & 16777216))
            return l;
      }
    }
    function lot(n, a) {
      const l = Mm(n), u = Mm(a);
      return Qm(l) ? Qm(u) : Qm(u) ? !1 : l === u;
    }
    function cot(n) {
      n.body && (go(n.body), Kp(n) || fv(n)), i(a);
      function a() {
        var l, u;
        const p = Kp(n), g = n.flags & 16777216;
        p && !g && Ke(n.name, _.Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context);
        const x = Pu(n), R = x ? _.An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file : _.A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module;
        if (T4(n, R))
          return;
        uh(n) || !g && n.name.kind === 10 && En(n.name, _.Only_ambient_modules_can_use_quoted_names), je(n.name) && zL(n, n.name), GD(n);
        const M = Ir(n);
        if (M.flags & 512 && !g && YK(n, C1(Y))) {
          if (j_(Y) && !Zn(n).externalModuleIndicator && Ke(n.name, _.Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to_be_a_global_script_set_moduleDetection_to_force_or_add_an_empty_export_statement, Vt), ((l = M.declarations) == null ? void 0 : l.length) > 1) {
            const J = sot(M);
            J && (Zn(n) !== Zn(J) ? Ke(n.name, _.A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged) : n.pos < J.pos && Ke(n.name, _.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged));
            const $ = xl(M, 260);
            $ && lot(n, $) && (Jr(n).flags |= 2048);
          }
          if (Y.verbatimModuleSyntax && n.parent.kind === 308 && (de === 1 || n.parent.impliedNodeFormat === 1)) {
            const J = (u = n.modifiers) == null ? void 0 : u.find(($) => $.kind === 93);
            J && Ke(J, _.A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled);
          }
        }
        if (x)
          if (h1(n)) {
            if ((p || Ir(n).flags & 33554432) && n.body)
              for (const $ of n.body.statements)
                Soe($, p);
          } else
            Qm(n.parent) ? p ? Ke(n.name, _.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations) : Gc(U_(n.name)) && Ke(n.name, _.Ambient_module_declaration_cannot_specify_relative_module_name) : p ? Ke(n.name, _.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations) : Ke(n.name, _.Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces);
      }
    }
    function Soe(n, a) {
      switch (n.kind) {
        case 240:
          for (const u of n.declarationList.declarations)
            Soe(u, a);
          break;
        case 274:
        case 275:
          Fc(n, _.Exports_and_export_assignments_are_not_permitted_in_module_augmentations);
          break;
        case 268:
        case 269:
          Fc(n, _.Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module);
          break;
        case 205:
        case 257:
          const l = n.name;
          if (Xa(l)) {
            for (const u of l.elements)
              Soe(u, a);
            break;
          }
        case 260:
        case 263:
        case 259:
        case 261:
        case 264:
        case 262:
          if (a)
            return;
          break;
      }
    }
    function uot(n) {
      switch (n.kind) {
        case 79:
          return n;
        case 163:
          do
            n = n.left;
          while (n.kind !== 79);
          return n;
        case 208:
          do {
            if (vh(n.expression) && !Ni(n.name))
              return n.name;
            n = n.expression;
          } while (n.kind !== 79);
          return n;
      }
    }
    function xoe(n) {
      const a = HA(n);
      if (!a || Al(a))
        return !1;
      if (!jo(a))
        return Ke(a, _.String_literal_expected), !1;
      const l = n.parent.kind === 265 && Pu(n.parent.parent);
      if (n.parent.kind !== 308 && !l)
        return Ke(a, n.kind === 275 ? _.Export_declarations_are_not_permitted_in_a_namespace : _.Import_declarations_in_a_namespace_cannot_reference_a_module), !1;
      if (l && Gc(a.text) && !Zd(n))
        return Ke(n, _.Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name), !1;
      if (!su(n) && n.assertClause) {
        let u = !1;
        for (const p of n.assertClause.elements)
          jo(p.value) || (u = !0, Ke(p.value, _.Import_assertion_values_must_be_string_literal_expressions));
        return !u;
      }
      return !0;
    }
    function qV(n) {
      var a, l, u, p, g;
      let x = Ir(n);
      const R = nc(x);
      if (R !== an) {
        if (x = as(x.exportSymbol || x), fr(n) && !(R.flags & 111551) && !_1(n)) {
          const $ = JS(n) ? n.propertyName || n.name : gu(n) ? n.name : n;
          if (D.assert(n.kind !== 277), n.kind === 278) {
            const ge = Ke($, _.Types_cannot_appear_in_export_declarations_in_JavaScript_files), Ne = (l = (a = Zn(n).symbol) == null ? void 0 : a.exports) == null ? void 0 : l.get((n.propertyName || n.name).escapedText);
            if (Ne === R) {
              const De = (u = Ne.declarations) == null ? void 0 : u.find(wA);
              De && Xo(ge, Nr(De, _._0_is_automatically_exported_here, ta(Ne.escapedName)));
            }
          } else {
            D.assert(n.kind !== 257);
            const ge = nr(n, Im(Wc, su)), Ne = (g = ge && ((p = xN(ge)) == null ? void 0 : p.text)) != null ? g : "...", De = ta(je($) ? $.escapedText : x.escapedName);
            Ke($, _._0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation, De, `import("${Ne}").${De}`);
          }
          return;
        }
        const M = uu(R), J = (x.flags & 1160127 ? 111551 : 0) | (x.flags & 788968 ? 788968 : 0) | (x.flags & 1920 ? 1920 : 0);
        if (M & J) {
          const $ = n.kind === 278 ? _.Export_declaration_conflicts_with_exported_declaration_of_0 : _.Import_declaration_conflicts_with_local_declaration_of_0;
          Ke(n, $, S(x));
        }
        if (j_(Y) && !_1(n) && !(n.flags & 16777216)) {
          const $ = Rd(x), ge = !(M & 111551);
          if (ge || $)
            switch (n.kind) {
              case 270:
              case 273:
              case 268: {
                if (Y.preserveValueImports || Y.verbatimModuleSyntax) {
                  D.assertIsDefined(n.name, "An ImportClause with a symbol should have a name");
                  const Ne = Y.verbatimModuleSyntax && VA(n) ? _.An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabled : ge ? Y.verbatimModuleSyntax ? _._0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled : _._0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled : Y.verbatimModuleSyntax ? _._0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled : _._0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled, De = Mr(n.kind === 273 && n.propertyName || n.name);
                  cS(Ke(n, Ne, De), ge ? void 0 : $, De);
                }
                ge && n.kind === 268 && Gd(n, 1) && Ke(n, _.Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled, Vt);
                break;
              }
              case 278:
                if (Y.verbatimModuleSyntax || Zn($) !== Zn(n)) {
                  const Ne = Mr(n.propertyName || n.name), De = ge ? Ke(n, _.Re_exporting_a_type_when_0_is_enabled_requires_using_export_type, Vt) : Ke(n, _._0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_enabled, Ne, Vt);
                  cS(De, ge ? void 0 : $, Ne);
                  break;
                }
            }
          Y.verbatimModuleSyntax && n.kind !== 268 && !fr(n) && (de === 1 || Zn(n).impliedNodeFormat === 1) && Ke(n, _.ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled);
        }
        if (Ld(n)) {
          const $ = Jwe(x, n);
          qwe($) && $.declarations && wg(n, $.declarations, $.escapedName);
        }
      }
    }
    function qwe(n) {
      return !!n.declarations && Yn(n.declarations, (a) => !!(hp(a) & 268435456));
    }
    function Jwe(n, a) {
      if (!(n.flags & 2097152))
        return n;
      const l = nc(n);
      if (l === an)
        return l;
      for (; n.flags & 2097152; ) {
        const u = bae(n);
        if (u) {
          if (u === l)
            break;
          if (u.declarations && Le(u.declarations))
            if (qwe(u)) {
              wg(a, u.declarations, u.escapedName);
              break;
            } else {
              if (n === l)
                break;
              n = u;
            }
        } else
          break;
      }
      return l;
    }
    function JV(n) {
      zL(n, n.name), qV(n), n.kind === 273 && Mr(n.propertyName || n.name) === "default" && H_(Y) && de !== 4 && (de < 5 || Zn(n).impliedNodeFormat === 1) && pc(n, 131072);
    }
    function Kwe(n) {
      var a;
      if (n.assertClause) {
        const l = WX(n), u = Vx(n.assertClause, l ? En : void 0);
        if (l && u)
          return jN() || En(n.assertClause, _.resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next), vl(Y) !== 3 && vl(Y) !== 99 ? En(n.assertClause, _.resolution_mode_assertions_are_only_supported_when_moduleResolution_is_node16_or_nodenext) : void 0;
        if ((de === 199 && n.moduleSpecifier && Fy(n.moduleSpecifier)) !== 99 && de !== 99)
          return En(n.assertClause, de === 199 ? _.Import_assertions_are_not_allowed_on_statements_that_transpile_to_commonjs_require_calls : _.Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_or_nodenext);
        if (Wc(n) ? (a = n.importClause) != null && a.isTypeOnly : n.isTypeOnly)
          return En(n.assertClause, _.Import_assertions_cannot_be_used_with_type_only_imports_or_exports);
        if (u)
          return En(n.assertClause, _.resolution_mode_can_only_be_set_for_type_only_imports);
      }
    }
    function dot(n) {
      if (!T4(n, fr(n) ? _.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module : _.An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)) {
        if (!uh(n) && R3(n) && Fc(n, _.An_import_declaration_cannot_have_modifiers), xoe(n)) {
          const a = n.importClause;
          a && !ilt(a) && (a.name && JV(a), a.namedBindings && (a.namedBindings.kind === 271 ? (JV(a.namedBindings), de !== 4 && (de < 5 || Zn(n).impliedNodeFormat === 1) && H_(Y) && pc(n, 65536)) : du(n, n.moduleSpecifier) && ze(a.namedBindings.elements, JV)));
        }
        Kwe(n);
      }
    }
    function fot(n) {
      if (!T4(n, fr(n) ? _.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module : _.An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module) && (uh(n), VA(n) || xoe(n)))
        if (JV(n), Yr(n, 1) && lE(n), n.moduleReference.kind !== 280) {
          const a = nc(Ir(n));
          if (a !== an) {
            const l = uu(a);
            if (l & 111551) {
              const u = Lf(n.moduleReference);
              Rl(u, 112575).flags & 1920 || Ke(u, _.Module_0_is_hidden_by_a_local_declaration_with_the_same_name, ws(u));
            }
            l & 788968 && qL(n.name, _.Import_name_cannot_be_0);
          }
          n.isTypeOnly && En(n, _.An_import_alias_cannot_use_import_type);
        } else
          de >= 5 && Zn(n).impliedNodeFormat === void 0 && !n.isTypeOnly && !(n.flags & 16777216) && En(n, _.Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead);
    }
    function _ot(n) {
      if (!T4(n, fr(n) ? _.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module : _.An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)) {
        if (!uh(n) && tde(n) && Fc(n, _.An_export_declaration_cannot_have_modifiers), n.moduleSpecifier && n.exportClause && J_(n.exportClause) && Le(n.exportClause.elements) && P === 0 && pc(n, 4194304), pot(n), !n.moduleSpecifier || xoe(n))
          if (n.exportClause && !Ih(n.exportClause)) {
            ze(n.exportClause.elements, bot);
            const a = n.parent.kind === 265 && Pu(n.parent.parent), l = !a && n.parent.kind === 265 && !n.moduleSpecifier && n.flags & 16777216;
            n.parent.kind !== 308 && !a && !l && Ke(n, _.Export_declarations_are_not_permitted_in_a_namespace);
          } else {
            const a = du(n, n.moduleSpecifier);
            a && dE(a) ? Ke(n.moduleSpecifier, _.Module_0_uses_export_and_cannot_be_used_with_export_Asterisk, S(a)) : n.exportClause && qV(n.exportClause), de !== 4 && (de < 5 || Zn(n).impliedNodeFormat === 1) && (n.exportClause ? H_(Y) && pc(n, 65536) : pc(n, 32768));
          }
        Kwe(n);
      }
    }
    function pot(n) {
      var a;
      return n.isTypeOnly && ((a = n.exportClause) == null ? void 0 : a.kind) === 276 ? ADe(n.exportClause) : !1;
    }
    function T4(n, a) {
      const l = n.parent.kind === 308 || n.parent.kind === 265 || n.parent.kind === 264;
      return l || Fc(n, a), !l;
    }
    function mot(n) {
      return E3(n, (a) => !!Ir(a).isReferenced);
    }
    function hot(n) {
      return E3(n, (a) => !!Wi(Ir(a)).constEnumReferenced);
    }
    function got(n) {
      return Wc(n) && n.importClause && !n.importClause.isTypeOnly && mot(n.importClause) && !ZV(n.importClause, !0) && !hot(n.importClause);
    }
    function yot(n) {
      return su(n) && zm(n.moduleReference) && !n.isTypeOnly && Ir(n).isReferenced && !ZV(n, !1) && !Wi(Ir(n)).constEnumReferenced;
    }
    function vot(n) {
      for (const a of n.statements)
        (got(a) || yot(a)) && Ke(a, _.This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set_to_error);
    }
    function bot(n) {
      if (qV(n), W_(Y) && TE(n.propertyName || n.name, !0), n.parent.parent.moduleSpecifier)
        H_(Y) && de !== 4 && (de < 5 || Zn(n).impliedNodeFormat === 1) && Mr(n.propertyName || n.name) === "default" && pc(n, 131072);
      else {
        const a = n.propertyName || n.name, l = _l(a, a.escapedText, 2998271, void 0, void 0, !0);
        if (l && (l === Fe || l === st || l.declarations && Qm(SE(l.declarations[0]))))
          Ke(a, _.Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module, Mr(a));
        else {
          !n.isTypeOnly && !n.parent.parent.isTypeOnly && lE(n);
          const u = l && (l.flags & 2097152 ? nc(l) : l);
          (!u || uu(u) & 111551) && Ql(n.propertyName || n.name);
        }
      }
    }
    function Eot(n) {
      const a = n.isExportEquals ? _.An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration : _.A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration;
      if (T4(n, a))
        return;
      const l = n.parent.kind === 308 ? n.parent : n.parent.parent;
      if (l.kind === 264 && !Pu(l)) {
        n.isExportEquals ? Ke(n, _.An_export_assignment_cannot_be_used_in_a_namespace) : Ke(n, _.A_default_export_can_only_be_used_in_an_ECMAScript_style_module);
        return;
      }
      !uh(n) && R3(n) && Fc(n, _.An_export_assignment_cannot_have_modifiers);
      const u = Zc(n);
      u && id(Ql(n.expression), fi(u), n.expression);
      const p = !n.isExportEquals && !(n.flags & 16777216) && Y.verbatimModuleSyntax && (de === 1 || Zn(n).impliedNodeFormat === 1);
      if (n.expression.kind === 79) {
        const g = n.expression, x = Np(Rl(g, 67108863, !0, !0, n));
        x ? (_V(x, g), uu(x) & 111551 ? (Ql(g), !p && Y.verbatimModuleSyntax && Rd(x, 111551) && Ke(g, n.isExportEquals ? _.An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration : _.An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration, Mr(g))) : !p && Y.verbatimModuleSyntax && Ke(g, n.isExportEquals ? _.An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type : _.An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type, Mr(g))) : Ql(g), W_(Y) && TE(g, !0);
      } else
        Ql(n.expression);
      p && Ke(n, _.ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled), Xwe(l), n.flags & 16777216 && !zl(n.expression) && En(n.expression, _.The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context), n.isExportEquals && (de >= 5 && (n.flags & 16777216 && Zn(n).impliedNodeFormat === 99 || !(n.flags & 16777216) && Zn(n).impliedNodeFormat !== 1) ? En(n, _.Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead) : de === 4 && !(n.flags & 16777216) && En(n, _.Export_assignment_is_not_supported_when_module_flag_is_system));
    }
    function Tot(n) {
      return of(n.exports, (a, l) => l !== "export=");
    }
    function Xwe(n) {
      const a = Ir(n), l = Wi(a);
      if (!l.exportsChecked) {
        const u = a.exports.get("export=");
        if (u && Tot(a)) {
          const g = md(u) || u.valueDeclaration;
          g && !Zd(g) && !fr(g) && Ke(g, _.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements);
        }
        const p = Vh(a);
        p && p.forEach(({ declarations: g, flags: x }, R) => {
          if (R === "__export" || x & 1920)
            return;
          const M = Bc(g, J4(Wme, K4(nd)));
          if (!(x & 524288 && M <= 2) && M > 1 && !KV(g))
            for (const J of g)
              Vme(J) && Qo.add(Nr(J, _.Cannot_redeclare_exported_variable_0, ta(R)));
        }), l.exportsChecked = !0;
      }
    }
    function KV(n) {
      return n && n.length > 1 && n.every((a) => fr(a) && ll(a) && (fT(a.expression) || vh(a.expression)));
    }
    function go(n) {
      if (n) {
        const a = G;
        G = n, I = 0, Sot(n), G = a;
      }
    }
    function Sot(n) {
      kN(n) && ze(n.jsDoc, ({ comment: l, tags: u }) => {
        Ywe(l), ze(u, (p) => {
          Ywe(p.comment), fr(n) && go(p);
        });
      });
      const a = n.kind;
      if (o)
        switch (a) {
          case 264:
          case 260:
          case 261:
          case 259:
            o.throwIfCancellationRequested();
        }
      switch (a >= 240 && a <= 256 && IN(n) && n.flowNode && !JP(n.flowNode) && om(Y.allowUnreachableCode === !1, n, _.Unreachable_code_detected), a) {
        case 165:
          return Yke(n);
        case 166:
          return $ke(n);
        case 169:
          return ewe(n);
        case 168:
          return sit(n);
        case 182:
        case 181:
        case 176:
        case 177:
        case 178:
          return BD(n);
        case 171:
        case 170:
          return lit(n);
        case 172:
          return cit(n);
        case 173:
          return uit(n);
        case 174:
        case 175:
          return nwe(n);
        case 180:
          return coe(n);
        case 179:
          return rit(n);
        case 183:
          return hit(n);
        case 184:
          return git(n);
        case 185:
          return yit(n);
        case 186:
          return vit(n);
        case 189:
        case 190:
          return bit(n);
        case 193:
        case 187:
        case 188:
          return go(n.type);
        case 194:
          return xit(n);
        case 195:
          return Ait(n);
        case 191:
          return Cit(n);
        case 192:
          return Lit(n);
        case 200:
          return Iit(n);
        case 202:
          return kit(n);
        case 199:
          return wit(n);
        case 331:
          return Kit(n);
        case 332:
          return Jit(n);
        case 349:
        case 341:
        case 343:
          return Git(n);
        case 348:
          return Uit(n);
        case 347:
          return Vit(n);
        case 327:
        case 328:
        case 329:
          return Hit(n);
        case 344:
          return Wit(n);
        case 351:
          return zit(n);
        case 320:
          qit(n);
        case 318:
        case 317:
        case 315:
        case 316:
        case 325:
          $we(n), Ma(n, go);
          return;
        case 321:
          xot(n);
          return;
        case 312:
          return go(n.type);
        case 336:
        case 338:
        case 337:
          return Xit(n);
        case 353:
          return jit(n);
        case 196:
          return Eit(n);
        case 197:
          return Tit(n);
        case 259:
          return Bit(n);
        case 238:
        case 265:
          return VV(n);
        case 240:
          return fat(n);
        case 241:
          return _at(n);
        case 242:
          return pat(n);
        case 243:
          return gat(n);
        case 244:
          return yat(n);
        case 245:
          return vat(n);
        case 246:
          return Eat(n);
        case 247:
          return bat(n);
        case 248:
        case 249:
          return kat(n);
        case 250:
          return wat(n);
        case 251:
          return Dat(n);
        case 252:
          return Rat(n);
        case 253:
          return Nat(n);
        case 254:
          return Oat(n);
        case 255:
          return Pat(n);
        case 257:
          return poe(n);
        case 205:
          return dat(n);
        case 260:
          return Hat(n);
        case 261:
          return Zat(n);
        case 262:
          return eot(n);
        case 263:
          return iot(n);
        case 264:
          return cot(n);
        case 269:
          return dot(n);
        case 268:
          return fot(n);
        case 275:
          return _ot(n);
        case 274:
          return Eot(n);
        case 239:
        case 256:
          Zh(n);
          return;
        case 279:
          return fit(n);
      }
    }
    function Ywe(n) {
      Va(n) && ze(n, (a) => {
        $S(a) && go(a);
      });
    }
    function $we(n) {
      if (!fr(n))
        if (z7(n) || AC(n)) {
          const a = yo(z7(n) ? 53 : 57), l = n.postfix ? _._0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1 : _._0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1, u = n.type, p = fi(u);
          En(n, l, a, ke(AC(n) && !(p === gt || p === Rt) ? Qr(Fn([p, He], n.postfix ? void 0 : Sn)) : p));
        } else
          En(n, _.JSDoc_types_can_only_be_used_inside_documentation_comments);
    }
    function xot(n) {
      $we(n), go(n.type);
      const { parent: a } = n;
      if (Ba(a) && CC(a.parent)) {
        qo(a.parent.parameters) !== a && Ke(n, _.A_rest_parameter_must_be_last_in_a_parameter_list);
        return;
      }
      wT(a) || Ke(n, _.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);
      const l = n.parent.parent;
      if (!rm(l)) {
        Ke(n, _.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);
        return;
      }
      const u = wN(l);
      if (!u)
        return;
      const p = z0(l);
      (!p || qo(p.parameters).symbol !== u) && Ke(n, _.A_rest_parameter_must_be_last_in_a_parameter_list);
    }
    function Aot(n) {
      const a = fi(n.type), { parent: l } = n, u = n.parent.parent;
      if (wT(n.parent) && rm(u)) {
        const p = z0(u), g = AJ(u.parent.parent);
        if (p || g) {
          const x = tl(g ? u.parent.parent.typeExpression.parameters : p.parameters), R = wN(u);
          if (!x || R && x.symbol === R && gh(x))
            return Iu(a);
        }
      }
      return Ba(l) && CC(l.parent) ? Iu(a) : Io(a);
    }
    function KL(n) {
      const a = Zn(n), l = Jr(a);
      l.flags & 1 ? D.assert(!l.deferredNodes, "A type-checked file should have no deferred nodes.") : (l.deferredNodes || (l.deferredNodes = /* @__PURE__ */ new Set()), l.deferredNodes.add(n));
    }
    function Cot(n) {
      const a = Jr(n);
      a.deferredNodes && a.deferredNodes.forEach(Lot), a.deferredNodes = void 0;
    }
    function Lot(n) {
      var a, l;
      (a = bi) == null || a.push(bi.Phase.Check, "checkDeferredNode", { kind: n.kind, pos: n.pos, end: n.end, path: n.tracingPath });
      const u = G;
      switch (G = n, I = 0, n.kind) {
        case 210:
        case 211:
        case 212:
        case 167:
        case 283:
          X2(n);
          break;
        case 215:
        case 216:
        case 171:
        case 170:
          brt(n);
          break;
        case 174:
        case 175:
          nwe(n);
          break;
        case 228:
          jat(n);
          break;
        case 165:
          nit(n);
          break;
        case 282:
          Ntt(n);
          break;
        case 281:
          Ptt(n);
          break;
      }
      G = u, (l = bi) == null || l.pop();
    }
    function Iot(n) {
      var a, l;
      (a = bi) == null || a.push(bi.Phase.Check, "checkSourceFile", { path: n.path }, !0), al("beforeCheck"), kot(n), al("afterCheck"), Jf("Check", "beforeCheck", "afterCheck"), (l = bi) == null || l.pop();
    }
    function Qwe(n, a) {
      if (a)
        return !1;
      switch (n) {
        case 0:
          return !!Y.noUnusedLocals;
        case 1:
          return !!Y.noUnusedParameters;
        default:
          return D.assertNever(n);
      }
    }
    function Zwe(n) {
      return bn.get(n.path) || rt;
    }
    function kot(n) {
      const a = Jr(n);
      if (!(a.flags & 1)) {
        if (_k(n, Y, e))
          return;
        Zst(n), Fi(eE), Fi(n0), Fi(fb), Fi(r0), Fi(aS), ze(n.statements, go), go(n.endOfFileToken), Cot(n), sf(n) && fv(n), i(() => {
          !n.isDeclarationFile && (Y.noUnusedLocals || Y.noUnusedParameters) && pwe(Zwe(n), (l, u, p) => {
            !iN(l) && Qwe(u, !!(l.flags & 16777216)) && Qo.add(p);
          }), n.isDeclarationFile || Zit();
        }), Y.importsNotUsedAsValues === 2 && !n.isDeclarationFile && Zl(n) && vot(n), sf(n) && Xwe(n), eE.length && (ze(eE, nat), Fi(eE)), n0.length && (ze(n0, rat), Fi(n0)), fb.length && (ze(fb, sat), Fi(fb)), r0.length && (ze(r0, cat), Fi(r0)), a.flags |= 1;
      }
    }
    function eDe(n, a) {
      try {
        return o = a, wot(n);
      } finally {
        o = void 0;
      }
    }
    function Aoe() {
      for (const n of r)
        n();
      r = [];
    }
    function Coe(n) {
      Aoe();
      const a = i;
      i = (l) => l(), Iot(n), i = a;
    }
    function wot(n) {
      if (n) {
        Aoe();
        const a = Qo.getGlobalDiagnostics(), l = a.length;
        Coe(n);
        const u = Qo.getDiagnostics(n.fileName), p = Qo.getGlobalDiagnostics();
        if (p !== a) {
          const g = Sse(a, p, ck);
          return va(g, u);
        } else if (l === 0 && p.length > 0)
          return va(p, u);
        return u;
      }
      return ze(e.getSourceFiles(), Coe), Qo.getDiagnostics();
    }
    function Dot() {
      return Aoe(), Qo.getGlobalDiagnostics();
    }
    function Rot(n, a) {
      if (n.flags & 33554432)
        return [];
      const l = lo();
      let u = !1;
      return p(), l.delete("this"), Bre(l);
      function p() {
        for (; n; ) {
          switch (Nm(n) && n.locals && !Qm(n) && x(n.locals, a), n.kind) {
            case 308:
              if (!Zl(n))
                break;
            case 264:
              R(Ir(n).exports, a & 2623475);
              break;
            case 263:
              x(Ir(n).exports, a & 8);
              break;
            case 228:
              n.name && g(n.symbol, a);
            case 260:
            case 261:
              u || x(tv(Ir(n)), a & 788968);
              break;
            case 215:
              n.name && g(n.symbol, a);
              break;
          }
          fue(n) && g(Ct, a), u = Ja(n), n = n.parent;
        }
        x(We, a);
      }
      function g(M, J) {
        if (ak(M) & J) {
          const $ = M.escapedName;
          l.has($) || l.set($, M);
        }
      }
      function x(M, J) {
        J && M.forEach(($) => {
          g($, J);
        });
      }
      function R(M, J) {
        J && M.forEach(($) => {
          !xl($, 278) && !xl($, 277) && g($, J);
        });
      }
    }
    function Not(n) {
      return n.kind === 79 && cC(n.parent) && ka(n.parent) === n;
    }
    function tDe(n) {
      for (; n.parent.kind === 163; )
        n = n.parent;
      return n.parent.kind === 180;
    }
    function Oot(n) {
      for (; n.parent.kind === 208; )
        n = n.parent;
      return n.parent.kind === 230;
    }
    function nDe(n, a) {
      let l, u = xc(n);
      for (; u && !(l = a(u)); )
        u = xc(u);
      return l;
    }
    function Pot(n) {
      return !!nr(n, (a) => ql(a) && __(a.body) || to(a) ? !0 : di(a) || Qs(a) ? "quit" : !1);
    }
    function Loe(n, a) {
      return !!nDe(n, (l) => l === a);
    }
    function Mot(n) {
      for (; n.parent.kind === 163; )
        n = n.parent;
      if (n.parent.kind === 268)
        return n.parent.moduleReference === n ? n.parent : void 0;
      if (n.parent.kind === 274)
        return n.parent.expression === n ? n.parent : void 0;
    }
    function XV(n) {
      return Mot(n) !== void 0;
    }
    function Fot(n) {
      switch (Cl(n.parent.parent)) {
        case 1:
        case 3:
          return Yd(n.parent);
        case 4:
        case 2:
        case 5:
          return Ir(n.parent.parent);
      }
    }
    function Bot(n) {
      let a = n.parent;
      for (; Cd(a); )
        n = a, a = a.parent;
      if (a && a.kind === 202 && a.qualifier === n)
        return a;
    }
    function rDe(n) {
      if (_g(n))
        return Yd(n.parent);
      if (fr(n) && n.parent.kind === 208 && n.parent === n.parent.parent.left && !Ni(n) && !tb(n)) {
        const a = Fot(n);
        if (a)
          return a;
      }
      if (n.parent.kind === 274 && zl(n)) {
        const a = Rl(n, 2998271, !0);
        if (a && a !== an)
          return a;
      } else if (rf(n) && XV(n)) {
        const a = q0(n, 268);
        return D.assert(a !== void 0), Rp(n, !0);
      }
      if (rf(n)) {
        const a = Bot(n);
        if (a) {
          fi(a);
          const l = Jr(n).resolvedSymbol;
          return l === an ? void 0 : l;
        }
      }
      for (; cde(n); )
        n = n.parent;
      if (Oot(n)) {
        let a = 0;
        n.parent.kind === 230 ? (a = yh(n) ? 788968 : 111551, JN(n.parent) && (a |= 111551)) : a = 1920, a |= 2097152;
        const l = zl(n) ? Rl(n, a) : void 0;
        if (l)
          return l;
      }
      if (n.parent.kind === 344)
        return wN(n.parent);
      if (n.parent.kind === 165 && n.parent.parent.kind === 348) {
        D.assert(!fr(n));
        const a = kue(n.parent);
        return a && a.symbol;
      }
      if (dg(n)) {
        if (Al(n))
          return;
        const a = nr(n, Im($S, Fk, tb)), l = a ? 901119 : 111551;
        if (n.kind === 79) {
          if (UI(n) && ML(n)) {
            const p = Tae(n.parent);
            return p === an ? void 0 : p;
          }
          const u = Rl(n, l, !1, !0, z0(n));
          if (!u && a) {
            const p = nr(n, Im(di, nd));
            if (p)
              return S4(n, !1, Ir(p));
          }
          if (u && a) {
            const p = ix(n);
            if (p && O1(p) && p === u.valueDeclaration)
              return Rl(n, l, !0, !0, Zn(p)) || u;
          }
          return u;
        } else {
          if (Ni(n))
            return SV(n);
          if (n.kind === 208 || n.kind === 163) {
            const u = Jr(n);
            if (u.resolvedSymbol)
              return u.resolvedSymbol;
            if (n.kind === 208) {
              if (HIe(n, 0), !u.resolvedSymbol) {
                const p = Ql(n.expression), g = Fre(p, Xg(n.name));
                if (g.length && p.members) {
                  const R = cp(p).members.get("__index");
                  if (g === Lu(p))
                    u.resolvedSymbol = R;
                  else if (R) {
                    const M = Wi(R), J = ia(g, (ge) => ge.declaration), $ = jt(J, ps).join(",");
                    if (M.filteredIndexSymbolCache || (M.filteredIndexSymbolCache = /* @__PURE__ */ new Map()), M.filteredIndexSymbolCache.has($))
                      u.resolvedSymbol = M.filteredIndexSymbolCache.get($);
                    else {
                      const ge = ns(131072, "__index");
                      ge.declarations = ia(g, (Ne) => Ne.declaration), ge.parent = p.aliasSymbol ? p.aliasSymbol : p.symbol ? p.symbol : D_(ge.declarations[0].parent), M.filteredIndexSymbolCache.set($, ge), u.resolvedSymbol = M.filteredIndexSymbolCache.get($);
                    }
                  }
                }
              }
            } else
              WIe(n, 0);
            return !u.resolvedSymbol && a && Cd(n) ? S4(n) : u.resolvedSymbol;
          } else if (tb(n))
            return S4(n);
        }
      } else if (tDe(n)) {
        const a = n.parent.kind === 180 ? 788968 : 1920, l = Rl(n, a, !1, !0);
        return l && l !== an ? l : AU(n);
      }
      if (n.parent.kind === 179)
        return Rl(n, 1);
    }
    function S4(n, a, l) {
      if (rf(n)) {
        let x = Rl(n, 901119, a, !0, z0(n));
        if (!x && je(n) && l && (x = as(Xd(hf(l), n.escapedText, 901119))), x)
          return x;
      }
      const u = je(n) ? l : S4(n.left, a, l), p = je(n) ? n.escapedText : n.right.escapedText;
      if (u) {
        const g = u.flags & 111551 && uo(ar(u), "prototype"), x = g ? ar(g) : Us(u);
        return uo(x, p);
      }
    }
    function D_(n, a) {
      if (qi(n))
        return Zl(n) ? as(n.symbol) : void 0;
      const { parent: l } = n, u = l.parent;
      if (!(n.flags & 33554432)) {
        if (jme(n)) {
          const p = Ir(l);
          return JS(n.parent) && n.parent.propertyName === n ? bae(p) : p;
        } else if (NN(n))
          return Ir(l.parent);
        if (n.kind === 79) {
          if (XV(n))
            return rDe(n);
          if (l.kind === 205 && u.kind === 203 && n === l.propertyName) {
            const p = IS(u), g = uo(p, n.escapedText);
            if (g)
              return g;
          } else if (Rk(l) && l.name === n)
            return l.keywordToken === 103 && Mr(n) === "target" ? Jae(l).symbol : l.keywordToken === 100 && Mr(n) === "meta" ? fCe().members.get("meta") : void 0;
        }
        switch (n.kind) {
          case 79:
          case 80:
          case 208:
          case 163:
            if (!lx(n))
              return rDe(n);
          case 108:
            const p = Sd(n, !1, !1);
            if (Ka(p)) {
              const R = Mp(p);
              if (R.thisParameter)
                return R.thisParameter;
            }
            if (_3(n))
              return ga(n).symbol;
          case 194:
            return MU(n).symbol;
          case 106:
            return ga(n).symbol;
          case 135:
            const g = n.parent;
            return g && g.kind === 173 ? g.parent.symbol : void 0;
          case 10:
          case 14:
            if (H0(n.parent.parent) && VI(n.parent.parent) === n || (n.parent.kind === 269 || n.parent.kind === 275) && n.parent.moduleSpecifier === n || fr(n) && vl(Y) !== 100 && xd(n.parent, !1) || lf(n.parent) || Z0(n.parent) && j0(n.parent.parent) && n.parent.parent.argument === n.parent)
              return du(n, n, a);
            if (no(l) && ex(l) && l.arguments[1] === n)
              return Ir(l);
          case 8:
            const x = cl(l) ? l.argumentExpression === n ? Du(l.expression) : void 0 : Z0(l) && Cx(u) ? fi(u.objectType) : void 0;
            return x && uo(x, sl(n.text));
          case 88:
          case 98:
          case 38:
          case 84:
            return Yd(n.parent);
          case 202:
            return j0(n) ? D_(n.argument.literal, a) : void 0;
          case 93:
            return Bl(n.parent) ? D.checkDefined(n.parent.symbol) : void 0;
          case 100:
          case 103:
            return Rk(n.parent) ? Cke(n.parent).symbol : void 0;
          case 233:
            return ga(n).symbol;
          default:
            return;
        }
      }
    }
    function Got(n) {
      if (je(n) && Fr(n.parent) && n.parent.name === n) {
        const a = Xg(n), l = Du(n.parent.expression), u = l.flags & 1048576 ? l.types : [l];
        return ca(u, (p) => lr(Lu(p), (g) => O2(a, g.keyType)));
      }
    }
    function Uot(n) {
      if (n && n.kind === 300)
        return Rl(n.name, 2208703);
    }
    function Vot(n) {
      return dd(n) ? n.parent.parent.moduleSpecifier ? Pf(n.parent.parent, n) : Rl(n.propertyName || n.name, 2998271) : Rl(n, 2998271);
    }
    function IS(n) {
      if (qi(n) && !Zl(n) || n.flags & 33554432)
        return Ce;
      const a = Kz(n), l = a && zu(Ir(a.class));
      if (yh(n)) {
        const u = fi(n);
        return l ? Uf(u, l.thisType) : u;
      }
      if (dg(n))
        return iDe(n);
      if (l && !a.isImplements) {
        const u = Yc(Mo(l));
        return u ? Uf(u, l.thisType) : Ce;
      }
      if (cC(n)) {
        const u = Ir(n);
        return Us(u);
      }
      if (Not(n)) {
        const u = D_(n);
        return u ? Us(u) : Ce;
      }
      if (vu(n)) {
        const u = Ir(n);
        return u ? ar(u) : Ce;
      }
      if (jme(n)) {
        const u = D_(n);
        return u ? ar(u) : Ce;
      }
      if (Xa(n))
        return is(n.parent, !0, 0) || Ce;
      if (XV(n)) {
        const u = D_(n);
        if (u) {
          const p = Us(u);
          return rs(p) ? ar(u) : p;
        }
      }
      return Rk(n.parent) && n.parent.keywordToken === n.kind ? Cke(n.parent) : Ce;
    }
    function YV(n) {
      if (D.assert(n.kind === 207 || n.kind === 206), n.parent.kind === 247) {
        const p = b4(n.parent);
        return jE(n, p || Ce);
      }
      if (n.parent.kind === 223) {
        const p = Du(n.parent.right);
        return jE(n, p || Ce);
      }
      if (n.parent.kind === 299) {
        const p = oo(n.parent.parent, Ls), g = YV(p) || Ce, x = NA(p.properties, n.parent);
        return Uke(p, g, x);
      }
      const a = oo(n.parent, Bu), l = YV(a) || Ce, u = _v(65, l, He, n.parent) || Ce;
      return Vke(a, l, a.elements.indexOf(n), u);
    }
    function jot(n) {
      const a = YV(oo(n.parent.parent, kI));
      return a && uo(a, n.escapedText);
    }
    function iDe(n) {
      return tk(n) && (n = n.parent), yd(Du(n));
    }
    function aDe(n) {
      const a = Yd(n.parent);
      return Ja(n) ? ar(a) : Us(a);
    }
    function oDe(n) {
      const a = n.name;
      switch (a.kind) {
        case 79:
          return jf(Mr(a));
        case 8:
        case 10:
          return jf(a.text);
        case 164:
          const l = ey(a);
          return Mc(l, 12288) ? l : ue;
        default:
          return D.fail("Unsupported property name.");
      }
    }
    function Ioe(n) {
      n = Ju(n);
      const a = lo(ms(n)), l = za(n, 0).length ? dc : za(n, 1).length ? _d : void 0;
      return l && ze(ms(l), (u) => {
        a.has(u.escapedName) || a.set(u.escapedName, u);
      }), qy(a);
    }
    function $V(n) {
      return za(n, 0).length !== 0 || za(n, 1).length !== 0;
    }
    function sDe(n) {
      const a = Hot(n);
      return a ? ca(a, sDe) : [n];
    }
    function Hot(n) {
      if (Ll(n) & 6)
        return ia(Wi(n).containingType.types, (a) => uo(a, n.escapedName));
      if (n.flags & 33554432) {
        const { links: { leftSpread: a, rightSpread: l, syntheticOrigin: u } } = n;
        return a ? [a, l] : u ? [u] : XE(Wot(n));
      }
    }
    function Wot(n) {
      let a, l = n;
      for (; l = Wi(l).target; )
        a = l;
      return a;
    }
    function zot(n) {
      if (Sl(n))
        return !1;
      const a = Ea(n, je);
      if (!a)
        return !1;
      const l = a.parent;
      return l ? !((Fr(l) || zc(l)) && l.name === a) && x4(a) === Ct : !1;
    }
    function qot(n) {
      let a = du(n.parent, n);
      if (!a || MI(a))
        return !0;
      const l = dE(a);
      a = hd(a);
      const u = Wi(a);
      return u.exportsSomeValue === void 0 && (u.exportsSomeValue = l ? !!(a.flags & 111551) : of(Vh(a), p)), u.exportsSomeValue;
      function p(g) {
        return g = Yl(g), g && !!(uu(g) & 111551);
      }
    }
    function Jot(n) {
      return ZR(n.parent) && n === n.parent.name;
    }
    function Kot(n, a) {
      var l;
      const u = Ea(n, je);
      if (u) {
        let p = x4(u, Jot(u));
        if (p) {
          if (p.flags & 1048576) {
            const x = as(p.exportSymbol);
            if (!a && x.flags & 944 && !(x.flags & 3))
              return;
            p = x;
          }
          const g = gd(p);
          if (g) {
            if (g.flags & 512 && ((l = g.valueDeclaration) == null ? void 0 : l.kind) === 308) {
              const x = g.valueDeclaration, R = Zn(u);
              return x !== R ? void 0 : x;
            }
            return nr(u.parent, (x) => ZR(x) && Ir(x) === g);
          }
        }
      }
    }
    function Xot(n) {
      const a = Rfe(n);
      if (a)
        return a;
      const l = Ea(n, je);
      if (l) {
        const u = lst(l);
        if (Vy(u, 111551) && !Rd(u, 111551))
          return md(u);
      }
    }
    function Yot(n) {
      return n.valueDeclaration && _s(n.valueDeclaration) && SA(n.valueDeclaration).parent.kind === 295;
    }
    function lDe(n) {
      if (n.flags & 418 && n.valueDeclaration && !qi(n.valueDeclaration)) {
        const a = Wi(n);
        if (a.isDeclarationWithCollidingName === void 0) {
          const l = Mm(n.valueDeclaration);
          if (Wce(l) || Yot(n)) {
            const u = Jr(n.valueDeclaration);
            if (_l(l.parent, n.escapedName, 111551, void 0, void 0, !1))
              a.isDeclarationWithCollidingName = !0;
            else if (u.flags & 16384) {
              const p = u.flags & 32768, g = Lv(l, !1), x = l.kind === 238 && Lv(l.parent, !1);
              a.isDeclarationWithCollidingName = !eue(l) && (!p || !g && !x);
            } else
              a.isDeclarationWithCollidingName = !1;
          }
        }
        return a.isDeclarationWithCollidingName;
      }
      return !1;
    }
    function $ot(n) {
      if (!Sl(n)) {
        const a = Ea(n, je);
        if (a) {
          const l = x4(a);
          if (l && lDe(l))
            return l.valueDeclaration;
        }
      }
    }
    function Qot(n) {
      const a = Ea(n, vu);
      if (a) {
        const l = Ir(a);
        if (l)
          return lDe(l);
      }
      return !1;
    }
    function cDe(n) {
      switch (D.assert(!Y.verbatimModuleSyntax), n.kind) {
        case 268:
          return QV(Ir(n));
        case 270:
        case 271:
        case 273:
        case 278:
          const a = Ir(n);
          return !!a && QV(a) && !Rd(a, 111551);
        case 275:
          const l = n.exportClause;
          return !!l && (Ih(l) || kt(l.elements, cDe));
        case 274:
          return n.expression && n.expression.kind === 79 ? QV(Ir(n)) : !0;
      }
      return !1;
    }
    function Zot(n) {
      const a = Ea(n, su);
      return a === void 0 || a.parent.kind !== 308 || !VA(a) ? !1 : QV(Ir(a)) && a.moduleReference && !Al(a.moduleReference);
    }
    function QV(n) {
      var a;
      if (!n)
        return !1;
      const l = Np(nc(n));
      return l === an ? !0 : !!(((a = uu(l)) != null ? a : -1) & 111551) && (C1(Y) || !qD(l));
    }
    function qD(n) {
      return toe(n) || !!n.constEnumOnlyModule;
    }
    function ZV(n, a) {
      if (D.assert(!Y.verbatimModuleSyntax), Og(n)) {
        const l = Ir(n), u = l && Wi(l);
        if (u != null && u.referenced)
          return !0;
        const p = Wi(l).aliasTarget;
        if (p && Mu(n) & 1 && uu(p) & 111551 && (C1(Y) || !qD(p)))
          return !0;
      }
      return a ? !!Ma(n, (l) => ZV(l, a)) : !1;
    }
    function uDe(n) {
      if (__(n.body)) {
        if (Iv(n) || hy(n))
          return !1;
        const a = Ir(n), l = Nb(a);
        return l.length > 1 || l.length === 1 && l[0].declaration !== n;
      }
      return !1;
    }
    function dDe(n) {
      return !!W && !lD(n) && !rm(n) && !!n.initializer && !Yr(n, 16476);
    }
    function est(n) {
      return W && lD(n) && !n.initializer && Yr(n, 16476);
    }
    function tst(n) {
      const a = Ea(n, yc);
      if (!a)
        return !1;
      const l = Ir(a);
      return !l || !(l.flags & 16) ? !1 : !!of(hf(l), (u) => u.flags & 111551 && u.valueDeclaration && Fr(u.valueDeclaration));
    }
    function nst(n) {
      const a = Ea(n, yc);
      if (!a)
        return rt;
      const l = Ir(a);
      return l && ms(ar(l)) || rt;
    }
    function eA(n) {
      var a;
      const l = n.id || 0;
      return l < 0 || l >= db.length ? 0 : ((a = db[l]) == null ? void 0 : a.flags) || 0;
    }
    function ej(n) {
      return Wwe(n.parent), Jr(n).enumMemberValue;
    }
    function fDe(n) {
      switch (n.kind) {
        case 302:
        case 208:
        case 209:
          return !0;
      }
      return !1;
    }
    function koe(n) {
      if (n.kind === 302)
        return ej(n);
      const a = Jr(n).resolvedSymbol;
      if (a && a.flags & 8) {
        const l = a.valueDeclaration;
        if (y1(l.parent))
          return ej(l);
      }
    }
    function woe(n) {
      return !!(n.flags & 524288) && za(n, 0).length > 0;
    }
    function rst(n, a) {
      var l;
      const u = Ea(n, rf);
      if (!u || a && (a = Ea(a), !a))
        return 0;
      let p = !1;
      if (Cd(u)) {
        const J = Rl(Lf(u), 111551, !0, !0, a);
        p = !!((l = J == null ? void 0 : J.declarations) != null && l.every(_1));
      }
      const g = Rl(u, 111551, !0, !0, a), x = g && g.flags & 2097152 ? nc(g) : g;
      p || (p = !!(g && Rd(g, 111551)));
      const R = Rl(u, 788968, !0, !1, a);
      if (x && x === R) {
        const J = $re(!1);
        if (J && x === J)
          return 9;
        const $ = ar(x);
        if ($ && S0($))
          return p ? 10 : 1;
      }
      if (!R)
        return p ? 11 : 0;
      const M = Us(R);
      return rs(M) ? p ? 11 : 0 : M.flags & 3 ? 11 : Mc(M, 245760) ? 2 : Mc(M, 528) ? 6 : Mc(M, 296) ? 3 : Mc(M, 2112) ? 4 : Mc(M, 402653316) ? 5 : Fo(M) ? 7 : Mc(M, 12288) ? 8 : woe(M) ? 10 : Hf(M) ? 7 : 11;
    }
    function ist(n, a, l, u, p) {
      const g = Ea(n, cue);
      if (!g)
        return N.createToken(131);
      const x = Ir(g);
      let R = x && !(x.flags & 133120) ? jb(ar(x)) : Ce;
      return R.flags & 8192 && R.symbol === x && (l |= 1048576), p && (R = Qg(R)), Ye.typeToTypeNode(R, a, l | 1024, u);
    }
    function ast(n, a, l, u) {
      const p = Ea(n, Ka);
      if (!p)
        return N.createToken(131);
      const g = Mp(p);
      return Ye.typeToTypeNode(ys(g), a, l | 1024, u);
    }
    function ost(n, a, l, u) {
      const p = Ea(n, vt);
      if (!p)
        return N.createToken(131);
      const g = ef(iDe(p));
      return Ye.typeToTypeNode(g, a, l | 1024, u);
    }
    function sst(n) {
      return We.has(sl(n));
    }
    function x4(n, a) {
      const l = Jr(n).resolvedSymbol;
      if (l)
        return l;
      let u = n;
      if (a) {
        const p = n.parent;
        vu(p) && n === p.name && (u = SE(p));
      }
      return _l(u, n.escapedText, 3257279, void 0, void 0, !0);
    }
    function lst(n) {
      const a = Jr(n).resolvedSymbol;
      return a && a !== an ? a : _l(n, n.escapedText, 3257279, void 0, void 0, !0, void 0, void 0);
    }
    function cst(n) {
      if (!Sl(n)) {
        const a = Ea(n, je);
        if (a) {
          const l = x4(a);
          if (l)
            return Np(l).valueDeclaration;
        }
      }
    }
    function ust(n) {
      return e3(n) || Ki(n) && ug(n) ? Gb(ar(Ir(n))) : !1;
    }
    function dst(n, a, l) {
      const u = n.flags & 1056 ? Ye.symbolToExpression(n.symbol, 111551, a, void 0, l) : n === Pe ? N.createTrue() : n === it && N.createFalse();
      if (u)
        return u;
      const p = n.value;
      return typeof p == "object" ? N.createBigIntLiteral(p) : typeof p == "number" ? N.createNumericLiteral(p) : N.createStringLiteral(p);
    }
    function fst(n, a) {
      const l = ar(Ir(n));
      return dst(l, n, a);
    }
    function _De(n) {
      return n ? (hb(n), Zn(n).localJsxFactory || Ig) : Ig;
    }
    function Doe(n) {
      if (n) {
        const a = Zn(n);
        if (a) {
          if (a.localJsxFragmentFactory)
            return a.localJsxFragmentFactory;
          const l = a.pragmas.get("jsxfrag"), u = Va(l) ? l[0] : l;
          if (u)
            return a.localJsxFragmentFactory = Bx(u.arguments.factory, P), a.localJsxFragmentFactory;
        }
      }
      if (Y.jsxFragmentFactory)
        return Bx(Y.jsxFragmentFactory, P);
    }
    function _st() {
      const n = e.getResolvedTypeReferenceDirectives();
      let a;
      return n && (a = /* @__PURE__ */ new Map(), n.forEach(({ resolvedTypeReferenceDirective: M }, J, $) => {
        if (!(M != null && M.resolvedFileName))
          return;
        const ge = e.getSourceFile(M.resolvedFileName);
        ge && R(ge, J, $);
      })), {
        getReferencedExportContainer: Kot,
        getReferencedImportDeclaration: Xot,
        getReferencedDeclarationWithCollidingName: $ot,
        isDeclarationWithCollidingName: Qot,
        isValueAliasDeclaration: (M) => {
          const J = Ea(M);
          return J ? cDe(J) : !0;
        },
        hasGlobalName: sst,
        isReferencedAliasDeclaration: (M, J) => {
          const $ = Ea(M);
          return $ ? ZV($, J) : !0;
        },
        getNodeCheckFlags: (M) => {
          const J = Ea(M);
          return J ? eA(J) : 0;
        },
        isTopLevelValueImportEqualsWithEntityName: Zot,
        isDeclarationVisible: L_,
        isImplementationOfOverload: uDe,
        isRequiredInitializedParameter: dDe,
        isOptionalUninitializedParameterProperty: est,
        isExpandoFunctionDeclaration: tst,
        getPropertiesOfContainerFunction: nst,
        createTypeOfDeclaration: ist,
        createReturnTypeOfSignatureDeclaration: ast,
        createTypeOfExpression: ost,
        createLiteralConstValue: fst,
        isSymbolAccessible: Jy,
        isEntityNameVisible: L2,
        getConstantValue: (M) => {
          const J = Ea(M, fDe);
          return J ? koe(J) : void 0;
        },
        collectLinkedAliases: TE,
        getReferencedValueDeclaration: cst,
        getTypeReferenceSerializationKind: rst,
        isOptionalParameter: lD,
        moduleExportsSomeValue: qot,
        isArgumentsLocalBinding: zot,
        getExternalModuleFileFromDeclaration: (M) => {
          const J = Ea(M, nue);
          return J && Roe(J);
        },
        getTypeReferenceDirectivesForEntityName: p,
        getTypeReferenceDirectivesForSymbol: g,
        isLiteralConstDeclaration: ust,
        isLateBound: (M) => {
          const J = Ea(M, vu), $ = J && Ir(J);
          return !!($ && Ll($) & 4096);
        },
        getJsxFactoryEntity: _De,
        getJsxFragmentFactoryEntity: Doe,
        getAllAccessorDeclarations(M) {
          M = Ea(M, DM);
          const J = M.kind === 175 ? 174 : 175, $ = xl(Ir(M), J), ge = $ && $.pos < M.pos ? $ : M, Ne = $ && $.pos < M.pos ? M : $, De = M.kind === 175 ? M : $, _t = M.kind === 174 ? M : $;
          return {
            firstAccessor: ge,
            secondAccessor: Ne,
            setAccessor: De,
            getAccessor: _t
          };
        },
        getSymbolOfExternalModuleSpecifier: (M) => Gh(M, M, void 0),
        isBindingCapturedByNode: (M, J) => {
          const $ = Ea(M), ge = Ea(J);
          return !!$ && !!ge && (Ki(ge) || _s(ge)) && Wet($, ge);
        },
        getDeclarationStatementsForSourceFile: (M, J, $, ge) => {
          const Ne = Ea(M);
          D.assert(Ne && Ne.kind === 308, "Non-sourcefile node passed into getDeclarationsForSourceFile");
          const De = Ir(M);
          return De ? De.exports ? Ye.symbolTableToDeclarationStatements(De.exports, M, J, $, ge) : [] : M.locals ? Ye.symbolTableToDeclarationStatements(M.locals, M, J, $, ge) : [];
        },
        isImportRequiredByAugmentation: l
      };
      function l(M) {
        const J = Zn(M);
        if (!J.symbol)
          return !1;
        const $ = Roe(M);
        if (!$ || $ === J)
          return !1;
        const ge = Vh(J.symbol);
        for (const Ne of Ro(ge.values()))
          if (Ne.mergeId) {
            const De = as(Ne);
            if (De.declarations) {
              for (const _t of De.declarations)
                if (Zn(_t) === $)
                  return !0;
            }
          }
        return !1;
      }
      function u(M) {
        return M.parent && M.parent.kind === 230 && M.parent.parent && M.parent.parent.kind === 294;
      }
      function p(M) {
        if (!a)
          return;
        let J;
        M.parent.kind === 164 ? J = 1160127 : (J = 790504, (M.kind === 79 && RL(M) || M.kind === 208 && !u(M)) && (J = 1160127));
        const $ = Rl(M, J, !0);
        return $ && $ !== an ? g($, J) : void 0;
      }
      function g(M, J) {
        if (!a || !x(M))
          return;
        let $;
        for (const ge of M.declarations)
          if (ge.symbol && ge.symbol.flags & J) {
            const Ne = Zn(ge), De = a.get(Ne.path);
            if (De)
              ($ || ($ = [])).push(De);
            else
              return;
          }
        return $;
      }
      function x(M) {
        if (!M.declarations)
          return !1;
        let J = M;
        for (; ; ) {
          const $ = gd(J);
          if ($)
            J = $;
          else
            break;
        }
        if (J.valueDeclaration && J.valueDeclaration.kind === 308 && J.flags & 512)
          return !1;
        for (const $ of M.declarations) {
          const ge = Zn($);
          if (a.has(ge.path))
            return !0;
        }
        return !1;
      }
      function R(M, J, $) {
        if (!a.has(M.path)) {
          a.set(M.path, [J, $]);
          for (const { fileName: ge, resolutionMode: Ne } of M.referencedFiles) {
            const De = sF(ge, M.fileName), _t = e.getSourceFile(De);
            _t && R(_t, J, Ne || M.impliedNodeFormat);
          }
        }
      }
    }
    function Roe(n) {
      const a = n.kind === 264 ? ai(n.name, jo) : HA(n), l = Gh(a, a, void 0);
      if (l)
        return xl(l, 308);
    }
    function pst() {
      for (const a of e.getSourceFiles())
        vme(a, Y);
      Dr = /* @__PURE__ */ new Map();
      let n;
      for (const a of e.getSourceFiles())
        if (!a.redirectInfo) {
          if (!sf(a)) {
            const l = a.locals.get("globalThis");
            if (l != null && l.declarations)
              for (const u of l.declarations)
                Qo.add(Nr(u, _.Declaration_name_conflicts_with_built_in_global_identifier_0, "globalThis"));
            Pc(We, a.locals);
          }
          a.jsGlobalAugmentations && Pc(We, a.jsGlobalAugmentations), a.patternAmbientModules && a.patternAmbientModules.length && (ho = va(ho, a.patternAmbientModules)), a.moduleAugmentations.length && (n || (n = [])).push(a.moduleAugmentations), a.symbol && a.symbol.globalExports && a.symbol.globalExports.forEach((u, p) => {
            We.has(p) || We.set(p, u);
          });
        }
      if (n)
        for (const a of n)
          for (const l of a)
            Kp(l.parent) && lS(l);
      if (fL(We, pb, _.Declaration_name_conflicts_with_built_in_global_identifier_0), Wi(Fe).type = Ze, Wi(Ct).type = lc("IArguments", 0, !0), Wi(an).type = Ce, Wi(st).type = gf(16, st), Es = lc("Array", 1, !0), Ya = lc("Object", 0, !0), dl = lc("Function", 0, !0), dc = me && lc("CallableFunction", 0, !0) || dl, _d = me && lc("NewableFunction", 0, !0) || dl, fl = lc("String", 0, !0), Jd = lc("Number", 0, !0), Hl = lc("Boolean", 0, !0), Nf = lc("RegExp", 0, !0), Dt = Iu(we), Nn = Iu(yt), Nn === pa && (Nn = Ns(void 0, te, rt, rt, rt)), ds = gCe("ReadonlyArray", 1) || Es, Xi = ds ? _D(ds, [we]) : Dt, xe = gCe("ThisType", 1), n)
        for (const a of n)
          for (const l of a)
            Kp(l.parent) || lS(l);
      Dr.forEach(({ firstFile: a, secondFile: l, conflictingSymbols: u }) => {
        if (u.size < 8)
          u.forEach(({ isBlockScoped: p, firstFileLocations: g, secondFileLocations: x }, R) => {
            const M = p ? _.Cannot_redeclare_block_scoped_variable_0 : _.Duplicate_identifier_0;
            for (const J of g)
              cu(J, M, R, x);
            for (const J of x)
              cu(J, M, R, g);
          });
        else {
          const p = Ro(u.keys()).join(", ");
          Qo.add(Xo(Nr(a, _.Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0, p), Nr(l, _.Conflicts_are_in_this_file))), Qo.add(Xo(Nr(l, _.Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0, p), Nr(a, _.Conflicts_are_in_this_file)));
        }
      }), Dr = void 0;
    }
    function pc(n, a) {
      if ((c & a) !== a && Y.importHelpers) {
        const l = Zn(n);
        if (QS(l, Y) && !(n.flags & 16777216)) {
          const u = hst(l, n);
          if (u !== an) {
            const p = a & ~c;
            for (let g = 1; g <= 16777216; g <<= 1)
              if (p & g)
                for (const x of mst(g)) {
                  if (s.has(x))
                    continue;
                  s.add(x);
                  const R = Xd(u.exports, sl(x), 111551);
                  R ? g & 524288 ? kt(Nb(R), (M) => tf(M) > 3) || Ke(n, _.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0, $0, x, 4) : g & 1048576 ? kt(Nb(R), (M) => tf(M) > 4) || Ke(n, _.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0, $0, x, 5) : g & 1024 && (kt(Nb(R), (M) => tf(M) > 2) || Ke(n, _.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0, $0, x, 3)) : Ke(n, _.This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0, $0, x);
                }
          }
          c |= a;
        }
      }
    }
    function mst(n) {
      switch (n) {
        case 1:
          return ["__extends"];
        case 2:
          return ["__assign"];
        case 4:
          return ["__rest"];
        case 8:
          return re ? ["__decorate"] : ["__esDecorate", "__runInitializers"];
        case 16:
          return ["__metadata"];
        case 32:
          return ["__param"];
        case 64:
          return ["__awaiter"];
        case 128:
          return ["__generator"];
        case 256:
          return ["__values"];
        case 512:
          return ["__read"];
        case 1024:
          return ["__spreadArray"];
        case 2048:
          return ["__await"];
        case 4096:
          return ["__asyncGenerator"];
        case 8192:
          return ["__asyncDelegator"];
        case 16384:
          return ["__asyncValues"];
        case 32768:
          return ["__exportStar"];
        case 65536:
          return ["__importStar"];
        case 131072:
          return ["__importDefault"];
        case 262144:
          return ["__makeTemplateObject"];
        case 524288:
          return ["__classPrivateFieldGet"];
        case 1048576:
          return ["__classPrivateFieldSet"];
        case 2097152:
          return ["__classPrivateFieldIn"];
        case 4194304:
          return ["__createBinding"];
        case 8388608:
          return ["__setFunctionName"];
        case 16777216:
          return ["__propKey"];
        default:
          return D.fail("Unrecognized helper");
      }
    }
    function hst(n, a) {
      return f || (f = bc(n, $0, _.This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found, a) || an), f;
    }
    function uh(n) {
      const a = vst(n) || gst(n);
      if (a !== void 0)
        return a;
      if (Ba(n) && x1(n))
        return Fc(n, _.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters);
      let l, u, p, g, x, R = 0, M = !1, J = !1;
      for (const $ of n.modifiers)
        if (Fu($)) {
          if (f3(re, n, n.parent, n.parent.parent)) {
            if (re && (n.kind === 174 || n.kind === 175)) {
              const ge = vT(n.parent.members, n);
              if ($f(ge.firstAccessor) && n === ge.secondAccessor)
                return Fc(n, _.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name);
            }
          } else
            return n.kind === 171 && !__(n.body) ? Fc(n, _.A_decorator_can_only_decorate_a_method_implementation_not_an_overload) : Fc(n, _.Decorators_are_not_valid_here);
          if (R & -132098)
            return En($, _.Decorators_are_not_valid_here);
          if (J && R & 126975) {
            D.assertIsDefined(x);
            const ge = Zn($);
            return Jb(ge) ? !1 : (Xo(Ke($, _.Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export), Nr(x, _.Decorator_used_before_export_here)), !0);
          }
          R |= 131072, R & 126975 ? R & 1 && (M = !0) : J = !0, x ?? (x = $);
        } else {
          if ($.kind !== 146) {
            if (n.kind === 168 || n.kind === 170)
              return En($, _._0_modifier_cannot_appear_on_a_type_member, yo($.kind));
            if (n.kind === 178 && ($.kind !== 124 || !di(n.parent)))
              return En($, _._0_modifier_cannot_appear_on_an_index_signature, yo($.kind));
          }
          if ($.kind !== 101 && $.kind !== 145 && $.kind !== 85 && n.kind === 165)
            return En($, _._0_modifier_cannot_appear_on_a_type_parameter, yo($.kind));
          switch ($.kind) {
            case 85:
              if (n.kind !== 263 && n.kind !== 165)
                return En(n, _.A_class_member_cannot_have_the_0_keyword, yo(85));
              const ge = n.parent;
              if (n.kind === 165 && !(Qs(ge) || di(ge) || Ch(ge) || Ik(ge) || hC(ge) || wO(ge) || Ah(ge)))
                return En($, _._0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class, yo($.kind));
              break;
            case 161:
              if (R & 16384)
                return En($, _._0_modifier_already_seen, "override");
              if (R & 2)
                return En($, _._0_modifier_cannot_be_used_with_1_modifier, "override", "declare");
              if (R & 64)
                return En($, _._0_modifier_must_precede_1_modifier, "override", "readonly");
              if (R & 128)
                return En($, _._0_modifier_must_precede_1_modifier, "override", "accessor");
              if (R & 512)
                return En($, _._0_modifier_must_precede_1_modifier, "override", "async");
              R |= 16384, g = $;
              break;
            case 123:
            case 122:
            case 121:
              const Ne = yf(ux($.kind));
              if (R & 28)
                return En($, _.Accessibility_modifier_already_seen);
              if (R & 16384)
                return En($, _._0_modifier_must_precede_1_modifier, Ne, "override");
              if (R & 32)
                return En($, _._0_modifier_must_precede_1_modifier, Ne, "static");
              if (R & 128)
                return En($, _._0_modifier_must_precede_1_modifier, Ne, "accessor");
              if (R & 64)
                return En($, _._0_modifier_must_precede_1_modifier, Ne, "readonly");
              if (R & 512)
                return En($, _._0_modifier_must_precede_1_modifier, Ne, "async");
              if (n.parent.kind === 265 || n.parent.kind === 308)
                return En($, _._0_modifier_cannot_appear_on_a_module_or_namespace_element, Ne);
              if (R & 256)
                return $.kind === 121 ? En($, _._0_modifier_cannot_be_used_with_1_modifier, Ne, "abstract") : En($, _._0_modifier_must_precede_1_modifier, Ne, "abstract");
              if ($u(n))
                return En($, _.An_accessibility_modifier_cannot_be_used_with_a_private_identifier);
              R |= ux($.kind);
              break;
            case 124:
              if (R & 32)
                return En($, _._0_modifier_already_seen, "static");
              if (R & 64)
                return En($, _._0_modifier_must_precede_1_modifier, "static", "readonly");
              if (R & 512)
                return En($, _._0_modifier_must_precede_1_modifier, "static", "async");
              if (R & 128)
                return En($, _._0_modifier_must_precede_1_modifier, "static", "accessor");
              if (n.parent.kind === 265 || n.parent.kind === 308)
                return En($, _._0_modifier_cannot_appear_on_a_module_or_namespace_element, "static");
              if (n.kind === 166)
                return En($, _._0_modifier_cannot_appear_on_a_parameter, "static");
              if (R & 256)
                return En($, _._0_modifier_cannot_be_used_with_1_modifier, "static", "abstract");
              if (R & 16384)
                return En($, _._0_modifier_must_precede_1_modifier, "static", "override");
              R |= 32, l = $;
              break;
            case 127:
              if (R & 128)
                return En($, _._0_modifier_already_seen, "accessor");
              if (R & 64)
                return En($, _._0_modifier_cannot_be_used_with_1_modifier, "accessor", "readonly");
              if (R & 2)
                return En($, _._0_modifier_cannot_be_used_with_1_modifier, "accessor", "declare");
              if (n.kind !== 169)
                return En($, _.accessor_modifier_can_only_appear_on_a_property_declaration);
              R |= 128;
              break;
            case 146:
              if (R & 64)
                return En($, _._0_modifier_already_seen, "readonly");
              if (n.kind !== 169 && n.kind !== 168 && n.kind !== 178 && n.kind !== 166)
                return En($, _.readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature);
              if (R & 128)
                return En($, _._0_modifier_cannot_be_used_with_1_modifier, "readonly", "accessor");
              R |= 64;
              break;
            case 93:
              if (Y.verbatimModuleSyntax && !(n.flags & 16777216) && n.kind !== 262 && n.kind !== 261 && n.kind !== 264 && n.parent.kind === 308 && (de === 1 || Zn(n).impliedNodeFormat === 1))
                return En($, _.A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled);
              if (R & 1)
                return En($, _._0_modifier_already_seen, "export");
              if (R & 2)
                return En($, _._0_modifier_must_precede_1_modifier, "export", "declare");
              if (R & 256)
                return En($, _._0_modifier_must_precede_1_modifier, "export", "abstract");
              if (R & 512)
                return En($, _._0_modifier_must_precede_1_modifier, "export", "async");
              if (di(n.parent))
                return En($, _._0_modifier_cannot_appear_on_class_elements_of_this_kind, "export");
              if (n.kind === 166)
                return En($, _._0_modifier_cannot_appear_on_a_parameter, "export");
              R |= 1;
              break;
            case 88:
              const De = n.parent.kind === 308 ? n.parent : n.parent.parent;
              if (De.kind === 264 && !Pu(De))
                return En($, _.A_default_export_can_only_be_used_in_an_ECMAScript_style_module);
              if (R & 1) {
                if (M)
                  return En(x, _.Decorators_are_not_valid_here);
              } else
                return En($, _._0_modifier_must_precede_1_modifier, "export", "default");
              R |= 1024;
              break;
            case 136:
              if (R & 2)
                return En($, _._0_modifier_already_seen, "declare");
              if (R & 512)
                return En($, _._0_modifier_cannot_be_used_in_an_ambient_context, "async");
              if (R & 16384)
                return En($, _._0_modifier_cannot_be_used_in_an_ambient_context, "override");
              if (di(n.parent) && !to(n))
                return En($, _._0_modifier_cannot_appear_on_class_elements_of_this_kind, "declare");
              if (n.kind === 166)
                return En($, _._0_modifier_cannot_appear_on_a_parameter, "declare");
              if (n.parent.flags & 16777216 && n.parent.kind === 265)
                return En($, _.A_declare_modifier_cannot_be_used_in_an_already_ambient_context);
              if ($u(n))
                return En($, _._0_modifier_cannot_be_used_with_a_private_identifier, "declare");
              if (R & 128)
                return En($, _._0_modifier_cannot_be_used_with_1_modifier, "declare", "accessor");
              R |= 2, u = $;
              break;
            case 126:
              if (R & 256)
                return En($, _._0_modifier_already_seen, "abstract");
              if (n.kind !== 260 && n.kind !== 182) {
                if (n.kind !== 171 && n.kind !== 169 && n.kind !== 174 && n.kind !== 175)
                  return En($, _.abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration);
                if (!(n.parent.kind === 260 && Yr(n.parent, 256)))
                  return En($, _.Abstract_methods_can_only_appear_within_an_abstract_class);
                if (R & 32)
                  return En($, _._0_modifier_cannot_be_used_with_1_modifier, "static", "abstract");
                if (R & 8)
                  return En($, _._0_modifier_cannot_be_used_with_1_modifier, "private", "abstract");
                if (R & 512 && p)
                  return En(p, _._0_modifier_cannot_be_used_with_1_modifier, "async", "abstract");
                if (R & 16384)
                  return En($, _._0_modifier_must_precede_1_modifier, "abstract", "override");
                if (R & 128)
                  return En($, _._0_modifier_must_precede_1_modifier, "abstract", "accessor");
              }
              if (gu(n) && n.name.kind === 80)
                return En($, _._0_modifier_cannot_be_used_with_a_private_identifier, "abstract");
              R |= 256;
              break;
            case 132:
              if (R & 512)
                return En($, _._0_modifier_already_seen, "async");
              if (R & 2 || n.parent.flags & 16777216)
                return En($, _._0_modifier_cannot_be_used_in_an_ambient_context, "async");
              if (n.kind === 166)
                return En($, _._0_modifier_cannot_appear_on_a_parameter, "async");
              if (R & 256)
                return En($, _._0_modifier_cannot_be_used_with_1_modifier, "async", "abstract");
              R |= 512, p = $;
              break;
            case 101:
            case 145:
              const _t = $.kind === 101 ? 32768 : 65536, Bt = $.kind === 101 ? "in" : "out";
              if (n.kind !== 165 || !(nd(n.parent) || di(n.parent) || em(n.parent)))
                return En($, _._0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias, Bt);
              if (R & _t)
                return En($, _._0_modifier_already_seen, Bt);
              if (_t & 32768 && R & 65536)
                return En($, _._0_modifier_must_precede_1_modifier, "in", "out");
              R |= _t;
              break;
          }
        }
      return n.kind === 173 ? R & 32 ? En(l, _._0_modifier_cannot_appear_on_a_constructor_declaration, "static") : R & 16384 ? En(g, _._0_modifier_cannot_appear_on_a_constructor_declaration, "override") : R & 512 ? En(p, _._0_modifier_cannot_appear_on_a_constructor_declaration, "async") : !1 : (n.kind === 269 || n.kind === 268) && R & 2 ? En(u, _.A_0_modifier_cannot_be_used_with_an_import_declaration, "declare") : n.kind === 166 && R & 16476 && Xa(n.name) ? En(n, _.A_parameter_property_may_not_be_declared_using_a_binding_pattern) : n.kind === 166 && R & 16476 && n.dotDotDotToken ? En(n, _.A_parameter_property_cannot_be_declared_using_a_rest_parameter) : R & 512 ? Est(n, p) : !1;
    }
    function gst(n) {
      if (!n.modifiers)
        return !1;
      const a = yst(n);
      return a && Fc(a, _.Modifiers_cannot_appear_here);
    }
    function Noe(n, a) {
      const l = nn(n.modifiers, fo);
      return l && l.kind !== a ? l : void 0;
    }
    function yst(n) {
      switch (n.kind) {
        case 174:
        case 175:
        case 173:
        case 169:
        case 168:
        case 171:
        case 170:
        case 178:
        case 264:
        case 269:
        case 268:
        case 275:
        case 274:
        case 215:
        case 216:
        case 166:
        case 165:
          return;
        case 172:
        case 299:
        case 300:
        case 267:
        case 279:
          return nn(n.modifiers, fo);
        default:
          if (n.parent.kind === 265 || n.parent.kind === 308)
            return;
          switch (n.kind) {
            case 259:
              return Noe(n, 132);
            case 260:
            case 182:
              return Noe(n, 126);
            case 228:
            case 261:
            case 240:
            case 262:
              return nn(n.modifiers, fo);
            case 263:
              return Noe(n, 85);
            default:
              D.assertNever(n);
          }
      }
    }
    function vst(n) {
      const a = bst(n);
      return a && Fc(a, _.Decorators_are_not_valid_here);
    }
    function bst(n) {
      return HJ(n) ? nn(n.modifiers, Fu) : void 0;
    }
    function Est(n, a) {
      switch (n.kind) {
        case 171:
        case 259:
        case 215:
        case 216:
          return !1;
      }
      return En(a, _._0_modifier_cannot_be_used_here, "async");
    }
    function kS(n, a = _.Trailing_comma_not_allowed) {
      return n && n.hasTrailingComma ? Kb(n[0], n.end - 1, 1, a) : !1;
    }
    function pDe(n, a) {
      if (n && n.length === 0) {
        const l = n.pos - 1, u = Ko(a.text, n.end) + 1;
        return Kb(a, l, u - l, _.Type_parameter_list_cannot_be_empty);
      }
      return !1;
    }
    function Tst(n) {
      let a = !1;
      const l = n.length;
      for (let u = 0; u < l; u++) {
        const p = n[u];
        if (p.dotDotDotToken) {
          if (u !== l - 1)
            return En(p.dotDotDotToken, _.A_rest_parameter_must_be_last_in_a_parameter_list);
          if (p.flags & 16777216 || kS(n, _.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma), p.questionToken)
            return En(p.questionToken, _.A_rest_parameter_cannot_be_optional);
          if (p.initializer)
            return En(p.name, _.A_rest_parameter_cannot_have_an_initializer);
        } else if (lD(p)) {
          if (a = !0, p.questionToken && p.initializer)
            return En(p.name, _.Parameter_cannot_have_question_mark_and_initializer);
        } else if (a && !p.initializer)
          return En(p.name, _.A_required_parameter_cannot_follow_an_optional_parameter);
      }
    }
    function Sst(n) {
      return lr(n, (a) => !!a.initializer || Xa(a.name) || gh(a));
    }
    function xst(n) {
      if (P >= 3) {
        const a = n.body && co(n.body) && GJ(n.body.statements);
        if (a) {
          const l = Sst(n.parameters);
          if (Le(l)) {
            ze(l, (p) => {
              Xo(Ke(p, _.This_parameter_is_not_allowed_with_use_strict_directive), Nr(a, _.use_strict_directive_used_here));
            });
            const u = l.map((p, g) => g === 0 ? Nr(p, _.Non_simple_parameter_declared_here) : Nr(p, _.and_here));
            return Xo(Ke(a, _.use_strict_directive_cannot_be_used_with_non_simple_parameter_list), ...u), !0;
          }
        }
      }
      return !1;
    }
    function tj(n) {
      const a = Zn(n);
      return uh(n) || pDe(n.typeParameters, a) || Tst(n.parameters) || Cst(n, a) || Qs(n) && xst(n);
    }
    function Ast(n) {
      const a = Zn(n);
      return Dst(n) || pDe(n.typeParameters, a);
    }
    function Cst(n, a) {
      if (!Js(n))
        return !1;
      n.typeParameters && !(Le(n.typeParameters) > 1 || n.typeParameters.hasTrailingComma || n.typeParameters[0].constraint) && a && Tc(a.fileName, [".mts", ".cts"]) && En(n.typeParameters[0], _.This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint);
      const { equalsGreaterThanToken: l } = n, u = ol(a, l.pos).line, p = ol(a, l.end).line;
      return u !== p && En(l, _.Line_terminator_not_permitted_before_arrow);
    }
    function Lst(n) {
      const a = n.parameters[0];
      if (n.parameters.length !== 1)
        return En(a ? a.name : n, _.An_index_signature_must_have_exactly_one_parameter);
      if (kS(n.parameters, _.An_index_signature_cannot_have_a_trailing_comma), a.dotDotDotToken)
        return En(a.dotDotDotToken, _.An_index_signature_cannot_have_a_rest_parameter);
      if (R3(a))
        return En(a.name, _.An_index_signature_parameter_cannot_have_an_accessibility_modifier);
      if (a.questionToken)
        return En(a.questionToken, _.An_index_signature_parameter_cannot_have_a_question_mark);
      if (a.initializer)
        return En(a.name, _.An_index_signature_parameter_cannot_have_an_initializer);
      if (!a.type)
        return En(a.name, _.An_index_signature_parameter_must_have_a_type_annotation);
      const l = fi(a.type);
      return Qh(l, (u) => !!(u.flags & 8576)) || CL(l) ? En(a.name, _.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead) : lh(l, SU) ? n.type ? !1 : En(n, _.An_index_signature_must_have_a_type_annotation) : En(a.name, _.An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type);
    }
    function Ist(n) {
      return uh(n) || Lst(n);
    }
    function kst(n, a) {
      if (a && a.length === 0) {
        const l = Zn(n), u = a.pos - 1, p = Ko(l.text, a.end) + 1;
        return Kb(l, u, p - u, _.Type_argument_list_cannot_be_empty);
      }
      return !1;
    }
    function A4(n, a) {
      return kS(a) || kst(n, a);
    }
    function wst(n) {
      return n.questionDotToken || n.flags & 32 ? En(n.template, _.Tagged_template_expressions_are_not_permitted_in_an_optional_chain) : !1;
    }
    function mDe(n) {
      const a = n.types;
      if (kS(a))
        return !0;
      if (a && a.length === 0) {
        const l = yo(n.token);
        return Kb(n, a.pos, 0, _._0_list_cannot_be_empty, l);
      }
      return kt(a, hDe);
    }
    function hDe(n) {
      return Sy(n) && Lk(n.expression) && n.typeArguments ? En(n, _.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments) : A4(n, n.typeArguments);
    }
    function Dst(n) {
      let a = !1, l = !1;
      if (!uh(n) && n.heritageClauses)
        for (const u of n.heritageClauses) {
          if (u.token === 94) {
            if (a)
              return Fc(u, _.extends_clause_already_seen);
            if (l)
              return Fc(u, _.extends_clause_must_precede_implements_clause);
            if (u.types.length > 1)
              return Fc(u.types[1], _.Classes_can_only_extend_a_single_class);
            a = !0;
          } else {
            if (D.assert(u.token === 117), l)
              return Fc(u, _.implements_clause_already_seen);
            l = !0;
          }
          mDe(u);
        }
    }
    function Rst(n) {
      let a = !1;
      if (n.heritageClauses)
        for (const l of n.heritageClauses) {
          if (l.token === 94) {
            if (a)
              return Fc(l, _.extends_clause_already_seen);
            a = !0;
          } else
            return D.assert(l.token === 117), Fc(l, _.Interface_declaration_cannot_have_implements_clause);
          mDe(l);
        }
      return !1;
    }
    function nj(n) {
      if (n.kind !== 164)
        return !1;
      const a = n;
      return a.expression.kind === 223 && a.expression.operatorToken.kind === 27 ? En(a.expression, _.A_comma_expression_is_not_allowed_in_a_computed_property_name) : !1;
    }
    function Ooe(n) {
      if (n.asteriskToken) {
        if (D.assert(n.kind === 259 || n.kind === 215 || n.kind === 171), n.flags & 16777216)
          return En(n.asteriskToken, _.Generators_are_not_allowed_in_an_ambient_context);
        if (!n.body)
          return En(n.asteriskToken, _.An_overload_signature_cannot_be_declared_as_a_generator);
      }
    }
    function Poe(n, a) {
      return !!n && En(n, a);
    }
    function gDe(n, a) {
      return !!n && En(n, a);
    }
    function Nst(n, a) {
      const l = /* @__PURE__ */ new Map();
      for (const u of n.properties) {
        if (u.kind === 301) {
          if (a) {
            const x = js(u.expression);
            if (Bu(x) || Ls(x))
              return En(u.expression, _.A_rest_element_cannot_contain_a_binding_pattern);
          }
          continue;
        }
        const p = u.name;
        if (p.kind === 164 && nj(p), u.kind === 300 && !a && u.objectAssignmentInitializer && En(u.equalsToken, _.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern), p.kind === 80 && En(p, _.Private_identifiers_are_not_allowed_outside_class_bodies), K_(u) && u.modifiers)
          for (const x of u.modifiers)
            fo(x) && (x.kind !== 132 || u.kind !== 171) && En(x, _._0_modifier_cannot_be_used_here, Sc(x));
        else if (v_e(u) && u.modifiers)
          for (const x of u.modifiers)
            fo(x) && En(x, _._0_modifier_cannot_be_used_here, Sc(x));
        let g;
        switch (u.kind) {
          case 300:
          case 299:
            gDe(u.exclamationToken, _.A_definite_assignment_assertion_is_not_permitted_in_this_context), Poe(u.questionToken, _.An_object_member_cannot_be_declared_optional), p.kind === 8 && Boe(p), g = 4;
            break;
          case 171:
            g = 8;
            break;
          case 174:
            g = 1;
            break;
          case 175:
            g = 2;
            break;
          default:
            throw D.assertNever(u, "Unexpected syntax kind:" + u.kind);
        }
        if (!a) {
          const x = T1(p);
          if (x === void 0)
            continue;
          const R = l.get(x);
          if (!R)
            l.set(x, g);
          else if (g & 8 && R & 8)
            En(p, _.Duplicate_identifier_0, Sc(p));
          else if (g & 4 && R & 4)
            En(p, _.An_object_literal_cannot_have_multiple_properties_with_the_same_name, Sc(p));
          else if (g & 3 && R & 3)
            if (R !== 3 && g !== R)
              l.set(x, g | R);
            else
              return En(p, _.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name);
          else
            return En(p, _.An_object_literal_cannot_have_property_and_accessor_with_the_same_name);
        }
      }
    }
    function Ost(n) {
      Pst(n.tagName), A4(n, n.typeArguments);
      const a = /* @__PURE__ */ new Map();
      for (const l of n.attributes.properties) {
        if (l.kind === 290)
          continue;
        const { name: u, initializer: p } = l;
        if (!a.get(u.escapedText))
          a.set(u.escapedText, !0);
        else
          return En(u, _.JSX_elements_cannot_have_multiple_attributes_with_the_same_name);
        if (p && p.kind === 291 && !p.expression)
          return En(p, _.JSX_attributes_must_only_be_assigned_a_non_empty_expression);
      }
    }
    function Pst(n) {
      if (Fr(n)) {
        let l = n;
        do {
          const p = a(l.name);
          if (p)
            return p;
          l = l.expression;
        } while (Fr(l));
        const u = a(l);
        if (u)
          return u;
      }
      function a(l) {
        if (je(l) && Mr(l).indexOf(":") !== -1)
          return En(l, _.JSX_property_access_expressions_cannot_include_JSX_namespace_names);
      }
    }
    function Mst(n) {
      if (n.expression && Vk(n.expression))
        return En(n.expression, _.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array);
    }
    function yDe(n) {
      if (Zh(n))
        return !0;
      if (n.kind === 247 && n.awaitModifier && !(n.flags & 32768)) {
        const a = Zn(n);
        if (c3(n)) {
          if (!Jb(a))
            switch (QS(a, Y) || Qo.add(Nr(n.awaitModifier, _.for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module)), de) {
              case 100:
              case 199:
                if (a.impliedNodeFormat === 1) {
                  Qo.add(Nr(n.awaitModifier, _.The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level));
                  break;
                }
              case 7:
              case 99:
              case 4:
                if (P >= 4)
                  break;
              default:
                Qo.add(Nr(n.awaitModifier, _.Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher));
                break;
            }
        } else if (!Jb(a)) {
          const l = Nr(n.awaitModifier, _.for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules), u = Cf(n);
          if (u && u.kind !== 173) {
            D.assert((Vc(u) & 2) === 0, "Enclosing function should never be an async function.");
            const p = Nr(u, _.Did_you_mean_to_mark_this_function_as_async);
            Xo(l, p);
          }
          return Qo.add(l), !0;
        }
        return !1;
      }
      if (NO(n) && !(n.flags & 32768) && je(n.initializer) && n.initializer.escapedText === "async")
        return En(n.initializer, _.The_left_hand_side_of_a_for_of_statement_may_not_be_async), !1;
      if (n.initializer.kind === 258) {
        const a = n.initializer;
        if (!Foe(a)) {
          const l = a.declarations;
          if (!l.length)
            return !1;
          if (l.length > 1) {
            const p = n.kind === 246 ? _.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement : _.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement;
            return Fc(a.declarations[1], p);
          }
          const u = l[0];
          if (u.initializer) {
            const p = n.kind === 246 ? _.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer : _.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer;
            return En(u.name, p);
          }
          if (u.type) {
            const p = n.kind === 246 ? _.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation : _.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation;
            return En(u, p);
          }
        }
      }
      return !1;
    }
    function Fst(n) {
      if (!(n.flags & 16777216) && n.parent.kind !== 184 && n.parent.kind !== 261) {
        if (P < 1)
          return En(n.name, _.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher);
        if (P < 2 && Ni(n.name))
          return En(n.name, _.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);
        if (n.body === void 0 && !Yr(n, 256))
          return Kb(n, n.end - 1, 1, _._0_expected, "{");
      }
      if (n.body) {
        if (Yr(n, 256))
          return En(n, _.An_abstract_accessor_cannot_have_an_implementation);
        if (n.parent.kind === 184 || n.parent.kind === 261)
          return En(n.body, _.An_implementation_cannot_be_declared_in_ambient_contexts);
      }
      if (n.typeParameters)
        return En(n.name, _.An_accessor_cannot_have_type_parameters);
      if (!Bst(n))
        return En(n.name, n.kind === 174 ? _.A_get_accessor_cannot_have_parameters : _.A_set_accessor_must_have_exactly_one_parameter);
      if (n.kind === 175) {
        if (n.type)
          return En(n.name, _.A_set_accessor_cannot_have_a_return_type_annotation);
        const a = D.checkDefined($I(n), "Return value does not match parameter count assertion.");
        if (a.dotDotDotToken)
          return En(a.dotDotDotToken, _.A_set_accessor_cannot_have_rest_parameter);
        if (a.questionToken)
          return En(a.questionToken, _.A_set_accessor_cannot_have_an_optional_parameter);
        if (a.initializer)
          return En(n.name, _.A_set_accessor_parameter_cannot_have_an_initializer);
      }
      return !1;
    }
    function Bst(n) {
      return Moe(n) || n.parameters.length === (n.kind === 174 ? 0 : 1);
    }
    function Moe(n) {
      if (n.parameters.length === (n.kind === 174 ? 1 : 2))
        return S1(n);
    }
    function Gst(n) {
      if (n.operator === 156) {
        if (n.type.kind !== 153)
          return En(n.type, _._0_expected, yo(153));
        let a = DN(n.parent);
        if (fr(a) && wT(a)) {
          const l = ix(a);
          l && (a = qA(l) || l);
        }
        switch (a.kind) {
          case 257:
            const l = a;
            if (l.name.kind !== 79)
              return En(n, _.unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name);
            if (!i3(l))
              return En(n, _.unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement);
            if (!(l.parent.flags & 2))
              return En(a.name, _.A_variable_whose_type_is_a_unique_symbol_type_must_be_const);
            break;
          case 169:
            if (!Ja(a) || !QI(a))
              return En(a.name, _.A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly);
            break;
          case 168:
            if (!Yr(a, 64))
              return En(a.name, _.A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly);
            break;
          default:
            return En(n, _.unique_symbol_types_are_not_allowed_here);
        }
      } else if (n.operator === 146 && n.type.kind !== 185 && n.type.kind !== 186)
        return Fc(n, _.readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types, yo(153));
    }
    function XL(n, a) {
      if (_Ye(n))
        return En(n, a);
    }
    function vDe(n) {
      if (tj(n))
        return !0;
      if (n.kind === 171) {
        if (n.parent.kind === 207) {
          if (n.modifiers && !(n.modifiers.length === 1 && us(n.modifiers).kind === 132))
            return Fc(n, _.Modifiers_cannot_appear_here);
          if (Poe(n.questionToken, _.An_object_member_cannot_be_declared_optional))
            return !0;
          if (gDe(n.exclamationToken, _.A_definite_assignment_assertion_is_not_permitted_in_this_context))
            return !0;
          if (n.body === void 0)
            return Kb(n, n.end - 1, 1, _._0_expected, "{");
        }
        if (Ooe(n))
          return !0;
      }
      if (di(n.parent)) {
        if (P < 2 && Ni(n.name))
          return En(n.name, _.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);
        if (n.flags & 16777216)
          return XL(n.name, _.A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);
        if (n.kind === 171 && !n.body)
          return XL(n.name, _.A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);
      } else {
        if (n.parent.kind === 261)
          return XL(n.name, _.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);
        if (n.parent.kind === 184)
          return XL(n.name, _.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);
      }
    }
    function Ust(n) {
      let a = n;
      for (; a; ) {
        if (CA(a))
          return En(n, _.Jump_target_cannot_cross_function_boundary);
        switch (a.kind) {
          case 253:
            if (n.label && a.label.escapedText === n.label.escapedText)
              return n.kind === 248 && !Lv(a.statement, !0) ? En(n, _.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement) : !1;
            break;
          case 252:
            if (n.kind === 249 && !n.label)
              return !1;
            break;
          default:
            if (Lv(a, !1) && !n.label)
              return !1;
            break;
        }
        a = a.parent;
      }
      if (n.label) {
        const l = n.kind === 249 ? _.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement : _.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement;
        return En(n, l);
      } else {
        const l = n.kind === 249 ? _.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement : _.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement;
        return En(n, l);
      }
    }
    function Vst(n) {
      if (n.dotDotDotToken) {
        const a = n.parent.elements;
        if (n !== qo(a))
          return En(n, _.A_rest_element_must_be_last_in_a_destructuring_pattern);
        if (kS(a, _.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma), n.propertyName)
          return En(n.name, _.A_rest_element_cannot_have_a_property_name);
      }
      if (n.dotDotDotToken && n.initializer)
        return Kb(n, n.initializer.pos - 1, 1, _.A_rest_element_cannot_have_an_initializer);
    }
    function bDe(n) {
      return Xf(n) || n.kind === 221 && n.operator === 40 && n.operand.kind === 8;
    }
    function jst(n) {
      return n.kind === 9 || n.kind === 221 && n.operator === 40 && n.operand.kind === 9;
    }
    function Hst(n) {
      if ((Fr(n) || cl(n) && bDe(n.argumentExpression)) && zl(n.expression))
        return !!(Ql(n).flags & 1056);
    }
    function EDe(n) {
      const a = n.initializer;
      if (a) {
        const l = !(bDe(a) || Hst(a) || a.kind === 110 || a.kind === 95 || jst(a));
        if ((e3(n) || Ki(n) && ug(n)) && !n.type) {
          if (l)
            return En(a, _.A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference);
        } else
          return En(a, _.Initializers_are_not_allowed_in_ambient_contexts);
      }
    }
    function Wst(n) {
      if (n.parent.parent.kind !== 246 && n.parent.parent.kind !== 247) {
        if (n.flags & 16777216)
          EDe(n);
        else if (!n.initializer) {
          if (Xa(n.name) && !Xa(n.parent))
            return En(n, _.A_destructuring_declaration_must_have_an_initializer);
          if (ug(n))
            return En(n, _.const_declarations_must_be_initialized);
        }
      }
      if (n.exclamationToken && (n.parent.parent.kind !== 240 || !n.type || n.initializer || n.flags & 16777216)) {
        const l = n.initializer ? _.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions : n.type ? _.A_definite_assignment_assertion_is_not_permitted_in_this_context : _.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations;
        return En(n.exclamationToken, l);
      }
      return (de < 5 || Zn(n).impliedNodeFormat === 1) && de !== 4 && !(n.parent.parent.flags & 16777216) && Yr(n.parent.parent, 1) && TDe(n.name), (FI(n) || ug(n)) && SDe(n.name);
    }
    function TDe(n) {
      if (n.kind === 79) {
        if (Mr(n) === "__esModule")
          return Jst("noEmit", n, _.Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules);
      } else {
        const a = n.elements;
        for (const l of a)
          if (!Rc(l))
            return TDe(l.name);
      }
      return !1;
    }
    function SDe(n) {
      if (n.kind === 79) {
        if (n.escapedText === "let")
          return En(n, _.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations);
      } else {
        const a = n.elements;
        for (const l of a)
          Rc(l) || SDe(l.name);
      }
      return !1;
    }
    function Foe(n) {
      const a = n.declarations;
      return kS(n.declarations) ? !0 : n.declarations.length ? !1 : Kb(n, a.pos, a.end - a.pos, _.Variable_declaration_list_cannot_be_empty);
    }
    function xDe(n) {
      switch (n.kind) {
        case 242:
        case 243:
        case 244:
        case 251:
        case 245:
        case 246:
        case 247:
          return !1;
        case 253:
          return xDe(n.parent);
      }
      return !0;
    }
    function zst(n) {
      if (!xDe(n.parent)) {
        if (FI(n.declarationList))
          return En(n, _.let_declarations_can_only_be_declared_inside_a_block);
        if (ug(n.declarationList))
          return En(n, _.const_declarations_can_only_be_declared_inside_a_block);
      }
    }
    function qst(n) {
      const a = n.name.escapedText;
      switch (n.keywordToken) {
        case 103:
          if (a !== "target")
            return En(n.name, _._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2, n.name.escapedText, yo(n.keywordToken), "target");
          break;
        case 100:
          if (a !== "meta")
            return En(n.name, _._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2, n.name.escapedText, yo(n.keywordToken), "meta");
          break;
      }
    }
    function Jb(n) {
      return n.parseDiagnostics.length > 0;
    }
    function Fc(n, a, l, u, p) {
      const g = Zn(n);
      if (!Jb(g)) {
        const x = gy(g, n.pos);
        return Qo.add(Dc(g, x.start, x.length, a, l, u, p)), !0;
      }
      return !1;
    }
    function Kb(n, a, l, u, p, g, x) {
      const R = Zn(n);
      return Jb(R) ? !1 : (Qo.add(Dc(R, a, l, u, p, g, x)), !0);
    }
    function Jst(n, a, l, u, p, g) {
      const x = Zn(a);
      return Jb(x) ? !1 : (i0(n, a, l, u, p, g), !0);
    }
    function En(n, a, l, u, p) {
      const g = Zn(n);
      return Jb(g) ? !1 : (Qo.add(Nr(n, a, l, u, p)), !0);
    }
    function Kst(n) {
      const a = fr(n) ? D3(n) : void 0, l = n.typeParameters || a && Yc(a);
      if (l) {
        const u = l.pos === l.end ? l.pos : Ko(Zn(n).text, l.pos);
        return Kb(n, u, l.end - u, _.Type_parameters_cannot_appear_on_a_constructor_declaration);
      }
    }
    function Xst(n) {
      const a = n.type || yp(n);
      if (a)
        return En(a, _.Type_annotation_cannot_appear_on_a_constructor_declaration);
    }
    function Yst(n) {
      if (As(n.name) && br(n.name.expression) && n.name.expression.operatorToken.kind === 101)
        return En(n.parent.members[0], _.A_mapped_type_may_not_declare_properties_or_methods);
      if (di(n.parent)) {
        if (jo(n.name) && n.name.text === "constructor")
          return En(n.name, _.Classes_may_not_have_a_field_named_constructor);
        if (XL(n.name, _.A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type))
          return !0;
        if (P < 2 && Ni(n.name))
          return En(n.name, _.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);
        if (P < 2 && af(n))
          return En(n.name, _.Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher);
        if (af(n) && Poe(n.questionToken, _.An_accessor_property_cannot_be_declared_optional))
          return !0;
      } else if (n.parent.kind === 261) {
        if (XL(n.name, _.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type))
          return !0;
        if (D.assertNode(n, If), n.initializer)
          return En(n.initializer, _.An_interface_property_cannot_have_an_initializer);
      } else if (uf(n.parent)) {
        if (XL(n.name, _.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type))
          return !0;
        if (D.assertNode(n, If), n.initializer)
          return En(n.initializer, _.A_type_literal_property_cannot_have_an_initializer);
      }
      if (n.flags & 16777216 && EDe(n), to(n) && n.exclamationToken && (!di(n.parent) || !n.type || n.initializer || n.flags & 16777216 || Ja(n) || A1(n))) {
        const a = n.initializer ? _.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions : n.type ? _.A_definite_assignment_assertion_is_not_permitted_in_this_context : _.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations;
        return En(n.exclamationToken, a);
      }
    }
    function $st(n) {
      return n.kind === 261 || n.kind === 262 || n.kind === 269 || n.kind === 268 || n.kind === 275 || n.kind === 274 || n.kind === 267 || Yr(n, 1027) ? !1 : Fc(n, _.Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier);
    }
    function Qst(n) {
      for (const a of n.statements)
        if ((vu(a) || a.kind === 240) && $st(a))
          return !0;
      return !1;
    }
    function Zst(n) {
      return !!(n.flags & 16777216) && Qst(n);
    }
    function Zh(n) {
      if (n.flags & 16777216) {
        if (!Jr(n).hasReportedStatementInAmbientContext && (Ka(n.parent) || V0(n.parent)))
          return Jr(n).hasReportedStatementInAmbientContext = Fc(n, _.An_implementation_cannot_be_declared_in_ambient_contexts);
        if (n.parent.kind === 238 || n.parent.kind === 265 || n.parent.kind === 308) {
          const l = Jr(n.parent);
          if (!l.hasReportedStatementInAmbientContext)
            return l.hasReportedStatementInAmbientContext = Fc(n, _.Statements_are_not_allowed_in_ambient_contexts);
        }
      }
      return !1;
    }
    function Boe(n) {
      if (n.numericLiteralFlags & 32) {
        let a;
        if (P >= 1 ? a = _.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0 : oz(n, 198) ? a = _.Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0 : oz(n, 302) && (a = _.Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0), a) {
          const l = Bv(n.parent) && n.parent.operator === 40, u = (l ? "-" : "") + "0o" + n.text;
          return En(l ? n.parent : n, a, u);
        }
      }
      return elt(n), !1;
    }
    function elt(n) {
      const a = Sc(n).indexOf(".") !== -1, l = n.numericLiteralFlags & 16;
      a || l || +n.text <= 2 ** 53 - 1 || My(!1, Nr(n, _.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers));
    }
    function tlt(n) {
      return !!(!(Z0(n.parent) || Bv(n.parent) && Z0(n.parent.parent)) && P < 7 && En(n, _.BigInt_literals_are_not_available_when_targeting_lower_than_ES2020));
    }
    function nlt(n, a, l, u, p) {
      const g = Zn(n);
      if (!Jb(g)) {
        const x = gy(g, n.pos);
        return Qo.add(Dc(g, iu(x), 0, a, l, u, p)), !0;
      }
      return !1;
    }
    function rlt() {
      return ls || (ls = [], We.forEach((n, a) => {
        U5.test(a) && ls.push(n);
      })), ls;
    }
    function ilt(n) {
      var a;
      return n.isTypeOnly && n.name && n.namedBindings ? En(n, _.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both) : n.isTypeOnly && ((a = n.namedBindings) == null ? void 0 : a.kind) === 272 ? ADe(n.namedBindings) : !1;
    }
    function ADe(n) {
      return !!ze(n.elements, (a) => {
        if (a.isTypeOnly)
          return Fc(a, a.kind === 273 ? _.The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement : _.The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement);
      });
    }
    function alt(n) {
      if (Y.verbatimModuleSyntax && de === 1)
        return En(n, _.ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled);
      if (de === 5)
        return En(n, _.Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext);
      if (n.typeArguments)
        return En(n, _.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments);
      const a = n.arguments;
      if (de !== 99 && de !== 199 && de !== 100 && (kS(a), a.length > 1)) {
        const u = a[1];
        return En(u, _.Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nodenext);
      }
      if (a.length === 0 || a.length > 2)
        return En(n, _.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments);
      const l = nn(a, Lh);
      return l ? En(l, _.Argument_of_dynamic_import_cannot_be_spread_element) : !1;
    }
    function olt(n, a) {
      const l = ti(n);
      if (l & 20 && a.flags & 1048576)
        return nn(a.types, (u) => {
          if (u.flags & 524288) {
            const p = l & ti(u);
            if (p & 4)
              return n.target === u.target;
            if (p & 16)
              return !!n.aliasSymbol && n.aliasSymbol === u.aliasSymbol;
          }
          return !1;
        });
    }
    function slt(n, a) {
      if (ti(n) & 128 && Qh(a, w0))
        return nn(a.types, (l) => !w0(l));
    }
    function llt(n, a) {
      let l = 0;
      if (za(n, l).length > 0 || (l = 1, za(n, l).length > 0))
        return nn(a.types, (p) => za(p, l).length > 0);
    }
    function clt(n, a) {
      let l;
      if (!(n.flags & 406978556)) {
        let u = 0;
        for (const p of a.types)
          if (!(p.flags & 406978556)) {
            const g = wo([gm(n), gm(p)]);
            if (g.flags & 4194304)
              return p;
            if (dp(g) || g.flags & 1048576) {
              const x = g.flags & 1048576 ? Bc(g.types, dp) : 1;
              x >= u && (l = p, u = x);
            }
          }
      }
      return l;
    }
    function ult(n) {
      if (pl(n, 67108864)) {
        const a = _c(n, (l) => !(l.flags & 134348796));
        if (!(a.flags & 131072))
          return a;
      }
      return n;
    }
    function CDe(n, a, l, u) {
      if (a.flags & 1048576 && n.flags & 2621440) {
        const p = WLe(a, n);
        if (p)
          return p;
        const g = ms(n);
        if (g) {
          const x = HLe(g, a);
          if (x)
            return Iie(a, jt(x, (R) => [() => ar(R), R.escapedName]), l, void 0, u);
        }
      }
    }
  }
  function fMe(e) {
    return !V0(e);
  }
  function Vme(e) {
    return e.kind !== 259 && e.kind !== 171 || !!e.body;
  }
  function jme(e) {
    switch (e.parent.kind) {
      case 273:
      case 278:
        return je(e);
      default:
        return _g(e);
    }
  }
  function Hme(e) {
    switch (e) {
      case 0:
        return "yieldType";
      case 1:
        return "returnType";
      case 2:
        return "nextType";
    }
  }
  function Eu(e) {
    return !!(e.flags & 1);
  }
  function $K(e) {
    return !!(e.flags & 2);
  }
  function _Me(e) {
    return {
      getCommonSourceDirectory: e.getCommonSourceDirectory ? () => e.getCommonSourceDirectory() : () => "",
      getCurrentDirectory: () => e.getCurrentDirectory(),
      getSymlinkCache: Uo(e, e.getSymlinkCache),
      getPackageJsonInfoCache: () => {
        var t;
        return (t = e.getPackageJsonInfoCache) == null ? void 0 : t.call(e);
      },
      useCaseSensitiveFileNames: Uo(e, e.useCaseSensitiveFileNames),
      redirectTargetsMap: e.redirectTargetsMap,
      getProjectReferenceRedirect: (t) => e.getProjectReferenceRedirect(t),
      isSourceOfProjectReferenceRedirect: (t) => e.isSourceOfProjectReferenceRedirect(t),
      fileExists: (t) => e.fileExists(t),
      getFileIncludeReasons: () => e.getFileIncludeReasons(),
      readFile: e.readFile ? (t) => e.readFile(t) : void 0
    };
  }
  var U5, T8, QK, ZK, eX, tX, V5, j5, H5, W5, Wme, S8, nX, kf, x8, pMe = C({
    "src/compiler/checker.ts"() {
      Oa(), XK(), s1(), U5 = /^".+"$/, T8 = "(anonymous)", QK = 1, ZK = 1, eX = 1, tX = 1, V5 = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.TypeofEQString = 1] = "TypeofEQString", e[e.TypeofEQNumber = 2] = "TypeofEQNumber", e[e.TypeofEQBigInt = 4] = "TypeofEQBigInt", e[e.TypeofEQBoolean = 8] = "TypeofEQBoolean", e[e.TypeofEQSymbol = 16] = "TypeofEQSymbol", e[e.TypeofEQObject = 32] = "TypeofEQObject", e[e.TypeofEQFunction = 64] = "TypeofEQFunction", e[e.TypeofEQHostObject = 128] = "TypeofEQHostObject", e[e.TypeofNEString = 256] = "TypeofNEString", e[e.TypeofNENumber = 512] = "TypeofNENumber", e[e.TypeofNEBigInt = 1024] = "TypeofNEBigInt", e[e.TypeofNEBoolean = 2048] = "TypeofNEBoolean", e[e.TypeofNESymbol = 4096] = "TypeofNESymbol", e[e.TypeofNEObject = 8192] = "TypeofNEObject", e[e.TypeofNEFunction = 16384] = "TypeofNEFunction", e[e.TypeofNEHostObject = 32768] = "TypeofNEHostObject", e[e.EQUndefined = 65536] = "EQUndefined", e[e.EQNull = 131072] = "EQNull", e[e.EQUndefinedOrNull = 262144] = "EQUndefinedOrNull", e[e.NEUndefined = 524288] = "NEUndefined", e[e.NENull = 1048576] = "NENull", e[e.NEUndefinedOrNull = 2097152] = "NEUndefinedOrNull", e[e.Truthy = 4194304] = "Truthy", e[e.Falsy = 8388608] = "Falsy", e[e.IsUndefined = 16777216] = "IsUndefined", e[e.IsNull = 33554432] = "IsNull", e[e.IsUndefinedOrNull = 50331648] = "IsUndefinedOrNull", e[e.All = 134217727] = "All", e[e.BaseStringStrictFacts = 3735041] = "BaseStringStrictFacts", e[e.BaseStringFacts = 12582401] = "BaseStringFacts", e[e.StringStrictFacts = 16317953] = "StringStrictFacts", e[e.StringFacts = 16776705] = "StringFacts", e[e.EmptyStringStrictFacts = 12123649] = "EmptyStringStrictFacts", e[e.EmptyStringFacts = 12582401] = "EmptyStringFacts", e[e.NonEmptyStringStrictFacts = 7929345] = "NonEmptyStringStrictFacts", e[e.NonEmptyStringFacts = 16776705] = "NonEmptyStringFacts", e[e.BaseNumberStrictFacts = 3734786] = "BaseNumberStrictFacts", e[e.BaseNumberFacts = 12582146] = "BaseNumberFacts", e[e.NumberStrictFacts = 16317698] = "NumberStrictFacts", e[e.NumberFacts = 16776450] = "NumberFacts", e[e.ZeroNumberStrictFacts = 12123394] = "ZeroNumberStrictFacts", e[e.ZeroNumberFacts = 12582146] = "ZeroNumberFacts", e[e.NonZeroNumberStrictFacts = 7929090] = "NonZeroNumberStrictFacts", e[e.NonZeroNumberFacts = 16776450] = "NonZeroNumberFacts", e[e.BaseBigIntStrictFacts = 3734276] = "BaseBigIntStrictFacts", e[e.BaseBigIntFacts = 12581636] = "BaseBigIntFacts", e[e.BigIntStrictFacts = 16317188] = "BigIntStrictFacts", e[e.BigIntFacts = 16775940] = "BigIntFacts", e[e.ZeroBigIntStrictFacts = 12122884] = "ZeroBigIntStrictFacts", e[e.ZeroBigIntFacts = 12581636] = "ZeroBigIntFacts", e[e.NonZeroBigIntStrictFacts = 7928580] = "NonZeroBigIntStrictFacts", e[e.NonZeroBigIntFacts = 16775940] = "NonZeroBigIntFacts", e[e.BaseBooleanStrictFacts = 3733256] = "BaseBooleanStrictFacts", e[e.BaseBooleanFacts = 12580616] = "BaseBooleanFacts", e[e.BooleanStrictFacts = 16316168] = "BooleanStrictFacts", e[e.BooleanFacts = 16774920] = "BooleanFacts", e[e.FalseStrictFacts = 12121864] = "FalseStrictFacts", e[e.FalseFacts = 12580616] = "FalseFacts", e[e.TrueStrictFacts = 7927560] = "TrueStrictFacts", e[e.TrueFacts = 16774920] = "TrueFacts", e[e.SymbolStrictFacts = 7925520] = "SymbolStrictFacts", e[e.SymbolFacts = 16772880] = "SymbolFacts", e[e.ObjectStrictFacts = 7888800] = "ObjectStrictFacts", e[e.ObjectFacts = 16736160] = "ObjectFacts", e[e.FunctionStrictFacts = 7880640] = "FunctionStrictFacts", e[e.FunctionFacts = 16728e3] = "FunctionFacts", e[e.VoidFacts = 9830144] = "VoidFacts", e[e.UndefinedFacts = 26607360] = "UndefinedFacts", e[e.NullFacts = 42917664] = "NullFacts", e[e.EmptyObjectStrictFacts = 83427327] = "EmptyObjectStrictFacts", e[e.EmptyObjectFacts = 83886079] = "EmptyObjectFacts", e[e.UnknownFacts = 83886079] = "UnknownFacts", e[e.AllTypeofNE = 556800] = "AllTypeofNE", e[e.OrFactsMask = 8256] = "OrFactsMask", e[e.AndFactsMask = 134209471] = "AndFactsMask", e))(V5 || {}), j5 = new Map(Object.entries({
        string: 256,
        number: 512,
        bigint: 1024,
        boolean: 2048,
        symbol: 4096,
        undefined: 524288,
        object: 8192,
        function: 16384
      })), H5 = /* @__PURE__ */ ((e) => (e[e.Normal = 0] = "Normal", e[e.Contextual = 1] = "Contextual", e[e.Inferential = 2] = "Inferential", e[e.SkipContextSensitive = 4] = "SkipContextSensitive", e[e.SkipGenericFunctions = 8] = "SkipGenericFunctions", e[e.IsForSignatureHelp = 16] = "IsForSignatureHelp", e[e.IsForStringLiteralArgumentCompletions = 32] = "IsForStringLiteralArgumentCompletions", e[e.RestBindingElement = 64] = "RestBindingElement", e))(H5 || {}), W5 = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.BivariantCallback = 1] = "BivariantCallback", e[e.StrictCallback = 2] = "StrictCallback", e[e.IgnoreReturnTypes = 4] = "IgnoreReturnTypes", e[e.StrictArity = 8] = "StrictArity", e[e.StrictTopSignature = 16] = "StrictTopSignature", e[e.Callback = 3] = "Callback", e))(W5 || {}), Wme = J4(Vme, fMe), S8 = new Map(Object.entries({
        Uppercase: 0,
        Lowercase: 1,
        Capitalize: 2,
        Uncapitalize: 3
      })), nX = class {
      }, ((e) => {
        e.JSX = "JSX", e.IntrinsicElements = "IntrinsicElements", e.ElementClass = "ElementClass", e.ElementAttributesPropertyNameContainer = "ElementAttributesProperty", e.ElementChildrenAttributeNameContainer = "ElementChildrenAttribute", e.Element = "Element", e.IntrinsicAttributes = "IntrinsicAttributes", e.IntrinsicClassAttributes = "IntrinsicClassAttributes", e.LibraryManagedAttributes = "LibraryManagedAttributes";
      })(kf || (kf = {})), x8 = class {
        constructor(e, t, r) {
          this.moduleResolverHost = void 0, this.inner = void 0, this.disableTrackSymbol = !1;
          for (var i; t instanceof x8; )
            t = t.inner;
          this.inner = t, this.moduleResolverHost = r, this.context = e, this.canTrackSymbol = !!((i = this.inner) != null && i.trackSymbol);
        }
        trackSymbol(e, t, r) {
          var i;
          return (i = this.inner) != null && i.trackSymbol && !this.disableTrackSymbol && this.inner.trackSymbol(e, t, r) ? (this.onDiagnosticReported(), !0) : !1;
        }
        reportInaccessibleThisError() {
          var e;
          (e = this.inner) != null && e.reportInaccessibleThisError && (this.onDiagnosticReported(), this.inner.reportInaccessibleThisError());
        }
        reportPrivateInBaseOfClassExpression(e) {
          var t;
          (t = this.inner) != null && t.reportPrivateInBaseOfClassExpression && (this.onDiagnosticReported(), this.inner.reportPrivateInBaseOfClassExpression(e));
        }
        reportInaccessibleUniqueSymbolError() {
          var e;
          (e = this.inner) != null && e.reportInaccessibleUniqueSymbolError && (this.onDiagnosticReported(), this.inner.reportInaccessibleUniqueSymbolError());
        }
        reportCyclicStructureError() {
          var e;
          (e = this.inner) != null && e.reportCyclicStructureError && (this.onDiagnosticReported(), this.inner.reportCyclicStructureError());
        }
        reportLikelyUnsafeImportRequiredError(e) {
          var t;
          (t = this.inner) != null && t.reportLikelyUnsafeImportRequiredError && (this.onDiagnosticReported(), this.inner.reportLikelyUnsafeImportRequiredError(e));
        }
        reportTruncationError() {
          var e;
          (e = this.inner) != null && e.reportTruncationError && (this.onDiagnosticReported(), this.inner.reportTruncationError());
        }
        trackReferencedAmbientModule(e, t) {
          var r;
          (r = this.inner) != null && r.trackReferencedAmbientModule && (this.onDiagnosticReported(), this.inner.trackReferencedAmbientModule(e, t));
        }
        trackExternalModuleSymbolOfImportTypeNode(e) {
          var t;
          (t = this.inner) != null && t.trackExternalModuleSymbolOfImportTypeNode && (this.onDiagnosticReported(), this.inner.trackExternalModuleSymbolOfImportTypeNode(e));
        }
        reportNonlocalAugmentation(e, t, r) {
          var i;
          (i = this.inner) != null && i.reportNonlocalAugmentation && (this.onDiagnosticReported(), this.inner.reportNonlocalAugmentation(e, t, r));
        }
        reportNonSerializableProperty(e) {
          var t;
          (t = this.inner) != null && t.reportNonSerializableProperty && (this.onDiagnosticReported(), this.inner.reportNonSerializableProperty(e));
        }
        reportImportTypeNodeResolutionModeOverride() {
          var e;
          (e = this.inner) != null && e.reportImportTypeNodeResolutionModeOverride && (this.onDiagnosticReported(), this.inner.reportImportTypeNodeResolutionModeOverride());
        }
        onDiagnosticReported() {
          this.context.reportedDiagnostic = !0;
        }
      };
    }
  });
  function lt(e, t, r, i) {
    if (e === void 0)
      return e;
    const o = t(e);
    let s;
    if (o !== void 0)
      return Va(o) ? s = (i || vMe)(o) : s = o, D.assertNode(s, r), s;
  }
  function Jn(e, t, r, i, o) {
    if (e === void 0)
      return e;
    const s = e.length;
    (i === void 0 || i < 0) && (i = 0), (o === void 0 || o > s - i) && (o = s - i);
    let c, f = -1, d = -1;
    i > 0 || o < s ? c = e.hasTrailingComma && i + o === s : (f = e.pos, d = e.end, c = e.hasTrailingComma);
    const y = zme(e, t, r, i, o);
    if (y !== e) {
      const h = N.createNodeArray(y, c);
      return Vm(h, f, d), h;
    }
    return e;
  }
  function rX(e, t, r, i, o) {
    if (e === void 0)
      return e;
    const s = e.length;
    return (i === void 0 || i < 0) && (i = 0), (o === void 0 || o > s - i) && (o = s - i), zme(e, t, r, i, o);
  }
  function zme(e, t, r, i, o) {
    let s;
    const c = e.length;
    (i > 0 || o < c) && (s = []);
    for (let f = 0; f < o; f++) {
      const d = e[f + i], y = d !== void 0 ? t ? t(d) : d : void 0;
      if ((s !== void 0 || y === void 0 || y !== d) && (s === void 0 && (s = e.slice(0, f), D.assertEachNode(s, r)), y))
        if (Va(y))
          for (const h of y)
            D.assertNode(h, r), s.push(h);
        else
          D.assertNode(y, r), s.push(y);
    }
    return s || (D.assertEachNode(e, r), e);
  }
  function z5(e, t, r, i, o, s = Jn) {
    return r.startLexicalEnvironment(), e = s(e, t, wa, i), o && (e = r.factory.ensureUseStrict(e)), N.mergeLexicalEnvironment(e, r.endLexicalEnvironment());
  }
  function Kl(e, t, r, i = Jn) {
    let o;
    return r.startLexicalEnvironment(), e && (r.setLexicalEnvironmentFlags(1, !0), o = i(e, t, Ba), r.getLexicalEnvironmentFlags() & 2 && ts(r.getCompilerOptions()) >= 2 && (o = mMe(o, r)), r.setLexicalEnvironmentFlags(1, !1)), r.suspendLexicalEnvironment(), o;
  }
  function mMe(e, t) {
    let r;
    for (let i = 0; i < e.length; i++) {
      const o = e[i], s = hMe(o, t);
      (r || s !== o) && (r || (r = e.slice(0, i)), r[i] = s);
    }
    return r ? ht(t.factory.createNodeArray(r, e.hasTrailingComma), e) : e;
  }
  function hMe(e, t) {
    return e.dotDotDotToken ? e : Xa(e.name) ? gMe(e, t) : e.initializer ? yMe(e, e.name, e.initializer, t) : e;
  }
  function gMe(e, t) {
    const { factory: r } = t;
    return t.addInitializationStatement(r.createVariableStatement(void 0, r.createVariableDeclarationList([
      r.createVariableDeclaration(e.name, void 0, e.type, e.initializer ? r.createConditionalExpression(r.createStrictEquality(r.getGeneratedNameForNode(e), r.createVoidZero()), void 0, e.initializer, void 0, r.getGeneratedNameForNode(e)) : r.getGeneratedNameForNode(e))
    ]))), r.updateParameterDeclaration(e, e.modifiers, e.dotDotDotToken, r.getGeneratedNameForNode(e), e.questionToken, e.type, void 0);
  }
  function yMe(e, t, r, i) {
    const o = i.factory;
    return i.addInitializationStatement(o.createIfStatement(o.createTypeCheck(o.cloneNode(t), "undefined"), or(ht(o.createBlock([
      o.createExpressionStatement(or(ht(o.createAssignment(or(o.cloneNode(t), 96), or(r, 96 | vo(r) | 3072)), e), 3072))
    ]), e), 3905))), o.updateParameterDeclaration(e, e.modifiers, e.dotDotDotToken, e.name, e.questionToken, e.type, void 0);
  }
  function wf(e, t, r, i = lt) {
    r.resumeLexicalEnvironment();
    const o = i(e, t, UM), s = r.endLexicalEnvironment();
    if (kt(s)) {
      if (!o)
        return r.factory.createBlock(s);
      const c = r.factory.converters.convertToFunctionBlock(o), f = N.mergeLexicalEnvironment(c.statements, s);
      return r.factory.updateBlock(c, f);
    }
    return o;
  }
  function b_(e, t, r, i = lt) {
    r.startBlockScope();
    const o = i(e, t, wa, r.factory.liftToBlock);
    D.assert(o);
    const s = r.endBlockScope();
    return kt(s) ? co(o) ? (s.push(...o.statements), r.factory.updateBlock(o, s)) : (s.push(o), r.factory.createBlock(s)) : o;
  }
  function A8(e, t, r = t) {
    if (r === t || e.length <= 1)
      return Jn(e, t, vt);
    let i = 0;
    const o = e.length;
    return Jn(e, (s) => {
      const c = i < o - 1;
      return i++, c ? r(s) : t(s);
    }, vt);
  }
  function Bn(e, t, r, i = Jn, o, s = lt) {
    if (e === void 0)
      return;
    const c = qme[e.kind];
    return c === void 0 ? e : c(e, t, r, i, s, o);
  }
  function vMe(e) {
    return D.assert(e.length <= 1, "Too many nodes written to output."), Am(e);
  }
  var qme, bMe = C({
    "src/compiler/visitorPublic.ts"() {
      Oa(), qme = {
        163: function(t, r, i, o, s, c) {
          return i.factory.updateQualifiedName(t, D.checkDefined(s(t.left, r, rf)), D.checkDefined(s(t.right, r, je)));
        },
        164: function(t, r, i, o, s, c) {
          return i.factory.updateComputedPropertyName(t, D.checkDefined(s(t.expression, r, vt)));
        },
        165: function(t, r, i, o, s, c) {
          return i.factory.updateTypeParameterDeclaration(t, o(t.modifiers, r, fo), D.checkDefined(s(t.name, r, je)), s(t.constraint, r, Gi), s(t.default, r, Gi));
        },
        166: function(t, r, i, o, s, c) {
          return i.factory.updateParameterDeclaration(t, o(t.modifiers, r, nl), c ? s(t.dotDotDotToken, c, M7) : t.dotDotDotToken, D.checkDefined(s(t.name, r, hh)), c ? s(t.questionToken, c, Fv) : t.questionToken, s(t.type, r, Gi), s(t.initializer, r, vt));
        },
        167: function(t, r, i, o, s, c) {
          return i.factory.updateDecorator(t, D.checkDefined(s(t.expression, r, vt)));
        },
        168: function(t, r, i, o, s, c) {
          return i.factory.updatePropertySignature(t, o(t.modifiers, r, fo), D.checkDefined(s(t.name, r, yl)), c ? s(t.questionToken, c, Fv) : t.questionToken, s(t.type, r, Gi));
        },
        169: function(t, r, i, o, s, c) {
          var f, d;
          return i.factory.updatePropertyDeclaration(t, o(t.modifiers, r, nl), D.checkDefined(s(t.name, r, yl)), c ? s((f = t.questionToken) != null ? f : t.exclamationToken, c, b_e) : (d = t.questionToken) != null ? d : t.exclamationToken, s(t.type, r, Gi), s(t.initializer, r, vt));
        },
        170: function(t, r, i, o, s, c) {
          return i.factory.updateMethodSignature(t, o(t.modifiers, r, fo), D.checkDefined(s(t.name, r, yl)), c ? s(t.questionToken, c, Fv) : t.questionToken, o(t.typeParameters, r, Fl), o(t.parameters, r, Ba), s(t.type, r, Gi));
        },
        171: function(t, r, i, o, s, c) {
          return i.factory.updateMethodDeclaration(t, o(t.modifiers, r, nl), c ? s(t.asteriskToken, c, IO) : t.asteriskToken, D.checkDefined(s(t.name, r, yl)), c ? s(t.questionToken, c, Fv) : t.questionToken, o(t.typeParameters, r, Fl), Kl(t.parameters, r, i, o), s(t.type, r, Gi), wf(t.body, r, i, s));
        },
        173: function(t, r, i, o, s, c) {
          return i.factory.updateConstructorDeclaration(t, o(t.modifiers, r, nl), Kl(t.parameters, r, i, o), wf(t.body, r, i, s));
        },
        174: function(t, r, i, o, s, c) {
          return i.factory.updateGetAccessorDeclaration(t, o(t.modifiers, r, nl), D.checkDefined(s(t.name, r, yl)), Kl(t.parameters, r, i, o), s(t.type, r, Gi), wf(t.body, r, i, s));
        },
        175: function(t, r, i, o, s, c) {
          return i.factory.updateSetAccessorDeclaration(t, o(t.modifiers, r, nl), D.checkDefined(s(t.name, r, yl)), Kl(t.parameters, r, i, o), wf(t.body, r, i, s));
        },
        172: function(t, r, i, o, s, c) {
          return i.startLexicalEnvironment(), i.suspendLexicalEnvironment(), i.factory.updateClassStaticBlockDeclaration(t, wf(t.body, r, i, s));
        },
        176: function(t, r, i, o, s, c) {
          return i.factory.updateCallSignature(t, o(t.typeParameters, r, Fl), o(t.parameters, r, Ba), s(t.type, r, Gi));
        },
        177: function(t, r, i, o, s, c) {
          return i.factory.updateConstructSignature(t, o(t.typeParameters, r, Fl), o(t.parameters, r, Ba), s(t.type, r, Gi));
        },
        178: function(t, r, i, o, s, c) {
          return i.factory.updateIndexSignature(t, o(t.modifiers, r, nl), o(t.parameters, r, Ba), D.checkDefined(s(t.type, r, Gi)));
        },
        179: function(t, r, i, o, s, c) {
          return i.factory.updateTypePredicateNode(t, s(t.assertsModifier, r, Vfe), D.checkDefined(s(t.parameterName, r, E_e)), s(t.type, r, Gi));
        },
        180: function(t, r, i, o, s, c) {
          return i.factory.updateTypeReferenceNode(t, D.checkDefined(s(t.typeName, r, rf)), o(t.typeArguments, r, Gi));
        },
        181: function(t, r, i, o, s, c) {
          return i.factory.updateFunctionTypeNode(t, o(t.typeParameters, r, Fl), o(t.parameters, r, Ba), D.checkDefined(s(t.type, r, Gi)));
        },
        182: function(t, r, i, o, s, c) {
          return i.factory.updateConstructorTypeNode(t, o(t.modifiers, r, fo), o(t.typeParameters, r, Fl), o(t.parameters, r, Ba), D.checkDefined(s(t.type, r, Gi)));
        },
        183: function(t, r, i, o, s, c) {
          return i.factory.updateTypeQueryNode(t, D.checkDefined(s(t.exprName, r, rf)), o(t.typeArguments, r, Gi));
        },
        184: function(t, r, i, o, s, c) {
          return i.factory.updateTypeLiteralNode(t, o(t.members, r, rT));
        },
        185: function(t, r, i, o, s, c) {
          return i.factory.updateArrayTypeNode(t, D.checkDefined(s(t.elementType, r, Gi)));
        },
        186: function(t, r, i, o, s, c) {
          return i.factory.updateTupleTypeNode(t, o(t.elements, r, Gi));
        },
        187: function(t, r, i, o, s, c) {
          return i.factory.updateOptionalTypeNode(t, D.checkDefined(s(t.type, r, Gi)));
        },
        188: function(t, r, i, o, s, c) {
          return i.factory.updateRestTypeNode(t, D.checkDefined(s(t.type, r, Gi)));
        },
        189: function(t, r, i, o, s, c) {
          return i.factory.updateUnionTypeNode(t, o(t.types, r, Gi));
        },
        190: function(t, r, i, o, s, c) {
          return i.factory.updateIntersectionTypeNode(t, o(t.types, r, Gi));
        },
        191: function(t, r, i, o, s, c) {
          return i.factory.updateConditionalTypeNode(t, D.checkDefined(s(t.checkType, r, Gi)), D.checkDefined(s(t.extendsType, r, Gi)), D.checkDefined(s(t.trueType, r, Gi)), D.checkDefined(s(t.falseType, r, Gi)));
        },
        192: function(t, r, i, o, s, c) {
          return i.factory.updateInferTypeNode(t, D.checkDefined(s(t.typeParameter, r, Fl)));
        },
        202: function(t, r, i, o, s, c) {
          return i.factory.updateImportTypeNode(t, D.checkDefined(s(t.argument, r, Gi)), s(t.assertions, r, Qfe), s(t.qualifier, r, rf), o(t.typeArguments, r, Gi), t.isTypeOf);
        },
        298: function(t, r, i, o, s, c) {
          return i.factory.updateImportTypeAssertionContainer(t, D.checkDefined(s(t.assertClause, r, W7)), t.multiLine);
        },
        199: function(t, r, i, o, s, c) {
          return i.factory.updateNamedTupleMember(t, c ? s(t.dotDotDotToken, c, M7) : t.dotDotDotToken, D.checkDefined(s(t.name, r, je)), c ? s(t.questionToken, c, Fv) : t.questionToken, D.checkDefined(s(t.type, r, Gi)));
        },
        193: function(t, r, i, o, s, c) {
          return i.factory.updateParenthesizedType(t, D.checkDefined(s(t.type, r, Gi)));
        },
        195: function(t, r, i, o, s, c) {
          return i.factory.updateTypeOperatorNode(t, D.checkDefined(s(t.type, r, Gi)));
        },
        196: function(t, r, i, o, s, c) {
          return i.factory.updateIndexedAccessTypeNode(t, D.checkDefined(s(t.objectType, r, Gi)), D.checkDefined(s(t.indexType, r, Gi)));
        },
        197: function(t, r, i, o, s, c) {
          return i.factory.updateMappedTypeNode(t, c ? s(t.readonlyToken, c, T_e) : t.readonlyToken, D.checkDefined(s(t.typeParameter, r, Fl)), s(t.nameType, r, Gi), c ? s(t.questionToken, c, S_e) : t.questionToken, s(t.type, r, Gi), o(t.members, r, rT));
        },
        198: function(t, r, i, o, s, c) {
          return i.factory.updateLiteralTypeNode(t, D.checkDefined(s(t.literal, r, Lce)));
        },
        200: function(t, r, i, o, s, c) {
          return i.factory.updateTemplateLiteralType(t, D.checkDefined(s(t.head, r, mC)), o(t.templateSpans, r, Jfe));
        },
        201: function(t, r, i, o, s, c) {
          return i.factory.updateTemplateLiteralTypeSpan(t, D.checkDefined(s(t.type, r, Gi)), D.checkDefined(s(t.literal, r, MM)));
        },
        203: function(t, r, i, o, s, c) {
          return i.factory.updateObjectBindingPattern(t, o(t.elements, r, _s));
        },
        204: function(t, r, i, o, s, c) {
          return i.factory.updateArrayBindingPattern(t, o(t.elements, r, BM));
        },
        205: function(t, r, i, o, s, c) {
          return i.factory.updateBindingElement(t, c ? s(t.dotDotDotToken, c, M7) : t.dotDotDotToken, s(t.propertyName, r, yl), D.checkDefined(s(t.name, r, hh)), s(t.initializer, r, vt));
        },
        206: function(t, r, i, o, s, c) {
          return i.factory.updateArrayLiteralExpression(t, o(t.elements, r, vt));
        },
        207: function(t, r, i, o, s, c) {
          return i.factory.updateObjectLiteralExpression(t, o(t.properties, r, my));
        },
        208: function(t, r, i, o, s, c) {
          return RM(t) ? i.factory.updatePropertyAccessChain(t, D.checkDefined(s(t.expression, r, vt)), c ? s(t.questionDotToken, c, F7) : t.questionDotToken, D.checkDefined(s(t.name, r, og))) : i.factory.updatePropertyAccessExpression(t, D.checkDefined(s(t.expression, r, vt)), D.checkDefined(s(t.name, r, og)));
        },
        209: function(t, r, i, o, s, c) {
          return pW(t) ? i.factory.updateElementAccessChain(t, D.checkDefined(s(t.expression, r, vt)), c ? s(t.questionDotToken, c, F7) : t.questionDotToken, D.checkDefined(s(t.argumentExpression, r, vt))) : i.factory.updateElementAccessExpression(t, D.checkDefined(s(t.expression, r, vt)), D.checkDefined(s(t.argumentExpression, r, vt)));
        },
        210: function(t, r, i, o, s, c) {
          return tT(t) ? i.factory.updateCallChain(t, D.checkDefined(s(t.expression, r, vt)), c ? s(t.questionDotToken, c, F7) : t.questionDotToken, o(t.typeArguments, r, Gi), o(t.arguments, r, vt)) : i.factory.updateCallExpression(t, D.checkDefined(s(t.expression, r, vt)), o(t.typeArguments, r, Gi), o(t.arguments, r, vt));
        },
        211: function(t, r, i, o, s, c) {
          return i.factory.updateNewExpression(t, D.checkDefined(s(t.expression, r, vt)), o(t.typeArguments, r, Gi), o(t.arguments, r, vt));
        },
        212: function(t, r, i, o, s, c) {
          return i.factory.updateTaggedTemplateExpression(t, D.checkDefined(s(t.tag, r, vt)), o(t.typeArguments, r, Gi), D.checkDefined(s(t.template, r, IA)));
        },
        213: function(t, r, i, o, s, c) {
          return i.factory.updateTypeAssertion(t, D.checkDefined(s(t.type, r, Gi)), D.checkDefined(s(t.expression, r, vt)));
        },
        214: function(t, r, i, o, s, c) {
          return i.factory.updateParenthesizedExpression(t, D.checkDefined(s(t.expression, r, vt)));
        },
        215: function(t, r, i, o, s, c) {
          return i.factory.updateFunctionExpression(t, o(t.modifiers, r, fo), c ? s(t.asteriskToken, c, IO) : t.asteriskToken, s(t.name, r, je), o(t.typeParameters, r, Fl), Kl(t.parameters, r, i, o), s(t.type, r, Gi), wf(t.body, r, i, s));
        },
        216: function(t, r, i, o, s, c) {
          return i.factory.updateArrowFunction(t, o(t.modifiers, r, fo), o(t.typeParameters, r, Fl), Kl(t.parameters, r, i, o), s(t.type, r, Gi), c ? D.checkDefined(s(t.equalsGreaterThanToken, c, Gfe)) : t.equalsGreaterThanToken, wf(t.body, r, i, s));
        },
        217: function(t, r, i, o, s, c) {
          return i.factory.updateDeleteExpression(t, D.checkDefined(s(t.expression, r, vt)));
        },
        218: function(t, r, i, o, s, c) {
          return i.factory.updateTypeOfExpression(t, D.checkDefined(s(t.expression, r, vt)));
        },
        219: function(t, r, i, o, s, c) {
          return i.factory.updateVoidExpression(t, D.checkDefined(s(t.expression, r, vt)));
        },
        220: function(t, r, i, o, s, c) {
          return i.factory.updateAwaitExpression(t, D.checkDefined(s(t.expression, r, vt)));
        },
        221: function(t, r, i, o, s, c) {
          return i.factory.updatePrefixUnaryExpression(t, D.checkDefined(s(t.operand, r, vt)));
        },
        222: function(t, r, i, o, s, c) {
          return i.factory.updatePostfixUnaryExpression(t, D.checkDefined(s(t.operand, r, vt)));
        },
        223: function(t, r, i, o, s, c) {
          return i.factory.updateBinaryExpression(t, D.checkDefined(s(t.left, r, vt)), c ? D.checkDefined(s(t.operatorToken, c, A_e)) : t.operatorToken, D.checkDefined(s(t.right, r, vt)));
        },
        224: function(t, r, i, o, s, c) {
          return i.factory.updateConditionalExpression(t, D.checkDefined(s(t.condition, r, vt)), c ? D.checkDefined(s(t.questionToken, c, Fv)) : t.questionToken, D.checkDefined(s(t.whenTrue, r, vt)), c ? D.checkDefined(s(t.colonToken, c, Bfe)) : t.colonToken, D.checkDefined(s(t.whenFalse, r, vt)));
        },
        225: function(t, r, i, o, s, c) {
          return i.factory.updateTemplateExpression(t, D.checkDefined(s(t.head, r, mC)), o(t.templateSpans, r, Ok));
        },
        226: function(t, r, i, o, s, c) {
          return i.factory.updateYieldExpression(t, c ? s(t.asteriskToken, c, IO) : t.asteriskToken, s(t.expression, r, vt));
        },
        227: function(t, r, i, o, s, c) {
          return i.factory.updateSpreadElement(t, D.checkDefined(s(t.expression, r, vt)));
        },
        228: function(t, r, i, o, s, c) {
          return i.factory.updateClassExpression(t, o(t.modifiers, r, nl), s(t.name, r, je), o(t.typeParameters, r, Fl), o(t.heritageClauses, r, jd), o(t.members, r, Uc));
        },
        230: function(t, r, i, o, s, c) {
          return i.factory.updateExpressionWithTypeArguments(t, D.checkDefined(s(t.expression, r, vt)), o(t.typeArguments, r, Gi));
        },
        231: function(t, r, i, o, s, c) {
          return i.factory.updateAsExpression(t, D.checkDefined(s(t.expression, r, vt)), D.checkDefined(s(t.type, r, Gi)));
        },
        235: function(t, r, i, o, s, c) {
          return i.factory.updateSatisfiesExpression(t, D.checkDefined(s(t.expression, r, vt)), D.checkDefined(s(t.type, r, Gi)));
        },
        232: function(t, r, i, o, s, c) {
          return yu(t) ? i.factory.updateNonNullChain(t, D.checkDefined(s(t.expression, r, vt))) : i.factory.updateNonNullExpression(t, D.checkDefined(s(t.expression, r, vt)));
        },
        233: function(t, r, i, o, s, c) {
          return i.factory.updateMetaProperty(t, D.checkDefined(s(t.name, r, je)));
        },
        236: function(t, r, i, o, s, c) {
          return i.factory.updateTemplateSpan(t, D.checkDefined(s(t.expression, r, vt)), D.checkDefined(s(t.literal, r, MM)));
        },
        238: function(t, r, i, o, s, c) {
          return i.factory.updateBlock(t, o(t.statements, r, wa));
        },
        240: function(t, r, i, o, s, c) {
          return i.factory.updateVariableStatement(t, o(t.modifiers, r, nl), D.checkDefined(s(t.declarationList, r, Uu)));
        },
        241: function(t, r, i, o, s, c) {
          return i.factory.updateExpressionStatement(t, D.checkDefined(s(t.expression, r, vt)));
        },
        242: function(t, r, i, o, s, c) {
          return i.factory.updateIfStatement(t, D.checkDefined(s(t.expression, r, vt)), D.checkDefined(s(t.thenStatement, r, wa, i.factory.liftToBlock)), s(t.elseStatement, r, wa, i.factory.liftToBlock));
        },
        243: function(t, r, i, o, s, c) {
          return i.factory.updateDoStatement(t, b_(t.statement, r, i, s), D.checkDefined(s(t.expression, r, vt)));
        },
        244: function(t, r, i, o, s, c) {
          return i.factory.updateWhileStatement(t, D.checkDefined(s(t.expression, r, vt)), b_(t.statement, r, i, s));
        },
        245: function(t, r, i, o, s, c) {
          return i.factory.updateForStatement(t, s(t.initializer, r, Jp), s(t.condition, r, vt), s(t.incrementor, r, vt), b_(t.statement, r, i, s));
        },
        246: function(t, r, i, o, s, c) {
          return i.factory.updateForInStatement(t, D.checkDefined(s(t.initializer, r, Jp)), D.checkDefined(s(t.expression, r, vt)), b_(t.statement, r, i, s));
        },
        247: function(t, r, i, o, s, c) {
          return i.factory.updateForOfStatement(t, c ? s(t.awaitModifier, c, pJ) : t.awaitModifier, D.checkDefined(s(t.initializer, r, Jp)), D.checkDefined(s(t.expression, r, vt)), b_(t.statement, r, i, s));
        },
        248: function(t, r, i, o, s, c) {
          return i.factory.updateContinueStatement(t, s(t.label, r, je));
        },
        249: function(t, r, i, o, s, c) {
          return i.factory.updateBreakStatement(t, s(t.label, r, je));
        },
        250: function(t, r, i, o, s, c) {
          return i.factory.updateReturnStatement(t, s(t.expression, r, vt));
        },
        251: function(t, r, i, o, s, c) {
          return i.factory.updateWithStatement(t, D.checkDefined(s(t.expression, r, vt)), D.checkDefined(s(t.statement, r, wa, i.factory.liftToBlock)));
        },
        252: function(t, r, i, o, s, c) {
          return i.factory.updateSwitchStatement(t, D.checkDefined(s(t.expression, r, vt)), D.checkDefined(s(t.caseBlock, r, MO)));
        },
        253: function(t, r, i, o, s, c) {
          return i.factory.updateLabeledStatement(t, D.checkDefined(s(t.label, r, je)), D.checkDefined(s(t.statement, r, wa, i.factory.liftToBlock)));
        },
        254: function(t, r, i, o, s, c) {
          return i.factory.updateThrowStatement(t, D.checkDefined(s(t.expression, r, vt)));
        },
        255: function(t, r, i, o, s, c) {
          return i.factory.updateTryStatement(t, D.checkDefined(s(t.tryBlock, r, co)), s(t.catchClause, r, xC), s(t.finallyBlock, r, co));
        },
        257: function(t, r, i, o, s, c) {
          return i.factory.updateVariableDeclaration(t, D.checkDefined(s(t.name, r, hh)), c ? s(t.exclamationToken, c, kO) : t.exclamationToken, s(t.type, r, Gi), s(t.initializer, r, vt));
        },
        258: function(t, r, i, o, s, c) {
          return i.factory.updateVariableDeclarationList(t, o(t.declarations, r, Ki));
        },
        259: function(t, r, i, o, s, c) {
          return i.factory.updateFunctionDeclaration(t, o(t.modifiers, r, fo), c ? s(t.asteriskToken, c, IO) : t.asteriskToken, s(t.name, r, je), o(t.typeParameters, r, Fl), Kl(t.parameters, r, i, o), s(t.type, r, Gi), wf(t.body, r, i, s));
        },
        260: function(t, r, i, o, s, c) {
          return i.factory.updateClassDeclaration(t, o(t.modifiers, r, nl), s(t.name, r, je), o(t.typeParameters, r, Fl), o(t.heritageClauses, r, jd), o(t.members, r, Uc));
        },
        261: function(t, r, i, o, s, c) {
          return i.factory.updateInterfaceDeclaration(t, o(t.modifiers, r, nl), D.checkDefined(s(t.name, r, je)), o(t.typeParameters, r, Fl), o(t.heritageClauses, r, jd), o(t.members, r, rT));
        },
        262: function(t, r, i, o, s, c) {
          return i.factory.updateTypeAliasDeclaration(t, o(t.modifiers, r, nl), D.checkDefined(s(t.name, r, je)), o(t.typeParameters, r, Fl), D.checkDefined(s(t.type, r, Gi)));
        },
        263: function(t, r, i, o, s, c) {
          return i.factory.updateEnumDeclaration(t, o(t.modifiers, r, nl), D.checkDefined(s(t.name, r, je)), o(t.members, r, O1));
        },
        264: function(t, r, i, o, s, c) {
          return i.factory.updateModuleDeclaration(t, o(t.modifiers, r, nl), D.checkDefined(s(t.name, r, x_e)), s(t.body, r, wce));
        },
        265: function(t, r, i, o, s, c) {
          return i.factory.updateModuleBlock(t, o(t.statements, r, wa));
        },
        266: function(t, r, i, o, s, c) {
          return i.factory.updateCaseBlock(t, o(t.clauses, r, DW));
        },
        267: function(t, r, i, o, s, c) {
          return i.factory.updateNamespaceExportDeclaration(t, D.checkDefined(s(t.name, r, je)));
        },
        268: function(t, r, i, o, s, c) {
          return i.factory.updateImportEqualsDeclaration(t, o(t.modifiers, r, nl), t.isTypeOnly, D.checkDefined(s(t.name, r, je)), D.checkDefined(s(t.moduleReference, r, Nce)));
        },
        269: function(t, r, i, o, s, c) {
          return i.factory.updateImportDeclaration(t, o(t.modifiers, r, nl), s(t.importClause, r, Wm), D.checkDefined(s(t.moduleSpecifier, r, vt)), s(t.assertClause, r, W7));
        },
        296: function(t, r, i, o, s, c) {
          return i.factory.updateAssertClause(t, o(t.elements, r, Zfe), t.multiLine);
        },
        297: function(t, r, i, o, s, c) {
          return i.factory.updateAssertEntry(t, D.checkDefined(s(t.name, r, hce)), D.checkDefined(s(t.value, r, vt)));
        },
        270: function(t, r, i, o, s, c) {
          return i.factory.updateImportClause(t, t.isTypeOnly, s(t.name, r, je), s(t.namedBindings, r, IW));
        },
        271: function(t, r, i, o, s, c) {
          return i.factory.updateNamespaceImport(t, D.checkDefined(s(t.name, r, je)));
        },
        277: function(t, r, i, o, s, c) {
          return i.factory.updateNamespaceExport(t, D.checkDefined(s(t.name, r, je)));
        },
        272: function(t, r, i, o, s, c) {
          return i.factory.updateNamedImports(t, o(t.elements, r, Ld));
        },
        273: function(t, r, i, o, s, c) {
          return i.factory.updateImportSpecifier(t, t.isTypeOnly, s(t.propertyName, r, je), D.checkDefined(s(t.name, r, je)));
        },
        274: function(t, r, i, o, s, c) {
          return i.factory.updateExportAssignment(t, o(t.modifiers, r, nl), D.checkDefined(s(t.expression, r, vt)));
        },
        275: function(t, r, i, o, s, c) {
          return i.factory.updateExportDeclaration(t, o(t.modifiers, r, nl), t.isTypeOnly, s(t.exportClause, r, hW), s(t.moduleSpecifier, r, vt), s(t.assertClause, r, W7));
        },
        276: function(t, r, i, o, s, c) {
          return i.factory.updateNamedExports(t, o(t.elements, r, dd));
        },
        278: function(t, r, i, o, s, c) {
          return i.factory.updateExportSpecifier(t, t.isTypeOnly, s(t.propertyName, r, je), D.checkDefined(s(t.name, r, je)));
        },
        280: function(t, r, i, o, s, c) {
          return i.factory.updateExternalModuleReference(t, D.checkDefined(s(t.expression, r, vt)));
        },
        281: function(t, r, i, o, s, c) {
          return i.factory.updateJsxElement(t, D.checkDefined(s(t.openingElement, r, kh)), o(t.children, r, tN), D.checkDefined(s(t.closingElement, r, Dx)));
        },
        282: function(t, r, i, o, s, c) {
          return i.factory.updateJsxSelfClosingElement(t, D.checkDefined(s(t.tagName, r, wI)), o(t.typeArguments, r, Gi), D.checkDefined(s(t.attributes, r, N1)));
        },
        283: function(t, r, i, o, s, c) {
          return i.factory.updateJsxOpeningElement(t, D.checkDefined(s(t.tagName, r, wI)), o(t.typeArguments, r, Gi), D.checkDefined(s(t.attributes, r, N1)));
        },
        284: function(t, r, i, o, s, c) {
          return i.factory.updateJsxClosingElement(t, D.checkDefined(s(t.tagName, r, wI)));
        },
        285: function(t, r, i, o, s, c) {
          return i.factory.updateJsxFragment(t, D.checkDefined(s(t.openingFragment, r, Nx)), o(t.children, r, tN), D.checkDefined(s(t.closingFragment, r, e_e)));
        },
        288: function(t, r, i, o, s, c) {
          return i.factory.updateJsxAttribute(t, D.checkDefined(s(t.name, r, je)), s(t.initializer, r, Oce));
        },
        289: function(t, r, i, o, s, c) {
          return i.factory.updateJsxAttributes(t, o(t.properties, r, VM));
        },
        290: function(t, r, i, o, s, c) {
          return i.factory.updateJsxSpreadAttribute(t, D.checkDefined(s(t.expression, r, vt)));
        },
        291: function(t, r, i, o, s, c) {
          return i.factory.updateJsxExpression(t, s(t.expression, r, vt));
        },
        292: function(t, r, i, o, s, c) {
          return i.factory.updateCaseClause(t, D.checkDefined(s(t.expression, r, vt)), o(t.statements, r, wa));
        },
        293: function(t, r, i, o, s, c) {
          return i.factory.updateDefaultClause(t, o(t.statements, r, wa));
        },
        294: function(t, r, i, o, s, c) {
          return i.factory.updateHeritageClause(t, o(t.types, r, Sy));
        },
        295: function(t, r, i, o, s, c) {
          return i.factory.updateCatchClause(t, s(t.variableDeclaration, r, Ki), D.checkDefined(s(t.block, r, co)));
        },
        299: function(t, r, i, o, s, c) {
          return i.factory.updatePropertyAssignment(t, D.checkDefined(s(t.name, r, yl)), D.checkDefined(s(t.initializer, r, vt)));
        },
        300: function(t, r, i, o, s, c) {
          return i.factory.updateShorthandPropertyAssignment(t, D.checkDefined(s(t.name, r, je)), s(t.objectAssignmentInitializer, r, vt));
        },
        301: function(t, r, i, o, s, c) {
          return i.factory.updateSpreadAssignment(t, D.checkDefined(s(t.expression, r, vt)));
        },
        302: function(t, r, i, o, s, c) {
          return i.factory.updateEnumMember(t, D.checkDefined(s(t.name, r, yl)), s(t.initializer, r, vt));
        },
        308: function(t, r, i, o, s, c) {
          return i.factory.updateSourceFile(t, z5(t.statements, r, i));
        },
        356: function(t, r, i, o, s, c) {
          return i.factory.updatePartiallyEmittedExpression(t, D.checkDefined(s(t.expression, r, vt)));
        },
        357: function(t, r, i, o, s, c) {
          return i.factory.updateCommaListExpression(t, o(t.elements, r, vt));
        }
      };
    }
  });
  function Jme(e, t, r, i, o) {
    var { enter: s, exit: c } = o.extendedDiagnostics ? eM("Source Map", "beforeSourcemap", "afterSourcemap") : tM, f = [], d = [], y = /* @__PURE__ */ new Map(), h, E = [], A, L = [], I = "", O = 0, k = 0, G = 0, V = 0, H = 0, te = 0, X = !1, Y = 0, P = 0, de = 0, re = 0, ye = 0, ae = 0, W = !1, ce = !1, me = !1;
    return {
      getSources: () => f,
      addSource: ve,
      setSourceContent: Te,
      addName: ee,
      addMapping: Be,
      appendSourceMap: qe,
      toJSON: Fe,
      toString: () => JSON.stringify(Fe())
    };
    function ve(Ct) {
      s();
      const Et = zS(i, Ct, e.getCurrentDirectory(), e.getCanonicalFileName, !0);
      let Vt = y.get(Et);
      return Vt === void 0 && (Vt = d.length, d.push(Et), f.push(Ct), y.set(Et, Vt)), c(), Vt;
    }
    function Te(Ct, Et) {
      if (s(), Et !== null) {
        for (h || (h = []); h.length < Ct; )
          h.push(null);
        h[Ct] = Et;
      }
      c();
    }
    function ee(Ct) {
      s(), A || (A = /* @__PURE__ */ new Map());
      let Et = A.get(Ct);
      return Et === void 0 && (Et = E.length, E.push(Ct), A.set(Ct, Et)), c(), Et;
    }
    function Qe(Ct, Et) {
      return !W || Y !== Ct || P !== Et;
    }
    function Ve(Ct, Et, Vt) {
      return Ct !== void 0 && Et !== void 0 && Vt !== void 0 && de === Ct && (re > Et || re === Et && ye > Vt);
    }
    function Be(Ct, Et, Vt, tt, at, sn) {
      D.assert(Ct >= Y, "generatedLine cannot backtrack"), D.assert(Et >= 0, "generatedCharacter cannot be negative"), D.assert(Vt === void 0 || Vt >= 0, "sourceIndex cannot be negative"), D.assert(tt === void 0 || tt >= 0, "sourceLine cannot be negative"), D.assert(at === void 0 || at >= 0, "sourceCharacter cannot be negative"), s(), (Qe(Ct, Et) || Ve(Vt, tt, at)) && (Ye(), Y = Ct, P = Et, ce = !1, me = !1, W = !0), Vt !== void 0 && tt !== void 0 && at !== void 0 && (de = Vt, re = tt, ye = at, ce = !0, sn !== void 0 && (ae = sn, me = !0)), c();
    }
    function qe(Ct, Et, Vt, tt, at, sn) {
      D.assert(Ct >= Y, "generatedLine cannot backtrack"), D.assert(Et >= 0, "generatedCharacter cannot be negative"), s();
      const Qt = [];
      let On;
      const jn = aX(Vt.mappings);
      for (const In of jn) {
        if (sn && (In.generatedLine > sn.line || In.generatedLine === sn.line && In.generatedCharacter > sn.character))
          break;
        if (at && (In.generatedLine < at.line || at.line === In.generatedLine && In.generatedCharacter < at.character))
          continue;
        let Zt, _r, Ii, $i;
        if (In.sourceIndex !== void 0) {
          if (Zt = Qt[In.sourceIndex], Zt === void 0) {
            const Wt = Vt.sources[In.sourceIndex], fn = Vt.sourceRoot ? Bi(Vt.sourceRoot, Wt) : Wt, rr = Bi(mi(tt), fn);
            Qt[In.sourceIndex] = Zt = ve(rr), Vt.sourcesContent && typeof Vt.sourcesContent[In.sourceIndex] == "string" && Te(Zt, Vt.sourcesContent[In.sourceIndex]);
          }
          _r = In.sourceLine, Ii = In.sourceCharacter, Vt.names && In.nameIndex !== void 0 && (On || (On = []), $i = On[In.nameIndex], $i === void 0 && (On[In.nameIndex] = $i = ee(Vt.names[In.nameIndex])));
        }
        const Qi = In.generatedLine - (at ? at.line : 0), Or = Qi + Ct, At = at && at.line === In.generatedLine ? In.generatedCharacter - at.character : In.generatedCharacter, vn = Qi === 0 ? At + Et : At;
        Be(Or, vn, Zt, _r, Ii, $i);
      }
      c();
    }
    function Oe() {
      return !X || O !== Y || k !== P || G !== de || V !== re || H !== ye || te !== ae;
    }
    function Me(Ct) {
      L.push(Ct), L.length >= 1024 && We();
    }
    function Ye() {
      if (!(!W || !Oe())) {
        if (s(), O < Y) {
          do
            Me(59), O++;
          while (O < Y);
          k = 0;
        } else
          D.assertEqual(O, Y, "generatedLine cannot backtrack"), X && Me(44);
        st(P - k), k = P, ce && (st(de - G), G = de, st(re - V), V = re, st(ye - H), H = ye, me && (st(ae - te), te = ae)), X = !0, c();
      }
    }
    function We() {
      L.length > 0 && (I += String.fromCharCode.apply(void 0, L), L.length = 0);
    }
    function Fe() {
      return Ye(), We(), {
        version: 3,
        file: t,
        sourceRoot: r,
        sources: d,
        names: E,
        mappings: I,
        sourcesContent: h
      };
    }
    function st(Ct) {
      Ct < 0 ? Ct = (-Ct << 1) + 1 : Ct = Ct << 1;
      do {
        let Et = Ct & 31;
        Ct = Ct >> 5, Ct > 0 && (Et = Et | 32), Me(SMe(Et));
      } while (Ct > 0);
    }
  }
  function Kme(e, t) {
    return {
      getLineCount: () => t.length,
      getLineText: (r) => e.substring(t[r], t[r + 1])
    };
  }
  function Xme(e) {
    for (let t = e.getLineCount() - 1; t >= 0; t--) {
      const r = e.getLineText(t), i = q5.exec(r);
      if (i)
        return gR(i[1]);
      if (!r.match(J5))
        break;
    }
  }
  function EMe(e) {
    return typeof e == "string" || e === null;
  }
  function Yme(e) {
    return e !== null && typeof e == "object" && e.version === 3 && typeof e.file == "string" && typeof e.mappings == "string" && Va(e.sources) && Yn(e.sources, Ha) && (e.sourceRoot === void 0 || e.sourceRoot === null || typeof e.sourceRoot == "string") && (e.sourcesContent === void 0 || e.sourcesContent === null || Va(e.sourcesContent) && Yn(e.sourcesContent, EMe)) && (e.names === void 0 || e.names === null || Va(e.names) && Yn(e.names, Ha));
  }
  function iX(e) {
    try {
      const t = JSON.parse(e);
      if (Yme(t))
        return t;
    } catch {
    }
  }
  function aX(e) {
    let t = !1, r = 0, i = 0, o = 0, s = 0, c = 0, f = 0, d = 0, y;
    return {
      get pos() {
        return r;
      },
      get error() {
        return y;
      },
      get state() {
        return h(!0, !0);
      },
      next() {
        for (; !t && r < e.length; ) {
          const G = e.charCodeAt(r);
          if (G === 59) {
            i++, o = 0, r++;
            continue;
          }
          if (G === 44) {
            r++;
            continue;
          }
          let V = !1, H = !1;
          if (o += k(), I())
            return E();
          if (o < 0)
            return L("Invalid generatedCharacter found");
          if (!O()) {
            if (V = !0, s += k(), I())
              return E();
            if (s < 0)
              return L("Invalid sourceIndex found");
            if (O())
              return L("Unsupported Format: No entries after sourceIndex");
            if (c += k(), I())
              return E();
            if (c < 0)
              return L("Invalid sourceLine found");
            if (O())
              return L("Unsupported Format: No entries after sourceLine");
            if (f += k(), I())
              return E();
            if (f < 0)
              return L("Invalid sourceCharacter found");
            if (!O()) {
              if (H = !0, d += k(), I())
                return E();
              if (d < 0)
                return L("Invalid nameIndex found");
              if (!O())
                return L("Unsupported Error Format: Entries after nameIndex");
            }
          }
          return { value: h(V, H), done: t };
        }
        return E();
      },
      [Symbol.iterator]() {
        return this;
      }
    };
    function h(G, V) {
      return {
        generatedLine: i,
        generatedCharacter: o,
        sourceIndex: G ? s : void 0,
        sourceLine: G ? c : void 0,
        sourceCharacter: G ? f : void 0,
        nameIndex: V ? d : void 0
      };
    }
    function E() {
      return t = !0, { value: void 0, done: !0 };
    }
    function A(G) {
      y === void 0 && (y = G);
    }
    function L(G) {
      return A(G), E();
    }
    function I() {
      return y !== void 0;
    }
    function O() {
      return r === e.length || e.charCodeAt(r) === 44 || e.charCodeAt(r) === 59;
    }
    function k() {
      let G = !0, V = 0, H = 0;
      for (; G; r++) {
        if (r >= e.length)
          return A("Error in decoding base64VLQFormatDecode, past the mapping string"), -1;
        const te = xMe(e.charCodeAt(r));
        if (te === -1)
          return A("Invalid character in VLQ"), -1;
        G = (te & 32) !== 0, H = H | (te & 31) << V, V += 5;
      }
      return H & 1 ? (H = H >> 1, H = -H) : H = H >> 1, H;
    }
  }
  function TMe(e, t) {
    return e === t || e.generatedLine === t.generatedLine && e.generatedCharacter === t.generatedCharacter && e.sourceIndex === t.sourceIndex && e.sourceLine === t.sourceLine && e.sourceCharacter === t.sourceCharacter && e.nameIndex === t.nameIndex;
  }
  function $me(e) {
    return e.sourceIndex !== void 0 && e.sourceLine !== void 0 && e.sourceCharacter !== void 0;
  }
  function SMe(e) {
    return e >= 0 && e < 26 ? 65 + e : e >= 26 && e < 52 ? 97 + e - 26 : e >= 52 && e < 62 ? 48 + e - 52 : e === 62 ? 43 : e === 63 ? 47 : D.fail(`${e}: not a base64 value`);
  }
  function xMe(e) {
    return e >= 65 && e <= 90 ? e - 65 : e >= 97 && e <= 122 ? e - 97 + 26 : e >= 48 && e <= 57 ? e - 48 + 52 : e === 43 ? 62 : e === 47 ? 63 : -1;
  }
  function Qme(e) {
    return e.sourceIndex !== void 0 && e.sourcePosition !== void 0;
  }
  function Zme(e, t) {
    return e.generatedPosition === t.generatedPosition && e.sourceIndex === t.sourceIndex && e.sourcePosition === t.sourcePosition;
  }
  function AMe(e, t) {
    return D.assert(e.sourceIndex === t.sourceIndex), Ws(e.sourcePosition, t.sourcePosition);
  }
  function CMe(e, t) {
    return Ws(e.generatedPosition, t.generatedPosition);
  }
  function LMe(e) {
    return e.sourcePosition;
  }
  function IMe(e) {
    return e.generatedPosition;
  }
  function ehe(e, t, r) {
    const i = mi(r), o = t.sourceRoot ? Pa(t.sourceRoot, i) : i, s = Pa(t.file, i), c = e.getSourceFileLike(s), f = t.sources.map((V) => Pa(V, o)), d = new Map(f.map((V, H) => [e.getCanonicalFileName(V), H]));
    let y, h, E;
    return {
      getSourcePosition: G,
      getGeneratedPosition: k
    };
    function A(V) {
      const H = c !== void 0 ? FR(c, V.generatedLine, V.generatedCharacter, !0) : -1;
      let te, X;
      if ($me(V)) {
        const Y = e.getSourceFileLike(f[V.sourceIndex]);
        te = t.sources[V.sourceIndex], X = Y !== void 0 ? FR(Y, V.sourceLine, V.sourceCharacter, !0) : -1;
      }
      return {
        generatedPosition: H,
        source: te,
        sourceIndex: V.sourceIndex,
        sourcePosition: X,
        nameIndex: V.nameIndex
      };
    }
    function L() {
      if (y === void 0) {
        const V = aX(t.mappings), H = Ro(V, A);
        V.error !== void 0 ? (e.log && e.log(`Encountered error while decoding sourcemap: ${V.error}`), y = rt) : y = H;
      }
      return y;
    }
    function I(V) {
      if (E === void 0) {
        const H = [];
        for (const te of L()) {
          if (!Qme(te))
            continue;
          let X = H[te.sourceIndex];
          X || (H[te.sourceIndex] = X = []), X.push(te);
        }
        E = H.map((te) => cR(te, AMe, Zme));
      }
      return E[V];
    }
    function O() {
      if (h === void 0) {
        const V = [];
        for (const H of L())
          V.push(H);
        h = cR(V, CMe, Zme);
      }
      return h;
    }
    function k(V) {
      const H = d.get(e.getCanonicalFileName(V.fileName));
      if (H === void 0)
        return V;
      const te = I(H);
      if (!kt(te))
        return V;
      let X = PS(te, V.pos, LMe, Ws);
      X < 0 && (X = ~X);
      const Y = te[X];
      return Y === void 0 || Y.sourceIndex !== H ? V : { fileName: s, pos: Y.generatedPosition };
    }
    function G(V) {
      const H = O();
      if (!kt(H))
        return V;
      let te = PS(H, V.pos, IMe, Ws);
      te < 0 && (te = ~te);
      const X = H[te];
      return X === void 0 || !Qme(X) ? V : { fileName: f[X.sourceIndex], pos: X.sourcePosition };
    }
  }
  var oX, q5, J5, K5, kMe = C({
    "src/compiler/sourcemap.ts"() {
      Oa(), s1(), oX = /\/\/[@#] source[M]appingURL=(.+)\r?\n?$/, q5 = /^\/\/[@#] source[M]appingURL=(.+)\r?\n?$/, J5 = /^\s*(\/\/[@#] .*)?$/, K5 = {
        getSourcePosition: ml,
        getGeneratedPosition: ml
      };
    }
  });
  function kl(e) {
    return e = Tl(e), e ? ps(e) : 0;
  }
  function wMe(e) {
    return !e || !xy(e) ? !1 : kt(e.elements, the);
  }
  function the(e) {
    return e.propertyName !== void 0 && e.propertyName.escapedText === "default";
  }
  function X_(e, t) {
    return r;
    function r(o) {
      return o.kind === 308 ? t(o) : i(o);
    }
    function i(o) {
      return e.factory.createBundle(jt(o.sourceFiles, t), o.prepends);
    }
  }
  function nhe(e) {
    return !!WA(e);
  }
  function X5(e) {
    if (WA(e))
      return !0;
    const t = e.importClause && e.importClause.namedBindings;
    if (!t || !xy(t))
      return !1;
    let r = 0;
    for (const i of t.elements)
      the(i) && r++;
    return r > 0 && r !== t.elements.length || !!(t.elements.length - r) && nx(e);
  }
  function sX(e) {
    return !X5(e) && (nx(e) || !!e.importClause && xy(e.importClause.namedBindings) && wMe(e.importClause.namedBindings));
  }
  function lX(e, t, r, i) {
    const o = [], s = f_(), c = [], f = /* @__PURE__ */ new Map();
    let d, y = !1, h, E = !1, A = !1, L = !1;
    for (const k of t.statements)
      switch (k.kind) {
        case 269:
          o.push(k), !A && X5(k) && (A = !0), !L && sX(k) && (L = !0);
          break;
        case 268:
          k.moduleReference.kind === 280 && o.push(k);
          break;
        case 275:
          if (k.moduleSpecifier)
            if (!k.exportClause)
              o.push(k), E = !0;
            else if (o.push(k), J_(k.exportClause))
              O(k);
            else {
              const G = k.exportClause.name;
              f.get(Mr(G)) || (Zk(c, kl(k), G), f.set(Mr(G), !0), d = Fn(d, G)), A = !0;
            }
          else
            O(k);
          break;
        case 274:
          k.isExportEquals && !h && (h = k);
          break;
        case 240:
          if (Yr(k, 1))
            for (const G of k.declarationList.declarations)
              d = rhe(G, f, d);
          break;
        case 259:
          if (Yr(k, 1))
            if (Yr(k, 1024))
              y || (Zk(c, kl(k), e.factory.getDeclarationName(k)), y = !0);
            else {
              const G = k.name;
              f.get(Mr(G)) || (Zk(c, kl(k), G), f.set(Mr(G), !0), d = Fn(d, G));
            }
          break;
        case 260:
          if (Yr(k, 1))
            if (Yr(k, 1024))
              y || (Zk(c, kl(k), e.factory.getDeclarationName(k)), y = !0);
            else {
              const G = k.name;
              G && !f.get(Mr(G)) && (Zk(c, kl(k), G), f.set(Mr(G), !0), d = Fn(d, G));
            }
          break;
      }
    const I = UJ(e.factory, e.getEmitHelperFactory(), t, i, E, A, L);
    return I && o.unshift(I), { externalImports: o, exportSpecifiers: s, exportEquals: h, hasExportStarsToExportValues: E, exportedBindings: c, exportedNames: d, externalHelpersImportDeclaration: I };
    function O(k) {
      for (const G of oo(k.exportClause, J_).elements)
        if (!f.get(Mr(G.name))) {
          const V = G.propertyName || G.name;
          k.moduleSpecifier || s.add(Mr(V), G);
          const H = r.getReferencedImportDeclaration(V) || r.getReferencedValueDeclaration(V);
          H && Zk(c, kl(H), G.name), f.set(Mr(G.name), !0), d = Fn(d, G.name);
        }
    }
  }
  function rhe(e, t, r) {
    if (Xa(e.name))
      for (const i of e.name.elements)
        Rc(i) || (r = rhe(i, t, r));
    else if (!Sl(e.name)) {
      const i = Mr(e.name);
      t.get(i) || (t.set(i, !0), r = Fn(r, e.name));
    }
    return r;
  }
  function Zk(e, t, r) {
    let i = e[t];
    return i ? i.push(r) : e[t] = i = [r], i;
  }
  function G1(e) {
    return xs(e) || e.kind === 8 || Ad(e.kind) || je(e);
  }
  function im(e) {
    return !je(e) && G1(e);
  }
  function C8(e) {
    return e >= 64 && e <= 78;
  }
  function ew(e) {
    switch (e) {
      case 64:
        return 39;
      case 65:
        return 40;
      case 66:
        return 41;
      case 67:
        return 42;
      case 68:
        return 43;
      case 69:
        return 44;
      case 70:
        return 47;
      case 71:
        return 48;
      case 72:
        return 49;
      case 73:
        return 50;
      case 74:
        return 51;
      case 78:
        return 52;
      case 75:
        return 56;
      case 76:
        return 55;
      case 77:
        return 60;
    }
  }
  function cX(e) {
    if (!ou(e))
      return;
    const t = js(e.expression);
    return MA(t) ? t : void 0;
  }
  function Y5(e, t) {
    for (let r = t; r < e.length; r += 1) {
      const i = e[r];
      if (cX(i))
        return r;
    }
    return -1;
  }
  function uX(e, t, r) {
    return lr(e.members, (i) => RMe(i, t, r));
  }
  function DMe(e) {
    return NMe(e) || Il(e);
  }
  function $5(e) {
    return lr(e.members, DMe);
  }
  function RMe(e, t, r) {
    return to(e) && (!!e.initializer || !t) && gc(e) === r;
  }
  function NMe(e) {
    return to(e) && gc(e);
  }
  function L8(e) {
    return e.kind === 169 && e.initializer !== void 0;
  }
  function ihe(e) {
    return !Ja(e) && (LA(e) || af(e)) && Ni(e.name);
  }
  function dX(e) {
    let t;
    if (e) {
      const r = e.parameters, i = r.length > 0 && x1(r[0]), o = i ? 1 : 0, s = i ? r.length - 1 : r.length;
      for (let c = 0; c < s; c++) {
        const f = r[c + o];
        (t || $f(f)) && (t || (t = new Array(s)), t[c] = Sv(f));
      }
    }
    return t;
  }
  function fX(e) {
    const t = Sv(e), r = dX(Eh(e));
    if (!(!kt(t) && !kt(r)))
      return {
        decorators: t,
        parameters: r
      };
  }
  function Q5(e, t, r) {
    switch (e.kind) {
      case 174:
      case 175:
        return r ? OMe(e, t) : ahe(e);
      case 171:
        return ahe(e);
      case 169:
        return PMe(e);
      default:
        return;
    }
  }
  function OMe(e, t) {
    if (!e.body)
      return;
    const { firstAccessor: r, secondAccessor: i, getAccessor: o, setAccessor: s } = vT(t.members, e), c = $f(r) ? r : i && $f(i) ? i : void 0;
    if (!c || e !== c)
      return;
    const f = Sv(c), d = dX(s);
    if (!(!kt(f) && !kt(d)))
      return {
        decorators: f,
        parameters: d,
        getDecorators: o && Sv(o),
        setDecorators: s && Sv(s)
      };
  }
  function ahe(e) {
    if (!e.body)
      return;
    const t = Sv(e), r = dX(e);
    if (!(!kt(t) && !kt(r)))
      return { decorators: t, parameters: r };
  }
  function PMe(e) {
    const t = Sv(e);
    if (kt(t))
      return { decorators: t };
  }
  function ohe(e, t) {
    for (; e; ) {
      const r = t(e);
      if (r !== void 0)
        return r;
      e = e.previous;
    }
  }
  function she(e) {
    return { data: e };
  }
  function _X(e, t) {
    var r, i;
    return KS(t) ? (r = e == null ? void 0 : e.generatedIdentifiers) == null ? void 0 : r.get(r5(t)) : (i = e == null ? void 0 : e.identifiers) == null ? void 0 : i.get(t.escapedText);
  }
  function MT(e, t, r) {
    var i, o;
    KS(t) ? ((i = e.generatedIdentifiers) != null || (e.generatedIdentifiers = /* @__PURE__ */ new Map()), e.generatedIdentifiers.set(r5(t), r)) : ((o = e.identifiers) != null || (e.identifiers = /* @__PURE__ */ new Map()), e.identifiers.set(t.escapedText, r));
  }
  function lhe(e, t) {
    return ohe(e, (r) => _X(r.privateEnv, t));
  }
  var MMe = C({
    "src/compiler/transformers/utilities.ts"() {
      Oa();
    }
  });
  function FT(e, t, r, i, o, s) {
    let c = e, f;
    if (vy(e))
      for (f = e.right; ude(e.left) || Xz(e.left); )
        if (vy(f))
          c = e = f, f = e.right;
        else
          return D.checkDefined(lt(f, t, vt));
    let d;
    const y = {
      context: r,
      level: i,
      downlevelIteration: !!r.getCompilerOptions().downlevelIteration,
      hoistTempVariables: !0,
      emitExpression: h,
      emitBindingOrAssignment: E,
      createArrayBindingOrAssignmentPattern: (A) => WMe(r.factory, A),
      createObjectBindingOrAssignmentPattern: (A) => qMe(r.factory, A),
      createArrayBindingOrAssignmentElement: KMe,
      visitor: t
    };
    if (f && (f = lt(f, t, vt), D.assert(f), je(f) && pX(e, f.escapedText) || mX(e) ? f = BT(y, f, !1, c) : o ? f = BT(y, f, !0, c) : Zs(e) && (c = f)), GC(y, e, f, c, vy(e)), f && o) {
      if (!kt(d))
        return f;
      d.push(f);
    }
    return r.factory.inlineExpressions(d) || r.factory.createOmittedExpression();
    function h(A) {
      d = Fn(d, A);
    }
    function E(A, L, I, O) {
      D.assertNode(A, s ? je : vt);
      const k = s ? s(A, L, I) : ht(r.factory.createAssignment(D.checkDefined(lt(A, t, vt)), L), I);
      k.original = O, h(k);
    }
  }
  function pX(e, t) {
    const r = Vv(e);
    return XR(r) ? FMe(r, t) : je(r) ? r.escapedText === t : !1;
  }
  function FMe(e, t) {
    const r = wC(e);
    for (const i of r)
      if (pX(i, t))
        return !0;
    return !1;
  }
  function mX(e) {
    const t = t5(e);
    if (t && As(t) && !nT(t.expression))
      return !0;
    const r = Vv(e);
    return !!r && XR(r) && BMe(r);
  }
  function BMe(e) {
    return !!ze(wC(e), mX);
  }
  function U1(e, t, r, i, o, s = !1, c) {
    let f;
    const d = [], y = [], h = {
      context: r,
      level: i,
      downlevelIteration: !!r.getCompilerOptions().downlevelIteration,
      hoistTempVariables: s,
      emitExpression: E,
      emitBindingOrAssignment: A,
      createArrayBindingOrAssignmentPattern: (L) => HMe(r.factory, L),
      createObjectBindingOrAssignmentPattern: (L) => zMe(r.factory, L),
      createArrayBindingOrAssignmentElement: (L) => JMe(r.factory, L),
      visitor: t
    };
    if (Ki(e)) {
      let L = zO(e);
      L && (je(L) && pX(e, L.escapedText) || mX(e)) && (L = BT(h, D.checkDefined(lt(L, h.visitor, vt)), !1, L), e = r.factory.updateVariableDeclaration(e, e.name, void 0, void 0, L));
    }
    if (GC(h, e, o, e, c), f) {
      const L = r.factory.createTempVariable(void 0);
      if (s) {
        const I = r.factory.inlineExpressions(f);
        f = void 0, A(L, I, void 0, void 0);
      } else {
        r.hoistVariableDeclaration(L);
        const I = qo(d);
        I.pendingExpressions = Fn(I.pendingExpressions, r.factory.createAssignment(L, I.value)), Ti(I.pendingExpressions, f), I.value = L;
      }
    }
    for (const { pendingExpressions: L, name: I, value: O, location: k, original: G } of d) {
      const V = r.factory.createVariableDeclaration(I, void 0, void 0, L ? r.factory.inlineExpressions(Fn(L, O)) : O);
      V.original = G, ht(V, k), y.push(V);
    }
    return y;
    function E(L) {
      f = Fn(f, L);
    }
    function A(L, I, O, k) {
      D.assertNode(L, hh), f && (I = r.factory.inlineExpressions(Fn(f, I)), f = void 0), d.push({ pendingExpressions: f, name: L, value: I, location: O, original: k });
    }
  }
  function GC(e, t, r, i, o) {
    const s = Vv(t);
    if (!o) {
      const c = lt(zO(t), e.visitor, vt);
      c ? r ? (r = VMe(e, r, c, i), !im(c) && XR(s) && (r = BT(e, r, !0, i))) : r = c : r || (r = e.context.factory.createVoidZero());
    }
    xW(s) ? GMe(e, t, s, r, i) : AW(s) ? UMe(e, t, s, r, i) : e.emitBindingOrAssignment(s, r, i, t);
  }
  function GMe(e, t, r, i, o) {
    const s = wC(r), c = s.length;
    if (c !== 1) {
      const y = !KR(t) || c !== 0;
      i = BT(e, i, y, o);
    }
    let f, d;
    for (let y = 0; y < c; y++) {
      const h = s[y];
      if (e5(h)) {
        if (y === c - 1) {
          f && (e.emitBindingOrAssignment(e.createObjectBindingOrAssignmentPattern(f), i, o, r), f = void 0);
          const E = e.context.getEmitHelperFactory().createRestHelper(i, s, d, r);
          GC(e, h, E, h);
        }
      } else {
        const E = VJ(h);
        if (e.level >= 1 && !(h.transformFlags & 98304) && !(Vv(h).transformFlags & 98304) && !As(E))
          f = Fn(f, lt(h, e.visitor, Ece));
        else {
          f && (e.emitBindingOrAssignment(e.createObjectBindingOrAssignmentPattern(f), i, o, r), f = void 0);
          const A = jMe(e, i, E);
          As(E) && (d = Fn(d, A.argumentExpression)), GC(e, h, A, h);
        }
      }
    }
    f && e.emitBindingOrAssignment(e.createObjectBindingOrAssignmentPattern(f), i, o, r);
  }
  function UMe(e, t, r, i, o) {
    const s = wC(r), c = s.length;
    if (e.level < 1 && e.downlevelIteration)
      i = BT(e, ht(e.context.getEmitHelperFactory().createReadHelper(i, c > 0 && e5(s[c - 1]) ? void 0 : c), o), !1, o);
    else if (c !== 1 && (e.level < 1 || c === 0) || Yn(s, Rc)) {
      const y = !KR(t) || c !== 0;
      i = BT(e, i, y, o);
    }
    let f, d;
    for (let y = 0; y < c; y++) {
      const h = s[y];
      if (e.level >= 1)
        if (h.transformFlags & 65536 || e.hasTransformedPriorElement && !che(h)) {
          e.hasTransformedPriorElement = !0;
          const E = e.context.factory.createTempVariable(void 0);
          e.hoistTempVariables && e.context.hoistVariableDeclaration(E), d = Fn(d, [E, h]), f = Fn(f, e.createArrayBindingOrAssignmentElement(E));
        } else
          f = Fn(f, h);
      else {
        if (Rc(h))
          continue;
        if (e5(h)) {
          if (y === c - 1) {
            const E = e.context.factory.createArraySliceCall(i, y);
            GC(e, h, E, h);
          }
        } else {
          const E = e.context.factory.createElementAccessExpression(i, y);
          GC(e, h, E, h);
        }
      }
    }
    if (f && e.emitBindingOrAssignment(e.createArrayBindingOrAssignmentPattern(f), i, o, r), d)
      for (const [y, h] of d)
        GC(e, h, y, h);
  }
  function che(e) {
    const t = Vv(e);
    if (!t || Rc(t))
      return !0;
    const r = t5(e);
    if (r && !G_(r))
      return !1;
    const i = zO(e);
    return i && !im(i) ? !1 : XR(t) ? Yn(wC(t), che) : je(t);
  }
  function VMe(e, t, r, i) {
    return t = BT(e, t, !0, i), e.context.factory.createConditionalExpression(e.context.factory.createTypeCheck(t, "undefined"), void 0, r, void 0, t);
  }
  function jMe(e, t, r) {
    if (As(r)) {
      const i = BT(e, D.checkDefined(lt(r.expression, e.visitor, vt)), !1, r);
      return e.context.factory.createElementAccessExpression(t, i);
    } else if (Xf(r)) {
      const i = N.cloneNode(r);
      return e.context.factory.createElementAccessExpression(t, i);
    } else {
      const i = e.context.factory.createIdentifier(Mr(r));
      return e.context.factory.createPropertyAccessExpression(t, i);
    }
  }
  function BT(e, t, r, i) {
    if (je(t) && r)
      return t;
    {
      const o = e.context.factory.createTempVariable(void 0);
      return e.hoistTempVariables ? (e.context.hoistVariableDeclaration(o), e.emitExpression(ht(e.context.factory.createAssignment(o, t), i))) : e.emitBindingOrAssignment(o, t, i, void 0), o;
    }
  }
  function HMe(e, t) {
    return D.assertEachNode(t, BM), e.createArrayBindingPattern(t);
  }
  function WMe(e, t) {
    return D.assertEachNode(t, $R), e.createArrayLiteralExpression(jt(t, e.converters.convertToArrayAssignmentElement));
  }
  function zMe(e, t) {
    return D.assertEachNode(t, _s), e.createObjectBindingPattern(t);
  }
  function qMe(e, t) {
    return D.assertEachNode(t, YR), e.createObjectLiteralExpression(jt(t, e.converters.convertToObjectAssignmentElement));
  }
  function JMe(e, t) {
    return e.createBindingElement(void 0, void 0, t);
  }
  function KMe(e) {
    return e;
  }
  var hX, XMe = C({
    "src/compiler/transformers/destructuring.ts"() {
      Oa(), hX = /* @__PURE__ */ ((e) => (e[e.All = 0] = "All", e[e.ObjectRest = 1] = "ObjectRest", e))(hX || {});
    }
  });
  function gX(e, t, r, i, o, s) {
    const c = lt(t.tag, r, vt);
    D.assert(c);
    const f = [void 0], d = [], y = [], h = t.template;
    if (s === 0 && !Dz(h))
      return Bn(t, r, e);
    if (bx(h))
      d.push(yX(h)), y.push(vX(h, i));
    else {
      d.push(yX(h.head)), y.push(vX(h.head, i));
      for (const A of h.templateSpans)
        d.push(yX(A.literal)), y.push(vX(A.literal, i)), f.push(D.checkDefined(lt(A.expression, r, vt)));
    }
    const E = e.getEmitHelperFactory().createTemplateObjectHelper(N.createArrayLiteralExpression(d), N.createArrayLiteralExpression(y));
    if (Zl(i)) {
      const A = N.createUniqueName("templateObject");
      o(A), f[0] = N.createLogicalOr(A, N.createAssignment(A, E));
    } else
      f[0] = E;
    return N.createCallExpression(c, void 0, f);
  }
  function yX(e) {
    return e.templateFlags ? N.createVoidZero() : N.createStringLiteral(e.text);
  }
  function vX(e, t) {
    let r = e.rawText;
    if (r === void 0) {
      D.assertIsDefined(t, "Template literal node is missing 'rawText' and does not have a source file. Possibly bad transform."), r = m1(t, e);
      const i = e.kind === 14 || e.kind === 17;
      r = r.substring(1, r.length - (i ? 1 : 2));
    }
    return r = r.replace(/\r\n?/g, `
`), ht(N.createStringLiteral(r), e);
  }
  var bX, YMe = C({
    "src/compiler/transformers/taggedTemplate.ts"() {
      Oa(), bX = /* @__PURE__ */ ((e) => (e[e.LiftRestriction = 0] = "LiftRestriction", e[e.All = 1] = "All", e))(bX || {});
    }
  });
  function uhe(e) {
    const {
      factory: t,
      getEmitHelperFactory: r,
      startLexicalEnvironment: i,
      resumeLexicalEnvironment: o,
      endLexicalEnvironment: s,
      hoistVariableDeclaration: c
    } = e, f = e.getEmitResolver(), d = e.getCompilerOptions(), y = ts(d), h = au(d), E = !!d.experimentalDecorators, A = d.emitDecoratorMetadata ? _he(e) : void 0, L = e.onEmitNode, I = e.onSubstituteNode;
    e.onEmitNode = Jc, e.onSubstituteNode = Ds, e.enableSubstitution(208), e.enableSubstitution(209);
    let O, k, G, V, H, te, X, Y;
    return P;
    function P(Q) {
      return Q.kind === 309 ? de(Q) : re(Q);
    }
    function de(Q) {
      return t.createBundle(Q.sourceFiles.map(re), ia(Q.prepends, (ot) => ot.kind === 311 ? Yq(ot, "js") : ot));
    }
    function re(Q) {
      if (Q.isDeclarationFile)
        return Q;
      O = Q;
      const ot = ye(Q, st);
      return Ey(ot, e.readEmitHelpers()), O = void 0, ot;
    }
    function ye(Q, ot) {
      const xt = V, mn = H, Dr = te;
      ae(Q);
      const Pr = ot(Q);
      return V !== xt && (H = mn), V = xt, te = Dr, Pr;
    }
    function ae(Q) {
      switch (Q.kind) {
        case 308:
        case 266:
        case 265:
        case 238:
          V = Q, H = void 0;
          break;
        case 260:
        case 259:
          if (Yr(Q, 2))
            break;
          Q.name ? Re(Q) : D.assert(Q.kind === 260 || Yr(Q, 1024));
          break;
      }
    }
    function W(Q) {
      return ye(Q, ce);
    }
    function ce(Q) {
      return Q.transformFlags & 1 ? Fe(Q) : Q;
    }
    function me(Q) {
      return ye(Q, ve);
    }
    function ve(Q) {
      switch (Q.kind) {
        case 269:
        case 268:
        case 274:
        case 275:
          return Te(Q);
        default:
          return ce(Q);
      }
    }
    function Te(Q) {
      if (Ea(Q) !== Q)
        return Q.transformFlags & 1 ? Bn(Q, W, e) : Q;
      switch (Q.kind) {
        case 269:
          return oi(Q);
        case 268:
          return _i(Q);
        case 274:
          return mo(Q);
        case 275:
          return To(Q);
        default:
          D.fail("Unhandled ellided statement");
      }
    }
    function ee(Q) {
      return ye(Q, Qe);
    }
    function Qe(Q) {
      if (!(Q.kind === 275 || Q.kind === 269 || Q.kind === 270 || Q.kind === 268 && Q.moduleReference.kind === 280))
        return Q.transformFlags & 1 || Yr(Q, 1) ? Fe(Q) : Q;
    }
    function Ve(Q) {
      return (ot) => ye(ot, (xt) => Be(xt, Q));
    }
    function Be(Q, ot) {
      switch (Q.kind) {
        case 173:
          return Pi(Q);
        case 169:
          return cr(Q, ot);
        case 174:
          return Ar(Q, ot);
        case 175:
          return Hr(Q, ot);
        case 171:
          return an(Q, ot);
        case 172:
          return Bn(Q, W, e);
        case 237:
          return Q;
        case 178:
          return;
        default:
          return D.failBadSyntaxKind(Q);
      }
    }
    function qe(Q) {
      return (ot) => ye(ot, (xt) => Oe(xt, Q));
    }
    function Oe(Q, ot) {
      switch (Q.kind) {
        case 299:
        case 300:
        case 301:
          return W(Q);
        case 174:
          return Ar(Q, ot);
        case 175:
          return Hr(Q, ot);
        case 171:
          return an(Q, ot);
        default:
          return D.failBadSyntaxKind(Q);
      }
    }
    function Me(Q) {
      return Fu(Q) ? void 0 : W(Q);
    }
    function Ye(Q) {
      return fo(Q) ? void 0 : W(Q);
    }
    function We(Q) {
      if (!Fu(Q) && !(ux(Q.kind) & 117086) && !(k && Q.kind === 93))
        return Q;
    }
    function Fe(Q) {
      if (wa(Q) && Yr(Q, 2))
        return t.createNotEmittedStatement(Q);
      switch (Q.kind) {
        case 93:
        case 88:
          return k ? void 0 : Q;
        case 123:
        case 121:
        case 122:
        case 126:
        case 161:
        case 85:
        case 136:
        case 146:
        case 101:
        case 145:
        case 185:
        case 186:
        case 187:
        case 188:
        case 184:
        case 179:
        case 165:
        case 131:
        case 157:
        case 134:
        case 152:
        case 148:
        case 144:
        case 114:
        case 153:
        case 182:
        case 181:
        case 183:
        case 180:
        case 189:
        case 190:
        case 191:
        case 193:
        case 194:
        case 195:
        case 196:
        case 197:
        case 198:
        case 178:
          return;
        case 262:
          return t.createNotEmittedStatement(Q);
        case 267:
          return;
        case 261:
          return t.createNotEmittedStatement(Q);
        case 260:
          return at(Q);
        case 228:
          return Qt(Q);
        case 294:
          return Wt(Q);
        case 230:
          return fn(Q);
        case 207:
          return Ct(Q);
        case 173:
        case 169:
        case 171:
        case 174:
        case 175:
        case 172:
          return D.fail("Class and object literal elements must be visited with their respective visitors");
        case 259:
          return we(Q);
        case 215:
          return yt(Q);
        case 216:
          return Nt(Q);
        case 166:
          return Ce(Q);
        case 214:
          return he(Q);
        case 213:
        case 231:
          return j(Q);
        case 235:
          return Ze(Q);
        case 210:
          return Xe(Q);
        case 211:
          return Ut(Q);
        case 212:
          return cn(Q);
        case 232:
          return He(Q);
        case 263:
          return mt(Q);
        case 240:
          return pt(Q);
        case 257:
          return ie(Q);
        case 264:
          return ft(Q);
        case 268:
          return _i(Q);
        case 282:
          return Sn(Q);
        case 283:
          return Er(Q);
        default:
          return Bn(Q, W, e);
      }
    }
    function st(Q) {
      const ot = y_(d, "alwaysStrict") && !(Zl(Q) && h >= 5) && !p_(Q);
      return t.updateSourceFile(Q, z5(Q.statements, me, e, 0, ot));
    }
    function Ct(Q) {
      return t.updateObjectLiteralExpression(Q, Jn(Q.properties, qe(Q), my));
    }
    function Et(Q) {
      let ot = 0;
      kt(uX(Q, !0, !0)) && (ot |= 1);
      const xt = Xp(Q);
      return xt && bu(xt.expression).kind !== 104 && (ot |= 64), v1(E, Q) && (ot |= 2), GI(E, Q) && (ot |= 4), da(Q) ? ot |= 8 : ec(Q) ? ot |= 32 : pa(Q) && (ot |= 16), ot;
    }
    function Vt(Q) {
      return !!(Q.transformFlags & 8192);
    }
    function tt(Q) {
      return $f(Q) || kt(Q.typeParameters) || kt(Q.heritageClauses, Vt) || kt(Q.members, Vt);
    }
    function at(Q) {
      var ot;
      const xt = Et(Q), mn = y <= 1 && !!(xt & 7);
      if (!tt(Q) && !v1(E, Q) && !da(Q))
        return t.updateClassDeclaration(Q, Jn(Q.modifiers, We, fo), Q.name, void 0, Jn(Q.heritageClauses, W, jd), Jn(Q.members, Ve(Q), Uc));
      mn && e.startLexicalEnvironment();
      const Dr = mn || xt & 8 || xt & 2 && E || xt & 1;
      let Pr = Dr ? Jn(Q.modifiers, Ye, nl) : Jn(Q.modifiers, W, nl);
      xt & 2 && (Pr = jn(Pr, Q));
      const ls = Dr && !Q.name || xt & 4 || xt & 1 ? (ot = Q.name) != null ? ot : t.getGeneratedNameForNode(Q) : Q.name, ho = t.updateClassDeclaration(Q, Pr, ls, void 0, Jn(Q.heritageClauses, W, jd), On(Q));
      let Ho = vo(Q);
      xt & 1 && (Ho |= 64), or(ho, Ho);
      let Ya;
      if (mn) {
        const dl = [ho], dc = $z(Ko(O.text, Q.members.end), 19), _d = t.getInternalName(Q), Es = t.createPartiallyEmittedExpression(_d);
        oC(Es, dc.end), or(Es, 3072);
        const ds = t.createReturnStatement(Es);
        mk(ds, dc.pos), or(ds, 3840), dl.push(ds), Pm(dl, e.endLexicalEnvironment());
        const fl = t.createImmediatelyInvokedArrowFunction(dl);
        bO(fl, 1);
        const Jd = xt & 16 ? t.createModifiersFromModifierFlags(1) : void 0, Hl = t.createVariableStatement(Jd, t.createVariableDeclarationList([
          t.createVariableDeclaration(t.getLocalName(Q, !1, !1), void 0, void 0, fl)
        ], 1));
        Wr(Hl, Q), Hc(Hl, Q), fs(Hl, Ov(Q)), Vu(Hl), Ya = Hl;
      } else
        Ya = ho;
      if (Dr) {
        if (xt & 8)
          return sn(Ya, rl(Q));
        if (xt & 32)
          return sn(Ya, t.createExportDefault(t.getLocalName(Q, !1, !0)));
        if (xt & 16 && !mn)
          return sn(Ya, t.createExternalModuleExport(t.getLocalName(Q, !1, !0)));
      }
      return Ya;
    }
    function sn(Q, ot) {
      return Zp(Q, 8388608), [
        Q,
        ot,
        t.createEndOfDeclarationMarker(Q)
      ];
    }
    function Qt(Q) {
      let ot = Jn(Q.modifiers, Ye, nl);
      return v1(E, Q) && (ot = jn(ot, Q)), t.updateClassExpression(Q, ot, Q.name, void 0, Jn(Q.heritageClauses, W, jd), On(Q));
    }
    function On(Q) {
      const ot = Jn(Q.members, Ve(Q), Uc);
      let xt;
      const mn = Eh(Q), Dr = mn && lr(mn.parameters, (Pr) => nf(Pr, mn));
      if (Dr)
        for (const Pr of Dr) {
          const Ta = t.createPropertyDeclaration(void 0, Pr.name, void 0, void 0, void 0);
          Wr(Ta, Pr), xt = Fn(xt, Ta);
        }
      return xt ? (xt = Ti(xt, ot), ht(t.createNodeArray(xt), Q.members)) : ot;
    }
    function jn(Q, ot) {
      const xt = Zt(ot, ot);
      if (kt(xt)) {
        const mn = [];
        Ti(mn, X4(Q, WJ)), Ti(mn, lr(Q, Fu)), Ti(mn, xt), Ti(mn, lr(zse(Q, WJ), fo)), Q = ht(t.createNodeArray(mn), Q);
      }
      return Q;
    }
    function In(Q, ot, xt) {
      if (di(xt) && cz(E, ot, xt)) {
        const mn = Zt(ot, xt);
        if (kt(mn)) {
          const Dr = [];
          Ti(Dr, lr(Q, Fu)), Ti(Dr, mn), Ti(Dr, lr(Q, fo)), Q = ht(t.createNodeArray(Dr), Q);
        }
      }
      return Q;
    }
    function Zt(Q, ot) {
      if (E)
        return dhe ? Ii(Q, ot) : _r(Q, ot);
    }
    function _r(Q, ot) {
      if (A) {
        let xt;
        if ($i(Q)) {
          const mn = r().createMetadataHelper("design:type", A.serializeTypeOfNode({ currentLexicalScope: V, currentNameScope: ot }, Q));
          xt = Fn(xt, t.createDecorator(mn));
        }
        if (Or(Q)) {
          const mn = r().createMetadataHelper("design:paramtypes", A.serializeParameterTypesOfNode({ currentLexicalScope: V, currentNameScope: ot }, Q, ot));
          xt = Fn(xt, t.createDecorator(mn));
        }
        if (Qi(Q)) {
          const mn = r().createMetadataHelper("design:returntype", A.serializeReturnTypeOfNode({ currentLexicalScope: V, currentNameScope: ot }, Q));
          xt = Fn(xt, t.createDecorator(mn));
        }
        return xt;
      }
    }
    function Ii(Q, ot) {
      if (A) {
        let xt;
        if ($i(Q)) {
          const mn = t.createPropertyAssignment("type", t.createArrowFunction(void 0, void 0, [], void 0, t.createToken(38), A.serializeTypeOfNode({ currentLexicalScope: V, currentNameScope: ot }, Q)));
          xt = Fn(xt, mn);
        }
        if (Or(Q)) {
          const mn = t.createPropertyAssignment("paramTypes", t.createArrowFunction(void 0, void 0, [], void 0, t.createToken(38), A.serializeParameterTypesOfNode({ currentLexicalScope: V, currentNameScope: ot }, Q, ot)));
          xt = Fn(xt, mn);
        }
        if (Qi(Q)) {
          const mn = t.createPropertyAssignment("returnType", t.createArrowFunction(void 0, void 0, [], void 0, t.createToken(38), A.serializeReturnTypeOfNode({ currentLexicalScope: V, currentNameScope: ot }, Q)));
          xt = Fn(xt, mn);
        }
        if (xt) {
          const mn = r().createMetadataHelper("design:typeinfo", t.createObjectLiteralExpression(xt, !0));
          return [t.createDecorator(mn)];
        }
      }
    }
    function $i(Q) {
      const ot = Q.kind;
      return ot === 171 || ot === 174 || ot === 175 || ot === 169;
    }
    function Qi(Q) {
      return Q.kind === 171;
    }
    function Or(Q) {
      switch (Q.kind) {
        case 260:
        case 228:
          return Eh(Q) !== void 0;
        case 171:
        case 174:
        case 175:
          return !0;
      }
      return !1;
    }
    function At(Q, ot) {
      const xt = Q.name;
      return Ni(xt) ? t.createIdentifier("") : As(xt) ? ot && !im(xt.expression) ? t.getGeneratedNameForNode(xt) : xt.expression : je(xt) ? t.createStringLiteral(Mr(xt)) : t.cloneNode(xt);
    }
    function vn(Q) {
      const ot = Q.name;
      if (As(ot) && (!gc(Q) && te || $f(Q) && E)) {
        const xt = lt(ot.expression, W, vt);
        D.assert(xt);
        const mn = M_(xt);
        if (!im(mn)) {
          const Dr = t.getGeneratedNameForNode(ot);
          return c(Dr), t.updateComputedPropertyName(ot, t.createAssignment(Dr, xt));
        }
      }
      return D.checkDefined(lt(ot, W, yl));
    }
    function Wt(Q) {
      if (Q.token !== 117)
        return Bn(Q, W, e);
    }
    function fn(Q) {
      return t.updateExpressionWithTypeArguments(Q, D.checkDefined(lt(Q.expression, W, Td)), void 0);
    }
    function rr(Q) {
      return !Al(Q.body);
    }
    function cr(Q, ot) {
      const xt = Q.flags & 16777216 || Yr(Q, 256);
      if (xt && !(E && $f(Q)))
        return;
      let mn = di(ot) ? xt ? Jn(Q.modifiers, Ye, nl) : Jn(Q.modifiers, W, nl) : Jn(Q.modifiers, Me, nl);
      return mn = In(mn, Q, ot), xt ? t.updatePropertyDeclaration(Q, va(mn, t.createModifiersFromModifierFlags(2)), D.checkDefined(lt(Q.name, W, yl)), void 0, void 0, void 0) : t.updatePropertyDeclaration(Q, mn, vn(Q), void 0, void 0, lt(Q.initializer, W, vt));
    }
    function Pi(Q) {
      if (rr(Q))
        return t.updateConstructorDeclaration(Q, void 0, Kl(Q.parameters, W, e), hi(Q.body, Q));
    }
    function hi(Q, ot) {
      const xt = ot && lr(ot.parameters, (Ho) => nf(Ho, ot));
      if (!kt(xt))
        return wf(Q, W, e);
      let mn = [];
      o();
      const Dr = t.copyPrologue(Q.statements, mn, !1, W), Pr = Y5(Q.statements, Dr);
      Pr >= 0 && Ti(mn, Jn(Q.statements, W, wa, Dr, Pr + 1 - Dr));
      const Ta = ia(xt, Rn);
      Pr >= 0 ? Ti(mn, Ta) : mn = [
        ...mn.slice(0, Dr),
        ...Ta,
        ...mn.slice(Dr)
      ];
      const ls = Pr >= 0 ? Pr + 1 : Dr;
      Ti(mn, Jn(Q.statements, W, wa, ls)), mn = t.mergeLexicalEnvironment(mn, s());
      const ho = t.createBlock(ht(t.createNodeArray(mn), Q.statements), !0);
      return ht(ho, Q), Wr(ho, Q), ho;
    }
    function Rn(Q) {
      const ot = Q.name;
      if (!je(ot))
        return;
      const xt = Vo(ht(t.cloneNode(ot), ot), ot.parent);
      or(xt, 3168);
      const mn = Vo(ht(t.cloneNode(ot), ot), ot.parent);
      return or(mn, 3072), Vu(vO(ht(Wr(t.createExpressionStatement(t.createAssignment(ht(t.createPropertyAccessExpression(t.createThis(), xt), Q.name), mn)), Q), Y0(Q, -1))));
    }
    function an(Q, ot) {
      if (!(Q.transformFlags & 1))
        return Q;
      if (!rr(Q))
        return;
      let xt = di(ot) ? Jn(Q.modifiers, W, nl) : Jn(Q.modifiers, Me, nl);
      return xt = In(xt, Q, ot), t.updateMethodDeclaration(Q, xt, Q.asteriskToken, vn(Q), void 0, void 0, Kl(Q.parameters, W, e), void 0, wf(Q.body, W, e));
    }
    function Pn(Q) {
      return !(Al(Q.body) && Yr(Q, 256));
    }
    function Ar(Q, ot) {
      if (!(Q.transformFlags & 1))
        return Q;
      if (!Pn(Q))
        return;
      let xt = di(ot) ? Jn(Q.modifiers, W, nl) : Jn(Q.modifiers, Me, nl);
      return xt = In(xt, Q, ot), t.updateGetAccessorDeclaration(Q, xt, vn(Q), Kl(Q.parameters, W, e), void 0, wf(Q.body, W, e) || t.createBlock([]));
    }
    function Hr(Q, ot) {
      if (!(Q.transformFlags & 1))
        return Q;
      if (!Pn(Q))
        return;
      let xt = di(ot) ? Jn(Q.modifiers, W, nl) : Jn(Q.modifiers, Me, nl);
      return xt = In(xt, Q, ot), t.updateSetAccessorDeclaration(Q, xt, vn(Q), Kl(Q.parameters, W, e), wf(Q.body, W, e) || t.createBlock([]));
    }
    function we(Q) {
      if (!rr(Q))
        return t.createNotEmittedStatement(Q);
      const ot = t.updateFunctionDeclaration(Q, Jn(Q.modifiers, We, fo), Q.asteriskToken, Q.name, void 0, Kl(Q.parameters, W, e), void 0, wf(Q.body, W, e) || t.createBlock([]));
      if (da(Q)) {
        const xt = [ot];
        return Gl(xt, Q), xt;
      }
      return ot;
    }
    function yt(Q) {
      return rr(Q) ? t.updateFunctionExpression(Q, Jn(Q.modifiers, We, fo), Q.asteriskToken, Q.name, void 0, Kl(Q.parameters, W, e), void 0, wf(Q.body, W, e) || t.createBlock([])) : t.createOmittedExpression();
    }
    function Nt(Q) {
      return t.updateArrowFunction(Q, Jn(Q.modifiers, We, fo), void 0, Kl(Q.parameters, W, e), void 0, Q.equalsGreaterThanToken, wf(Q.body, W, e));
    }
    function Ce(Q) {
      if (x1(Q))
        return;
      const ot = t.updateParameterDeclaration(Q, Jn(Q.modifiers, (xt) => Fu(xt) ? W(xt) : void 0, nl), Q.dotDotDotToken, D.checkDefined(lt(Q.name, W, hh)), void 0, void 0, lt(Q.initializer, W, vt));
      return ot !== Q && (Hc(ot, Q), ht(ot, $p(Q)), fs(ot, $p(Q)), or(ot.name, 64)), ot;
    }
    function pt(Q) {
      if (da(Q)) {
        const ot = ik(Q.declarationList);
        return ot.length === 0 ? void 0 : ht(t.createExpressionStatement(t.inlineExpressions(jt(ot, _e))), Q);
      } else
        return Bn(Q, W, e);
    }
    function _e(Q) {
      const ot = Q.name;
      return Xa(ot) ? FT(Q, W, e, 0, !1, Ul) : ht(t.createAssignment(Co(ot), D.checkDefined(lt(Q.initializer, W, vt))), Q);
    }
    function ie(Q) {
      const ot = t.updateVariableDeclaration(Q, D.checkDefined(lt(Q.name, W, hh)), void 0, void 0, lt(Q.initializer, W, vt));
      return Q.type && kfe(ot.name, Q.type), ot;
    }
    function he(Q) {
      const ot = bu(Q.expression, -7);
      if (iT(ot)) {
        const xt = lt(Q.expression, W, vt);
        return D.assert(xt), t.createPartiallyEmittedExpression(xt, Q);
      }
      return Bn(Q, W, e);
    }
    function j(Q) {
      const ot = lt(Q.expression, W, vt);
      return D.assert(ot), t.createPartiallyEmittedExpression(ot, Q);
    }
    function He(Q) {
      const ot = lt(Q.expression, W, Td);
      return D.assert(ot), t.createPartiallyEmittedExpression(ot, Q);
    }
    function Ze(Q) {
      const ot = lt(Q.expression, W, vt);
      return D.assert(ot), t.createPartiallyEmittedExpression(ot, Q);
    }
    function Xe(Q) {
      return t.updateCallExpression(Q, D.checkDefined(lt(Q.expression, W, vt)), void 0, Jn(Q.arguments, W, vt));
    }
    function Ut(Q) {
      return t.updateNewExpression(Q, D.checkDefined(lt(Q.expression, W, vt)), void 0, Jn(Q.arguments, W, vt));
    }
    function cn(Q) {
      return t.updateTaggedTemplateExpression(Q, D.checkDefined(lt(Q.tag, W, vt)), void 0, D.checkDefined(lt(Q.template, W, IA)));
    }
    function Sn(Q) {
      return t.updateJsxSelfClosingElement(Q, D.checkDefined(lt(Q.tagName, W, wI)), void 0, D.checkDefined(lt(Q.attributes, W, N1)));
    }
    function Er(Q) {
      return t.updateJsxOpeningElement(Q, D.checkDefined(lt(Q.tagName, W, wI)), void 0, D.checkDefined(lt(Q.attributes, W, N1)));
    }
    function ue(Q) {
      return !y1(Q) || C1(d);
    }
    function mt(Q) {
      if (!ue(Q))
        return t.createNotEmittedStatement(Q);
      const ot = [];
      let xt = 4;
      const mn = gt(ot, Q);
      mn && (h !== 4 || V !== O) && (xt |= 1024);
      const Dr = La(Q), Pr = Yo(Q), Ta = Yr(Q, 1) ? t.getExternalModuleOrNamespaceExportName(G, Q, !1, !0) : t.getLocalName(Q, !1, !0);
      let ls = t.createLogicalOr(Ta, t.createAssignment(Ta, t.createObjectLiteralExpression()));
      if (Z(Q)) {
        const Ho = t.getLocalName(Q, !1, !0);
        ls = t.createAssignment(Ho, ls);
      }
      const ho = t.createExpressionStatement(t.createCallExpression(t.createFunctionExpression(void 0, void 0, void 0, void 0, [t.createParameterDeclaration(void 0, void 0, Dr)], void 0, zt(Q, Pr)), void 0, [ls]));
      return Wr(ho, Q), mn && (w1(ho, void 0), _C(ho, void 0)), ht(ho, Q), Zp(ho, xt), ot.push(ho), ot.push(t.createEndOfDeclarationMarker(Q)), ot;
    }
    function zt(Q, ot) {
      const xt = G;
      G = ot;
      const mn = [];
      i();
      const Dr = jt(Q.members, it);
      return Pm(mn, s()), Ti(mn, Dr), G = xt, t.createBlock(ht(t.createNodeArray(mn), Q.members), !0);
    }
    function it(Q) {
      const ot = At(Q, !1), xt = K(Q), mn = t.createAssignment(t.createElementAccessExpression(G, ot), xt), Dr = xt.kind === 10 ? mn : t.createAssignment(t.createElementAccessExpression(G, mn), ot);
      return ht(t.createExpressionStatement(ht(Dr, Q)), Q);
    }
    function K(Q) {
      const ot = f.getConstantValue(Q);
      return ot !== void 0 ? typeof ot == "string" ? t.createStringLiteral(ot) : t.createNumericLiteral(ot) : (Vl(), Q.initializer ? D.checkDefined(lt(Q.initializer, W, vt)) : t.createVoidZero());
    }
    function Pe(Q) {
      const ot = Ea(Q, Jl);
      return ot ? YK(ot, C1(d)) : !0;
    }
    function Z(Q) {
      return da(Q) || wn(Q) && h !== 5 && h !== 6 && h !== 7 && h !== 99 && h !== 4;
    }
    function Re(Q) {
      H || (H = /* @__PURE__ */ new Map());
      const ot = Rt(Q);
      H.has(ot) || H.set(ot, Q);
    }
    function q(Q) {
      if (H) {
        const ot = Rt(Q);
        return H.get(ot) === Q;
      }
      return !0;
    }
    function Rt(Q) {
      return D.assertNode(Q.name, je), Q.name.escapedText;
    }
    function gt(Q, ot) {
      const xt = t.createVariableStatement(Jn(ot.modifiers, We, fo), t.createVariableDeclarationList([
        t.createVariableDeclaration(t.getLocalName(ot, !1, !0))
      ], V.kind === 308 ? 0 : 1));
      if (Wr(xt, ot), Re(ot), q(ot))
        return ot.kind === 263 ? fs(xt.declarationList, ot) : fs(xt, ot), Hc(xt, ot), Zp(xt, 8390656), Q.push(xt), !0;
      {
        const mn = t.createMergeDeclarationMarker(xt);
        return or(mn, 8391680), Q.push(mn), !1;
      }
    }
    function ft(Q) {
      if (!Pe(Q))
        return t.createNotEmittedStatement(Q);
      D.assertNode(Q.name, je, "A TypeScript namespace should have an Identifier name."), tu();
      const ot = [];
      let xt = 4;
      const mn = gt(ot, Q);
      mn && (h !== 4 || V !== O) && (xt |= 1024);
      const Dr = La(Q), Pr = Yo(Q), Ta = Yr(Q, 1) ? t.getExternalModuleOrNamespaceExportName(G, Q, !1, !0) : t.getLocalName(Q, !1, !0);
      let ls = t.createLogicalOr(Ta, t.createAssignment(Ta, t.createObjectLiteralExpression()));
      if (Z(Q)) {
        const Ho = t.getLocalName(Q, !1, !0);
        ls = t.createAssignment(Ho, ls);
      }
      const ho = t.createExpressionStatement(t.createCallExpression(t.createFunctionExpression(void 0, void 0, void 0, void 0, [t.createParameterDeclaration(void 0, void 0, Dr)], void 0, _n(Q, Pr)), void 0, [ls]));
      return Wr(ho, Q), mn && (w1(ho, void 0), _C(ho, void 0)), ht(ho, Q), Zp(ho, xt), ot.push(ho), ot.push(t.createEndOfDeclarationMarker(Q)), ot;
    }
    function _n(Q, ot) {
      const xt = G, mn = k, Dr = H;
      G = ot, k = Q, H = void 0;
      const Pr = [];
      i();
      let Ta, ls;
      if (Q.body)
        if (Q.body.kind === 265)
          ye(Q.body, (Ho) => Ti(Pr, Jn(Ho.statements, ee, wa))), Ta = Q.body.statements, ls = Q.body;
        else {
          const Ho = ft(Q.body);
          Ho && (Va(Ho) ? Ti(Pr, Ho) : Pr.push(Ho));
          const Ya = $n(Q).body;
          Ta = Y0(Ya.statements, -1);
        }
      Pm(Pr, s()), G = xt, k = mn, H = Dr;
      const ho = t.createBlock(ht(t.createNodeArray(Pr), Ta), !0);
      return ht(ho, ls), (!Q.body || Q.body.kind !== 265) && or(ho, vo(ho) | 3072), ho;
    }
    function $n(Q) {
      if (Q.body.kind === 264)
        return $n(Q.body) || Q.body;
    }
    function oi(Q) {
      if (!Q.importClause)
        return Q;
      if (Q.importClause.isTypeOnly)
        return;
      const ot = lt(Q.importClause, Ai, Wm);
      return ot || d.importsNotUsedAsValues === 1 || d.importsNotUsedAsValues === 2 ? t.updateImportDeclaration(Q, void 0, ot, Q.moduleSpecifier, Q.assertClause) : void 0;
    }
    function Ai(Q) {
      D.assert(!Q.isTypeOnly);
      const ot = Ht(Q) ? Q.name : void 0, xt = lt(Q.namedBindings, Ci, IW);
      return ot || xt ? t.updateImportClause(Q, !1, ot, xt) : void 0;
    }
    function Ci(Q) {
      if (Q.kind === 271)
        return Ht(Q) ? Q : void 0;
      {
        const ot = d.verbatimModuleSyntax || d.preserveValueImports && (d.importsNotUsedAsValues === 1 || d.importsNotUsedAsValues === 2), xt = Jn(Q.elements, ji, Ld);
        return ot || kt(xt) ? t.updateNamedImports(Q, xt) : void 0;
      }
    }
    function ji(Q) {
      return !Q.isTypeOnly && Ht(Q) ? Q : void 0;
    }
    function mo(Q) {
      return d.verbatimModuleSyntax || f.isValueAliasDeclaration(Q) ? Bn(Q, W, e) : void 0;
    }
    function To(Q) {
      if (Q.isTypeOnly)
        return;
      if (!Q.exportClause || Ih(Q.exportClause))
        return Q;
      const ot = d.verbatimModuleSyntax || !!Q.moduleSpecifier && (d.importsNotUsedAsValues === 1 || d.importsNotUsedAsValues === 2), xt = lt(Q.exportClause, (mn) => Hi(mn, ot), hW);
      return xt ? t.updateExportDeclaration(Q, void 0, Q.isTypeOnly, xt, Q.moduleSpecifier, Q.assertClause) : void 0;
    }
    function io(Q, ot) {
      const xt = Jn(Q.elements, Xr, dd);
      return ot || kt(xt) ? t.updateNamedExports(Q, xt) : void 0;
    }
    function ua(Q) {
      return t.updateNamespaceExport(Q, D.checkDefined(lt(Q.name, W, je)));
    }
    function Hi(Q, ot) {
      return Ih(Q) ? ua(Q) : io(Q, ot);
    }
    function Xr(Q) {
      return !Q.isTypeOnly && (d.verbatimModuleSyntax || f.isValueAliasDeclaration(Q)) ? Q : void 0;
    }
    function ss(Q) {
      return Ht(Q) || !Zl(O) && f.isTopLevelValueImportEqualsWithEntityName(Q);
    }
    function _i(Q) {
      if (Q.isTypeOnly)
        return;
      if (H0(Q)) {
        const xt = Ht(Q);
        return !xt && d.importsNotUsedAsValues === 1 ? Wr(ht(t.createImportDeclaration(void 0, void 0, Q.moduleReference.expression, void 0), Q), Q) : xt ? Bn(Q, W, e) : void 0;
      }
      if (!ss(Q))
        return;
      const ot = VO(t, Q.moduleReference);
      return or(ot, 7168), pa(Q) || !da(Q) ? Wr(ht(t.createVariableStatement(Jn(Q.modifiers, We, fo), t.createVariableDeclarationList([
        Wr(t.createVariableDeclaration(Q.name, void 0, void 0, ot), Q)
      ])), Q), Q) : Wr(Xl(Q.name, ot, Q), Q);
    }
    function da(Q) {
      return k !== void 0 && Yr(Q, 1);
    }
    function wn(Q) {
      return k === void 0 && Yr(Q, 1);
    }
    function pa(Q) {
      return wn(Q) && !Yr(Q, 1024);
    }
    function ec(Q) {
      return wn(Q) && Yr(Q, 1024);
    }
    function rl(Q) {
      const ot = t.createAssignment(t.getExternalModuleOrNamespaceExportName(G, Q, !1, !0), t.getLocalName(Q));
      fs(ot, h_(Q.name ? Q.name.pos : Q.pos, Q.end));
      const xt = t.createExpressionStatement(ot);
      return fs(xt, h_(-1, Q.end)), xt;
    }
    function Gl(Q, ot) {
      Q.push(rl(ot));
    }
    function Xl(Q, ot, xt) {
      return ht(t.createExpressionStatement(t.createAssignment(t.getNamespaceMemberName(G, Q, !1, !0), ot)), xt);
    }
    function Ul(Q, ot, xt) {
      return ht(t.createAssignment(Co(Q), ot), xt);
    }
    function Co(Q) {
      return t.getNamespaceMemberName(G, Q, !1, !0);
    }
    function La(Q) {
      const ot = t.getGeneratedNameForNode(Q);
      return fs(ot, Q.name), ot;
    }
    function Yo(Q) {
      return t.getGeneratedNameForNode(Q);
    }
    function Vl() {
      X & 8 || (X |= 8, e.enableSubstitution(79));
    }
    function tu() {
      X & 2 || (X |= 2, e.enableSubstitution(79), e.enableSubstitution(300), e.enableEmitNotification(264));
    }
    function qd(Q) {
      return Tl(Q).kind === 264;
    }
    function oc(Q) {
      return Tl(Q).kind === 263;
    }
    function Jc(Q, ot, xt) {
      const mn = Y, Dr = O;
      qi(ot) && (O = ot), X & 2 && qd(ot) && (Y |= 2), X & 8 && oc(ot) && (Y |= 8), L(Q, ot, xt), Y = mn, O = Dr;
    }
    function Ds(Q, ot) {
      return ot = I(Q, ot), Q === 1 ? el(ot) : t_(ot) ? hl(ot) : ot;
    }
    function hl(Q) {
      if (X & 2) {
        const ot = Q.name, xt = rn(ot);
        if (xt) {
          if (Q.objectAssignmentInitializer) {
            const mn = t.createAssignment(xt, Q.objectAssignmentInitializer);
            return ht(t.createPropertyAssignment(ot, mn), Q);
          }
          return ht(t.createPropertyAssignment(ot, xt), Q);
        }
      }
      return Q;
    }
    function el(Q) {
      switch (Q.kind) {
        case 79:
          return Ks(Q);
        case 208:
          return jl(Q);
        case 209:
          return xu(Q);
      }
      return Q;
    }
    function Ks(Q) {
      return rn(Q) || Q;
    }
    function rn(Q) {
      if (X & Y && !Sl(Q) && !Uv(Q)) {
        const ot = f.getReferencedExportContainer(Q, !1);
        if (ot && ot.kind !== 308 && (Y & 2 && ot.kind === 264 || Y & 8 && ot.kind === 263))
          return ht(t.createPropertyAccessExpression(t.getGeneratedNameForNode(ot), Q), Q);
      }
    }
    function jl(Q) {
      return fe(Q);
    }
    function xu(Q) {
      return fe(Q);
    }
    function Wu(Q) {
      return Q.replace(/\*\//g, "*_/");
    }
    function fe(Q) {
      const ot = It(Q);
      if (ot !== void 0) {
        Lfe(Q, ot);
        const xt = typeof ot == "string" ? t.createStringLiteral(ot) : t.createNumericLiteral(ot);
        if (!d.removeComments) {
          const mn = Tl(Q, ll);
          l7(xt, 3, ` ${Wu(Sc(mn))} `);
        }
        return xt;
      }
      return Q;
    }
    function It(Q) {
      if (!j_(d))
        return Fr(Q) || cl(Q) ? f.getConstantValue(Q) : void 0;
    }
    function Ht(Q) {
      return d.verbatimModuleSyntax || fr(Q) || (d.preserveValueImports ? f.isValueAliasDeclaration(Q) : f.isReferencedAliasDeclaration(Q));
    }
  }
  var dhe, $Me = C({
    "src/compiler/transformers/ts.ts"() {
      Oa(), dhe = !1;
    }
  });
  function fhe(e) {
    const {
      factory: t,
      getEmitHelperFactory: r,
      hoistVariableDeclaration: i,
      endLexicalEnvironment: o,
      startLexicalEnvironment: s,
      resumeLexicalEnvironment: c,
      addBlockScopedVariable: f
    } = e, d = e.getEmitResolver(), y = e.getCompilerOptions(), h = ts(y), E = nO(y), A = !!y.experimentalDecorators, L = !E, I = E && h < 9, O = L || I, k = h < 9, G = h < 99 ? -1 : E ? 0 : 3, V = h < 9, H = V && h >= 2, te = O || k || G === -1, X = e.onSubstituteNode;
    e.onSubstituteNode = Ks;
    const Y = e.onEmitNode;
    e.onEmitNode = el;
    let P = !1, de, re, ye, ae, W;
    const ce = /* @__PURE__ */ new Map();
    let me, ve, Te = !1, ee = !1;
    return X_(e, Qe);
    function Qe(fe) {
      if (fe.isDeclarationFile || (W = void 0, P = !!(F_(fe) & 32), !te && !P))
        return fe;
      const It = Bn(fe, Be, e);
      return Ey(It, e.readEmitHelpers()), It;
    }
    function Ve(fe) {
      switch (fe.kind) {
        case 127:
          return cr() ? void 0 : fe;
        default:
          return ai(fe, fo);
      }
    }
    function Be(fe) {
      if (!(fe.transformFlags & 16777216) && !(fe.transformFlags & 134234112))
        return fe;
      switch (fe.kind) {
        case 127:
          return D.fail("Use `modifierVisitor` instead.");
        case 260:
          return ue(fe);
        case 228:
          return zt(fe, void 0);
        case 172:
        case 169:
          return D.fail("Use `classElementVisitor` instead.");
        case 299:
          return tt(fe);
        case 240:
          return at(fe);
        case 257:
          return Qt(fe);
        case 166:
          return On(fe);
        case 205:
          return jn(fe);
        case 274:
          return In(fe);
        case 80:
          return Et(fe);
        case 208:
          return an(fe);
        case 209:
          return Pn(fe);
        case 221:
        case 222:
          return Ar(fe, !1);
        case 223:
          return ie(fe, !1);
        case 214:
          return j(fe, !1, void 0);
        case 210:
          return Nt(fe);
        case 241:
          return we(fe);
        case 212:
          return Ce(fe);
        case 245:
          return Hr(fe);
        case 259:
        case 215:
        case 173:
        case 171:
        case 174:
        case 175:
          return Or(void 0, qe, fe);
        default:
          return qe(fe);
      }
    }
    function qe(fe) {
      return Bn(fe, Be, e);
    }
    function Oe(fe, It) {
      switch (fe.kind) {
        case 356:
          return He(fe, !1, It);
        case 214:
          return j(fe, !1, It);
        case 228:
          return zt(fe, It);
        default:
          return Be(fe);
      }
    }
    function Me(fe) {
      switch (fe.kind) {
        case 221:
        case 222:
          return Ar(fe, !0);
        case 223:
          return ie(fe, !0);
        case 357:
          return he(fe, !0);
        case 214:
          return j(fe, !0, void 0);
        default:
          return Be(fe);
      }
    }
    function Ye(fe) {
      switch (fe.kind) {
        case 294:
          return Bn(fe, Ye, e);
        case 230:
          return Sn(fe);
        default:
          return Be(fe);
      }
    }
    function We(fe) {
      switch (fe.kind) {
        case 207:
        case 206:
          return hl(fe);
        default:
          return Be(fe);
      }
    }
    function Fe(fe) {
      switch (fe.kind) {
        case 173:
          return Ii(fe);
        case 174:
        case 175:
        case 171:
          return Or(void 0, Qi, fe);
        case 169:
          return Or(void 0, Pi, fe);
        case 172:
          return K(fe);
        case 164:
          return _r(fe);
        case 237:
          return fe;
        default:
          return nl(fe) ? Ve(fe) : Be(fe);
      }
    }
    function st(fe) {
      switch (fe.kind) {
        case 164:
          return _r(fe);
        default:
          return Be(fe);
      }
    }
    function Ct(fe) {
      switch (fe.kind) {
        case 169:
          return rr(fe);
        case 174:
        case 175:
          return Fe(fe);
        default:
          D.assertMissingNode(fe, "Expected node to either be a PropertyDeclaration, GetAccessorDeclaration, or SetAccessorDeclaration");
          break;
      }
    }
    function Et(fe) {
      return !k || wa(fe.parent) ? fe : Wr(t.createIdentifier(""), fe);
    }
    function Vt(fe) {
      const It = Ul(fe.left);
      if (It) {
        const Ht = lt(fe.right, Be, vt);
        return Wr(r().createClassPrivateFieldInHelper(It.brandCheckIdentifier, Ht), fe);
      }
      return Bn(fe, Be, e);
    }
    function tt(fe) {
      if (Yf(fe, _e)) {
        const { referencedName: It, name: Ht } = Ze(fe.name), Q = lt(fe.initializer, (ot) => Oe(ot, It), vt);
        return t.updatePropertyAssignment(fe, Ht, Q);
      }
      return Bn(fe, Be, e);
    }
    function at(fe) {
      const It = ae;
      ae = [];
      const Ht = Bn(fe, Be, e), Q = kt(ae) ? [Ht, ...ae] : Ht;
      return ae = It, Q;
    }
    function sn(fe, It) {
      const Ht = Tl(It, di);
      return Ht && !Ht.name && Yr(Ht, 1024) ? t.createStringLiteral("default") : t.createStringLiteralFromNode(fe);
    }
    function Qt(fe) {
      if (Yf(fe, _e)) {
        const It = sn(fe.name, fe.initializer), Ht = lt(fe.name, Be, hh), Q = lt(fe.initializer, (ot) => Oe(ot, It), vt);
        return t.updateVariableDeclaration(fe, Ht, void 0, void 0, Q);
      }
      return Bn(fe, Be, e);
    }
    function On(fe) {
      if (Yf(fe, _e)) {
        const It = sn(fe.name, fe.initializer), Ht = lt(fe.name, Be, hh), Q = lt(fe.initializer, (ot) => Oe(ot, It), vt);
        return t.updateParameterDeclaration(fe, void 0, void 0, Ht, void 0, void 0, Q);
      }
      return Bn(fe, Be, e);
    }
    function jn(fe) {
      if (Yf(fe, _e)) {
        const It = sn(fe.name, fe.initializer), Ht = lt(fe.propertyName, Be, yl), Q = lt(fe.name, Be, hh), ot = lt(fe.initializer, (xt) => Oe(xt, It), vt);
        return t.updateBindingElement(fe, void 0, Ht, Q, ot);
      }
      return Bn(fe, Be, e);
    }
    function In(fe) {
      if (Yf(fe, _e)) {
        const It = t.createStringLiteral(fe.isExportEquals ? "" : "default"), Ht = Jn(fe.modifiers, Ve, fo), Q = lt(fe.expression, (ot) => Oe(ot, It), vt);
        return t.updateExportAssignment(fe, Ht, Q);
      }
      return Bn(fe, Be, e);
    }
    function Zt(fe) {
      return kt(ye) && (Vd(fe) ? (ye.push(fe.expression), fe = t.updateParenthesizedExpression(fe, t.inlineExpressions(ye))) : (ye.push(fe), fe = t.inlineExpressions(ye)), ye = void 0), fe;
    }
    function _r(fe) {
      const It = lt(fe.expression, Be, vt);
      return t.updateComputedPropertyName(fe, Zt(It));
    }
    function Ii(fe) {
      return me ? Re(fe, me) : qe(fe);
    }
    function $i(fe) {
      return !!(k || gc(fe) && F_(fe) & 32);
    }
    function Qi(fe) {
      if (D.assert(!$f(fe)), !$u(fe) || !$i(fe))
        return Bn(fe, Fe, e);
      const It = Ul(fe.name);
      if (D.assert(It, "Undeclared private name for property declaration."), !It.isValid)
        return fe;
      const Ht = At(fe);
      Ht && Xr().push(t.createAssignment(Ht, t.createFunctionExpression(lr(fe.modifiers, (Q) => fo(Q) && !Ex(Q) && !zfe(Q)), fe.asteriskToken, Ht, void 0, Kl(fe.parameters, Be, e), void 0, wf(fe.body, Be, e))));
    }
    function Or(fe, It, Ht) {
      const Q = ve;
      ve = fe;
      const ot = It(Ht);
      return ve = Q, ot;
    }
    function At(fe) {
      D.assert(Ni(fe.name));
      const It = Ul(fe.name);
      if (D.assert(It, "Undeclared private name for property declaration."), It.kind === "m")
        return It.methodName;
      if (It.kind === "a") {
        if (Iv(fe))
          return It.getterName;
        if (hy(fe))
          return It.setterName;
      }
    }
    function vn(fe) {
      const It = jm(fe), Ht = Q0(fe), Q = fe.name;
      let ot = Q, xt = Q;
      if (As(Q) && !im(Q.expression)) {
        const ls = i5(Q);
        if (ls)
          ot = t.updateComputedPropertyName(Q, lt(Q.expression, Be, vt)), xt = t.updateComputedPropertyName(Q, ls.left);
        else {
          const ho = t.createTempVariable(i);
          fs(ho, Q.expression);
          const Ho = lt(Q.expression, Be, vt), Ya = t.createAssignment(ho, Ho);
          fs(Ya, Q.expression), ot = t.updateComputedPropertyName(Q, Ya), xt = t.updateComputedPropertyName(Q, ho);
        }
      }
      const mn = Jn(fe.modifiers, Ve, fo), Dr = zJ(t, fe, mn, fe.initializer);
      Wr(Dr, fe), or(Dr, 3072), fs(Dr, Ht);
      const Pr = I_e(t, fe, mn, ot);
      Wr(Pr, fe), Hc(Pr, It), fs(Pr, Ht);
      const Ta = k_e(t, fe, mn, xt);
      return Wr(Ta, fe), or(Ta, 3072), fs(Ta, Ht), rX([Dr, Pr, Ta], Ct, Uc);
    }
    function Wt(fe) {
      if ($i(fe)) {
        const It = Ul(fe.name);
        if (D.assert(It, "Undeclared private name for property declaration."), !It.isValid)
          return fe;
        if (It.isStatic && !k) {
          const Ht = gt(fe, t.createThis());
          if (Ht)
            return t.createClassStaticBlockDeclaration(t.createBlock([Ht], !0));
        }
        return;
      }
      if (L && !Ja(fe) && (W != null && W.data) && W.data.facts & 16)
        return t.updatePropertyDeclaration(fe, Jn(fe.modifiers, Be, nl), fe.name, void 0, void 0, void 0);
      if (Yf(fe, _e)) {
        const { referencedName: It, name: Ht } = Ze(fe.name);
        return t.updatePropertyDeclaration(fe, Jn(fe.modifiers, Ve, fo), Ht, void 0, void 0, lt(fe.initializer, (Q) => Oe(Q, It), vt));
      }
      return t.updatePropertyDeclaration(fe, Jn(fe.modifiers, Ve, fo), lt(fe.name, st, yl), void 0, void 0, lt(fe.initializer, Be, vt));
    }
    function fn(fe) {
      if (O && !af(fe)) {
        const It = mo(fe.name, !!fe.initializer || E, Yf(fe, _e));
        if (It && Xr().push(...w_e(It)), Ja(fe) && !k) {
          const Ht = gt(fe, t.createThis());
          if (Ht) {
            const Q = t.createClassStaticBlockDeclaration(t.createBlock([Ht]));
            return Wr(Q, fe), Hc(Q, fe), Hc(Ht, { pos: -1, end: -1 }), w1(Ht, void 0), _C(Ht, void 0), Q;
          }
        }
        return;
      }
      return t.updatePropertyDeclaration(fe, Jn(fe.modifiers, Ve, fo), lt(fe.name, st, yl), void 0, void 0, lt(fe.initializer, Be, vt));
    }
    function rr(fe) {
      return D.assert(!$f(fe), "Decorators should already have been transformed and elided."), $u(fe) ? Wt(fe) : fn(fe);
    }
    function cr() {
      return G === -1 || G === 3 && !!(W != null && W.data) && !!(W.data.facts & 16);
    }
    function Pi(fe) {
      return af(fe) && (cr() || gc(fe) && F_(fe) & 32) ? vn(fe) : rr(fe);
    }
    function hi(fe, It) {
      return Rn(fe, lt(It, Be, vt));
    }
    function Rn(fe, It) {
      switch (Hc(It, Y0(It, -1)), fe.kind) {
        case "a":
          return r().createClassPrivateFieldGetHelper(It, fe.brandCheckIdentifier, fe.kind, fe.getterName);
        case "m":
          return r().createClassPrivateFieldGetHelper(It, fe.brandCheckIdentifier, fe.kind, fe.methodName);
        case "f":
          return r().createClassPrivateFieldGetHelper(It, fe.brandCheckIdentifier, fe.kind, fe.isStatic ? fe.variableName : void 0);
        case "untransformed":
          return D.fail("Access helpers should not be created for untransformed private elements");
        default:
          D.assertNever(fe, "Unknown private element type");
      }
    }
    function an(fe) {
      if (Ni(fe.name)) {
        const It = Ul(fe.name);
        if (It)
          return ht(Wr(hi(It, fe.expression), fe), fe);
      }
      if (H && ud(fe) && je(fe.name) && ve && (W != null && W.data)) {
        const { classConstructor: It, superClassReference: Ht, facts: Q } = W.data;
        if (Q & 1)
          return ji(fe);
        if (It && Ht) {
          const ot = t.createReflectGetCall(Ht, t.createStringLiteralFromNode(fe.name), It);
          return Wr(ot, fe.expression), ht(ot, fe.expression), ot;
        }
      }
      return Bn(fe, Be, e);
    }
    function Pn(fe) {
      if (H && ud(fe) && ve && (W != null && W.data)) {
        const { classConstructor: It, superClassReference: Ht, facts: Q } = W.data;
        if (Q & 1)
          return ji(fe);
        if (It && Ht) {
          const ot = t.createReflectGetCall(Ht, lt(fe.argumentExpression, Be, vt), It);
          return Wr(ot, fe.expression), ht(ot, fe.expression), ot;
        }
      }
      return Bn(fe, Be, e);
    }
    function Ar(fe, It) {
      if (fe.operator === 45 || fe.operator === 46) {
        const Ht = js(fe.operand);
        if (AA(Ht)) {
          let Q;
          if (Q = Ul(Ht.name)) {
            const ot = lt(Ht.expression, Be, vt), { readExpression: xt, initializeExpression: mn } = yt(ot);
            let Dr = hi(Q, xt);
            const Pr = Bv(fe) || It ? void 0 : t.createTempVariable(i);
            return Dr = Y7(t, fe, Dr, i, Pr), Dr = Xe(Q, mn || xt, Dr, 63), Wr(Dr, fe), ht(Dr, fe), Pr && (Dr = t.createComma(Dr, Pr), ht(Dr, fe)), Dr;
          }
        } else if (H && ud(Ht) && ve && (W != null && W.data)) {
          const { classConstructor: Q, superClassReference: ot, facts: xt } = W.data;
          if (xt & 1) {
            const mn = ji(Ht);
            return Bv(fe) ? t.updatePrefixUnaryExpression(fe, mn) : t.updatePostfixUnaryExpression(fe, mn);
          }
          if (Q && ot) {
            let mn, Dr;
            if (Fr(Ht) ? je(Ht.name) && (Dr = mn = t.createStringLiteralFromNode(Ht.name)) : im(Ht.argumentExpression) ? Dr = mn = Ht.argumentExpression : (Dr = t.createTempVariable(i), mn = t.createAssignment(Dr, lt(Ht.argumentExpression, Be, vt))), mn && Dr) {
              let Pr = t.createReflectGetCall(ot, Dr, Q);
              ht(Pr, Ht);
              const Ta = It ? void 0 : t.createTempVariable(i);
              return Pr = Y7(t, fe, Pr, i, Ta), Pr = t.createReflectSetCall(ot, mn, Pr, Q), Wr(Pr, fe), ht(Pr, fe), Ta && (Pr = t.createComma(Pr, Ta), ht(Pr, fe)), Pr;
            }
          }
        }
      }
      return Bn(fe, Be, e);
    }
    function Hr(fe) {
      return t.updateForStatement(fe, lt(fe.initializer, Me, Jp), lt(fe.condition, Be, vt), lt(fe.incrementor, Me, vt), b_(fe.statement, Be, e));
    }
    function we(fe) {
      return t.updateExpressionStatement(fe, lt(fe.expression, Me, vt));
    }
    function yt(fe) {
      const It = Zs(fe) ? fe : t.cloneNode(fe);
      if (im(fe))
        return { readExpression: It, initializeExpression: void 0 };
      const Ht = t.createTempVariable(i), Q = t.createAssignment(Ht, It);
      return { readExpression: Ht, initializeExpression: Q };
    }
    function Nt(fe) {
      var It;
      if (AA(fe.expression) && Ul(fe.expression.name)) {
        const { thisArg: Ht, target: Q } = t.createCallBinding(fe.expression, i, h);
        return tT(fe) ? t.updateCallChain(fe, t.createPropertyAccessChain(lt(Q, Be, vt), fe.questionDotToken, "call"), void 0, void 0, [lt(Ht, Be, vt), ...Jn(fe.arguments, Be, vt)]) : t.updateCallExpression(fe, t.createPropertyAccessExpression(lt(Q, Be, vt), "call"), void 0, [lt(Ht, Be, vt), ...Jn(fe.arguments, Be, vt)]);
      }
      if (H && ud(fe.expression) && ve && ((It = W == null ? void 0 : W.data) != null && It.classConstructor)) {
        const Ht = t.createFunctionCallCall(lt(fe.expression, Be, vt), W.data.classConstructor, Jn(fe.arguments, Be, vt));
        return Wr(Ht, fe), ht(Ht, fe), Ht;
      }
      return Bn(fe, Be, e);
    }
    function Ce(fe) {
      var It;
      if (AA(fe.tag) && Ul(fe.tag.name)) {
        const { thisArg: Ht, target: Q } = t.createCallBinding(fe.tag, i, h);
        return t.updateTaggedTemplateExpression(fe, t.createCallExpression(t.createPropertyAccessExpression(lt(Q, Be, vt), "bind"), void 0, [lt(Ht, Be, vt)]), void 0, lt(fe.template, Be, IA));
      }
      if (H && ud(fe.tag) && ve && ((It = W == null ? void 0 : W.data) != null && It.classConstructor)) {
        const Ht = t.createFunctionBindCall(lt(fe.tag, Be, vt), W.data.classConstructor, []);
        return Wr(Ht, fe), ht(Ht, fe), t.updateTaggedTemplateExpression(fe, Ht, void 0, lt(fe.template, Be, IA));
      }
      return Bn(fe, Be, e);
    }
    function pt(fe) {
      if (W && ce.set(Tl(fe), W), k) {
        s();
        let It = Or(fe, (Q) => Jn(Q, Be, wa), fe.body.statements);
        It = t.mergeLexicalEnvironment(It, o());
        const Ht = t.createImmediatelyInvokedArrowFunction(It);
        return Wr(Ht, fe), ht(Ht, fe), Zp(Ht, 4), Ht;
      }
    }
    function _e(fe) {
      if (Gu(fe) && !fe.name) {
        const It = $5(fe), Ht = nn(It, Il);
        if (Ht) {
          for (const ot of Ht.body.statements)
            if (ou(ot) && xk(ot.expression, "___setFunctionName"))
              return !1;
        }
        return (k || !!F_(fe)) && kt(It, (ot) => Il(ot) || $u(ot) || O && L8(ot));
      }
      return !1;
    }
    function ie(fe, It) {
      if (vy(fe)) {
        const Ht = ye;
        ye = void 0, fe = t.updateBinaryExpression(fe, lt(fe.left, We, vt), fe.operatorToken, lt(fe.right, Be, vt));
        const Q = kt(ye) ? t.inlineExpressions(uR([...ye, fe])) : fe;
        return ye = Ht, Q;
      }
      if (ed(fe)) {
        if (Yf(fe, _e)) {
          const Ht = sn(fe.left, fe.right), Q = lt(fe.left, Be, vt), ot = lt(fe.right, (xt) => Oe(xt, Ht), vt);
          return t.updateBinaryExpression(fe, Q, fe.operatorToken, ot);
        }
        if (AA(fe.left)) {
          const Ht = Ul(fe.left.name);
          if (Ht)
            return ht(Wr(Xe(Ht, fe.left.expression, fe.right, fe.operatorToken.kind), fe), fe);
        } else if (H && ud(fe.left) && ve && (W != null && W.data)) {
          const { classConstructor: Ht, superClassReference: Q, facts: ot } = W.data;
          if (ot & 1)
            return t.updateBinaryExpression(fe, ji(fe.left), fe.operatorToken, lt(fe.right, Be, vt));
          if (Ht && Q) {
            let xt = cl(fe.left) ? lt(fe.left.argumentExpression, Be, vt) : je(fe.left.name) ? t.createStringLiteralFromNode(fe.left.name) : void 0;
            if (xt) {
              let mn = lt(fe.right, Be, vt);
              if (C8(fe.operatorToken.kind)) {
                let Pr = xt;
                im(xt) || (Pr = t.createTempVariable(i), xt = t.createAssignment(Pr, xt));
                const Ta = t.createReflectGetCall(Q, Pr, Ht);
                Wr(Ta, fe.left), ht(Ta, fe.left), mn = t.createBinaryExpression(Ta, ew(fe.operatorToken.kind), mn), ht(mn, fe);
              }
              const Dr = It ? void 0 : t.createTempVariable(i);
              return Dr && (mn = t.createAssignment(Dr, mn), ht(Dr, fe)), mn = t.createReflectSetCall(Q, xt, mn, Ht), Wr(mn, fe), ht(mn, fe), Dr && (mn = t.createComma(mn, Dr), ht(mn, fe)), mn;
            }
          }
        }
      }
      return n3e(fe) ? Vt(fe) : Bn(fe, Be, e);
    }
    function he(fe, It) {
      const Ht = It ? A8(fe.elements, Me) : A8(fe.elements, Be, Me);
      return t.updateCommaListExpression(fe, Ht);
    }
    function j(fe, It, Ht) {
      const Q = It ? Me : Ht ? (xt) => Oe(xt, Ht) : Be, ot = lt(fe.expression, Q, vt);
      return t.updateParenthesizedExpression(fe, ot);
    }
    function He(fe, It, Ht) {
      const Q = It ? Me : Ht ? (xt) => Oe(xt, Ht) : Be, ot = lt(fe.expression, Q, vt);
      return t.updatePartiallyEmittedExpression(fe, ot);
    }
    function Ze(fe) {
      if (G_(fe) || Ni(fe)) {
        const xt = t.createStringLiteralFromNode(fe), mn = lt(fe, Be, yl);
        return { referencedName: xt, name: mn };
      }
      if (G_(fe.expression) && !je(fe.expression)) {
        const xt = t.createStringLiteralFromNode(fe.expression), mn = lt(fe, Be, yl);
        return { referencedName: xt, name: mn };
      }
      const It = t.createTempVariable(i), Ht = r().createPropKeyHelper(lt(fe.expression, Be, vt)), Q = t.createAssignment(It, Ht), ot = t.updateComputedPropertyName(fe, Zt(Q));
      return { referencedName: It, name: ot };
    }
    function Xe(fe, It, Ht, Q) {
      if (It = lt(It, Be, vt), Ht = lt(Ht, Be, vt), C8(Q)) {
        const { readExpression: ot, initializeExpression: xt } = yt(It);
        It = xt || ot, Ht = t.createBinaryExpression(Rn(fe, ot), ew(Q), Ht);
      }
      switch (Hc(It, Y0(It, -1)), fe.kind) {
        case "a":
          return r().createClassPrivateFieldSetHelper(It, fe.brandCheckIdentifier, Ht, fe.kind, fe.setterName);
        case "m":
          return r().createClassPrivateFieldSetHelper(It, fe.brandCheckIdentifier, Ht, fe.kind, void 0);
        case "f":
          return r().createClassPrivateFieldSetHelper(It, fe.brandCheckIdentifier, Ht, fe.kind, fe.isStatic ? fe.variableName : void 0);
        case "untransformed":
          return D.fail("Access helpers should not be created for untransformed private elements");
        default:
          D.assertNever(fe, "Unknown private element type");
      }
    }
    function Ut(fe) {
      return lr(fe.members, ihe);
    }
    function cn(fe) {
      let It = 0;
      const Ht = Tl(fe);
      Nc(Ht) && v1(A, Ht) && (It |= 1);
      let Q = !1, ot = !1, xt = !1, mn = !1;
      for (const Pr of fe.members)
        Ja(Pr) ? (Pr.name && (Ni(Pr.name) || af(Pr)) && k && (It |= 2), (to(Pr) || Il(Pr)) && (V && Pr.transformFlags & 16384 && (It |= 8, It & 1 || (It |= 2)), H && Pr.transformFlags & 134217728 && (It & 1 || (It |= 6)))) : A1(Tl(Pr)) || (af(Pr) ? (mn = !0, xt || (xt = $u(Pr))) : $u(Pr) ? xt = !0 : to(Pr) && (Q = !0, ot || (ot = !!Pr.initializer)));
      return (I && Q || L && ot || k && xt || k && mn && G === -1) && (It |= 16), It;
    }
    function Sn(fe) {
      var It;
      if ((((It = W == null ? void 0 : W.data) == null ? void 0 : It.facts) || 0) & 4) {
        const Q = t.createTempVariable(i, !0);
        return ua().superClassReference = Q, t.updateExpressionWithTypeArguments(fe, t.createAssignment(Q, lt(fe.expression, Be, vt)), void 0);
      }
      return Bn(fe, Be, e);
    }
    function Er(fe, It, Ht) {
      const Q = me, ot = ye, xt = W;
      me = fe, ye = void 0, To();
      const mn = F_(fe) & 32;
      if (k || mn) {
        const Ta = ka(fe);
        Ta && je(Ta) && (Hi().data.className = Ta);
      }
      if (k) {
        const Ta = Ut(fe);
        kt(Ta) && (Hi().data.weakSetName = Gl("instances", Ta[0].name));
      }
      const Dr = cn(fe);
      Dr && (ua().facts = Dr), Dr & 8 && Ai();
      const Pr = Ht(fe, Dr, It);
      return io(), D.assert(W === xt), me = Q, ye = ot, Pr;
    }
    function ue(fe) {
      return Er(fe, void 0, mt);
    }
    function mt(fe, It) {
      var Ht, Q;
      let ot;
      if (It & 2) {
        if (k && ((Ht = fe.emitNode) != null && Ht.classThis))
          ua().classConstructor = fe.emitNode.classThis, ot = t.createAssignment(fe.emitNode.classThis, t.getInternalName(fe));
        else {
          const ho = t.createTempVariable(i, !0);
          ua().classConstructor = t.cloneNode(ho), ot = t.createAssignment(ho, t.getInternalName(fe));
        }
        (Q = fe.emitNode) != null && Q.classThis && (ua().classThis = fe.emitNode.classThis);
      }
      const xt = Jn(fe.modifiers, Ve, fo), mn = Jn(fe.heritageClauses, Ye, jd), { members: Dr, prologue: Pr } = Pe(fe), Ta = t.updateClassDeclaration(fe, xt, fe.name, void 0, mn, Dr), ls = [];
      if (Pr && ls.push(t.createExpressionStatement(Pr)), ls.push(Ta), ot && Xr().unshift(ot), kt(ye) && ls.push(t.createExpressionStatement(t.inlineExpressions(ye))), L || k || F_(fe) & 32) {
        const ho = $5(fe);
        kt(ho) && Rt(ls, ho, t.getInternalName(fe));
      }
      return ls;
    }
    function zt(fe, It) {
      return Er(fe, It, it);
    }
    function it(fe, It, Ht) {
      var Q, ot, xt, mn, Dr, Pr;
      const Ta = !!(It & 1), ls = $5(fe), ho = d.getNodeCheckFlags(fe) & 1048576;
      let Ho;
      function Ya() {
        var Hl;
        if (k && ((Hl = fe.emitNode) != null && Hl.classThis))
          return ua().classConstructor = fe.emitNode.classThis;
        const Nf = d.getNodeCheckFlags(fe), xe = Nf & 1048576, Dt = Nf & 32768, Nn = t.createTempVariable(Dt ? f : i, !!xe);
        return ua().classConstructor = t.cloneNode(Nn), Nn;
      }
      (Q = fe.emitNode) != null && Q.classThis && (ua().classThis = fe.emitNode.classThis), It & 2 && (Ho ?? (Ho = Ya()));
      const dl = Jn(fe.modifiers, Ve, fo), dc = Jn(fe.heritageClauses, Ye, jd), { members: _d, prologue: Es } = Pe(fe);
      let ds = t.updateClassExpression(fe, dl, fe.name, void 0, dc, _d);
      const fl = [];
      if (Es && fl.push(Es), (k || F_(fe) & 32) && kt(ls, (Hl) => Il(Hl) || $u(Hl) || O && L8(Hl)) || kt(ye) || Ht)
        if (Ta) {
          if (D.assertIsDefined(ae, "Decorated classes transformed by TypeScript are expected to be within a variable declaration."), kt(ye) && Ti(ae, jt(ye, t.createExpressionStatement)), Ht)
            if (k) {
              const Hl = r().createSetFunctionNameHelper((xt = Ho ?? ((ot = fe.emitNode) == null ? void 0 : ot.classThis)) != null ? xt : t.getInternalName(fe), Ht);
              ae.push(t.createExpressionStatement(Hl));
            } else {
              const Hl = r().createSetFunctionNameHelper(t.createThis(), Ht);
              ds = t.updateClassExpression(ds, ds.modifiers, ds.name, ds.typeParameters, ds.heritageClauses, [
                t.createClassStaticBlockDeclaration(t.createBlock([
                  t.createExpressionStatement(Hl)
                ])),
                ...ds.members
              ]);
            }
          kt(ls) && Rt(ae, ls, (Dr = (mn = fe.emitNode) == null ? void 0 : mn.classThis) != null ? Dr : t.getInternalName(fe)), Ho ? fl.push(t.createAssignment(Ho, ds)) : k && ((Pr = fe.emitNode) != null && Pr.classThis) ? fl.push(t.createAssignment(fe.emitNode.classThis, ds)) : fl.push(ds);
        } else {
          if (Ho ?? (Ho = Ya()), ho) {
            oi();
            const Hl = t.cloneNode(Ho);
            Hl.emitNode.autoGenerate.flags &= -9, re[kl(fe)] = Hl;
          }
          fl.push(t.createAssignment(Ho, ds)), Ti(fl, ye), Ht && fl.push(r().createSetFunctionNameHelper(Ho, Ht)), Ti(fl, ft(ls, Ho)), fl.push(t.cloneNode(Ho));
        }
      else
        fl.push(ds);
      return fl.length > 1 && (Zp(ds, 131072), fl.forEach(Vu)), t.inlineExpressions(fl);
    }
    function K(fe) {
      if (!k)
        return Bn(fe, Be, e);
    }
    function Pe(fe) {
      const It = !!(F_(fe) & 32);
      if (k || P) {
        for (const mn of fe.members)
          if ($u(mn))
            if ($i(mn))
              rl(mn, mn.name, ss);
            else {
              const Dr = Hi();
              MT(Dr, mn.name, { kind: "untransformed" });
            }
        if (k && kt(Ut(fe)) && Z(), cr()) {
          for (const mn of fe.members)
            if (af(mn)) {
              const Dr = t.getGeneratedPrivateNameForNode(mn.name, void 0, "_accessor_storage");
              if (k || It && gc(mn))
                rl(mn, Dr, _i);
              else {
                const Pr = Hi();
                MT(Pr, Dr, { kind: "untransformed" });
              }
            }
        }
      }
      let Ht = Jn(fe.members, Fe, Uc), Q;
      kt(Ht, ql) || (Q = Re(void 0, fe));
      let ot, xt;
      if (!k && kt(ye)) {
        let mn = t.createExpressionStatement(t.inlineExpressions(ye));
        if (mn.transformFlags & 134234112) {
          const Pr = t.createTempVariable(i), Ta = t.createArrowFunction(void 0, void 0, [], void 0, void 0, t.createBlock([mn]));
          ot = t.createAssignment(Pr, Ta), mn = t.createExpressionStatement(t.createCallExpression(Pr, void 0, []));
        }
        const Dr = t.createBlock([mn]);
        xt = t.createClassStaticBlockDeclaration(Dr), ye = void 0;
      }
      if (Q || xt) {
        let mn;
        mn = Fn(mn, Q), mn = Fn(mn, xt), mn = Ti(mn, Ht), Ht = ht(t.createNodeArray(mn), fe.members);
      }
      return { members: Ht, prologue: ot };
    }
    function Z() {
      const { weakSetName: fe } = Hi().data;
      D.assert(fe, "weakSetName should be set in private identifier environment"), Xr().push(t.createAssignment(fe, t.createNewExpression(t.createIdentifier("WeakSet"), void 0, [])));
    }
    function Re(fe, It) {
      if (fe = lt(fe, Be, ql), !(W != null && W.data) || !(W.data.facts & 16))
        return fe;
      const Ht = Xp(It), Q = !!(Ht && bu(Ht.expression).kind !== 104), ot = Kl(fe ? fe.parameters : void 0, Be, e), xt = q(It, fe, Q);
      return xt ? fe ? (D.assert(ot), t.updateConstructorDeclaration(fe, void 0, ot, xt)) : Vu(Wr(ht(t.createConstructorDeclaration(void 0, ot ?? [], xt), fe || It), fe)) : fe;
    }
    function q(fe, It, Ht) {
      var Q, ot;
      const xt = uX(fe, !1, !1);
      let mn = xt;
      E || (mn = lr(mn, (Es) => !!Es.initializer || Ni(Es.name) || Bm(Es)));
      const Dr = Ut(fe), Pr = kt(mn) || kt(Dr);
      if (!It && !Pr)
        return wf(void 0, Be, e);
      c();
      const Ta = !It && Ht;
      let ls = 0, ho = 0, Ho = -1, Ya = [];
      (Q = It == null ? void 0 : It.body) != null && Q.statements && (ho = t.copyPrologue(It.body.statements, Ya, !1, Be), Ho = Y5(It.body.statements, ho), Ho >= 0 ? (ls = Ho + 1, Ya = [
        ...Ya.slice(0, ho),
        ...Jn(It.body.statements, Be, wa, ho, ls - ho),
        ...Ya.slice(ho)
      ]) : ho >= 0 && (ls = ho)), Ta && Ya.push(t.createExpressionStatement(t.createCallExpression(t.createSuper(), void 0, [t.createSpreadElement(t.createIdentifier("arguments"))])));
      let dl = 0;
      if (It != null && It.body) {
        for (let Es = ls; Es < It.body.statements.length; Es++) {
          const ds = It.body.statements[Es];
          if (nf(Tl(ds), It))
            dl++;
          else
            break;
        }
        dl > 0 && (ls += dl);
      }
      const dc = t.createThis();
      if (Ci(Ya, Dr, dc), It) {
        const Es = lr(xt, (fl) => nf(Tl(fl), It)), ds = lr(mn, (fl) => !nf(Tl(fl), It));
        Rt(Ya, Es, dc), Rt(Ya, ds, dc);
      } else
        Rt(Ya, mn, dc);
      if (It && Ti(Ya, Jn(It.body.statements, Be, wa, ls)), Ya = t.mergeLexicalEnvironment(Ya, o()), Ya.length === 0 && !It)
        return;
      const _d = It != null && It.body && It.body.statements.length >= Ya.length && (ot = It.body.multiLine) != null ? ot : Ya.length > 0;
      return ht(t.createBlock(ht(t.createNodeArray(Ya), It ? It.body.statements : fe.members), _d), It ? It.body : void 0);
    }
    function Rt(fe, It, Ht) {
      for (const Q of It) {
        if (Ja(Q) && !k)
          continue;
        const ot = gt(Q, Ht);
        ot && fe.push(ot);
      }
    }
    function gt(fe, It) {
      const Ht = Il(fe) ? pt(fe) : _n(fe, It);
      if (!Ht)
        return;
      const Q = t.createExpressionStatement(Ht);
      Wr(Q, fe), Zp(Q, vo(fe) & 3072), Hc(Q, fe);
      const ot = Tl(fe);
      return Ba(ot) ? (fs(Q, ot), vO(Q)) : fs(Q, $p(fe)), w1(Ht, void 0), _C(Ht, void 0), Bm(ot) && Zp(Q, 3072), Q;
    }
    function ft(fe, It) {
      const Ht = [];
      for (const Q of fe) {
        const ot = Il(Q) ? pt(Q) : _n(Q, It);
        ot && (Vu(ot), Wr(ot, Q), Zp(ot, vo(Q) & 3072), fs(ot, $p(Q)), Hc(ot, Q), Ht.push(ot));
      }
      return Ht;
    }
    function _n(fe, It) {
      var Ht;
      const Q = ve, ot = $n(fe, It);
      return ot && gc(fe) && ((Ht = W == null ? void 0 : W.data) != null && Ht.facts) && (Wr(ot, fe), Zp(ot, 4), fs(ot, Q0(fe.name)), ce.set(Tl(fe), W)), ve = Q, ot;
    }
    function $n(fe, It) {
      const Ht = !E;
      let Q;
      Yf(fe, _e) && (G_(fe.name) || Ni(fe.name) ? Q = t.createStringLiteralFromNode(fe.name) : G_(fe.name.expression) && !je(fe.name.expression) ? Q = t.createStringLiteralFromNode(fe.name.expression) : Q = t.getGeneratedNameForNode(fe.name));
      const ot = Bm(fe) ? t.getGeneratedPrivateNameForNode(fe.name) : As(fe.name) && !im(fe.name.expression) ? t.updateComputedPropertyName(fe.name, t.getGeneratedNameForNode(fe.name)) : fe.name;
      gc(fe) && (ve = fe);
      const xt = Q ? (Pr) => Oe(Pr, Q) : Be;
      if (Ni(ot) && $i(fe)) {
        const Pr = Ul(ot);
        if (Pr)
          return Pr.kind === "f" ? Pr.isStatic ? QMe(Pr.variableName, lt(fe.initializer, xt, vt)) : ZMe(It, lt(fe.initializer, xt, vt), Pr.brandCheckIdentifier) : void 0;
        D.fail("Undeclared private name for property declaration.");
      }
      if ((Ni(ot) || gc(fe)) && !fe.initializer)
        return;
      const mn = Tl(fe);
      if (Yr(mn, 256))
        return;
      let Dr = lt(fe.initializer, xt, vt);
      if (nf(mn, mn.parent) && je(ot)) {
        const Pr = t.cloneNode(ot);
        Dr ? (Vd(Dr) && jO(Dr.expression) && xk(Dr.expression.left, "___runInitializers") && Lx(Dr.expression.right) && v_(Dr.expression.right.expression) && (Dr = Dr.expression.left), Dr = t.inlineExpressions([Dr, Pr])) : Dr = Pr, or(ot, 3168), fs(Pr, mn.name), or(Pr, 3072);
      } else
        Dr ?? (Dr = t.createVoidZero());
      if (Ht || Ni(ot)) {
        const Pr = DT(t, It, ot, ot);
        return Zp(Pr, 1024), t.createAssignment(Pr, Dr);
      } else {
        const Pr = As(ot) ? ot.expression : je(ot) ? t.createStringLiteral(ta(ot.escapedText)) : ot, Ta = t.createPropertyDescriptor({ value: Dr, configurable: !0, writable: !0, enumerable: !0 });
        return t.createObjectDefinePropertyCall(It, Pr, Ta);
      }
    }
    function oi() {
      de & 1 || (de |= 1, e.enableSubstitution(79), re = []);
    }
    function Ai() {
      de & 2 || (de |= 2, e.enableSubstitution(108), e.enableEmitNotification(259), e.enableEmitNotification(215), e.enableEmitNotification(173), e.enableEmitNotification(174), e.enableEmitNotification(175), e.enableEmitNotification(171), e.enableEmitNotification(169), e.enableEmitNotification(164));
    }
    function Ci(fe, It, Ht) {
      if (!k || !kt(It))
        return;
      const { weakSetName: Q } = Hi().data;
      D.assert(Q, "weakSetName should be set in private identifier environment"), fe.push(t.createExpressionStatement(e3e(Ht, Q)));
    }
    function ji(fe) {
      return Fr(fe) ? t.updatePropertyAccessExpression(fe, t.createVoidZero(), fe.name) : t.updateElementAccessExpression(fe, t.createVoidZero(), lt(fe.argumentExpression, Be, vt));
    }
    function mo(fe, It, Ht) {
      if (As(fe)) {
        const Q = i5(fe);
        let ot = lt(fe.expression, Be, vt);
        const xt = M_(ot), mn = im(xt);
        if (!(!!Q || ed(xt) && Sl(xt.left)) && !mn && It) {
          const Pr = t.getGeneratedNameForNode(fe);
          return d.getNodeCheckFlags(fe) & 32768 ? f(Pr) : i(Pr), Ht && (ot = r().createPropKeyHelper(ot)), t.createAssignment(Pr, ot);
        }
        return mn || je(xt) ? void 0 : ot;
      }
    }
    function To() {
      W = { previous: W, data: void 0 };
    }
    function io() {
      W = W == null ? void 0 : W.previous;
    }
    function ua() {
      var fe;
      return D.assert(W), (fe = W.data) != null ? fe : W.data = {
        facts: 0,
        classConstructor: void 0,
        classThis: void 0,
        superClassReference: void 0
      };
    }
    function Hi() {
      var fe;
      return D.assert(W), (fe = W.privateEnv) != null ? fe : W.privateEnv = she({
        className: void 0,
        weakSetName: void 0
      });
    }
    function Xr() {
      return ye ?? (ye = []);
    }
    function ss(fe, It, Ht, Q, ot, xt, mn) {
      af(fe) ? ec(fe, It, Ht, Q, ot, xt) : to(fe) ? _i(fe, It, Ht, Q, ot, xt) : ac(fe) ? da(fe, It, Ht, Q, ot, xt) : z_(fe) ? wn(fe, It, Ht, Q, ot, xt, mn) : e_(fe) && pa(fe, It, Ht, Q, ot, xt, mn);
    }
    function _i(fe, It, Ht, Q, ot, xt, mn) {
      var Dr;
      if (ot) {
        const Pr = D.checkDefined((Dr = Ht.classThis) != null ? Dr : Ht.classConstructor, "classConstructor should be set in private identifier environment"), Ta = Xl(It);
        MT(Q, It, {
          kind: "f",
          isStatic: !0,
          brandCheckIdentifier: Pr,
          variableName: Ta,
          isValid: xt
        });
      } else {
        const Pr = Xl(It);
        MT(Q, It, {
          kind: "f",
          isStatic: !1,
          brandCheckIdentifier: Pr,
          isValid: xt
        }), Xr().push(t.createAssignment(Pr, t.createNewExpression(t.createIdentifier("WeakMap"), void 0, [])));
      }
    }
    function da(fe, It, Ht, Q, ot, xt, mn) {
      var Dr;
      const Pr = Xl(It), Ta = ot ? D.checkDefined((Dr = Ht.classThis) != null ? Dr : Ht.classConstructor, "classConstructor should be set in private identifier environment") : D.checkDefined(Q.data.weakSetName, "weakSetName should be set in private identifier environment");
      MT(Q, It, {
        kind: "m",
        methodName: Pr,
        brandCheckIdentifier: Ta,
        isStatic: ot,
        isValid: xt
      });
    }
    function wn(fe, It, Ht, Q, ot, xt, mn) {
      var Dr;
      const Pr = Xl(It, "_get"), Ta = ot ? D.checkDefined((Dr = Ht.classThis) != null ? Dr : Ht.classConstructor, "classConstructor should be set in private identifier environment") : D.checkDefined(Q.data.weakSetName, "weakSetName should be set in private identifier environment");
      (mn == null ? void 0 : mn.kind) === "a" && mn.isStatic === ot && !mn.getterName ? mn.getterName = Pr : MT(Q, It, {
        kind: "a",
        getterName: Pr,
        setterName: void 0,
        brandCheckIdentifier: Ta,
        isStatic: ot,
        isValid: xt
      });
    }
    function pa(fe, It, Ht, Q, ot, xt, mn) {
      var Dr;
      const Pr = Xl(It, "_set"), Ta = ot ? D.checkDefined((Dr = Ht.classThis) != null ? Dr : Ht.classConstructor, "classConstructor should be set in private identifier environment") : D.checkDefined(Q.data.weakSetName, "weakSetName should be set in private identifier environment");
      (mn == null ? void 0 : mn.kind) === "a" && mn.isStatic === ot && !mn.setterName ? mn.setterName = Pr : MT(Q, It, {
        kind: "a",
        getterName: void 0,
        setterName: Pr,
        brandCheckIdentifier: Ta,
        isStatic: ot,
        isValid: xt
      });
    }
    function ec(fe, It, Ht, Q, ot, xt, mn) {
      var Dr;
      const Pr = Xl(It, "_get"), Ta = Xl(It, "_set"), ls = ot ? D.checkDefined((Dr = Ht.classThis) != null ? Dr : Ht.classConstructor, "classConstructor should be set in private identifier environment") : D.checkDefined(Q.data.weakSetName, "weakSetName should be set in private identifier environment");
      MT(Q, It, {
        kind: "a",
        getterName: Pr,
        setterName: Ta,
        brandCheckIdentifier: ls,
        isStatic: ot,
        isValid: xt
      });
    }
    function rl(fe, It, Ht) {
      const Q = ua(), ot = Hi(), xt = _X(ot, It), mn = gc(fe), Dr = !t3e(It) && xt === void 0;
      Ht(fe, It, Q, ot, mn, Dr, xt);
    }
    function Gl(fe, It, Ht) {
      const { className: Q } = Hi().data, ot = Q ? { prefix: "_", node: Q, suffix: "_" } : "_", xt = typeof fe == "object" ? t.getGeneratedNameForNode(fe, 24, ot, Ht) : typeof fe == "string" ? t.createUniqueName(fe, 16, ot, Ht) : t.createTempVariable(void 0, !0, ot, Ht);
      return d.getNodeCheckFlags(It) & 32768 ? f(xt) : i(xt), xt;
    }
    function Xl(fe, It) {
      var Ht;
      const Q = QM(fe);
      return Gl((Ht = Q == null ? void 0 : Q.substring(1)) != null ? Ht : fe, fe, It);
    }
    function Ul(fe) {
      const It = lhe(W, fe);
      return (It == null ? void 0 : It.kind) === "untransformed" ? void 0 : It;
    }
    function Co(fe) {
      const It = t.getGeneratedNameForNode(fe), Ht = Ul(fe.name);
      if (!Ht)
        return Bn(fe, Be, e);
      let Q = fe.expression;
      return (dN(fe) || ud(fe) || !G1(fe.expression)) && (Q = t.createTempVariable(i, !0), Xr().push(t.createBinaryExpression(Q, 63, lt(fe.expression, Be, vt)))), t.createAssignmentTargetWrapper(It, Xe(Ht, Q, It, 63));
    }
    function La(fe) {
      if (Ls(fe) || Bu(fe))
        return hl(fe);
      if (AA(fe))
        return Co(fe);
      if (H && ud(fe) && ve && (W != null && W.data)) {
        const { classConstructor: It, superClassReference: Ht, facts: Q } = W.data;
        if (Q & 1)
          return ji(fe);
        if (It && Ht) {
          const ot = cl(fe) ? lt(fe.argumentExpression, Be, vt) : je(fe.name) ? t.createStringLiteralFromNode(fe.name) : void 0;
          if (ot) {
            const xt = t.createTempVariable(void 0);
            return t.createAssignmentTargetWrapper(xt, t.createReflectSetCall(Ht, ot, xt, It));
          }
        }
      }
      return Bn(fe, Be, e);
    }
    function Yo(fe) {
      if (Yf(fe, _e)) {
        const It = La(fe.left), Ht = sn(fe.left, fe.right), Q = lt(fe.right, (ot) => Oe(ot, Ht), vt);
        return t.updateBinaryExpression(fe, It, fe.operatorToken, Q);
      }
      if (ed(fe, !0)) {
        const It = La(fe.left), Ht = lt(fe.right, Be, vt);
        return t.updateBinaryExpression(fe, It, fe.operatorToken, Ht);
      }
      return La(fe);
    }
    function Vl(fe) {
      if (Td(fe.expression)) {
        const It = La(fe.expression);
        return t.updateSpreadElement(fe, It);
      }
      return Bn(fe, Be, e);
    }
    function tu(fe) {
      return D.assertNode(fe, $R), Lh(fe) ? Vl(fe) : Rc(fe) ? Bn(fe, Be, e) : Yo(fe);
    }
    function qd(fe) {
      const It = lt(fe.name, Be, yl);
      if (ed(fe.initializer, !0)) {
        const Ht = Yo(fe.initializer);
        return t.updatePropertyAssignment(fe, It, Ht);
      }
      if (Td(fe.initializer)) {
        const Ht = La(fe.initializer);
        return t.updatePropertyAssignment(fe, It, Ht);
      }
      return Bn(fe, Be, e);
    }
    function oc(fe) {
      if (Yf(fe, _e)) {
        const It = sn(fe.name, fe.objectAssignmentInitializer), Ht = lt(fe.objectAssignmentInitializer, (Q) => Oe(Q, It), vt);
        return t.updateShorthandPropertyAssignment(fe, fe.name, Ht);
      }
      return Bn(fe, Be, e);
    }
    function Jc(fe) {
      if (Td(fe.expression)) {
        const It = La(fe.expression);
        return t.updateSpreadAssignment(fe, It);
      }
      return Bn(fe, Be, e);
    }
    function Ds(fe) {
      return D.assertNode(fe, YR), Ox(fe) ? Jc(fe) : t_(fe) ? oc(fe) : zc(fe) ? qd(fe) : Bn(fe, Be, e);
    }
    function hl(fe) {
      return Bu(fe) ? t.updateArrayLiteralExpression(fe, Jn(fe.elements, tu, vt)) : t.updateObjectLiteralExpression(fe, Jn(fe.properties, Ds, my));
    }
    function el(fe, It, Ht) {
      const Q = Tl(It), ot = ce.get(Q);
      if (ot) {
        const xt = W, mn = ee;
        W = ot, ee = Te, Te = !Il(Q) || !(F_(Q) & 32), Y(fe, It, Ht), Te = ee, ee = mn, W = xt;
        return;
      }
      switch (It.kind) {
        case 215:
          if (Js(Q) || vo(It) & 524288)
            break;
        case 259:
        case 173:
        case 174:
        case 175:
        case 171:
        case 169: {
          const xt = W, mn = ee;
          W = void 0, ee = Te, Te = !1, Y(fe, It, Ht), Te = ee, ee = mn, W = xt;
          return;
        }
        case 164: {
          const xt = W, mn = Te;
          W = W == null ? void 0 : W.previous, Te = ee, Y(fe, It, Ht), Te = mn, W = xt;
          return;
        }
      }
      Y(fe, It, Ht);
    }
    function Ks(fe, It) {
      return It = X(fe, It), fe === 1 ? rn(It) : It;
    }
    function rn(fe) {
      switch (fe.kind) {
        case 79:
          return xu(fe);
        case 108:
          return jl(fe);
      }
      return fe;
    }
    function jl(fe) {
      if (de & 2 && (W != null && W.data)) {
        const { facts: It, classConstructor: Ht, classThis: Q } = W.data;
        if (It & 1 && A)
          return t.createParenthesizedExpression(t.createVoidZero());
        const ot = Te ? Q ?? Ht : Ht;
        if (ot)
          return ht(Wr(t.cloneNode(ot), fe), fe);
      }
      return fe;
    }
    function xu(fe) {
      return Wu(fe) || fe;
    }
    function Wu(fe) {
      if (de & 1 && d.getNodeCheckFlags(fe) & 2097152) {
        const It = d.getReferencedValueDeclaration(fe);
        if (It) {
          const Ht = re[It.id];
          if (Ht) {
            const Q = t.cloneNode(Ht);
            return fs(Q, fe), Hc(Q, fe), Q;
          }
        }
      }
    }
  }
  function QMe(e, t) {
    return N.createAssignment(e, N.createObjectLiteralExpression([
      N.createPropertyAssignment("value", t || N.createVoidZero())
    ]));
  }
  function ZMe(e, t, r) {
    return N.createCallExpression(N.createPropertyAccessExpression(r, "set"), void 0, [e, t || N.createVoidZero()]);
  }
  function e3e(e, t) {
    return N.createCallExpression(N.createPropertyAccessExpression(t, "add"), void 0, [e]);
  }
  function t3e(e) {
    return !KS(e) && e.escapedText === "#constructor";
  }
  function n3e(e) {
    return Ni(e.left) && e.operatorToken.kind === 101;
  }
  var r3e = C({
    "src/compiler/transformers/classFields.ts"() {
      Oa();
    }
  });
  function _he(e) {
    const {
      hoistVariableDeclaration: t
    } = e, r = e.getEmitResolver(), i = e.getCompilerOptions(), o = ts(i), s = y_(i, "strictNullChecks");
    let c, f;
    return {
      serializeTypeNode: (re, ye) => d(re, I, ye),
      serializeTypeOfNode: (re, ye) => d(re, h, ye),
      serializeParameterTypesOfNode: (re, ye, ae) => d(re, E, ye, ae),
      serializeReturnTypeOfNode: (re, ye) => d(re, L, ye)
    };
    function d(re, ye, ae, W) {
      const ce = c, me = f;
      c = re.currentLexicalScope, f = re.currentNameScope;
      const ve = W === void 0 ? ye(ae) : ye(ae, W);
      return c = ce, f = me, ve;
    }
    function y(re) {
      const ye = r.getAllAccessorDeclarations(re);
      return ye.setAccessor && que(ye.setAccessor) || ye.getAccessor && yp(ye.getAccessor);
    }
    function h(re) {
      switch (re.kind) {
        case 169:
        case 166:
          return I(re.type);
        case 175:
        case 174:
          return I(y(re));
        case 260:
        case 228:
        case 171:
          return N.createIdentifier("Function");
        default:
          return N.createVoidZero();
      }
    }
    function E(re, ye) {
      const ae = di(re) ? Eh(re) : Ka(re) && __(re.body) ? re : void 0, W = [];
      if (ae) {
        const ce = A(ae, ye), me = ce.length;
        for (let ve = 0; ve < me; ve++) {
          const Te = ce[ve];
          ve === 0 && je(Te.name) && Te.name.escapedText === "this" || (Te.dotDotDotToken ? W.push(I(sz(Te.type))) : W.push(h(Te)));
        }
      }
      return N.createArrayLiteralExpression(W);
    }
    function A(re, ye) {
      if (ye && re.kind === 174) {
        const { setAccessor: ae } = vT(ye.members, re);
        if (ae)
          return ae.parameters;
      }
      return re.parameters;
    }
    function L(re) {
      return Ka(re) && re.type ? I(re.type) : $A(re) ? N.createIdentifier("Promise") : N.createVoidZero();
    }
    function I(re) {
      if (re === void 0)
        return N.createIdentifier("Object");
      switch (re = Ez(re), re.kind) {
        case 114:
        case 155:
        case 144:
          return N.createVoidZero();
        case 181:
        case 182:
          return N.createIdentifier("Function");
        case 185:
        case 186:
          return N.createIdentifier("Array");
        case 179:
          return re.assertsModifier ? N.createVoidZero() : N.createIdentifier("Boolean");
        case 134:
          return N.createIdentifier("Boolean");
        case 200:
        case 152:
          return N.createIdentifier("String");
        case 149:
          return N.createIdentifier("Object");
        case 198:
          return O(re.literal);
        case 148:
          return N.createIdentifier("Number");
        case 160:
          return de("BigInt", 7);
        case 153:
          return de("Symbol", 2);
        case 180:
          return V(re);
        case 190:
          return k(re.types, !0);
        case 189:
          return k(re.types, !1);
        case 191:
          return k([re.trueType, re.falseType], !1);
        case 195:
          if (re.operator === 146)
            return I(re.type);
          break;
        case 183:
        case 196:
        case 197:
        case 184:
        case 131:
        case 157:
        case 194:
        case 202:
          break;
        case 315:
        case 316:
        case 320:
        case 321:
        case 322:
          break;
        case 317:
        case 318:
        case 319:
          return I(re.type);
        default:
          return D.failBadSyntaxKind(re);
      }
      return N.createIdentifier("Object");
    }
    function O(re) {
      switch (re.kind) {
        case 10:
        case 14:
          return N.createIdentifier("String");
        case 221: {
          const ye = re.operand;
          switch (ye.kind) {
            case 8:
            case 9:
              return O(ye);
            default:
              return D.failBadSyntaxKind(ye);
          }
        }
        case 8:
          return N.createIdentifier("Number");
        case 9:
          return de("BigInt", 7);
        case 110:
        case 95:
          return N.createIdentifier("Boolean");
        case 104:
          return N.createVoidZero();
        default:
          return D.failBadSyntaxKind(re);
      }
    }
    function k(re, ye) {
      let ae;
      for (let W of re) {
        if (W = Ez(W), W.kind === 144) {
          if (ye)
            return N.createVoidZero();
          continue;
        }
        if (W.kind === 157) {
          if (!ye)
            return N.createIdentifier("Object");
          continue;
        }
        if (W.kind === 131)
          return N.createIdentifier("Object");
        if (!s && (Z0(W) && W.literal.kind === 104 || W.kind === 155))
          continue;
        const ce = I(W);
        if (je(ce) && ce.escapedText === "Object")
          return ce;
        if (ae) {
          if (!G(ae, ce))
            return N.createIdentifier("Object");
        } else
          ae = ce;
      }
      return ae ?? N.createVoidZero();
    }
    function G(re, ye) {
      return Sl(re) ? Sl(ye) : je(re) ? je(ye) && re.escapedText === ye.escapedText : Fr(re) ? Fr(ye) && G(re.expression, ye.expression) && G(re.name, ye.name) : Lx(re) ? Lx(ye) && v_(re.expression) && re.expression.text === "0" && v_(ye.expression) && ye.expression.text === "0" : jo(re) ? jo(ye) && re.text === ye.text : EC(re) ? EC(ye) && G(re.expression, ye.expression) : Vd(re) ? Vd(ye) && G(re.expression, ye.expression) : SC(re) ? SC(ye) && G(re.condition, ye.condition) && G(re.whenTrue, ye.whenTrue) && G(re.whenFalse, ye.whenFalse) : br(re) ? br(ye) && re.operatorToken.kind === ye.operatorToken.kind && G(re.left, ye.left) && G(re.right, ye.right) : !1;
    }
    function V(re) {
      const ye = r.getTypeReferenceSerializationKind(re.typeName, f ?? c);
      switch (ye) {
        case 0:
          if (nr(re, (ce) => ce.parent && yC(ce.parent) && (ce.parent.trueType === ce || ce.parent.falseType === ce)))
            return N.createIdentifier("Object");
          const ae = te(re.typeName), W = N.createTempVariable(t);
          return N.createConditionalExpression(N.createTypeCheck(N.createAssignment(W, ae), "function"), void 0, W, void 0, N.createIdentifier("Object"));
        case 1:
          return X(re.typeName);
        case 2:
          return N.createVoidZero();
        case 4:
          return de("BigInt", 7);
        case 6:
          return N.createIdentifier("Boolean");
        case 3:
          return N.createIdentifier("Number");
        case 5:
          return N.createIdentifier("String");
        case 7:
          return N.createIdentifier("Array");
        case 8:
          return de("Symbol", 2);
        case 10:
          return N.createIdentifier("Function");
        case 9:
          return N.createIdentifier("Promise");
        case 11:
          return N.createIdentifier("Object");
        default:
          return D.assertNever(ye);
      }
    }
    function H(re, ye) {
      return N.createLogicalAnd(N.createStrictInequality(N.createTypeOfExpression(re), N.createStringLiteral("undefined")), ye);
    }
    function te(re) {
      if (re.kind === 79) {
        const W = X(re);
        return H(W, W);
      }
      if (re.left.kind === 79)
        return H(X(re.left), X(re));
      const ye = te(re.left), ae = N.createTempVariable(t);
      return N.createLogicalAnd(N.createLogicalAnd(ye.left, N.createStrictInequality(N.createAssignment(ae, ye.right), N.createVoidZero())), N.createPropertyAccessExpression(ae, re.right));
    }
    function X(re) {
      switch (re.kind) {
        case 79:
          const ye = Vo(ht(Jm.cloneNode(re), re), re.parent);
          return ye.original = void 0, Vo(ye, Ea(c)), ye;
        case 163:
          return Y(re);
      }
    }
    function Y(re) {
      return N.createPropertyAccessExpression(X(re.left), re.right);
    }
    function P(re) {
      return N.createConditionalExpression(N.createTypeCheck(N.createIdentifier(re), "function"), void 0, N.createIdentifier(re), void 0, N.createIdentifier("Object"));
    }
    function de(re, ye) {
      return o < ye ? P(re) : N.createIdentifier(re);
    }
  }
  var i3e = C({
    "src/compiler/transformers/typeSerializer.ts"() {
      Oa();
    }
  });
  function phe(e) {
    const {
      factory: t,
      getEmitHelperFactory: r,
      hoistVariableDeclaration: i
    } = e, o = e.getEmitResolver(), s = e.getCompilerOptions(), c = ts(s), f = e.onSubstituteNode;
    e.onSubstituteNode = st;
    let d;
    return X_(e, y);
    function y(tt) {
      const at = Bn(tt, E, e);
      return Ey(at, e.readEmitHelpers()), at;
    }
    function h(tt) {
      return Fu(tt) ? void 0 : tt;
    }
    function E(tt) {
      if (!(tt.transformFlags & 33554432))
        return tt;
      switch (tt.kind) {
        case 167:
          return;
        case 260:
          return A(tt);
        case 228:
          return H(tt);
        case 173:
          return te(tt);
        case 171:
          return Y(tt);
        case 175:
          return de(tt);
        case 174:
          return P(tt);
        case 169:
          return re(tt);
        case 166:
          return ye(tt);
        default:
          return Bn(tt, E, e);
      }
    }
    function A(tt) {
      if (!(v1(!0, tt) || GI(!0, tt)))
        return Bn(tt, E, e);
      const at = v1(!0, tt) ? V(tt, tt.name) : G(tt, tt.name);
      return at.length > 1 && (at.push(t.createEndOfDeclarationMarker(tt)), or(at[0], vo(at[0]) | 8388608)), Cm(at);
    }
    function L(tt) {
      return !!(tt.transformFlags & 536870912);
    }
    function I(tt) {
      return kt(tt, L);
    }
    function O(tt) {
      for (const at of tt.members) {
        if (!Mx(at))
          continue;
        const sn = Q5(at, tt, !0);
        if (kt(sn == null ? void 0 : sn.decorators, L) || kt(sn == null ? void 0 : sn.parameters, I))
          return !0;
      }
      return !1;
    }
    function k(tt, at) {
      let sn = [];
      return ce(sn, tt, !1), ce(sn, tt, !0), O(tt) && (at = ht(t.createNodeArray([
        ...at,
        t.createClassStaticBlockDeclaration(t.createBlock(sn, !0))
      ]), at), sn = void 0), { decorationStatements: sn, members: at };
    }
    function G(tt, at) {
      const sn = Jn(tt.modifiers, h, fo), Qt = Jn(tt.heritageClauses, E, jd);
      let On = Jn(tt.members, E, Uc), jn = [];
      ({ members: On, decorationStatements: jn } = k(tt, On));
      const In = t.updateClassDeclaration(tt, sn, at, void 0, Qt, On);
      return Ti([In], jn);
    }
    function V(tt, at) {
      const sn = $p(tt), Qt = Ye(tt), On = c <= 2 ? t.getInternalName(tt, !1, !0) : t.getLocalName(tt, !1, !0), jn = Jn(tt.heritageClauses, E, jd);
      let In = Jn(tt.members, E, Uc), Zt = [];
      ({ members: In, decorationStatements: Zt } = k(tt, In));
      const _r = t.createClassExpression(void 0, at && Sl(at) ? void 0 : at, void 0, jn, In);
      Wr(_r, tt), ht(_r, sn);
      const Ii = t.createVariableStatement(void 0, t.createVariableDeclarationList([
        t.createVariableDeclaration(On, void 0, void 0, Qt ? t.createAssignment(Qt, _r) : _r)
      ], 1));
      Wr(Ii, tt), ht(Ii, sn), Hc(Ii, tt);
      const $i = [Ii];
      return Ti($i, Zt), Qe($i, tt), $i;
    }
    function H(tt) {
      return t.updateClassExpression(tt, Jn(tt.modifiers, h, fo), tt.name, void 0, Jn(tt.heritageClauses, E, jd), Jn(tt.members, E, Uc));
    }
    function te(tt) {
      return t.updateConstructorDeclaration(tt, Jn(tt.modifiers, h, fo), Jn(tt.parameters, E, Ba), lt(tt.body, E, co));
    }
    function X(tt, at) {
      return tt !== at && (Hc(tt, at), fs(tt, $p(at))), tt;
    }
    function Y(tt) {
      return X(t.updateMethodDeclaration(tt, Jn(tt.modifiers, h, fo), tt.asteriskToken, D.checkDefined(lt(tt.name, E, yl)), void 0, void 0, Jn(tt.parameters, E, Ba), void 0, lt(tt.body, E, co)), tt);
    }
    function P(tt) {
      return X(t.updateGetAccessorDeclaration(tt, Jn(tt.modifiers, h, fo), D.checkDefined(lt(tt.name, E, yl)), Jn(tt.parameters, E, Ba), void 0, lt(tt.body, E, co)), tt);
    }
    function de(tt) {
      return X(t.updateSetAccessorDeclaration(tt, Jn(tt.modifiers, h, fo), D.checkDefined(lt(tt.name, E, yl)), Jn(tt.parameters, E, Ba), lt(tt.body, E, co)), tt);
    }
    function re(tt) {
      if (!(tt.flags & 16777216 || Yr(tt, 2)))
        return X(t.updatePropertyDeclaration(tt, Jn(tt.modifiers, h, fo), D.checkDefined(lt(tt.name, E, yl)), void 0, void 0, lt(tt.initializer, E, vt)), tt);
    }
    function ye(tt) {
      const at = t.updateParameterDeclaration(tt, L_e(t, tt.modifiers), tt.dotDotDotToken, D.checkDefined(lt(tt.name, E, hh)), void 0, void 0, lt(tt.initializer, E, vt));
      return at !== tt && (Hc(at, tt), ht(at, $p(tt)), fs(at, $p(tt)), or(at.name, 64)), at;
    }
    function ae(tt) {
      return xk(tt.expression, "___metadata");
    }
    function W(tt) {
      if (!tt)
        return;
      const { false: at, true: sn } = kse(tt.decorators, ae), Qt = [];
      return Ti(Qt, jt(at, Be)), Ti(Qt, ca(tt.parameters, qe)), Ti(Qt, jt(sn, Be)), Qt;
    }
    function ce(tt, at, sn) {
      Ti(tt, jt(Te(at, sn), (Qt) => t.createExpressionStatement(Qt)));
    }
    function me(tt, at, sn) {
      return _N(!0, tt, sn) && at === Ja(tt);
    }
    function ve(tt, at) {
      return lr(tt.members, (sn) => me(sn, at, tt));
    }
    function Te(tt, at) {
      const sn = ve(tt, at);
      let Qt;
      for (const On of sn)
        Qt = Fn(Qt, ee(tt, On));
      return Qt;
    }
    function ee(tt, at) {
      const sn = Q5(at, tt, !0), Qt = W(sn);
      if (!Qt)
        return;
      const On = Fe(tt, at), jn = Oe(at, !Yr(at, 2)), In = c > 0 ? to(at) && !Bm(at) ? t.createVoidZero() : t.createNull() : void 0, Zt = r().createDecorateHelper(Qt, On, jn, In);
      return or(Zt, 3072), fs(Zt, $p(at)), Zt;
    }
    function Qe(tt, at) {
      const sn = Ve(at);
      sn && tt.push(Wr(t.createExpressionStatement(sn), at));
    }
    function Ve(tt) {
      const at = fX(tt), sn = W(at);
      if (!sn)
        return;
      const Qt = d && d[kl(tt)], On = c <= 2 ? t.getInternalName(tt, !1, !0) : t.getLocalName(tt, !1, !0), jn = r().createDecorateHelper(sn, On), In = t.createAssignment(On, Qt ? t.createAssignment(Qt, jn) : jn);
      return or(In, 3072), fs(In, $p(tt)), In;
    }
    function Be(tt) {
      return D.checkDefined(lt(tt.expression, E, vt));
    }
    function qe(tt, at) {
      let sn;
      if (tt) {
        sn = [];
        for (const Qt of tt) {
          const On = r().createParamHelper(Be(Qt), at);
          ht(On, Qt.expression), or(On, 3072), sn.push(On);
        }
      }
      return sn;
    }
    function Oe(tt, at) {
      const sn = tt.name;
      return Ni(sn) ? t.createIdentifier("") : As(sn) ? at && !im(sn.expression) ? t.getGeneratedNameForNode(sn) : sn.expression : je(sn) ? t.createStringLiteral(Mr(sn)) : t.cloneNode(sn);
    }
    function Me() {
      d || (e.enableSubstitution(79), d = []);
    }
    function Ye(tt) {
      if (o.getNodeCheckFlags(tt) & 1048576) {
        Me();
        const at = t.createUniqueName(tt.name && !Sl(tt.name) ? Mr(tt.name) : "default");
        return d[kl(tt)] = at, i(at), at;
      }
    }
    function We(tt) {
      return t.createPropertyAccessExpression(t.getDeclarationName(tt), "prototype");
    }
    function Fe(tt, at) {
      return Ja(at) ? t.getDeclarationName(tt) : We(tt);
    }
    function st(tt, at) {
      return at = f(tt, at), tt === 1 ? Ct(at) : at;
    }
    function Ct(tt) {
      switch (tt.kind) {
        case 79:
          return Et(tt);
      }
      return tt;
    }
    function Et(tt) {
      var at;
      return (at = Vt(tt)) != null ? at : tt;
    }
    function Vt(tt) {
      if (d && o.getNodeCheckFlags(tt) & 2097152) {
        const at = o.getReferencedValueDeclaration(tt);
        if (at) {
          const sn = d[at.id];
          if (sn) {
            const Qt = t.cloneNode(sn);
            return fs(Qt, tt), Hc(Qt, tt), Qt;
          }
        }
      }
    }
  }
  var a3e = C({
    "src/compiler/transformers/legacyDecorators.ts"() {
      Oa();
    }
  });
  function mhe(e) {
    const {
      factory: t,
      getEmitHelperFactory: r,
      startLexicalEnvironment: i,
      endLexicalEnvironment: o,
      hoistVariableDeclaration: s
    } = e;
    let c, f, d, y, h, E;
    return X_(e, A);
    function A(ue) {
      c = void 0, E = !1;
      const mt = Bn(ue, P, e);
      return Ey(mt, e.readEmitHelpers()), E && (hx(mt, 32), E = !1), mt;
    }
    function L() {
      switch (f = void 0, d = void 0, y = void 0, c == null ? void 0 : c.kind) {
        case "class":
          f = c.classInfo;
          break;
        case "class-element":
          f = c.next.classInfo, d = c.classThis, y = c.classSuper;
          break;
        case "name":
          const ue = c.next.next.next;
          (ue == null ? void 0 : ue.kind) === "class-element" && (f = ue.next.classInfo, d = ue.classThis, y = ue.classSuper);
          break;
      }
    }
    function I(ue) {
      c = { kind: "class", next: c, classInfo: ue, savedPendingExpressions: h }, h = void 0, L();
    }
    function O() {
      D.assert((c == null ? void 0 : c.kind) === "class", "Incorrect value for top.kind.", () => `Expected top.kind to be 'class' but got '${c == null ? void 0 : c.kind}' instead.`), h = c.savedPendingExpressions, c = c.next, L();
    }
    function k(ue) {
      var mt, zt;
      D.assert((c == null ? void 0 : c.kind) === "class", "Incorrect value for top.kind.", () => `Expected top.kind to be 'class' but got '${c == null ? void 0 : c.kind}' instead.`), c = { kind: "class-element", next: c }, (Il(ue) || to(ue) && gc(ue)) && (c.classThis = (mt = c.next.classInfo) == null ? void 0 : mt.classThis, c.classSuper = (zt = c.next.classInfo) == null ? void 0 : zt.classSuper), L();
    }
    function G() {
      var ue;
      D.assert((c == null ? void 0 : c.kind) === "class-element", "Incorrect value for top.kind.", () => `Expected top.kind to be 'class-element' but got '${c == null ? void 0 : c.kind}' instead.`), D.assert(((ue = c.next) == null ? void 0 : ue.kind) === "class", "Incorrect value for top.next.kind.", () => {
        var mt;
        return `Expected top.next.kind to be 'class' but got '${(mt = c.next) == null ? void 0 : mt.kind}' instead.`;
      }), c = c.next, L();
    }
    function V() {
      D.assert((c == null ? void 0 : c.kind) === "class-element", "Incorrect value for top.kind.", () => `Expected top.kind to be 'class-element' but got '${c == null ? void 0 : c.kind}' instead.`), c = { kind: "name", next: c }, L();
    }
    function H() {
      D.assert((c == null ? void 0 : c.kind) === "name", "Incorrect value for top.kind.", () => `Expected top.kind to be 'name' but got '${c == null ? void 0 : c.kind}' instead.`), c = c.next, L();
    }
    function te() {
      (c == null ? void 0 : c.kind) === "other" ? (D.assert(!h), c.depth++) : (c = { kind: "other", next: c, depth: 0, savedPendingExpressions: h }, h = void 0, L());
    }
    function X() {
      D.assert((c == null ? void 0 : c.kind) === "other", "Incorrect value for top.kind.", () => `Expected top.kind to be 'other' but got '${c == null ? void 0 : c.kind}' instead.`), c.depth > 0 ? (D.assert(!h), c.depth--) : (h = c.savedPendingExpressions, c = c.next, L());
    }
    function Y(ue) {
      return !!(ue.transformFlags & 33554432) || !!d && !!(ue.transformFlags & 16384) || !!d && !!y && !!(ue.transformFlags & 134217728);
    }
    function P(ue) {
      if (!Y(ue))
        return ue;
      switch (ue.kind) {
        case 167:
          return D.fail("Use `modifierVisitor` instead.");
        case 260:
          return Be(ue);
        case 228:
          return qe(ue, void 0);
        case 173:
        case 169:
        case 172:
          return D.fail("Not supported outside of a class. Use 'classElementVisitor' instead.");
        case 166:
          return jn(ue);
        case 223:
          return Ii(ue, !1);
        case 299:
          return Wt(ue);
        case 257:
          return fn(ue);
        case 205:
          return rr(ue);
        case 274:
          return yt(ue);
        case 108:
          return tt(ue);
        case 245:
          return Zt(ue);
        case 241:
          return _r(ue);
        case 357:
          return Qi(ue, !1);
        case 214:
          return Nt(ue, !1, void 0);
        case 356:
          return Ce(ue, !1, void 0);
        case 210:
          return at(ue);
        case 212:
          return sn(ue);
        case 221:
        case 222:
          return $i(ue, !1);
        case 208:
          return Qt(ue);
        case 209:
          return On(ue);
        case 164:
          return vn(ue);
        case 171:
        case 175:
        case 174:
        case 215:
        case 259: {
          te();
          const mt = Bn(ue, de, e);
          return X(), mt;
        }
        default:
          return Bn(ue, de, e);
      }
    }
    function de(ue) {
      switch (ue.kind) {
        case 167:
          return;
        default:
          return P(ue);
      }
    }
    function re(ue) {
      switch (ue.kind) {
        case 167:
          return;
        default:
          return ue;
      }
    }
    function ye(ue) {
      switch (ue.kind) {
        case 173:
          return Me(ue);
        case 171:
          return Fe(ue);
        case 174:
          return st(ue);
        case 175:
          return Ct(ue);
        case 169:
          return Vt(ue);
        case 172:
          return Et(ue);
        default:
          return P(ue);
      }
    }
    function ae(ue, mt) {
      switch (ue.kind) {
        case 356:
          return Ce(ue, !1, mt);
        case 214:
          return Nt(ue, !1, mt);
        case 228:
          return qe(ue, mt);
        default:
          return P(ue);
      }
    }
    function W(ue) {
      switch (ue.kind) {
        case 221:
        case 222:
          return $i(ue, !0);
        case 223:
          return Ii(ue, !0);
        case 357:
          return Qi(ue, !0);
        case 214:
          return Nt(ue, !0, void 0);
        default:
          return P(ue);
      }
    }
    function ce(ue) {
      let mt = ue.name && je(ue.name) && !Sl(ue.name) ? Mr(ue.name) : ue.name && Ni(ue.name) && !Sl(ue.name) ? Mr(ue.name).slice(1) : ue.name && jo(ue.name) && P_(ue.name.text, 99) ? ue.name.text : di(ue) ? "class" : "member";
      return Iv(ue) && (mt = `get_${mt}`), hy(ue) && (mt = `set_${mt}`), ue.name && Ni(ue.name) && (mt = `private_${mt}`), Ja(ue) && (mt = `static_${mt}`), "_" + mt;
    }
    function me(ue, mt) {
      return t.createUniqueName(`${ce(ue)}_${mt}`, 24);
    }
    function ve(ue, mt) {
      return t.createVariableStatement(void 0, t.createVariableDeclarationList([
        t.createVariableDeclaration(ue, void 0, void 0, mt)
      ], 1));
    }
    function Te(ue) {
      let mt, zt, it = !1, K = !1, Pe = !1;
      for (const Z of ue.members)
        if (vce(Z) && _N(!1, Z, ue) && (gc(Z) ? zt ?? (zt = t.createUniqueName("_staticExtraInitializers", 16)) : mt ?? (mt = t.createUniqueName("_instanceExtraInitializers", 16))), Il(Z) ? it = !0 : to(Z) && (gc(Z) ? it || (it = !!Z.initializer || $f(Z)) : K || (K = !$W(Z))), ($u(Z) || af(Z)) && gc(Z) && (Pe = !0), zt && mt && it && K && Pe)
          break;
      return {
        class: ue,
        instanceExtraInitializersName: mt,
        staticExtraInitializersName: zt,
        hasStaticInitializers: it,
        hasNonAmbientInstanceFields: K,
        hasStaticPrivateClassElements: Pe
      };
    }
    function ee(ue) {
      for (const mt of ue.members)
        if ((Il(mt) || to(mt) && gc(mt)) && mt.transformFlags & 134217728)
          return !0;
      return !1;
    }
    function Qe(ue, mt) {
      var zt, it, K, Pe, Z;
      i();
      const Re = (zt = ue.name) != null ? zt : t.getGeneratedNameForNode(ue), q = Te(ue), Rt = [];
      let gt, ft, _n, $n, oi = !1;
      const Ai = _e(fX(ue));
      if (Ai && (q.classDecoratorsName = t.createUniqueName("_classDecorators", 16), q.classDescriptorName = t.createUniqueName("_classDescriptor", 16), q.classExtraInitializersName = t.createUniqueName("_classExtraInitializers", 16), q.classThis = t.createUniqueName("_classThis", 16), Rt.push(ve(q.classDecoratorsName, t.createArrayLiteralExpression(Ai)), ve(q.classDescriptorName), ve(q.classExtraInitializersName, t.createArrayLiteralExpression()), ve(q.classThis)), q.hasStaticPrivateClassElements && (oi = !0, E = !0)), Ai && ee(ue)) {
        const Hi = PN(ue.heritageClauses, 94), Xr = Hi && Yc(Hi.types), ss = Xr && lt(Xr.expression, P, vt);
        if (ss) {
          q.classSuper = t.createUniqueName("_classSuper", 16);
          const _i = bu(ss), da = Gu(_i) && !_i.name || Bs(_i) && !_i.name || Js(_i) ? t.createComma(t.createNumericLiteral(0), ss) : ss;
          Rt.push(ve(q.classSuper, da));
          const wn = t.updateExpressionWithTypeArguments(Xr, q.classSuper, void 0), pa = t.updateHeritageClause(Hi, [wn]);
          $n = t.createNodeArray([pa]);
        }
      } else
        $n = Jn(ue.heritageClauses, P, jd);
      const Ci = (it = q.classThis) != null ? it : t.createThis();
      if (!((K = Tl(ue, di)) != null && K.name) && (Ai || !jo(mt) || !uz(mt))) {
        const Hi = r().createSetFunctionNameHelper(t.createThis(), mt);
        gt = Fn(gt, t.createExpressionStatement(Hi));
      }
      I(q);
      let mo = Jn(ue.members, ye, Uc);
      if (h) {
        let Hi;
        for (let Xr of h) {
          Xr = lt(Xr, function _i(da) {
            if (!(da.transformFlags & 16384))
              return da;
            switch (da.kind) {
              case 108:
                return Hi || (Hi = t.createUniqueName("_outerThis", 16), Rt.unshift(ve(Hi, t.createThis()))), Hi;
              default:
                return Bn(da, _i, e);
            }
          }, vt);
          const ss = t.createExpressionStatement(Xr);
          gt = Fn(gt, ss);
        }
        h = void 0;
      }
      if (O(), q.instanceExtraInitializersName && !Eh(ue)) {
        const Hi = Oe(ue, q);
        if (Hi) {
          const Xr = Xp(ue), ss = !!(Xr && bu(Xr.expression).kind !== 104), _i = [];
          if (ss) {
            const wn = t.createSpreadElement(t.createIdentifier("arguments")), pa = t.createCallExpression(t.createSuper(), void 0, [wn]);
            _i.push(t.createExpressionStatement(pa));
          }
          Ti(_i, Hi);
          const da = t.createBlock(_i, !0);
          _n = t.createConstructorDeclaration(void 0, [], da);
        }
      }
      if (q.staticExtraInitializersName && Rt.push(ve(q.staticExtraInitializersName, t.createArrayLiteralExpression())), q.instanceExtraInitializersName && Rt.push(ve(q.instanceExtraInitializersName, t.createArrayLiteralExpression())), q.memberInfos && of(q.memberInfos, (Hi, Xr) => {
        Ja(Xr) && (Rt.push(ve(Hi.memberDecoratorsName)), Hi.memberInitializersName && Rt.push(ve(Hi.memberInitializersName, t.createArrayLiteralExpression())), Hi.memberDescriptorName && Rt.push(ve(Hi.memberDescriptorName)));
      }), q.memberInfos && of(q.memberInfos, (Hi, Xr) => {
        Ja(Xr) || (Rt.push(ve(Hi.memberDecoratorsName)), Hi.memberInitializersName && Rt.push(ve(Hi.memberInitializersName, t.createArrayLiteralExpression())), Hi.memberDescriptorName && Rt.push(ve(Hi.memberDescriptorName)));
      }), gt = Ti(gt, q.staticNonFieldDecorationStatements), gt = Ti(gt, q.nonStaticNonFieldDecorationStatements), gt = Ti(gt, q.staticFieldDecorationStatements), gt = Ti(gt, q.nonStaticFieldDecorationStatements), q.classDescriptorName && q.classDecoratorsName && q.classExtraInitializersName && q.classThis) {
        gt ?? (gt = []);
        const Hi = t.createPropertyAssignment("value", t.createThis()), Xr = t.createObjectLiteralExpression([Hi]), ss = t.createAssignment(q.classDescriptorName, Xr), _i = t.createPropertyAccessExpression(t.createThis(), "name"), da = r().createESDecorateHelper(t.createNull(), ss, q.classDecoratorsName, { kind: "class", name: _i }, t.createNull(), q.classExtraInitializersName), wn = t.createExpressionStatement(da);
        fs(wn, Ov(ue)), gt.push(wn);
        const pa = t.createPropertyAccessExpression(q.classDescriptorName, "value"), ec = t.createAssignment(q.classThis, pa), rl = t.createAssignment(Re, ec);
        gt.push(t.createExpressionStatement(rl));
      }
      if (q.staticExtraInitializersName) {
        const Hi = r().createRunInitializersHelper(Ci, q.staticExtraInitializersName), Xr = t.createExpressionStatement(Hi);
        fs(Xr, (Pe = ue.name) != null ? Pe : Ov(ue)), gt = Fn(gt, Xr);
      }
      if (q.classExtraInitializersName) {
        const Hi = r().createRunInitializersHelper(Ci, q.classExtraInitializersName), Xr = t.createExpressionStatement(Hi);
        fs(Xr, (Z = ue.name) != null ? Z : Ov(ue)), ft = Fn(ft, Xr);
      }
      gt && ft && !q.hasStaticInitializers && (Ti(gt, ft), ft = void 0);
      let To = mo;
      if (gt) {
        const Hi = t.createBlock(gt, !0), Xr = t.createClassStaticBlockDeclaration(Hi);
        oi && bO(Xr, 32), To = [Xr, ...To];
      }
      if (_n && (To = [...To, _n]), ft) {
        const Hi = t.createBlock(ft, !0), Xr = t.createClassStaticBlockDeclaration(Hi);
        To = [...To, Xr];
      }
      To !== mo && (mo = ht(t.createNodeArray(To), mo));
      const io = o();
      let ua;
      if (Ai) {
        ua = t.createClassExpression(void 0, void 0, void 0, $n, mo);
        const Hi = t.createVariableDeclaration(Re, void 0, void 0, ua), Xr = t.createVariableDeclarationList([Hi]), ss = q.classThis ? t.createAssignment(Re, q.classThis) : Re;
        Rt.push(t.createVariableStatement(void 0, Xr), t.createReturnStatement(ss));
      } else
        ua = t.createClassExpression(void 0, ue.name, void 0, $n, mo), Rt.push(t.createReturnStatement(ua));
      if (oi) {
        hx(ua, 32);
        for (const Hi of ua.members)
          ($u(Hi) || af(Hi)) && gc(Hi) && hx(Hi, 32);
      }
      return Wr(ua, ue), td(ua).classThis = q.classThis, t.createImmediatelyInvokedArrowFunction(t.mergeLexicalEnvironment(Rt, io));
    }
    function Ve(ue) {
      return v1(!1, ue) || GI(!1, ue);
    }
    function Be(ue) {
      var mt;
      if (Ve(ue))
        if (Yr(ue, 1) && Yr(ue, 1024)) {
          const zt = (mt = Tl(ue, di)) != null ? mt : ue, it = zt.name ? t.createStringLiteralFromNode(zt.name) : t.createStringLiteral("default"), K = Qe(ue, it), Pe = t.createExportDefault(K);
          return Wr(Pe, ue), Hc(Pe, jm(ue)), fs(Pe, Ov(ue)), Pe;
        } else {
          D.assertIsDefined(ue.name, "A class declaration that is not a default export must have a name.");
          const zt = Qe(ue, t.createStringLiteralFromNode(ue.name)), it = Jn(ue.modifiers, re, fo), K = t.createVariableDeclaration(ue.name, void 0, void 0, zt), Pe = t.createVariableDeclarationList([K], 1), Z = t.createVariableStatement(it, Pe);
          return Wr(Z, ue), Hc(Z, jm(ue)), Z;
        }
      else {
        const zt = Jn(ue.modifiers, re, fo), it = Jn(ue.heritageClauses, P, jd);
        I(void 0);
        const K = Jn(ue.members, ye, Uc);
        return O(), t.updateClassDeclaration(ue, zt, ue.name, void 0, it, K);
      }
    }
    function qe(ue, mt) {
      if (Ve(ue)) {
        const zt = ue.name ? t.createStringLiteralFromNode(ue.name) : mt ?? t.createStringLiteral(""), it = Qe(ue, zt);
        return Wr(it, ue), it;
      } else {
        const zt = Jn(ue.modifiers, re, fo), it = Jn(ue.heritageClauses, P, jd);
        I(void 0);
        const K = Jn(ue.members, ye, Uc);
        return O(), t.updateClassExpression(ue, zt, ue.name, void 0, it, K);
      }
    }
    function Oe(ue, mt) {
      if (mt.instanceExtraInitializersName && !mt.hasNonAmbientInstanceFields) {
        const zt = [];
        return zt.push(t.createExpressionStatement(r().createRunInitializersHelper(t.createThis(), mt.instanceExtraInitializersName))), zt;
      }
    }
    function Me(ue) {
      k(ue);
      const mt = Jn(ue.modifiers, re, fo), zt = Jn(ue.parameters, P, Ba);
      let it;
      if (ue.body && f) {
        const K = Oe(f.class, f);
        if (K) {
          const Pe = [], Z = t.copyPrologue(ue.body.statements, Pe, !1, P), Re = Y5(ue.body.statements, Z), q = Re >= 0 ? Re + 1 : void 0;
          Ti(Pe, Jn(ue.body.statements, P, wa, Z, q ? q - Z : void 0)), Ti(Pe, K), Ti(Pe, Jn(ue.body.statements, P, wa, q)), it = t.createBlock(Pe, !0), Wr(it, ue.body), ht(it, ue.body);
        }
      }
      return it ?? (it = lt(ue.body, P, co)), G(), t.updateConstructorDeclaration(ue, mt, zt, it);
    }
    function Ye(ue, mt) {
      return ue !== mt && (Hc(ue, mt), fs(ue, Ov(mt))), ue;
    }
    function We(ue, mt, zt, it) {
      var K, Pe, Z, Re, q, Rt, gt, ft;
      let _n, $n, oi, Ai, Ci;
      if (!zt) {
        const To = Jn(ue.modifiers, re, fo);
        return V(), mt ? { referencedName: _n, name: $n } = Or(ue.name) : $n = At(ue.name), H(), { modifiers: To, referencedName: _n, name: $n, initializersName: oi, descriptorName: Ci, thisArg: Ai };
      }
      const ji = _e(Q5(ue, zt.class, !1)), mo = Jn(ue.modifiers, re, fo);
      if (ji) {
        const To = me(ue, "decorators"), io = t.createArrayLiteralExpression(ji), ua = t.createAssignment(To, io), Hi = { memberDecoratorsName: To };
        (K = zt.memberInfos) != null || (zt.memberInfos = /* @__PURE__ */ new Map()), zt.memberInfos.set(ue, Hi), h ?? (h = []), h.push(ua);
        const Xr = LA(ue) || af(ue) ? Ja(ue) ? (Pe = zt.staticNonFieldDecorationStatements) != null ? Pe : zt.staticNonFieldDecorationStatements = [] : (Z = zt.nonStaticNonFieldDecorationStatements) != null ? Z : zt.nonStaticNonFieldDecorationStatements = [] : to(ue) && !af(ue) ? Ja(ue) ? (Re = zt.staticFieldDecorationStatements) != null ? Re : zt.staticFieldDecorationStatements = [] : (q = zt.nonStaticFieldDecorationStatements) != null ? q : zt.nonStaticFieldDecorationStatements = [] : D.fail(), ss = z_(ue) ? "getter" : e_(ue) ? "setter" : ac(ue) ? "method" : af(ue) ? "accessor" : to(ue) ? "field" : D.fail();
        let _i;
        if (je(ue.name) || Ni(ue.name))
          _i = { computed: !1, name: ue.name };
        else if (G_(ue.name))
          _i = { computed: !0, name: t.createStringLiteralFromNode(ue.name) };
        else {
          const pa = ue.name.expression;
          G_(pa) && !je(pa) ? _i = { computed: !0, name: t.createStringLiteralFromNode(pa) } : (V(), { referencedName: _n, name: $n } = Or(ue.name), _i = { computed: !0, name: _n }, H());
        }
        const da = {
          kind: ss,
          name: _i,
          static: Ja(ue),
          private: Ni(ue.name),
          access: {
            get: to(ue) || z_(ue) || ac(ue),
            set: to(ue) || e_(ue)
          }
        }, wn = Ja(ue) ? (Rt = zt.staticExtraInitializersName) != null ? Rt : zt.staticExtraInitializersName = t.createUniqueName("_staticExtraInitializers", 16) : (gt = zt.instanceExtraInitializersName) != null ? gt : zt.instanceExtraInitializersName = t.createUniqueName("_instanceExtraInitializers", 16);
        if (LA(ue)) {
          let pa;
          $u(ue) && it && (pa = it(ue, Jn(mo, (Gl) => ai(Gl, Ak), fo)), Hi.memberDescriptorName = Ci = me(ue, "descriptor"), pa = t.createAssignment(Ci, pa));
          const ec = r().createESDecorateHelper(t.createThis(), pa ?? t.createNull(), To, da, t.createNull(), wn), rl = t.createExpressionStatement(ec);
          fs(rl, Ov(ue)), Xr.push(rl);
        } else if (to(ue)) {
          oi = (ft = Hi.memberInitializersName) != null ? ft : Hi.memberInitializersName = me(ue, "initializers"), Ja(ue) && (Ai = zt.classThis);
          let pa;
          $u(ue) && Bm(ue) && it && (pa = it(ue, void 0), Hi.memberDescriptorName = Ci = me(ue, "descriptor"), pa = t.createAssignment(Ci, pa));
          const ec = r().createESDecorateHelper(af(ue) ? t.createThis() : t.createNull(), pa ?? t.createNull(), To, da, oi, wn), rl = t.createExpressionStatement(ec);
          fs(rl, Ov(ue)), Xr.push(rl);
        }
      }
      return $n === void 0 && (V(), mt ? { referencedName: _n, name: $n } = Or(ue.name) : $n = At(ue.name), H()), !kt(mo) && (ac(ue) || to(ue)) && or($n, 1024), { modifiers: mo, referencedName: _n, name: $n, initializersName: oi, descriptorName: Ci, thisArg: Ai };
    }
    function Fe(ue) {
      k(ue);
      const { modifiers: mt, name: zt, descriptorName: it } = We(ue, !1, f, j);
      if (it)
        return G(), Ye(Ut(mt, zt, it), ue);
      {
        const K = Jn(ue.parameters, P, Ba), Pe = lt(ue.body, P, co);
        return G(), Ye(t.updateMethodDeclaration(ue, mt, ue.asteriskToken, zt, void 0, void 0, K, void 0, Pe), ue);
      }
    }
    function st(ue) {
      k(ue);
      const { modifiers: mt, name: zt, descriptorName: it } = We(ue, !1, f, He);
      if (it)
        return G(), Ye(cn(mt, zt, it), ue);
      {
        const K = Jn(ue.parameters, P, Ba), Pe = lt(ue.body, P, co);
        return G(), Ye(t.updateGetAccessorDeclaration(ue, mt, zt, K, void 0, Pe), ue);
      }
    }
    function Ct(ue) {
      k(ue);
      const { modifiers: mt, name: zt, descriptorName: it } = We(ue, !1, f, Ze);
      if (it)
        return G(), Ye(Sn(mt, zt, it), ue);
      {
        const K = Jn(ue.parameters, P, Ba), Pe = lt(ue.body, P, co);
        return G(), Ye(t.updateSetAccessorDeclaration(ue, mt, zt, K, Pe), ue);
      }
    }
    function Et(ue) {
      k(ue), f && (f.hasStaticInitializers = !0);
      const mt = Bn(ue, P, e);
      return G(), mt;
    }
    function Vt(ue) {
      k(ue), D.assert(!$W(ue), "Not yet implemented.");
      const mt = Yf(ue, In), { modifiers: zt, name: it, referencedName: K, initializersName: Pe, descriptorName: Z, thisArg: Re } = We(ue, mt, f, Bm(ue) ? Xe : void 0);
      i();
      let q = K ? lt(ue.initializer, (gt) => ae(gt, K), vt) : lt(ue.initializer, P, vt);
      Pe && (q = r().createRunInitializersHelper(Re ?? t.createThis(), Pe, q ?? t.createVoidZero())), !Ja(ue) && (f != null && f.instanceExtraInitializersName) && !(f != null && f.hasInjectedInstanceInitializers) && (f.hasInjectedInstanceInitializers = !0, q ?? (q = t.createVoidZero()), q = t.createParenthesizedExpression(t.createComma(r().createRunInitializersHelper(t.createThis(), f.instanceExtraInitializersName), q))), Ja(ue) && f && q && (f.hasStaticInitializers = !0);
      const Rt = o();
      if (kt(Rt) && (q = t.createImmediatelyInvokedArrowFunction([
        ...Rt,
        t.createReturnStatement(q)
      ])), G(), Bm(ue) && Z) {
        const gt = jm(ue), ft = Q0(ue), _n = ue.name;
        let $n = _n, oi = _n;
        if (As(_n) && !im(_n.expression)) {
          const To = i5(_n);
          if (To)
            $n = t.updateComputedPropertyName(_n, lt(_n.expression, P, vt)), oi = t.updateComputedPropertyName(_n, To.left);
          else {
            const io = t.createTempVariable(s);
            fs(io, _n.expression);
            const ua = lt(_n.expression, P, vt), Hi = t.createAssignment(io, ua);
            fs(Hi, _n.expression), $n = t.updateComputedPropertyName(_n, Hi), oi = t.updateComputedPropertyName(_n, io);
          }
        }
        const Ai = Jn(zt, (To) => To.kind !== 127 ? To : void 0, fo), Ci = zJ(t, ue, Ai, q);
        Wr(Ci, ue), or(Ci, 3072), fs(Ci, ft), fs(Ci.name, ue.name);
        const ji = cn(Ai, $n, Z);
        Wr(ji, ue), Hc(ji, gt), fs(ji, ft);
        const mo = Sn(Ai, oi, Z);
        return Wr(mo, ue), or(mo, 3072), fs(mo, ft), [Ci, ji, mo];
      }
      return Ye(t.updatePropertyDeclaration(ue, zt, it, void 0, void 0, q), ue);
    }
    function tt(ue) {
      return d ?? ue;
    }
    function at(ue) {
      if (ud(ue.expression) && d) {
        const mt = lt(ue.expression, P, vt), zt = Jn(ue.arguments, P, vt), it = t.createFunctionCallCall(mt, d, zt);
        return Wr(it, ue), ht(it, ue), it;
      }
      return Bn(ue, P, e);
    }
    function sn(ue) {
      if (ud(ue.tag) && d) {
        const mt = lt(ue.tag, P, vt), zt = t.createFunctionBindCall(mt, d, []);
        Wr(zt, ue), ht(zt, ue);
        const it = lt(ue.template, P, IA);
        return t.updateTaggedTemplateExpression(ue, zt, void 0, it);
      }
      return Bn(ue, P, e);
    }
    function Qt(ue) {
      if (ud(ue) && je(ue.name) && d && y) {
        const mt = t.createStringLiteralFromNode(ue.name), zt = t.createReflectGetCall(y, mt, d);
        return Wr(zt, ue.expression), ht(zt, ue.expression), zt;
      }
      return Bn(ue, P, e);
    }
    function On(ue) {
      if (ud(ue) && d && y) {
        const mt = lt(ue.argumentExpression, P, vt), zt = t.createReflectGetCall(y, mt, d);
        return Wr(zt, ue.expression), ht(zt, ue.expression), zt;
      }
      return Bn(ue, P, e);
    }
    function jn(ue) {
      let mt;
      if (Yf(ue, In)) {
        const zt = Er(ue.name, ue.initializer), it = lt(ue.name, P, hh), K = lt(ue.initializer, (Pe) => ae(Pe, zt), vt);
        mt = t.updateParameterDeclaration(ue, void 0, void 0, it, void 0, void 0, K);
      } else
        mt = t.updateParameterDeclaration(ue, void 0, ue.dotDotDotToken, lt(ue.name, P, hh), void 0, void 0, lt(ue.initializer, P, vt));
      return mt !== ue && (Hc(mt, ue), ht(mt, $p(ue)), fs(mt, $p(ue)), or(mt.name, 64)), mt;
    }
    function In(ue) {
      return Gu(ue) && !ue.name && Ve(ue);
    }
    function Zt(ue) {
      return t.updateForStatement(ue, lt(ue.initializer, W, Jp), lt(ue.condition, P, vt), lt(ue.incrementor, W, vt), b_(ue.statement, P, e));
    }
    function _r(ue) {
      return Bn(ue, W, e);
    }
    function Ii(ue, mt) {
      if (vy(ue)) {
        const zt = we(ue.left), it = lt(ue.right, P, vt);
        return t.updateBinaryExpression(ue, zt, ue.operatorToken, it);
      }
      if (ed(ue)) {
        if (Yf(ue, In)) {
          const zt = Er(ue.left, ue.right), it = lt(ue.left, P, vt), K = lt(ue.right, (Pe) => ae(Pe, zt), vt);
          return t.updateBinaryExpression(ue, it, ue.operatorToken, K);
        }
        if (ud(ue.left) && d && y) {
          let zt = cl(ue.left) ? lt(ue.left.argumentExpression, P, vt) : je(ue.left.name) ? t.createStringLiteralFromNode(ue.left.name) : void 0;
          if (zt) {
            let it = lt(ue.right, P, vt);
            if (C8(ue.operatorToken.kind)) {
              let Pe = zt;
              im(zt) || (Pe = t.createTempVariable(s), zt = t.createAssignment(Pe, zt));
              const Z = t.createReflectGetCall(y, Pe, d);
              Wr(Z, ue.left), ht(Z, ue.left), it = t.createBinaryExpression(Z, ew(ue.operatorToken.kind), it), ht(it, ue);
            }
            const K = mt ? void 0 : t.createTempVariable(s);
            return K && (it = t.createAssignment(K, it), ht(K, ue)), it = t.createReflectSetCall(y, zt, it, d), Wr(it, ue), ht(it, ue), K && (it = t.createComma(it, K), ht(it, ue)), it;
          }
        }
      }
      if (ue.operatorToken.kind === 27) {
        const zt = lt(ue.left, W, vt), it = lt(ue.right, mt ? W : P, vt);
        return t.updateBinaryExpression(ue, zt, ue.operatorToken, it);
      }
      return Bn(ue, P, e);
    }
    function $i(ue, mt) {
      if (ue.operator === 45 || ue.operator === 46) {
        const zt = js(ue.operand);
        if (ud(zt) && d && y) {
          let it = cl(zt) ? lt(zt.argumentExpression, P, vt) : je(zt.name) ? t.createStringLiteralFromNode(zt.name) : void 0;
          if (it) {
            let K = it;
            im(it) || (K = t.createTempVariable(s), it = t.createAssignment(K, it));
            let Pe = t.createReflectGetCall(y, K, d);
            Wr(Pe, ue), ht(Pe, ue);
            const Z = mt ? void 0 : t.createTempVariable(s);
            return Pe = Y7(t, ue, Pe, s, Z), Pe = t.createReflectSetCall(y, it, Pe, d), Wr(Pe, ue), ht(Pe, ue), Z && (Pe = t.createComma(Pe, Z), ht(Pe, ue)), Pe;
          }
        }
      }
      return Bn(ue, P, e);
    }
    function Qi(ue, mt) {
      const zt = mt ? A8(ue.elements, W) : A8(ue.elements, P, W);
      return t.updateCommaListExpression(ue, zt);
    }
    function Or(ue) {
      if (G_(ue) || Ni(ue)) {
        const Pe = t.createStringLiteralFromNode(ue), Z = lt(ue, P, yl);
        return { referencedName: Pe, name: Z };
      }
      if (G_(ue.expression) && !je(ue.expression)) {
        const Pe = t.createStringLiteralFromNode(ue.expression), Z = lt(ue, P, yl);
        return { referencedName: Pe, name: Z };
      }
      const mt = t.getGeneratedNameForNode(ue);
      s(mt);
      const zt = r().createPropKeyHelper(lt(ue.expression, P, vt)), it = t.createAssignment(mt, zt), K = t.updateComputedPropertyName(ue, pt(it));
      return { referencedName: mt, name: K };
    }
    function At(ue) {
      return As(ue) ? vn(ue) : lt(ue, P, yl);
    }
    function vn(ue) {
      let mt = lt(ue.expression, P, vt);
      return im(mt) || (mt = pt(mt)), t.updateComputedPropertyName(ue, mt);
    }
    function Wt(ue) {
      if (Yf(ue, In)) {
        const { referencedName: mt, name: zt } = Or(ue.name), it = lt(ue.initializer, (K) => ae(K, mt), vt);
        return t.updatePropertyAssignment(ue, zt, it);
      }
      return Bn(ue, P, e);
    }
    function fn(ue) {
      if (Yf(ue, In)) {
        const mt = Er(ue.name, ue.initializer), zt = lt(ue.name, P, hh), it = lt(ue.initializer, (K) => ae(K, mt), vt);
        return t.updateVariableDeclaration(ue, zt, void 0, void 0, it);
      }
      return Bn(ue, P, e);
    }
    function rr(ue) {
      if (Yf(ue, In)) {
        const mt = Er(ue.name, ue.initializer), zt = lt(ue.propertyName, P, yl), it = lt(ue.name, P, hh), K = lt(ue.initializer, (Pe) => ae(Pe, mt), vt);
        return t.updateBindingElement(ue, void 0, zt, it, K);
      }
      return Bn(ue, P, e);
    }
    function cr(ue) {
      if (Ls(ue) || Bu(ue))
        return we(ue);
      if (ud(ue) && d && y) {
        const mt = cl(ue) ? lt(ue.argumentExpression, P, vt) : je(ue.name) ? t.createStringLiteralFromNode(ue.name) : void 0;
        if (mt) {
          const zt = t.createTempVariable(void 0), it = t.createAssignmentTargetWrapper(zt, t.createReflectSetCall(y, mt, zt, d));
          return Wr(it, ue), ht(it, ue), it;
        }
      }
      return Bn(ue, P, e);
    }
    function Pi(ue) {
      if (ed(ue, !0)) {
        const mt = cr(ue.left);
        let zt;
        if (Yf(ue, In)) {
          const it = Er(ue.left, ue.right);
          zt = lt(ue.right, (K) => ae(K, it), vt);
        } else
          zt = lt(ue.right, P, vt);
        return t.updateBinaryExpression(ue, mt, ue.operatorToken, zt);
      } else
        return cr(ue);
    }
    function hi(ue) {
      if (Td(ue.expression)) {
        const mt = cr(ue.expression);
        return t.updateSpreadElement(ue, mt);
      }
      return Bn(ue, P, e);
    }
    function Rn(ue) {
      return D.assertNode(ue, $R), Lh(ue) ? hi(ue) : Rc(ue) ? Bn(ue, P, e) : Pi(ue);
    }
    function an(ue) {
      const mt = lt(ue.name, P, yl);
      if (ed(ue.initializer, !0)) {
        const zt = Pi(ue.initializer);
        return t.updatePropertyAssignment(ue, mt, zt);
      }
      if (Td(ue.initializer)) {
        const zt = cr(ue.initializer);
        return t.updatePropertyAssignment(ue, mt, zt);
      }
      return Bn(ue, P, e);
    }
    function Pn(ue) {
      if (Yf(ue, In)) {
        const mt = Er(ue.name, ue.objectAssignmentInitializer), zt = lt(ue.name, P, je), it = lt(ue.objectAssignmentInitializer, (K) => ae(K, mt), vt);
        return t.updateShorthandPropertyAssignment(ue, zt, it);
      }
      return Bn(ue, P, e);
    }
    function Ar(ue) {
      if (Td(ue.expression)) {
        const mt = cr(ue.expression);
        return t.updateSpreadAssignment(ue, mt);
      }
      return Bn(ue, P, e);
    }
    function Hr(ue) {
      return D.assertNode(ue, YR), Ox(ue) ? Ar(ue) : t_(ue) ? Pn(ue) : zc(ue) ? an(ue) : Bn(ue, P, e);
    }
    function we(ue) {
      if (Bu(ue)) {
        const mt = Jn(ue.elements, Rn, vt);
        return t.updateArrayLiteralExpression(ue, mt);
      } else {
        const mt = Jn(ue.properties, Hr, my);
        return t.updateObjectLiteralExpression(ue, mt);
      }
    }
    function yt(ue) {
      if (Yf(ue, In)) {
        const mt = t.createStringLiteral(ue.isExportEquals ? "" : "default"), zt = Jn(ue.modifiers, re, fo), it = lt(ue.expression, (K) => ae(K, mt), vt);
        return t.updateExportAssignment(ue, zt, it);
      }
      return Bn(ue, P, e);
    }
    function Nt(ue, mt, zt) {
      const it = mt ? W : zt ? (Pe) => ae(Pe, zt) : P, K = lt(ue.expression, it, vt);
      return t.updateParenthesizedExpression(ue, K);
    }
    function Ce(ue, mt, zt) {
      const it = mt ? W : zt ? (Pe) => ae(Pe, zt) : P, K = lt(ue.expression, it, vt);
      return t.updatePartiallyEmittedExpression(ue, K);
    }
    function pt(ue) {
      return kt(h) && (Vd(ue) ? (h.push(ue.expression), ue = t.updateParenthesizedExpression(ue, t.inlineExpressions(h))) : (h.push(ue), ue = t.inlineExpressions(h)), h = void 0), ue;
    }
    function _e(ue) {
      if (!ue)
        return;
      const mt = [];
      return Ti(mt, jt(ue.decorators, ie)), mt;
    }
    function ie(ue) {
      const mt = lt(ue.expression, P, vt);
      return or(mt, 3072), mt;
    }
    function he(ue, mt, zt, it, K, Pe, Z) {
      const Re = t.createFunctionExpression(zt, it, void 0, void 0, Pe, void 0, Z ?? t.createBlock([]));
      Wr(Re, ue), fs(Re, Ov(ue)), or(Re, 3072);
      const q = K === "get" || K === "set" ? K : void 0, Rt = t.createStringLiteralFromNode(mt, void 0), gt = r().createSetFunctionNameHelper(Re, Rt, q), ft = t.createPropertyAssignment(t.createIdentifier(K), gt);
      return Wr(ft, ue), fs(ft, Ov(ue)), or(ft, 3072), ft;
    }
    function j(ue, mt) {
      return t.createObjectLiteralExpression([
        he(ue, ue.name, mt, ue.asteriskToken, "value", Jn(ue.parameters, P, Ba), lt(ue.body, P, co))
      ]);
    }
    function He(ue, mt) {
      return t.createObjectLiteralExpression([
        he(ue, ue.name, mt, void 0, "get", [], lt(ue.body, P, co))
      ]);
    }
    function Ze(ue, mt) {
      return t.createObjectLiteralExpression([
        he(ue, ue.name, mt, void 0, "set", Jn(ue.parameters, P, Ba), lt(ue.body, P, co))
      ]);
    }
    function Xe(ue, mt) {
      return t.createObjectLiteralExpression([
        he(ue, ue.name, mt, void 0, "get", [], t.createBlock([
          t.createReturnStatement(t.createPropertyAccessExpression(t.createThis(), t.getGeneratedPrivateNameForNode(ue.name)))
        ])),
        he(ue, ue.name, mt, void 0, "set", [t.createParameterDeclaration(void 0, void 0, "value")], t.createBlock([
          t.createExpressionStatement(t.createAssignment(t.createPropertyAccessExpression(t.createThis(), t.getGeneratedPrivateNameForNode(ue.name)), t.createIdentifier("value")))
        ]))
      ]);
    }
    function Ut(ue, mt, zt) {
      return ue = Jn(ue, (it) => Ex(it) ? it : void 0, fo), t.createGetAccessorDeclaration(ue, mt, [], void 0, t.createBlock([
        t.createReturnStatement(t.createPropertyAccessExpression(zt, t.createIdentifier("value")))
      ]));
    }
    function cn(ue, mt, zt) {
      return ue = Jn(ue, (it) => Ex(it) ? it : void 0, fo), t.createGetAccessorDeclaration(ue, mt, [], void 0, t.createBlock([
        t.createReturnStatement(t.createFunctionCallCall(t.createPropertyAccessExpression(zt, t.createIdentifier("get")), t.createThis(), []))
      ]));
    }
    function Sn(ue, mt, zt) {
      return ue = Jn(ue, (it) => Ex(it) ? it : void 0, fo), t.createSetAccessorDeclaration(ue, mt, [t.createParameterDeclaration(void 0, void 0, "value")], t.createBlock([
        t.createReturnStatement(t.createFunctionCallCall(t.createPropertyAccessExpression(zt, t.createIdentifier("set")), t.createThis(), [t.createIdentifier("value")]))
      ]));
    }
    function Er(ue, mt) {
      const zt = Tl(mt, di);
      return zt && !zt.name && Yr(zt, 1024) ? t.createStringLiteral("default") : t.createStringLiteralFromNode(ue);
    }
  }
  var o3e = C({
    "src/compiler/transformers/esDecorators.ts"() {
      Oa();
    }
  });
  function hhe(e) {
    const {
      factory: t,
      getEmitHelperFactory: r,
      resumeLexicalEnvironment: i,
      endLexicalEnvironment: o,
      hoistVariableDeclaration: s
    } = e, c = e.getEmitResolver(), f = e.getCompilerOptions(), d = ts(f);
    let y, h = 0, E, A, L;
    const I = [];
    let O = 0;
    const k = e.onEmitNode, G = e.onSubstituteNode;
    return e.onEmitNode = jn, e.onSubstituteNode = In, X_(e, V);
    function V(At) {
      if (At.isDeclarationFile)
        return At;
      H(1, !1), H(2, !YW(At, f));
      const vn = Bn(At, re, e);
      return Ey(vn, e.readEmitHelpers()), vn;
    }
    function H(At, vn) {
      O = vn ? O | At : O & ~At;
    }
    function te(At) {
      return (O & At) !== 0;
    }
    function X() {
      return !te(1);
    }
    function Y() {
      return te(2);
    }
    function P(At, vn, Wt) {
      const fn = At & ~O;
      if (fn) {
        H(fn, !0);
        const rr = vn(Wt);
        return H(fn, !1), rr;
      }
      return vn(Wt);
    }
    function de(At) {
      return Bn(At, re, e);
    }
    function re(At) {
      if (!(At.transformFlags & 256))
        return At;
      switch (At.kind) {
        case 132:
          return;
        case 220:
          return Te(At);
        case 171:
          return P(3, Qe, At);
        case 259:
          return P(3, qe, At);
        case 215:
          return P(3, Oe, At);
        case 216:
          return P(1, Me, At);
        case 208:
          return A && Fr(At) && At.expression.kind === 106 && A.add(At.name.escapedText), Bn(At, re, e);
        case 209:
          return A && At.expression.kind === 106 && (L = !0), Bn(At, re, e);
        case 174:
          return P(3, Ve, At);
        case 175:
          return P(3, Be, At);
        case 173:
          return P(3, ee, At);
        case 260:
        case 228:
          return P(3, de, At);
        default:
          return Bn(At, re, e);
      }
    }
    function ye(At) {
      if (wue(At))
        switch (At.kind) {
          case 240:
            return W(At);
          case 245:
            return ve(At);
          case 246:
            return ce(At);
          case 247:
            return me(At);
          case 295:
            return ae(At);
          case 238:
          case 252:
          case 266:
          case 292:
          case 293:
          case 255:
          case 243:
          case 244:
          case 242:
          case 251:
          case 253:
            return Bn(At, ye, e);
          default:
            return D.assertNever(At, "Unhandled node.");
        }
      return re(At);
    }
    function ae(At) {
      const vn = /* @__PURE__ */ new Set();
      Ye(At.variableDeclaration, vn);
      let Wt;
      if (vn.forEach((fn, rr) => {
        E.has(rr) && (Wt || (Wt = new Set(E)), Wt.delete(rr));
      }), Wt) {
        const fn = E;
        E = Wt;
        const rr = Bn(At, ye, e);
        return E = fn, rr;
      } else
        return Bn(At, ye, e);
    }
    function W(At) {
      if (We(At.declarationList)) {
        const vn = Fe(At.declarationList, !1);
        return vn ? t.createExpressionStatement(vn) : void 0;
      }
      return Bn(At, re, e);
    }
    function ce(At) {
      return t.updateForInStatement(At, We(At.initializer) ? Fe(At.initializer, !0) : D.checkDefined(lt(At.initializer, re, Jp)), D.checkDefined(lt(At.expression, re, vt)), b_(At.statement, ye, e));
    }
    function me(At) {
      return t.updateForOfStatement(At, lt(At.awaitModifier, re, pJ), We(At.initializer) ? Fe(At.initializer, !0) : D.checkDefined(lt(At.initializer, re, Jp)), D.checkDefined(lt(At.expression, re, vt)), b_(At.statement, ye, e));
    }
    function ve(At) {
      const vn = At.initializer;
      return t.updateForStatement(At, We(vn) ? Fe(vn, !1) : lt(At.initializer, re, Jp), lt(At.condition, re, vt), lt(At.incrementor, re, vt), b_(At.statement, ye, e));
    }
    function Te(At) {
      return X() ? Bn(At, re, e) : Wr(ht(t.createYieldExpression(void 0, lt(At.expression, re, vt)), At), At);
    }
    function ee(At) {
      return t.updateConstructorDeclaration(At, Jn(At.modifiers, re, fo), Kl(At.parameters, re, e), tt(At));
    }
    function Qe(At) {
      return t.updateMethodDeclaration(At, Jn(At.modifiers, re, nl), At.asteriskToken, At.name, void 0, void 0, Kl(At.parameters, re, e), void 0, Vc(At) & 2 ? at(At) : tt(At));
    }
    function Ve(At) {
      return t.updateGetAccessorDeclaration(At, Jn(At.modifiers, re, nl), At.name, Kl(At.parameters, re, e), void 0, tt(At));
    }
    function Be(At) {
      return t.updateSetAccessorDeclaration(At, Jn(At.modifiers, re, nl), At.name, Kl(At.parameters, re, e), tt(At));
    }
    function qe(At) {
      return t.updateFunctionDeclaration(At, Jn(At.modifiers, re, nl), At.asteriskToken, At.name, void 0, Kl(At.parameters, re, e), void 0, Vc(At) & 2 ? at(At) : wf(At.body, re, e));
    }
    function Oe(At) {
      return t.updateFunctionExpression(At, Jn(At.modifiers, re, fo), At.asteriskToken, At.name, void 0, Kl(At.parameters, re, e), void 0, Vc(At) & 2 ? at(At) : wf(At.body, re, e));
    }
    function Me(At) {
      return t.updateArrowFunction(At, Jn(At.modifiers, re, fo), void 0, Kl(At.parameters, re, e), void 0, At.equalsGreaterThanToken, Vc(At) & 2 ? at(At) : wf(At.body, re, e));
    }
    function Ye({ name: At }, vn) {
      if (je(At))
        vn.add(At.escapedText);
      else
        for (const Wt of At.elements)
          Rc(Wt) || Ye(Wt, vn);
    }
    function We(At) {
      return !!At && Uu(At) && !(At.flags & 3) && At.declarations.some(Vt);
    }
    function Fe(At, vn) {
      st(At);
      const Wt = ik(At);
      return Wt.length === 0 ? vn ? lt(t.converters.convertToAssignmentElementTarget(At.declarations[0].name), re, vt) : void 0 : t.inlineExpressions(jt(Wt, Et));
    }
    function st(At) {
      ze(At.declarations, Ct);
    }
    function Ct({ name: At }) {
      if (je(At))
        s(At);
      else
        for (const vn of At.elements)
          Rc(vn) || Ct(vn);
    }
    function Et(At) {
      const vn = fs(t.createAssignment(t.converters.convertToAssignmentElementTarget(At.name), At.initializer), At);
      return D.checkDefined(lt(vn, re, vt));
    }
    function Vt({ name: At }) {
      if (je(At))
        return E.has(At.escapedText);
      for (const vn of At.elements)
        if (!Rc(vn) && Vt(vn))
          return !0;
      return !1;
    }
    function tt(At) {
      D.assertIsDefined(At.body);
      const vn = A, Wt = L;
      A = /* @__PURE__ */ new Set(), L = !1;
      let fn = wf(At.body, re, e);
      const rr = Tl(At, Qs);
      if (d >= 2 && c.getNodeCheckFlags(At) & 384 && (Vc(rr) & 3) !== 3) {
        if (On(), A.size) {
          const Pi = Z5(t, c, At, A);
          I[ps(Pi)] = !0;
          const hi = fn.statements.slice();
          Pm(hi, [Pi]), fn = t.updateBlock(fn, hi);
        }
        L && (c.getNodeCheckFlags(At) & 256 ? gx(fn, LO) : c.getNodeCheckFlags(At) & 128 && gx(fn, CO));
      }
      return A = vn, L = Wt, fn;
    }
    function at(At) {
      i();
      const Wt = Tl(At, Ka).type, fn = d < 2 ? Qt(Wt) : void 0, rr = At.kind === 216, cr = (c.getNodeCheckFlags(At) & 512) !== 0, Pi = E;
      E = /* @__PURE__ */ new Set();
      for (const Pn of At.parameters)
        Ye(Pn, E);
      const hi = A, Rn = L;
      rr || (A = /* @__PURE__ */ new Set(), L = !1);
      let an;
      if (rr) {
        const Pn = r().createAwaiterHelper(Y(), cr, fn, sn(At.body)), Ar = o();
        if (kt(Ar)) {
          const Hr = t.converters.convertToFunctionBlock(Pn);
          an = t.updateBlock(Hr, ht(t.createNodeArray(va(Ar, Hr.statements)), Hr.statements));
        } else
          an = Pn;
      } else {
        const Pn = [], Ar = t.copyPrologue(At.body.statements, Pn, !1, re);
        Pn.push(t.createReturnStatement(r().createAwaiterHelper(Y(), cr, fn, sn(At.body, Ar)))), Pm(Pn, o());
        const Hr = d >= 2 && c.getNodeCheckFlags(At) & 384;
        if (Hr && (On(), A.size)) {
          const yt = Z5(t, c, At, A);
          I[ps(yt)] = !0, Pm(Pn, [yt]);
        }
        const we = t.createBlock(Pn, !0);
        ht(we, At.body), Hr && L && (c.getNodeCheckFlags(At) & 256 ? gx(we, LO) : c.getNodeCheckFlags(At) & 128 && gx(we, CO)), an = we;
      }
      return E = Pi, rr || (A = hi, L = Rn), an;
    }
    function sn(At, vn) {
      return co(At) ? t.updateBlock(At, Jn(At.statements, ye, wa, vn)) : t.converters.convertToFunctionBlock(D.checkDefined(lt(At, ye, UM)));
    }
    function Qt(At) {
      const vn = At && fN(At);
      if (vn && rf(vn)) {
        const Wt = c.getTypeReferenceSerializationKind(vn);
        if (Wt === 1 || Wt === 0)
          return vn;
      }
    }
    function On() {
      y & 1 || (y |= 1, e.enableSubstitution(210), e.enableSubstitution(208), e.enableSubstitution(209), e.enableEmitNotification(260), e.enableEmitNotification(171), e.enableEmitNotification(174), e.enableEmitNotification(175), e.enableEmitNotification(173), e.enableEmitNotification(240));
    }
    function jn(At, vn, Wt) {
      if (y & 1 && Qi(vn)) {
        const fn = c.getNodeCheckFlags(vn) & 384;
        if (fn !== h) {
          const rr = h;
          h = fn, k(At, vn, Wt), h = rr;
          return;
        }
      } else if (y && I[ps(vn)]) {
        const fn = h;
        h = 0, k(At, vn, Wt), h = fn;
        return;
      }
      k(At, vn, Wt);
    }
    function In(At, vn) {
      return vn = G(At, vn), At === 1 && h ? Zt(vn) : vn;
    }
    function Zt(At) {
      switch (At.kind) {
        case 208:
          return _r(At);
        case 209:
          return Ii(At);
        case 210:
          return $i(At);
      }
      return At;
    }
    function _r(At) {
      return At.expression.kind === 106 ? ht(t.createPropertyAccessExpression(t.createUniqueName("_super", 48), At.name), At) : At;
    }
    function Ii(At) {
      return At.expression.kind === 106 ? Or(At.argumentExpression, At) : At;
    }
    function $i(At) {
      const vn = At.expression;
      if (ud(vn)) {
        const Wt = Fr(vn) ? _r(vn) : Ii(vn);
        return t.createCallExpression(t.createPropertyAccessExpression(Wt, "call"), void 0, [
          t.createThis(),
          ...At.arguments
        ]);
      }
      return At;
    }
    function Qi(At) {
      const vn = At.kind;
      return vn === 260 || vn === 173 || vn === 171 || vn === 174 || vn === 175;
    }
    function Or(At, vn) {
      return h & 256 ? ht(t.createPropertyAccessExpression(t.createCallExpression(t.createUniqueName("_superIndex", 48), void 0, [At]), "value"), vn) : ht(t.createCallExpression(t.createUniqueName("_superIndex", 48), void 0, [At]), vn);
    }
  }
  function Z5(e, t, r, i) {
    const o = (t.getNodeCheckFlags(r) & 256) !== 0, s = [];
    return i.forEach((c, f) => {
      const d = ta(f), y = [];
      y.push(e.createPropertyAssignment("get", e.createArrowFunction(void 0, void 0, [], void 0, void 0, or(e.createPropertyAccessExpression(or(e.createSuper(), 8), d), 8)))), o && y.push(e.createPropertyAssignment("set", e.createArrowFunction(void 0, void 0, [
        e.createParameterDeclaration(void 0, void 0, "v", void 0, void 0, void 0)
      ], void 0, void 0, e.createAssignment(or(e.createPropertyAccessExpression(or(e.createSuper(), 8), d), 8), e.createIdentifier("v"))))), s.push(e.createPropertyAssignment(d, e.createObjectLiteralExpression(y)));
    }), e.createVariableStatement(void 0, e.createVariableDeclarationList([
      e.createVariableDeclaration(e.createUniqueName("_super", 48), void 0, void 0, e.createCallExpression(e.createPropertyAccessExpression(e.createIdentifier("Object"), "create"), void 0, [
        e.createNull(),
        e.createObjectLiteralExpression(s, !0)
      ]))
    ], 2));
  }
  var s3e = C({
    "src/compiler/transformers/es2017.ts"() {
      Oa();
    }
  });
  function ghe(e) {
    const {
      factory: t,
      getEmitHelperFactory: r,
      resumeLexicalEnvironment: i,
      endLexicalEnvironment: o,
      hoistVariableDeclaration: s
    } = e, c = e.getEmitResolver(), f = e.getCompilerOptions(), d = ts(f), y = e.onEmitNode;
    e.onEmitNode = Pn;
    const h = e.onSubstituteNode;
    e.onSubstituteNode = Ar;
    let E = !1, A, L, I, O = 0, k = 0, G, V, H, te;
    const X = [];
    return X_(e, ye);
    function Y(_e, ie) {
      return k !== (k & ~_e | ie);
    }
    function P(_e, ie) {
      const he = k;
      return k = (k & ~_e | ie) & 3, he;
    }
    function de(_e) {
      k = _e;
    }
    function re(_e) {
      V = Fn(V, t.createVariableDeclaration(_e));
    }
    function ye(_e) {
      if (_e.isDeclarationFile)
        return _e;
      G = _e;
      const ie = We(_e);
      return Ey(ie, e.readEmitHelpers()), G = void 0, V = void 0, ie;
    }
    function ae(_e) {
      return Te(_e, !1);
    }
    function W(_e) {
      return Te(_e, !0);
    }
    function ce(_e) {
      if (_e.kind !== 132)
        return _e;
    }
    function me(_e, ie, he, j) {
      if (Y(he, j)) {
        const He = P(he, j), Ze = _e(ie);
        return de(He), Ze;
      }
      return _e(ie);
    }
    function ve(_e) {
      return Bn(_e, ae, e);
    }
    function Te(_e, ie) {
      if (!(_e.transformFlags & 128))
        return _e;
      switch (_e.kind) {
        case 220:
          return ee(_e);
        case 226:
          return Qe(_e);
        case 250:
          return Ve(_e);
        case 253:
          return Be(_e);
        case 207:
          return Oe(_e);
        case 223:
          return st(_e, ie);
        case 357:
          return Ct(_e, ie);
        case 295:
          return Et(_e);
        case 240:
          return Vt(_e);
        case 257:
          return tt(_e);
        case 243:
        case 244:
        case 246:
          return me(ve, _e, 0, 2);
        case 247:
          return On(_e, void 0);
        case 245:
          return me(sn, _e, 0, 2);
        case 219:
          return Qt(_e);
        case 173:
          return me(Or, _e, 2, 1);
        case 171:
          return me(Wt, _e, 2, 1);
        case 174:
          return me(At, _e, 2, 1);
        case 175:
          return me(vn, _e, 2, 1);
        case 259:
          return me(fn, _e, 2, 1);
        case 215:
          return me(cr, _e, 2, 1);
        case 216:
          return me(rr, _e, 2, 0);
        case 166:
          return $i(_e);
        case 241:
          return Me(_e);
        case 214:
          return Ye(_e, ie);
        case 212:
          return Fe(_e);
        case 208:
          return H && Fr(_e) && _e.expression.kind === 106 && H.add(_e.name.escapedText), Bn(_e, ae, e);
        case 209:
          return H && _e.expression.kind === 106 && (te = !0), Bn(_e, ae, e);
        case 260:
        case 228:
          return me(ve, _e, 2, 1);
        default:
          return Bn(_e, ae, e);
      }
    }
    function ee(_e) {
      return L & 2 && L & 1 ? Wr(ht(t.createYieldExpression(void 0, r().createAwaitHelper(lt(_e.expression, ae, vt))), _e), _e) : Bn(_e, ae, e);
    }
    function Qe(_e) {
      if (L & 2 && L & 1) {
        if (_e.asteriskToken) {
          const ie = lt(D.checkDefined(_e.expression), ae, vt);
          return Wr(ht(t.createYieldExpression(void 0, r().createAwaitHelper(t.updateYieldExpression(_e, _e.asteriskToken, ht(r().createAsyncDelegatorHelper(ht(r().createAsyncValuesHelper(ie), ie)), ie)))), _e), _e);
        }
        return Wr(ht(t.createYieldExpression(void 0, Zt(_e.expression ? lt(_e.expression, ae, vt) : t.createVoidZero())), _e), _e);
      }
      return Bn(_e, ae, e);
    }
    function Ve(_e) {
      return L & 2 && L & 1 ? t.updateReturnStatement(_e, Zt(_e.expression ? lt(_e.expression, ae, vt) : t.createVoidZero())) : Bn(_e, ae, e);
    }
    function Be(_e) {
      if (L & 2) {
        const ie = lz(_e);
        return ie.kind === 247 && ie.awaitModifier ? On(ie, _e) : t.restoreEnclosingLabel(lt(ie, ae, wa, t.liftToBlock), _e);
      }
      return Bn(_e, ae, e);
    }
    function qe(_e) {
      let ie;
      const he = [];
      for (const j of _e)
        if (j.kind === 301) {
          ie && (he.push(t.createObjectLiteralExpression(ie)), ie = void 0);
          const He = j.expression;
          he.push(lt(He, ae, vt));
        } else
          ie = Fn(ie, j.kind === 299 ? t.createPropertyAssignment(j.name, lt(j.initializer, ae, vt)) : lt(j, ae, my));
      return ie && he.push(t.createObjectLiteralExpression(ie)), he;
    }
    function Oe(_e) {
      if (_e.transformFlags & 65536) {
        const ie = qe(_e.properties);
        ie.length && ie[0].kind !== 207 && ie.unshift(t.createObjectLiteralExpression());
        let he = ie[0];
        if (ie.length > 1) {
          for (let j = 1; j < ie.length; j++)
            he = r().createAssignHelper([he, ie[j]]);
          return he;
        } else
          return r().createAssignHelper(ie);
      }
      return Bn(_e, ae, e);
    }
    function Me(_e) {
      return Bn(_e, W, e);
    }
    function Ye(_e, ie) {
      return Bn(_e, ie ? W : ae, e);
    }
    function We(_e) {
      const ie = P(2, YW(_e, f) ? 0 : 1);
      E = !1;
      const he = Bn(_e, ae, e), j = va(he.statements, V && [
        t.createVariableStatement(void 0, t.createVariableDeclarationList(V))
      ]), He = t.updateSourceFile(he, ht(t.createNodeArray(j), _e.statements));
      return de(ie), He;
    }
    function Fe(_e) {
      return gX(e, _e, ae, G, re, 0);
    }
    function st(_e, ie) {
      return vy(_e) && JO(_e.left) ? FT(_e, ae, e, 1, !ie) : _e.operatorToken.kind === 27 ? t.updateBinaryExpression(_e, lt(_e.left, W, vt), _e.operatorToken, lt(_e.right, ie ? W : ae, vt)) : Bn(_e, ae, e);
    }
    function Ct(_e, ie) {
      if (ie)
        return Bn(_e, W, e);
      let he;
      for (let He = 0; He < _e.elements.length; He++) {
        const Ze = _e.elements[He], Xe = lt(Ze, He < _e.elements.length - 1 ? W : ae, vt);
        (he || Xe !== Ze) && (he || (he = _e.elements.slice(0, He)), he.push(Xe));
      }
      const j = he ? ht(t.createNodeArray(he), _e.elements) : _e.elements;
      return t.updateCommaListExpression(_e, j);
    }
    function Et(_e) {
      if (_e.variableDeclaration && Xa(_e.variableDeclaration.name) && _e.variableDeclaration.name.transformFlags & 65536) {
        const ie = t.getGeneratedNameForNode(_e.variableDeclaration.name), he = t.updateVariableDeclaration(_e.variableDeclaration, _e.variableDeclaration.name, void 0, void 0, ie), j = U1(he, ae, e, 1);
        let He = lt(_e.block, ae, co);
        return kt(j) && (He = t.updateBlock(He, [
          t.createVariableStatement(void 0, j),
          ...He.statements
        ])), t.updateCatchClause(_e, t.updateVariableDeclaration(_e.variableDeclaration, ie, void 0, void 0, void 0), He);
      }
      return Bn(_e, ae, e);
    }
    function Vt(_e) {
      if (Yr(_e, 1)) {
        const ie = E;
        E = !0;
        const he = Bn(_e, ae, e);
        return E = ie, he;
      }
      return Bn(_e, ae, e);
    }
    function tt(_e) {
      if (E) {
        const ie = E;
        E = !1;
        const he = at(_e, !0);
        return E = ie, he;
      }
      return at(_e, !1);
    }
    function at(_e, ie) {
      return Xa(_e.name) && _e.name.transformFlags & 65536 ? U1(_e, ae, e, 1, void 0, ie) : Bn(_e, ae, e);
    }
    function sn(_e) {
      return t.updateForStatement(_e, lt(_e.initializer, W, Jp), lt(_e.condition, ae, vt), lt(_e.incrementor, W, vt), b_(_e.statement, ae, e));
    }
    function Qt(_e) {
      return Bn(_e, W, e);
    }
    function On(_e, ie) {
      const he = P(0, 2);
      (_e.initializer.transformFlags & 65536 || kI(_e.initializer) && JO(_e.initializer)) && (_e = jn(_e));
      const j = _e.awaitModifier ? _r(_e, ie, he) : t.restoreEnclosingLabel(Bn(_e, ae, e), ie);
      return de(he), j;
    }
    function jn(_e) {
      const ie = js(_e.initializer);
      if (Uu(ie) || kI(ie)) {
        let he, j;
        const He = t.createTempVariable(void 0), Ze = [MJ(t, ie, He)];
        return co(_e.statement) ? (Ti(Ze, _e.statement.statements), he = _e.statement, j = _e.statement.statements) : _e.statement && (Fn(Ze, _e.statement), he = _e.statement, j = _e.statement), t.updateForOfStatement(_e, _e.awaitModifier, ht(t.createVariableDeclarationList([
          ht(t.createVariableDeclaration(He), _e.initializer)
        ], 1), _e.initializer), _e.expression, ht(t.createBlock(ht(t.createNodeArray(Ze), j), !0), he));
      }
      return _e;
    }
    function In(_e, ie, he) {
      const j = t.createTempVariable(s), He = t.createAssignment(j, ie), Ze = t.createExpressionStatement(He);
      fs(Ze, _e.expression);
      const Xe = t.createAssignment(he, t.createFalse()), Ut = t.createExpressionStatement(Xe);
      fs(Ut, _e.expression);
      const cn = t.createAssignment(he, t.createTrue()), Sn = t.createExpressionStatement(cn);
      fs(Ut, _e.expression);
      const Er = [], ue = MJ(t, _e.initializer, j);
      Er.push(lt(ue, ae, wa));
      let mt, zt;
      const it = b_(_e.statement, ae, e);
      co(it) ? (Ti(Er, it.statements), mt = it, zt = it.statements) : Er.push(it);
      const K = or(ht(t.createBlock(ht(t.createNodeArray(Er), zt), !0), mt), 864);
      return t.createBlock([
        Ze,
        Ut,
        t.createTryStatement(K, void 0, t.createBlock([
          Sn
        ]))
      ]);
    }
    function Zt(_e) {
      return L & 1 ? t.createYieldExpression(void 0, r().createAwaitHelper(_e)) : t.createAwaitExpression(_e);
    }
    function _r(_e, ie, he) {
      const j = lt(_e.expression, ae, vt), He = je(j) ? t.getGeneratedNameForNode(j) : t.createTempVariable(void 0), Ze = je(j) ? t.getGeneratedNameForNode(He) : t.createTempVariable(void 0), Xe = t.createTempVariable(void 0), Ut = t.createTempVariable(s), cn = t.createUniqueName("e"), Sn = t.getGeneratedNameForNode(cn), Er = t.createTempVariable(void 0), ue = ht(r().createAsyncValuesHelper(j), _e.expression), mt = t.createCallExpression(t.createPropertyAccessExpression(He, "next"), void 0, []), zt = t.createPropertyAccessExpression(Ze, "done"), it = t.createPropertyAccessExpression(Ze, "value"), K = t.createFunctionCallCall(Er, He, []);
      s(cn), s(Er);
      const Pe = he & 2 ? t.inlineExpressions([t.createAssignment(cn, t.createVoidZero()), ue]) : ue, Z = or(ht(t.createForStatement(or(ht(t.createVariableDeclarationList([
        t.createVariableDeclaration(Xe, void 0, void 0, t.createTrue()),
        ht(t.createVariableDeclaration(He, void 0, void 0, Pe), _e.expression),
        t.createVariableDeclaration(Ze)
      ]), _e.expression), 4194304), t.inlineExpressions([
        t.createAssignment(Ze, Zt(mt)),
        t.createAssignment(Ut, zt),
        t.createLogicalNot(Ut)
      ]), void 0, In(_e, it, Xe)), _e), 512);
      return Wr(Z, _e), t.createTryStatement(t.createBlock([
        t.restoreEnclosingLabel(Z, ie)
      ]), t.createCatchClause(t.createVariableDeclaration(Sn), or(t.createBlock([
        t.createExpressionStatement(t.createAssignment(cn, t.createObjectLiteralExpression([
          t.createPropertyAssignment("error", Sn)
        ])))
      ]), 1)), t.createBlock([
        t.createTryStatement(t.createBlock([
          or(t.createIfStatement(t.createLogicalAnd(t.createLogicalAnd(t.createLogicalNot(Xe), t.createLogicalNot(Ut)), t.createAssignment(Er, t.createPropertyAccessExpression(He, "return"))), t.createExpressionStatement(Zt(K))), 1)
        ]), void 0, or(t.createBlock([
          or(t.createIfStatement(cn, t.createThrowStatement(t.createPropertyAccessExpression(cn, "error"))), 1)
        ]), 1))
      ]));
    }
    function Ii(_e) {
      return D.assertNode(_e, Ba), $i(_e);
    }
    function $i(_e) {
      return I != null && I.has(_e) ? t.updateParameterDeclaration(_e, void 0, _e.dotDotDotToken, Xa(_e.name) ? t.getGeneratedNameForNode(_e) : _e.name, void 0, void 0, void 0) : _e.transformFlags & 65536 ? t.updateParameterDeclaration(_e, void 0, _e.dotDotDotToken, t.getGeneratedNameForNode(_e), void 0, void 0, lt(_e.initializer, ae, vt)) : Bn(_e, ae, e);
    }
    function Qi(_e) {
      let ie;
      for (const he of _e.parameters)
        ie ? ie.add(he) : he.transformFlags & 65536 && (ie = /* @__PURE__ */ new Set());
      return ie;
    }
    function Or(_e) {
      const ie = L, he = I;
      L = Vc(_e), I = Qi(_e);
      const j = t.updateConstructorDeclaration(_e, _e.modifiers, Kl(_e.parameters, Ii, e), hi(_e));
      return L = ie, I = he, j;
    }
    function At(_e) {
      const ie = L, he = I;
      L = Vc(_e), I = Qi(_e);
      const j = t.updateGetAccessorDeclaration(_e, _e.modifiers, lt(_e.name, ae, yl), Kl(_e.parameters, Ii, e), void 0, hi(_e));
      return L = ie, I = he, j;
    }
    function vn(_e) {
      const ie = L, he = I;
      L = Vc(_e), I = Qi(_e);
      const j = t.updateSetAccessorDeclaration(_e, _e.modifiers, lt(_e.name, ae, yl), Kl(_e.parameters, Ii, e), hi(_e));
      return L = ie, I = he, j;
    }
    function Wt(_e) {
      const ie = L, he = I;
      L = Vc(_e), I = Qi(_e);
      const j = t.updateMethodDeclaration(_e, L & 1 ? Jn(_e.modifiers, ce, nl) : _e.modifiers, L & 2 ? void 0 : _e.asteriskToken, lt(_e.name, ae, yl), lt(void 0, ae, Fv), void 0, Kl(_e.parameters, Ii, e), void 0, L & 2 && L & 1 ? Pi(_e) : hi(_e));
      return L = ie, I = he, j;
    }
    function fn(_e) {
      const ie = L, he = I;
      L = Vc(_e), I = Qi(_e);
      const j = t.updateFunctionDeclaration(_e, L & 1 ? Jn(_e.modifiers, ce, fo) : _e.modifiers, L & 2 ? void 0 : _e.asteriskToken, _e.name, void 0, Kl(_e.parameters, Ii, e), void 0, L & 2 && L & 1 ? Pi(_e) : hi(_e));
      return L = ie, I = he, j;
    }
    function rr(_e) {
      const ie = L, he = I;
      L = Vc(_e), I = Qi(_e);
      const j = t.updateArrowFunction(_e, _e.modifiers, void 0, Kl(_e.parameters, Ii, e), void 0, _e.equalsGreaterThanToken, hi(_e));
      return L = ie, I = he, j;
    }
    function cr(_e) {
      const ie = L, he = I;
      L = Vc(_e), I = Qi(_e);
      const j = t.updateFunctionExpression(_e, L & 1 ? Jn(_e.modifiers, ce, fo) : _e.modifiers, L & 2 ? void 0 : _e.asteriskToken, _e.name, void 0, Kl(_e.parameters, Ii, e), void 0, L & 2 && L & 1 ? Pi(_e) : hi(_e));
      return L = ie, I = he, j;
    }
    function Pi(_e) {
      i();
      const ie = [], he = t.copyPrologue(_e.body.statements, ie, !1, ae);
      Rn(ie, _e);
      const j = H, He = te;
      H = /* @__PURE__ */ new Set(), te = !1;
      const Ze = t.createReturnStatement(r().createAsyncGeneratorHelper(t.createFunctionExpression(void 0, t.createToken(41), _e.name && t.getGeneratedNameForNode(_e.name), void 0, [], void 0, t.updateBlock(_e.body, z5(_e.body.statements, ae, e, he))), !!(k & 1))), Xe = d >= 2 && c.getNodeCheckFlags(_e) & 384;
      if (Xe) {
        an();
        const cn = Z5(t, c, _e, H);
        X[ps(cn)] = !0, Pm(ie, [cn]);
      }
      ie.push(Ze), Pm(ie, o());
      const Ut = t.updateBlock(_e.body, ie);
      return Xe && te && (c.getNodeCheckFlags(_e) & 256 ? gx(Ut, LO) : c.getNodeCheckFlags(_e) & 128 && gx(Ut, CO)), H = j, te = He, Ut;
    }
    function hi(_e) {
      var ie;
      i();
      let he = 0;
      const j = [], He = (ie = lt(_e.body, ae, UM)) != null ? ie : t.createBlock([]);
      co(He) && (he = t.copyPrologue(He.statements, j, !1, ae)), Ti(j, Rn(void 0, _e));
      const Ze = o();
      if (he > 0 || kt(j) || kt(Ze)) {
        const Xe = t.converters.convertToFunctionBlock(He, !0);
        return Pm(j, Ze), Ti(j, Xe.statements.slice(he)), t.updateBlock(Xe, ht(t.createNodeArray(j), Xe.statements));
      }
      return He;
    }
    function Rn(_e, ie) {
      let he = !1;
      for (const j of ie.parameters)
        if (he) {
          if (Xa(j.name)) {
            if (j.name.elements.length > 0) {
              const He = U1(j, ae, e, 0, t.getGeneratedNameForNode(j));
              if (kt(He)) {
                const Ze = t.createVariableDeclarationList(He), Xe = t.createVariableStatement(void 0, Ze);
                or(Xe, 2097152), _e = Fn(_e, Xe);
              }
            } else if (j.initializer) {
              const He = t.getGeneratedNameForNode(j), Ze = lt(j.initializer, ae, vt), Xe = t.createAssignment(He, Ze), Ut = t.createExpressionStatement(Xe);
              or(Ut, 2097152), _e = Fn(_e, Ut);
            }
          } else if (j.initializer) {
            const He = t.cloneNode(j.name);
            ht(He, j.name), or(He, 96);
            const Ze = lt(j.initializer, ae, vt);
            Zp(Ze, 3168);
            const Xe = t.createAssignment(He, Ze);
            ht(Xe, j), or(Xe, 3072);
            const Ut = t.createBlock([t.createExpressionStatement(Xe)]);
            ht(Ut, j), or(Ut, 3905);
            const cn = t.createTypeCheck(t.cloneNode(j.name), "undefined"), Sn = t.createIfStatement(cn, Ut);
            Vu(Sn), ht(Sn, j), or(Sn, 2101056), _e = Fn(_e, Sn);
          }
        } else if (j.transformFlags & 65536) {
          he = !0;
          const He = U1(j, ae, e, 1, t.getGeneratedNameForNode(j), !1, !0);
          if (kt(He)) {
            const Ze = t.createVariableDeclarationList(He), Xe = t.createVariableStatement(void 0, Ze);
            or(Xe, 2097152), _e = Fn(_e, Xe);
          }
        }
      return _e;
    }
    function an() {
      A & 1 || (A |= 1, e.enableSubstitution(210), e.enableSubstitution(208), e.enableSubstitution(209), e.enableEmitNotification(260), e.enableEmitNotification(171), e.enableEmitNotification(174), e.enableEmitNotification(175), e.enableEmitNotification(173), e.enableEmitNotification(240));
    }
    function Pn(_e, ie, he) {
      if (A & 1 && Ce(ie)) {
        const j = c.getNodeCheckFlags(ie) & 384;
        if (j !== O) {
          const He = O;
          O = j, y(_e, ie, he), O = He;
          return;
        }
      } else if (A && X[ps(ie)]) {
        const j = O;
        O = 0, y(_e, ie, he), O = j;
        return;
      }
      y(_e, ie, he);
    }
    function Ar(_e, ie) {
      return ie = h(_e, ie), _e === 1 && O ? Hr(ie) : ie;
    }
    function Hr(_e) {
      switch (_e.kind) {
        case 208:
          return we(_e);
        case 209:
          return yt(_e);
        case 210:
          return Nt(_e);
      }
      return _e;
    }
    function we(_e) {
      return _e.expression.kind === 106 ? ht(t.createPropertyAccessExpression(t.createUniqueName("_super", 48), _e.name), _e) : _e;
    }
    function yt(_e) {
      return _e.expression.kind === 106 ? pt(_e.argumentExpression, _e) : _e;
    }
    function Nt(_e) {
      const ie = _e.expression;
      if (ud(ie)) {
        const he = Fr(ie) ? we(ie) : yt(ie);
        return t.createCallExpression(t.createPropertyAccessExpression(he, "call"), void 0, [
          t.createThis(),
          ..._e.arguments
        ]);
      }
      return _e;
    }
    function Ce(_e) {
      const ie = _e.kind;
      return ie === 260 || ie === 173 || ie === 171 || ie === 174 || ie === 175;
    }
    function pt(_e, ie) {
      return O & 256 ? ht(t.createPropertyAccessExpression(t.createCallExpression(t.createIdentifier("_superIndex"), void 0, [_e]), "value"), ie) : ht(t.createCallExpression(t.createIdentifier("_superIndex"), void 0, [_e]), ie);
    }
  }
  var l3e = C({
    "src/compiler/transformers/es2018.ts"() {
      Oa();
    }
  });
  function yhe(e) {
    const t = e.factory;
    return X_(e, r);
    function r(s) {
      return s.isDeclarationFile ? s : Bn(s, i, e);
    }
    function i(s) {
      if (!(s.transformFlags & 64))
        return s;
      switch (s.kind) {
        case 295:
          return o(s);
        default:
          return Bn(s, i, e);
      }
    }
    function o(s) {
      return s.variableDeclaration ? Bn(s, i, e) : t.updateCatchClause(s, t.createVariableDeclaration(t.createTempVariable(void 0)), lt(s.block, i, co));
    }
  }
  var c3e = C({
    "src/compiler/transformers/es2019.ts"() {
      Oa();
    }
  });
  function vhe(e) {
    const {
      factory: t,
      hoistVariableDeclaration: r
    } = e;
    return X_(e, i);
    function i(I) {
      return I.isDeclarationFile ? I : Bn(I, o, e);
    }
    function o(I) {
      if (!(I.transformFlags & 32))
        return I;
      switch (I.kind) {
        case 210: {
          const O = d(I, !1);
          return D.assertNotNode(O, kx), O;
        }
        case 208:
        case 209:
          if (yu(I)) {
            const O = h(I, !1, !1);
            return D.assertNotNode(O, kx), O;
          }
          return Bn(I, o, e);
        case 223:
          return I.operatorToken.kind === 60 ? A(I) : Bn(I, o, e);
        case 217:
          return L(I);
        default:
          return Bn(I, o, e);
      }
    }
    function s(I) {
      D.assertNotNode(I, OM);
      const O = [I];
      for (; !I.questionDotToken && !AT(I); )
        I = oo(M_(I.expression), yu), D.assertNotNode(I, OM), O.unshift(I);
      return { expression: I.expression, chain: O };
    }
    function c(I, O, k) {
      const G = y(I.expression, O, k);
      return kx(G) ? t.createSyntheticReferenceExpression(t.updateParenthesizedExpression(I, G.expression), G.thisArg) : t.updateParenthesizedExpression(I, G);
    }
    function f(I, O, k) {
      if (yu(I))
        return h(I, O, k);
      let G = lt(I.expression, o, vt);
      D.assertNotNode(G, kx);
      let V;
      return O && (G1(G) ? V = G : (V = t.createTempVariable(r), G = t.createAssignment(V, G))), G = I.kind === 208 ? t.updatePropertyAccessExpression(I, G, lt(I.name, o, je)) : t.updateElementAccessExpression(I, G, lt(I.argumentExpression, o, vt)), V ? t.createSyntheticReferenceExpression(G, V) : G;
    }
    function d(I, O) {
      if (yu(I))
        return h(I, O, !1);
      if (Vd(I.expression) && yu(js(I.expression))) {
        const k = c(I.expression, !0, !1), G = Jn(I.arguments, o, vt);
        return kx(k) ? ht(t.createFunctionCallCall(k.expression, k.thisArg, G), I) : t.updateCallExpression(I, k, void 0, G);
      }
      return Bn(I, o, e);
    }
    function y(I, O, k) {
      switch (I.kind) {
        case 214:
          return c(I, O, k);
        case 208:
        case 209:
          return f(I, O, k);
        case 210:
          return d(I, O);
        default:
          return lt(I, o, vt);
      }
    }
    function h(I, O, k) {
      const { expression: G, chain: V } = s(I), H = y(M_(G), tT(V[0]), !1);
      let te = kx(H) ? H.thisArg : void 0, X = kx(H) ? H.expression : H, Y = t.restoreOuterExpressions(G, X, 8);
      G1(X) || (X = t.createTempVariable(r), Y = t.createAssignment(X, Y));
      let P = X, de;
      for (let ye = 0; ye < V.length; ye++) {
        const ae = V[ye];
        switch (ae.kind) {
          case 208:
          case 209:
            ye === V.length - 1 && O && (G1(P) ? de = P : (de = t.createTempVariable(r), P = t.createAssignment(de, P))), P = ae.kind === 208 ? t.createPropertyAccessExpression(P, lt(ae.name, o, je)) : t.createElementAccessExpression(P, lt(ae.argumentExpression, o, vt));
            break;
          case 210:
            ye === 0 && te ? (Sl(te) || (te = t.cloneNode(te), Zp(te, 3072)), P = t.createFunctionCallCall(P, te.kind === 106 ? t.createThis() : te, Jn(ae.arguments, o, vt))) : P = t.createCallExpression(P, void 0, Jn(ae.arguments, o, vt));
            break;
        }
        Wr(P, ae);
      }
      const re = k ? t.createConditionalExpression(E(Y, X, !0), void 0, t.createTrue(), void 0, t.createDeleteExpression(P)) : t.createConditionalExpression(E(Y, X, !0), void 0, t.createVoidZero(), void 0, P);
      return ht(re, I), de ? t.createSyntheticReferenceExpression(re, de) : re;
    }
    function E(I, O, k) {
      return t.createBinaryExpression(t.createBinaryExpression(I, t.createToken(k ? 36 : 37), t.createNull()), t.createToken(k ? 56 : 55), t.createBinaryExpression(O, t.createToken(k ? 36 : 37), t.createVoidZero()));
    }
    function A(I) {
      let O = lt(I.left, o, vt), k = O;
      return G1(O) || (k = t.createTempVariable(r), O = t.createAssignment(k, O)), ht(t.createConditionalExpression(E(O, k), void 0, k, void 0, lt(I.right, o, vt)), I);
    }
    function L(I) {
      return yu(js(I.expression)) ? Wr(y(I.expression, !1, !0), I) : t.updateDeleteExpression(I, lt(I.expression, o, vt));
    }
  }
  var u3e = C({
    "src/compiler/transformers/es2020.ts"() {
      Oa();
    }
  });
  function bhe(e) {
    const {
      hoistVariableDeclaration: t,
      factory: r
    } = e;
    return X_(e, i);
    function i(c) {
      return c.isDeclarationFile ? c : Bn(c, o, e);
    }
    function o(c) {
      return c.transformFlags & 16 ? qz(c) ? s(c) : Bn(c, o, e) : c;
    }
    function s(c) {
      const f = c.operatorToken, d = ew(f.kind);
      let y = js(lt(c.left, o, Td)), h = y;
      const E = js(lt(c.right, o, vt));
      if (ll(y)) {
        const A = G1(y.expression), L = A ? y.expression : r.createTempVariable(t), I = A ? y.expression : r.createAssignment(L, y.expression);
        if (Fr(y))
          h = r.createPropertyAccessExpression(L, y.name), y = r.createPropertyAccessExpression(I, y.name);
        else {
          const O = G1(y.argumentExpression), k = O ? y.argumentExpression : r.createTempVariable(t);
          h = r.createElementAccessExpression(L, k), y = r.createElementAccessExpression(I, O ? y.argumentExpression : r.createAssignment(k, y.argumentExpression));
        }
      }
      return r.createBinaryExpression(y, d, r.createParenthesizedExpression(r.createAssignment(h, E)));
    }
  }
  var d3e = C({
    "src/compiler/transformers/es2021.ts"() {
      Oa();
    }
  });
  function Ehe(e) {
    return X_(e, t);
    function t(i) {
      return i.isDeclarationFile ? i : Bn(i, r, e);
    }
    function r(i) {
      if (!(i.transformFlags & 4))
        return i;
      switch (i.kind) {
        default:
          return Bn(i, r, e);
      }
    }
  }
  var f3e = C({
    "src/compiler/transformers/esnext.ts"() {
      Oa();
    }
  });
  function The(e) {
    const {
      factory: t,
      getEmitHelperFactory: r
    } = e, i = e.getCompilerOptions();
    let o, s;
    return X_(e, E);
    function c() {
      if (s.filenameDeclaration)
        return s.filenameDeclaration.name;
      const Fe = t.createVariableDeclaration(t.createUniqueName("_jsxFileName", 48), void 0, void 0, t.createStringLiteral(o.fileName));
      return s.filenameDeclaration = Fe, s.filenameDeclaration.name;
    }
    function f(Fe) {
      return i.jsx === 5 ? "jsxDEV" : Fe ? "jsxs" : "jsx";
    }
    function d(Fe) {
      const st = f(Fe);
      return h(st);
    }
    function y() {
      return h("Fragment");
    }
    function h(Fe) {
      var st, Ct;
      const Et = Fe === "createElement" ? s.importSpecifier : W3(s.importSpecifier, i), Vt = (Ct = (st = s.utilizedImplicitRuntimeImports) == null ? void 0 : st.get(Et)) == null ? void 0 : Ct.get(Fe);
      if (Vt)
        return Vt.name;
      s.utilizedImplicitRuntimeImports || (s.utilizedImplicitRuntimeImports = /* @__PURE__ */ new Map());
      let tt = s.utilizedImplicitRuntimeImports.get(Et);
      tt || (tt = /* @__PURE__ */ new Map(), s.utilizedImplicitRuntimeImports.set(Et, tt));
      const at = t.createUniqueName(`_${Fe}`, 112), sn = t.createImportSpecifier(!1, t.createIdentifier(Fe), at);
      return Dfe(at, sn), tt.set(Fe, sn), at;
    }
    function E(Fe) {
      if (Fe.isDeclarationFile)
        return Fe;
      o = Fe, s = {}, s.importSpecifier = H3(i, Fe);
      let st = Bn(Fe, A, e);
      Ey(st, e.readEmitHelpers());
      let Ct = st.statements;
      if (s.filenameDeclaration && (Ct = p1(Ct.slice(), t.createVariableStatement(void 0, t.createVariableDeclarationList([s.filenameDeclaration], 2)))), s.utilizedImplicitRuntimeImports) {
        for (const [Et, Vt] of Ro(s.utilizedImplicitRuntimeImports.entries()))
          if (Zl(Fe)) {
            const tt = t.createImportDeclaration(void 0, t.createImportClause(!1, void 0, t.createNamedImports(Ro(Vt.values()))), t.createStringLiteral(Et), void 0);
            Mv(tt, !1), Ct = p1(Ct.slice(), tt);
          } else if (sf(Fe)) {
            const tt = t.createVariableStatement(void 0, t.createVariableDeclarationList([
              t.createVariableDeclaration(t.createObjectBindingPattern(Ro(Vt.values(), (at) => t.createBindingElement(void 0, at.propertyName, at.name))), void 0, void 0, t.createCallExpression(t.createIdentifier("require"), void 0, [t.createStringLiteral(Et)]))
            ], 2));
            Mv(tt, !1), Ct = p1(Ct.slice(), tt);
          }
      }
      return Ct !== st.statements && (st = t.updateSourceFile(st, Ct)), s = void 0, st;
    }
    function A(Fe) {
      return Fe.transformFlags & 2 ? L(Fe) : Fe;
    }
    function L(Fe) {
      switch (Fe.kind) {
        case 281:
          return G(Fe, !1);
        case 282:
          return V(Fe, !1);
        case 285:
          return H(Fe, !1);
        case 291:
          return We(Fe);
        default:
          return Bn(Fe, A, e);
      }
    }
    function I(Fe) {
      switch (Fe.kind) {
        case 11:
          return Qe(Fe);
        case 291:
          return We(Fe);
        case 281:
          return G(Fe, !0);
        case 282:
          return V(Fe, !0);
        case 285:
          return H(Fe, !0);
        default:
          return D.failBadSyntaxKind(Fe);
      }
    }
    function O(Fe) {
      let st = !1;
      for (const Ct of Fe.attributes.properties)
        if (IT(Ct))
          st = !0;
        else if (st && nm(Ct) && Ct.name.escapedText === "key")
          return !0;
      return !1;
    }
    function k(Fe) {
      return s.importSpecifier === void 0 || O(Fe);
    }
    function G(Fe, st) {
      return (k(Fe.openingElement) ? de : Y)(Fe.openingElement, Fe.children, st, Fe);
    }
    function V(Fe, st) {
      return (k(Fe) ? de : Y)(Fe, void 0, st, Fe);
    }
    function H(Fe, st) {
      return (s.importSpecifier === void 0 ? ye : re)(Fe.openingFragment, Fe.children, st, Fe);
    }
    function te(Fe) {
      const st = X(Fe);
      return st && t.createObjectLiteralExpression([st]);
    }
    function X(Fe) {
      const st = UN(Fe);
      if (Le(st) === 1 && !st[0].dotDotDotToken) {
        const Et = I(st[0]);
        return Et && t.createPropertyAssignment("children", Et);
      }
      const Ct = ia(Fe, I);
      return Le(Ct) ? t.createPropertyAssignment("children", t.createArrayLiteralExpression(Ct)) : void 0;
    }
    function Y(Fe, st, Ct, Et) {
      const Vt = Me(Fe), tt = st && st.length ? X(st) : void 0, at = nn(Fe.attributes.properties, (On) => !!On.name && je(On.name) && On.name.escapedText === "key"), sn = at ? lr(Fe.attributes.properties, (On) => On !== at) : Fe.attributes.properties, Qt = Le(sn) ? W(sn, tt) : t.createObjectLiteralExpression(tt ? [tt] : rt);
      return P(Vt, Qt, at, st || rt, Ct, Et);
    }
    function P(Fe, st, Ct, Et, Vt, tt) {
      var at;
      const sn = UN(Et), Qt = Le(sn) > 1 || !!((at = sn[0]) != null && at.dotDotDotToken), On = [Fe, st];
      if (Ct && On.push(ee(Ct.initializer)), i.jsx === 5) {
        const In = Tl(o);
        if (In && qi(In)) {
          Ct === void 0 && On.push(t.createVoidZero()), On.push(Qt ? t.createTrue() : t.createFalse());
          const Zt = ol(In, tt.pos);
          On.push(t.createObjectLiteralExpression([
            t.createPropertyAssignment("fileName", c()),
            t.createPropertyAssignment("lineNumber", t.createNumericLiteral(Zt.line + 1)),
            t.createPropertyAssignment("columnNumber", t.createNumericLiteral(Zt.character + 1))
          ])), On.push(t.createThis());
        }
      }
      const jn = ht(t.createCallExpression(d(Qt), void 0, On), tt);
      return Vt && Vu(jn), jn;
    }
    function de(Fe, st, Ct, Et) {
      const Vt = Me(Fe), tt = Fe.attributes.properties, at = Le(tt) ? W(tt) : t.createNull(), sn = s.importSpecifier === void 0 ? PJ(t, e.getEmitResolver().getJsxFactoryEntity(o), i.reactNamespace, Fe) : h("createElement"), Qt = c_e(t, sn, Vt, at, ia(st, I), Et);
      return Ct && Vu(Qt), Qt;
    }
    function re(Fe, st, Ct, Et) {
      let Vt;
      if (st && st.length) {
        const tt = te(st);
        tt && (Vt = tt);
      }
      return P(y(), Vt || t.createObjectLiteralExpression([]), void 0, st, Ct, Et);
    }
    function ye(Fe, st, Ct, Et) {
      const Vt = u_e(t, e.getEmitResolver().getJsxFactoryEntity(o), e.getEmitResolver().getJsxFragmentFactoryEntity(o), i.reactNamespace, ia(st, I), Fe, Et);
      return Ct && Vu(Vt), Vt;
    }
    function ae(Fe) {
      return t.createSpreadAssignment(D.checkDefined(lt(Fe.expression, A, vt)));
    }
    function W(Fe, st) {
      const Ct = ts(i);
      return Ct && Ct >= 5 ? t.createObjectLiteralExpression(ce(Fe, st)) : me(Fe, st);
    }
    function ce(Fe, st) {
      const Ct = No(B4(Fe, IT, (Et, Vt) => jt(Et, (tt) => Vt ? ae(tt) : Te(tt))));
      return st && Ct.push(st), Ct;
    }
    function me(Fe, st) {
      const Ct = No(B4(Fe, IT, (Et, Vt) => Vt ? jt(Et, ve) : t.createObjectLiteralExpression(jt(Et, Te))));
      return IT(Fe[0]) && Ct.unshift(t.createObjectLiteralExpression()), st && Ct.push(t.createObjectLiteralExpression([st])), Am(Ct) || r().createAssignHelper(Ct);
    }
    function ve(Fe) {
      return D.checkDefined(lt(Fe.expression, A, vt));
    }
    function Te(Fe) {
      const st = Ye(Fe), Ct = ee(Fe.initializer);
      return t.createPropertyAssignment(st, Ct);
    }
    function ee(Fe) {
      if (Fe === void 0)
        return t.createTrue();
      if (Fe.kind === 10) {
        const st = Fe.singleQuote !== void 0 ? Fe.singleQuote : !g3(Fe, o), Ct = t.createStringLiteral(Oe(Fe.text) || Fe.text, st);
        return ht(Ct, Fe);
      }
      return Fe.kind === 291 ? Fe.expression === void 0 ? t.createTrue() : D.checkDefined(lt(Fe.expression, A, vt)) : Ay(Fe) ? G(Fe, !1) : wx(Fe) ? V(Fe, !1) : Rx(Fe) ? H(Fe, !1) : D.failBadSyntaxKind(Fe);
    }
    function Qe(Fe) {
      const st = Ve(Fe.text);
      return st === void 0 ? void 0 : t.createStringLiteral(st);
    }
    function Ve(Fe) {
      let st, Ct = 0, Et = -1;
      for (let Vt = 0; Vt < Fe.length; Vt++) {
        const tt = Fe.charCodeAt(Vt);
        hu(tt) ? (Ct !== -1 && Et !== -1 && (st = Be(st, Fe.substr(Ct, Et - Ct + 1))), Ct = -1) : Dm(tt) || (Et = Vt, Ct === -1 && (Ct = Vt));
      }
      return Ct !== -1 ? Be(st, Fe.substr(Ct)) : st;
    }
    function Be(Fe, st) {
      const Ct = qe(st);
      return Fe === void 0 ? Ct : Fe + " " + Ct;
    }
    function qe(Fe) {
      return Fe.replace(/&((#((\d+)|x([\da-fA-F]+)))|(\w+));/g, (st, Ct, Et, Vt, tt, at, sn) => {
        if (tt)
          return vI(parseInt(tt, 10));
        if (at)
          return vI(parseInt(at, 16));
        {
          const Qt = She.get(sn);
          return Qt ? vI(Qt) : st;
        }
      });
    }
    function Oe(Fe) {
      const st = qe(Fe);
      return st === Fe ? void 0 : st;
    }
    function Me(Fe) {
      if (Fe.kind === 281)
        return Me(Fe.openingElement);
      {
        const st = Fe.tagName;
        return je(st) && KI(st.escapedText) ? t.createStringLiteral(Mr(st)) : VO(t, st);
      }
    }
    function Ye(Fe) {
      const st = Fe.name, Ct = Mr(st);
      return /^[A-Za-z_]\w*$/.test(Ct) ? st : t.createStringLiteral(Ct);
    }
    function We(Fe) {
      const st = lt(Fe.expression, A, vt);
      return Fe.dotDotDotToken ? t.createSpreadElement(st) : st;
    }
  }
  var She, _3e = C({
    "src/compiler/transformers/jsx.ts"() {
      Oa(), She = new Map(Object.entries({
        quot: 34,
        amp: 38,
        apos: 39,
        lt: 60,
        gt: 62,
        nbsp: 160,
        iexcl: 161,
        cent: 162,
        pound: 163,
        curren: 164,
        yen: 165,
        brvbar: 166,
        sect: 167,
        uml: 168,
        copy: 169,
        ordf: 170,
        laquo: 171,
        not: 172,
        shy: 173,
        reg: 174,
        macr: 175,
        deg: 176,
        plusmn: 177,
        sup2: 178,
        sup3: 179,
        acute: 180,
        micro: 181,
        para: 182,
        middot: 183,
        cedil: 184,
        sup1: 185,
        ordm: 186,
        raquo: 187,
        frac14: 188,
        frac12: 189,
        frac34: 190,
        iquest: 191,
        Agrave: 192,
        Aacute: 193,
        Acirc: 194,
        Atilde: 195,
        Auml: 196,
        Aring: 197,
        AElig: 198,
        Ccedil: 199,
        Egrave: 200,
        Eacute: 201,
        Ecirc: 202,
        Euml: 203,
        Igrave: 204,
        Iacute: 205,
        Icirc: 206,
        Iuml: 207,
        ETH: 208,
        Ntilde: 209,
        Ograve: 210,
        Oacute: 211,
        Ocirc: 212,
        Otilde: 213,
        Ouml: 214,
        times: 215,
        Oslash: 216,
        Ugrave: 217,
        Uacute: 218,
        Ucirc: 219,
        Uuml: 220,
        Yacute: 221,
        THORN: 222,
        szlig: 223,
        agrave: 224,
        aacute: 225,
        acirc: 226,
        atilde: 227,
        auml: 228,
        aring: 229,
        aelig: 230,
        ccedil: 231,
        egrave: 232,
        eacute: 233,
        ecirc: 234,
        euml: 235,
        igrave: 236,
        iacute: 237,
        icirc: 238,
        iuml: 239,
        eth: 240,
        ntilde: 241,
        ograve: 242,
        oacute: 243,
        ocirc: 244,
        otilde: 245,
        ouml: 246,
        divide: 247,
        oslash: 248,
        ugrave: 249,
        uacute: 250,
        ucirc: 251,
        uuml: 252,
        yacute: 253,
        thorn: 254,
        yuml: 255,
        OElig: 338,
        oelig: 339,
        Scaron: 352,
        scaron: 353,
        Yuml: 376,
        fnof: 402,
        circ: 710,
        tilde: 732,
        Alpha: 913,
        Beta: 914,
        Gamma: 915,
        Delta: 916,
        Epsilon: 917,
        Zeta: 918,
        Eta: 919,
        Theta: 920,
        Iota: 921,
        Kappa: 922,
        Lambda: 923,
        Mu: 924,
        Nu: 925,
        Xi: 926,
        Omicron: 927,
        Pi: 928,
        Rho: 929,
        Sigma: 931,
        Tau: 932,
        Upsilon: 933,
        Phi: 934,
        Chi: 935,
        Psi: 936,
        Omega: 937,
        alpha: 945,
        beta: 946,
        gamma: 947,
        delta: 948,
        epsilon: 949,
        zeta: 950,
        eta: 951,
        theta: 952,
        iota: 953,
        kappa: 954,
        lambda: 955,
        mu: 956,
        nu: 957,
        xi: 958,
        omicron: 959,
        pi: 960,
        rho: 961,
        sigmaf: 962,
        sigma: 963,
        tau: 964,
        upsilon: 965,
        phi: 966,
        chi: 967,
        psi: 968,
        omega: 969,
        thetasym: 977,
        upsih: 978,
        piv: 982,
        ensp: 8194,
        emsp: 8195,
        thinsp: 8201,
        zwnj: 8204,
        zwj: 8205,
        lrm: 8206,
        rlm: 8207,
        ndash: 8211,
        mdash: 8212,
        lsquo: 8216,
        rsquo: 8217,
        sbquo: 8218,
        ldquo: 8220,
        rdquo: 8221,
        bdquo: 8222,
        dagger: 8224,
        Dagger: 8225,
        bull: 8226,
        hellip: 8230,
        permil: 8240,
        prime: 8242,
        Prime: 8243,
        lsaquo: 8249,
        rsaquo: 8250,
        oline: 8254,
        frasl: 8260,
        euro: 8364,
        image: 8465,
        weierp: 8472,
        real: 8476,
        trade: 8482,
        alefsym: 8501,
        larr: 8592,
        uarr: 8593,
        rarr: 8594,
        darr: 8595,
        harr: 8596,
        crarr: 8629,
        lArr: 8656,
        uArr: 8657,
        rArr: 8658,
        dArr: 8659,
        hArr: 8660,
        forall: 8704,
        part: 8706,
        exist: 8707,
        empty: 8709,
        nabla: 8711,
        isin: 8712,
        notin: 8713,
        ni: 8715,
        prod: 8719,
        sum: 8721,
        minus: 8722,
        lowast: 8727,
        radic: 8730,
        prop: 8733,
        infin: 8734,
        ang: 8736,
        and: 8743,
        or: 8744,
        cap: 8745,
        cup: 8746,
        int: 8747,
        there4: 8756,
        sim: 8764,
        cong: 8773,
        asymp: 8776,
        ne: 8800,
        equiv: 8801,
        le: 8804,
        ge: 8805,
        sub: 8834,
        sup: 8835,
        nsub: 8836,
        sube: 8838,
        supe: 8839,
        oplus: 8853,
        otimes: 8855,
        perp: 8869,
        sdot: 8901,
        lceil: 8968,
        rceil: 8969,
        lfloor: 8970,
        rfloor: 8971,
        lang: 9001,
        rang: 9002,
        loz: 9674,
        spades: 9824,
        clubs: 9827,
        hearts: 9829,
        diams: 9830
      }));
    }
  });
  function xhe(e) {
    const {
      factory: t,
      hoistVariableDeclaration: r
    } = e;
    return X_(e, i);
    function i(d) {
      return d.isDeclarationFile ? d : Bn(d, o, e);
    }
    function o(d) {
      if (!(d.transformFlags & 512))
        return d;
      switch (d.kind) {
        case 223:
          return s(d);
        default:
          return Bn(d, o, e);
      }
    }
    function s(d) {
      switch (d.operatorToken.kind) {
        case 67:
          return c(d);
        case 42:
          return f(d);
        default:
          return Bn(d, o, e);
      }
    }
    function c(d) {
      let y, h;
      const E = lt(d.left, o, vt), A = lt(d.right, o, vt);
      if (cl(E)) {
        const L = t.createTempVariable(r), I = t.createTempVariable(r);
        y = ht(t.createElementAccessExpression(ht(t.createAssignment(L, E.expression), E.expression), ht(t.createAssignment(I, E.argumentExpression), E.argumentExpression)), E), h = ht(t.createElementAccessExpression(L, I), E);
      } else if (Fr(E)) {
        const L = t.createTempVariable(r);
        y = ht(t.createPropertyAccessExpression(ht(t.createAssignment(L, E.expression), E.expression), E.name), E), h = ht(t.createPropertyAccessExpression(L, E.name), E);
      } else
        y = E, h = E;
      return ht(t.createAssignment(y, ht(t.createGlobalMethodCall("Math", "pow", [h, A]), d)), d);
    }
    function f(d) {
      const y = lt(d.left, o, vt), h = lt(d.right, o, vt);
      return ht(t.createGlobalMethodCall("Math", "pow", [y, h]), d);
    }
  }
  var p3e = C({
    "src/compiler/transformers/es2016.ts"() {
      Oa();
    }
  });
  function Ahe(e, t) {
    return { kind: e, expression: t };
  }
  function Che(e) {
    const {
      factory: t,
      getEmitHelperFactory: r,
      startLexicalEnvironment: i,
      resumeLexicalEnvironment: o,
      endLexicalEnvironment: s,
      hoistVariableDeclaration: c
    } = e, f = e.getCompilerOptions(), d = e.getEmitResolver(), y = e.onSubstituteNode, h = e.onEmitNode;
    e.onEmitNode = _d, e.onSubstituteNode = fl;
    let E, A, L, I;
    function O(oe) {
      I = Fn(I, t.createVariableDeclaration(oe));
    }
    let k, G;
    return X_(e, V);
    function V(oe) {
      if (oe.isDeclarationFile)
        return oe;
      E = oe, A = oe.text;
      const ut = ce(oe);
      return Ey(ut, e.readEmitHelpers()), E = void 0, A = void 0, I = void 0, L = 0, ut;
    }
    function H(oe, ut) {
      const Mt = L;
      return L = (L & ~oe | ut) & 32767, Mt;
    }
    function te(oe, ut, Mt) {
      L = (L & ~ut | Mt) & -32768 | oe;
    }
    function X(oe) {
      return (L & 8192) !== 0 && oe.kind === 250 && !oe.expression;
    }
    function Y(oe) {
      return oe.transformFlags & 4194304 && (bp(oe) || CT(oe) || $fe(oe) || OO(oe) || MO(oe) || Mk(oe) || BO(oe) || PO(oe) || xC(oe) || R1(oe) || Lv(oe, !1) || co(oe));
    }
    function P(oe) {
      return (oe.transformFlags & 1024) !== 0 || k !== void 0 || L & 8192 && Y(oe) || Lv(oe, !1) && oi(oe) || (F_(oe) & 1) !== 0;
    }
    function de(oe) {
      return P(oe) ? W(oe, !1) : oe;
    }
    function re(oe) {
      return P(oe) ? W(oe, !0) : oe;
    }
    function ye(oe) {
      if (P(oe)) {
        const ut = Tl(oe);
        if (to(ut) && gc(ut)) {
          const Mt = H(32670, 16449), Pt = W(oe, !1);
          return te(Mt, 98304, 0), Pt;
        }
        return W(oe, !1);
      }
      return oe;
    }
    function ae(oe) {
      return oe.kind === 106 ? dl(!0) : de(oe);
    }
    function W(oe, ut) {
      switch (oe.kind) {
        case 124:
          return;
        case 260:
          return Oe(oe);
        case 228:
          return Me(oe);
        case 166:
          return On(oe);
        case 259:
          return an(oe);
        case 216:
          return hi(oe);
        case 215:
          return Rn(oe);
        case 257:
          return Ze(oe);
        case 79:
          return Be(oe);
        case 258:
          return ie(oe);
        case 252:
          return me(oe);
        case 266:
          return ve(oe);
        case 238:
          return Hr(oe, !1);
        case 249:
        case 248:
          return qe(oe);
        case 253:
          return cn(oe);
        case 243:
        case 244:
          return ue(oe, void 0);
        case 245:
          return mt(oe, void 0);
        case 246:
          return it(oe, void 0);
        case 247:
          return K(oe, void 0);
        case 241:
          return we(oe);
        case 207:
          return Rt(oe);
        case 295:
          return oc(oe);
        case 300:
          return el(oe);
        case 164:
          return Ks(oe);
        case 206:
          return jl(oe);
        case 210:
          return xu(oe);
        case 211:
          return Ht(oe);
        case 214:
          return yt(oe, ut);
        case 223:
          return Nt(oe, ut);
        case 357:
          return Ce(oe, ut);
        case 14:
        case 15:
        case 16:
        case 17:
          return Ta(oe);
        case 10:
          return ls(oe);
        case 8:
          return ho(oe);
        case 212:
          return Ho(oe);
        case 225:
          return Ya(oe);
        case 226:
          return rn(oe);
        case 227:
          return Pr(oe);
        case 106:
          return dl(!1);
        case 108:
          return Qe(oe);
        case 233:
          return dc(oe);
        case 171:
          return Ds(oe);
        case 174:
        case 175:
          return hl(oe);
        case 240:
          return _e(oe);
        case 250:
          return ee(oe);
        case 219:
          return Ve(oe);
        default:
          return Bn(oe, de, e);
      }
    }
    function ce(oe) {
      const ut = H(8064, 64), Mt = [], Pt = [];
      i();
      const un = t.copyPrologue(oe.statements, Mt, !1, de);
      return Ti(Pt, Jn(oe.statements, de, wa, un)), I && Pt.push(t.createVariableStatement(void 0, t.createVariableDeclarationList(I))), t.mergeLexicalEnvironment(Mt, s()), Qi(Mt, oe), te(ut, 0, 0), t.updateSourceFile(oe, ht(t.createNodeArray(va(Mt, Pt)), oe.statements));
    }
    function me(oe) {
      if (k !== void 0) {
        const ut = k.allowedNonLabeledJumps;
        k.allowedNonLabeledJumps |= 2;
        const Mt = Bn(oe, de, e);
        return k.allowedNonLabeledJumps = ut, Mt;
      }
      return Bn(oe, de, e);
    }
    function ve(oe) {
      const ut = H(7104, 0), Mt = Bn(oe, de, e);
      return te(ut, 0, 0), Mt;
    }
    function Te(oe) {
      return Wr(t.createReturnStatement(t.createUniqueName("_this", 48)), oe);
    }
    function ee(oe) {
      return k ? (k.nonLocalJumps |= 8, X(oe) && (oe = Te(oe)), t.createReturnStatement(t.createObjectLiteralExpression([
        t.createPropertyAssignment(t.createIdentifier("value"), oe.expression ? D.checkDefined(lt(oe.expression, de, vt)) : t.createVoidZero())
      ]))) : X(oe) ? Te(oe) : Bn(oe, de, e);
    }
    function Qe(oe) {
      return L & 2 && !(L & 16384) && (L |= 65536), k ? L & 2 ? (k.containsLexicalThis = !0, oe) : k.thisName || (k.thisName = t.createUniqueName("this")) : oe;
    }
    function Ve(oe) {
      return Bn(oe, re, e);
    }
    function Be(oe) {
      return k && d.isArgumentsLocalBinding(oe) ? k.argumentsName || (k.argumentsName = t.createUniqueName("arguments")) : oe.flags & 128 ? Wr(ht(t.createIdentifier(ta(oe.escapedText)), oe), oe) : oe;
    }
    function qe(oe) {
      if (k) {
        const ut = oe.kind === 249 ? 2 : 4;
        if (!(oe.label && k.labels && k.labels.get(Mr(oe.label)) || !oe.label && k.allowedNonLabeledJumps & ut)) {
          let Pt;
          const un = oe.label;
          un ? oe.kind === 249 ? (Pt = `break-${un.escapedText}`, Ul(k, !0, Mr(un), Pt)) : (Pt = `continue-${un.escapedText}`, Ul(k, !1, Mr(un), Pt)) : oe.kind === 249 ? (k.nonLocalJumps |= 2, Pt = "break") : (k.nonLocalJumps |= 4, Pt = "continue");
          let Vn = t.createStringLiteral(Pt);
          if (k.loopOutParameters.length) {
            const Rr = k.loopOutParameters;
            let ni;
            for (let Mi = 0; Mi < Rr.length; Mi++) {
              const ja = ec(Rr[Mi], 1);
              Mi === 0 ? ni = ja : ni = t.createBinaryExpression(ni, 27, ja);
            }
            Vn = t.createBinaryExpression(ni, 27, Vn);
          }
          return t.createReturnStatement(Vn);
        }
      }
      return Bn(oe, de, e);
    }
    function Oe(oe) {
      const ut = t.createVariableDeclaration(t.getLocalName(oe, !0), void 0, void 0, Ye(oe));
      Wr(ut, oe);
      const Mt = [], Pt = t.createVariableStatement(void 0, t.createVariableDeclarationList([ut]));
      if (Wr(Pt, oe), ht(Pt, oe), Vu(Pt), Mt.push(Pt), Yr(oe, 1)) {
        const Vn = Yr(oe, 1024) ? t.createExportDefault(t.getLocalName(oe)) : t.createExternalModuleExport(t.getLocalName(oe));
        Wr(Vn, Pt), Mt.push(Vn);
      }
      const un = vo(oe);
      return un & 8388608 || (Mt.push(t.createEndOfDeclarationMarker(oe)), or(Pt, un | 8388608)), Cm(Mt);
    }
    function Me(oe) {
      return Ye(oe);
    }
    function Ye(oe) {
      oe.name && Es();
      const ut = E1(oe), Mt = t.createFunctionExpression(void 0, void 0, void 0, void 0, ut ? [t.createParameterDeclaration(void 0, void 0, t.createUniqueName("_super", 48))] : [], void 0, We(oe, ut));
      or(Mt, vo(oe) & 131072 | 1048576);
      const Pt = t.createPartiallyEmittedExpression(Mt);
      oC(Pt, oe.end), or(Pt, 3072);
      const un = t.createPartiallyEmittedExpression(Pt);
      oC(un, Ko(A, oe.pos)), or(un, 3072);
      const Vn = t.createParenthesizedExpression(t.createCallExpression(un, void 0, ut ? [D.checkDefined(lt(ut.expression, de, vt))] : []));
      return TO(Vn, 3, "* @class "), Vn;
    }
    function We(oe, ut) {
      const Mt = [], Pt = t.getInternalName(oe), un = x3(Pt) ? t.getGeneratedNameForNode(Pt) : Pt;
      i(), Fe(Mt, oe, ut), st(Mt, oe, un, ut), Wt(Mt, oe);
      const Vn = $z(Ko(A, oe.members.end), 19), Rr = t.createPartiallyEmittedExpression(un);
      oC(Rr, Vn.end), or(Rr, 3072);
      const ni = t.createReturnStatement(Rr);
      mk(ni, Vn.pos), or(ni, 3840), Mt.push(ni), Pm(Mt, s());
      const Mi = t.createBlock(ht(t.createNodeArray(Mt), oe.members), !0);
      return or(Mi, 3072), Mi;
    }
    function Fe(oe, ut, Mt) {
      Mt && oe.push(ht(t.createExpressionStatement(r().createExtendsHelper(t.getInternalName(ut))), Mt));
    }
    function st(oe, ut, Mt, Pt) {
      const un = k;
      k = void 0;
      const Vn = H(32662, 73), Rr = Eh(ut), ni = Lo(Rr, Pt !== void 0), Mi = t.createFunctionDeclaration(void 0, void 0, Mt, void 0, Ct(Rr, ni), void 0, Vt(Rr, ut, Pt, ni));
      ht(Mi, Rr || ut), Pt && or(Mi, 16), oe.push(Mi), te(Vn, 98304, 0), k = un;
    }
    function Ct(oe, ut) {
      return Kl(oe && !ut ? oe.parameters : void 0, de, e) || [];
    }
    function Et(oe, ut) {
      const Mt = [];
      o(), t.mergeLexicalEnvironment(Mt, s()), ut && Mt.push(t.createReturnStatement(Qt()));
      const Pt = t.createNodeArray(Mt);
      ht(Pt, oe.members);
      const un = t.createBlock(Pt, !0);
      return ht(un, oe), or(un, 3072), un;
    }
    function Vt(oe, ut, Mt, Pt) {
      const un = !!Mt && bu(Mt.expression).kind !== 104;
      if (!oe)
        return Et(ut, un);
      const Vn = [], Rr = [];
      o();
      const ni = X4(oe.body.statements, gp), { superCall: Mi, superStatementIndex: ja } = tt(oe.body.statements, ni), Wo = ja === -1 ? ni.length : ja + 1;
      let Ts = Wo;
      Pt || (Ts = t.copyStandardPrologue(oe.body.statements, Vn, Ts, !1)), Pt || (Ts = t.copyCustomPrologue(oe.body.statements, Rr, Ts, de, void 0));
      let Xs;
      if (Pt ? Xs = Qt() : Mi && (Xs = fe(Mi)), Xs && (L |= 8192), In(Vn, oe), $i(Vn, oe, Pt), Ti(Rr, Jn(oe.body.statements, de, wa, Ts)), t.mergeLexicalEnvironment(Vn, s()), vn(Vn, oe, !1), un || Xs)
        if (Xs && Wo === oe.body.statements.length && !(oe.body.transformFlags & 16384)) {
          const _f = oo(oo(Xs, br).left, no), tc = t.createReturnStatement(Xs);
          Hc(tc, jm(_f)), or(_f, 3072), Rr.push(tc);
        } else
          ja <= ni.length ? At(Rr, oe, Xs || sn()) : (At(Vn, oe, sn()), Xs && Or(Rr, Xs)), at(oe.body) || Rr.push(t.createReturnStatement(t.createUniqueName("_this", 48)));
      else
        Qi(Vn, oe);
      const pd = t.createBlock(ht(t.createNodeArray([
        ...ni,
        ...Vn,
        ...ja <= ni.length ? rt : Jn(oe.body.statements, de, wa, ni.length, ja - ni.length),
        ...Rr
      ]), oe.body.statements), !0);
      return ht(pd, oe.body), pd;
    }
    function tt(oe, ut) {
      for (let Mt = ut.length; Mt < oe.length; Mt += 1) {
        const Pt = cX(oe[Mt]);
        if (Pt)
          return {
            superCall: Pt,
            superStatementIndex: Mt
          };
      }
      return {
        superStatementIndex: -1
      };
    }
    function at(oe) {
      if (oe.kind === 250)
        return !0;
      if (oe.kind === 242) {
        const ut = oe;
        if (ut.elseStatement)
          return at(ut.thenStatement) && at(ut.elseStatement);
      } else if (oe.kind === 238) {
        const ut = tl(oe.statements);
        if (ut && at(ut))
          return !0;
      }
      return !1;
    }
    function sn() {
      return or(t.createThis(), 8);
    }
    function Qt() {
      return t.createLogicalOr(t.createLogicalAnd(t.createStrictInequality(t.createUniqueName("_super", 48), t.createNull()), t.createFunctionApplyCall(t.createUniqueName("_super", 48), sn(), t.createIdentifier("arguments"))), sn());
    }
    function On(oe) {
      if (!oe.dotDotDotToken)
        return Xa(oe.name) ? Wr(ht(t.createParameterDeclaration(void 0, void 0, t.getGeneratedNameForNode(oe), void 0, void 0, void 0), oe), oe) : oe.initializer ? Wr(ht(t.createParameterDeclaration(void 0, void 0, oe.name, void 0, void 0, void 0), oe), oe) : oe;
    }
    function jn(oe) {
      return oe.initializer !== void 0 || Xa(oe.name);
    }
    function In(oe, ut) {
      if (!kt(ut.parameters, jn))
        return !1;
      let Mt = !1;
      for (const Pt of ut.parameters) {
        const { name: un, initializer: Vn, dotDotDotToken: Rr } = Pt;
        Rr || (Xa(un) ? Mt = Zt(oe, Pt, un, Vn) || Mt : Vn && (_r(oe, Pt, un, Vn), Mt = !0));
      }
      return Mt;
    }
    function Zt(oe, ut, Mt, Pt) {
      return Mt.elements.length > 0 ? (p1(oe, or(t.createVariableStatement(void 0, t.createVariableDeclarationList(U1(ut, de, e, 0, t.getGeneratedNameForNode(ut)))), 2097152)), !0) : Pt ? (p1(oe, or(t.createExpressionStatement(t.createAssignment(t.getGeneratedNameForNode(ut), D.checkDefined(lt(Pt, de, vt)))), 2097152)), !0) : !1;
    }
    function _r(oe, ut, Mt, Pt) {
      Pt = D.checkDefined(lt(Pt, de, vt));
      const un = t.createIfStatement(t.createTypeCheck(t.cloneNode(Mt), "undefined"), or(ht(t.createBlock([
        t.createExpressionStatement(or(ht(t.createAssignment(or(Vo(ht(t.cloneNode(Mt), Mt), Mt.parent), 96), or(Pt, 96 | vo(Pt) | 3072)), ut), 3072))
      ]), ut), 3905));
      Vu(un), ht(un, ut), or(un, 2101056), p1(oe, un);
    }
    function Ii(oe, ut) {
      return !!(oe && oe.dotDotDotToken && !ut);
    }
    function $i(oe, ut, Mt) {
      const Pt = [], un = tl(ut.parameters);
      if (!Ii(un, Mt))
        return !1;
      const Vn = un.name.kind === 79 ? Vo(ht(t.cloneNode(un.name), un.name), un.name.parent) : t.createTempVariable(void 0);
      or(Vn, 96);
      const Rr = un.name.kind === 79 ? t.cloneNode(un.name) : Vn, ni = ut.parameters.length - 1, Mi = t.createLoopVariable();
      Pt.push(or(ht(t.createVariableStatement(void 0, t.createVariableDeclarationList([
        t.createVariableDeclaration(Vn, void 0, void 0, t.createArrayLiteralExpression([]))
      ])), un), 2097152));
      const ja = t.createForStatement(ht(t.createVariableDeclarationList([
        t.createVariableDeclaration(Mi, void 0, void 0, t.createNumericLiteral(ni))
      ]), un), ht(t.createLessThan(Mi, t.createPropertyAccessExpression(t.createIdentifier("arguments"), "length")), un), ht(t.createPostfixIncrement(Mi), un), t.createBlock([
        Vu(ht(t.createExpressionStatement(t.createAssignment(t.createElementAccessExpression(Rr, ni === 0 ? Mi : t.createSubtract(Mi, t.createNumericLiteral(ni))), t.createElementAccessExpression(t.createIdentifier("arguments"), Mi))), un))
      ]));
      return or(ja, 2097152), Vu(ja), Pt.push(ja), un.name.kind !== 79 && Pt.push(or(ht(t.createVariableStatement(void 0, t.createVariableDeclarationList(U1(un, de, e, 0, Rr))), un), 2097152)), VW(oe, Pt), !0;
    }
    function Qi(oe, ut) {
      return L & 65536 && ut.kind !== 216 ? (At(oe, ut, t.createThis()), !0) : !1;
    }
    function Or(oe, ut) {
      ds();
      const Mt = t.createExpressionStatement(t.createBinaryExpression(t.createThis(), 63, ut));
      p1(oe, Mt), Hc(Mt, Tl(ut).parent);
    }
    function At(oe, ut, Mt) {
      ds();
      const Pt = t.createVariableStatement(void 0, t.createVariableDeclarationList([
        t.createVariableDeclaration(t.createUniqueName("_this", 48), void 0, void 0, Mt)
      ]));
      or(Pt, 2100224), fs(Pt, ut), p1(oe, Pt);
    }
    function vn(oe, ut, Mt) {
      if (L & 32768) {
        let Pt;
        switch (ut.kind) {
          case 216:
            return oe;
          case 171:
          case 174:
          case 175:
            Pt = t.createVoidZero();
            break;
          case 173:
            Pt = t.createPropertyAccessExpression(or(t.createThis(), 8), "constructor");
            break;
          case 259:
          case 215:
            Pt = t.createConditionalExpression(t.createLogicalAnd(or(t.createThis(), 8), t.createBinaryExpression(or(t.createThis(), 8), 102, t.getLocalName(ut))), void 0, t.createPropertyAccessExpression(or(t.createThis(), 8), "constructor"), void 0, t.createVoidZero());
            break;
          default:
            return D.failBadSyntaxKind(ut);
        }
        const un = t.createVariableStatement(void 0, t.createVariableDeclarationList([
          t.createVariableDeclaration(t.createUniqueName("_newTarget", 48), void 0, void 0, Pt)
        ]));
        or(un, 2100224), Mt && (oe = oe.slice()), p1(oe, un);
      }
      return oe;
    }
    function Wt(oe, ut) {
      for (const Mt of ut.members)
        switch (Mt.kind) {
          case 237:
            oe.push(fn(Mt));
            break;
          case 171:
            oe.push(rr(Xi(ut, Mt), Mt, ut));
            break;
          case 174:
          case 175:
            const Pt = vT(ut.members, Mt);
            Mt === Pt.firstAccessor && oe.push(cr(Xi(ut, Mt), Pt, ut));
            break;
          case 173:
          case 172:
            break;
          default:
            D.failBadSyntaxKind(Mt, E && E.fileName);
            break;
        }
    }
    function fn(oe) {
      return ht(t.createEmptyStatement(), oe);
    }
    function rr(oe, ut, Mt) {
      const Pt = jm(ut), un = Q0(ut), Vn = Pn(ut, ut, void 0, Mt), Rr = lt(ut.name, de, yl);
      D.assert(Rr);
      let ni;
      if (!Ni(Rr) && nO(e.getCompilerOptions())) {
        const ja = As(Rr) ? Rr.expression : je(Rr) ? t.createStringLiteral(ta(Rr.escapedText)) : Rr;
        ni = t.createObjectDefinePropertyCall(oe, ja, t.createPropertyDescriptor({ value: Vn, enumerable: !1, writable: !0, configurable: !0 }));
      } else {
        const ja = DT(t, oe, Rr, ut.name);
        ni = t.createAssignment(ja, Vn);
      }
      or(Vn, 3072), fs(Vn, un);
      const Mi = ht(t.createExpressionStatement(ni), ut);
      return Wr(Mi, ut), Hc(Mi, Pt), or(Mi, 96), Mi;
    }
    function cr(oe, ut, Mt) {
      const Pt = t.createExpressionStatement(Pi(oe, ut, Mt, !1));
      return or(Pt, 3072), fs(Pt, Q0(ut.firstAccessor)), Pt;
    }
    function Pi(oe, { firstAccessor: ut, getAccessor: Mt, setAccessor: Pt }, un, Vn) {
      const Rr = Vo(ht(t.cloneNode(oe), oe), oe.parent);
      or(Rr, 3136), fs(Rr, ut.name);
      const ni = lt(ut.name, de, yl);
      if (D.assert(ni), Ni(ni))
        return D.failBadSyntaxKind(ni, "Encountered unhandled private identifier while transforming ES2015.");
      const Mi = FJ(t, ni);
      or(Mi, 3104), fs(Mi, ut.name);
      const ja = [];
      if (Mt) {
        const Ts = Pn(Mt, void 0, void 0, un);
        fs(Ts, Q0(Mt)), or(Ts, 1024);
        const Xs = t.createPropertyAssignment("get", Ts);
        Hc(Xs, jm(Mt)), ja.push(Xs);
      }
      if (Pt) {
        const Ts = Pn(Pt, void 0, void 0, un);
        fs(Ts, Q0(Pt)), or(Ts, 1024);
        const Xs = t.createPropertyAssignment("set", Ts);
        Hc(Xs, jm(Pt)), ja.push(Xs);
      }
      ja.push(t.createPropertyAssignment("enumerable", Mt || Pt ? t.createFalse() : t.createTrue()), t.createPropertyAssignment("configurable", t.createTrue()));
      const Wo = t.createCallExpression(t.createPropertyAccessExpression(t.createIdentifier("Object"), "defineProperty"), void 0, [
        Rr,
        Mi,
        t.createObjectLiteralExpression(ja, !0)
      ]);
      return Vn && Vu(Wo), Wo;
    }
    function hi(oe) {
      oe.transformFlags & 16384 && !(L & 16384) && (L |= 65536);
      const ut = k;
      k = void 0;
      const Mt = H(15232, 66), Pt = t.createFunctionExpression(void 0, void 0, void 0, void 0, Kl(oe.parameters, de, e), void 0, Ar(oe));
      return ht(Pt, oe), Wr(Pt, oe), or(Pt, 16), te(Mt, 0, 0), k = ut, Pt;
    }
    function Rn(oe) {
      const ut = vo(oe) & 524288 ? H(32662, 69) : H(32670, 65), Mt = k;
      k = void 0;
      const Pt = Kl(oe.parameters, de, e), un = Ar(oe), Vn = L & 32768 ? t.getLocalName(oe) : oe.name;
      return te(ut, 98304, 0), k = Mt, t.updateFunctionExpression(oe, void 0, oe.asteriskToken, Vn, void 0, Pt, void 0, un);
    }
    function an(oe) {
      const ut = k;
      k = void 0;
      const Mt = H(32670, 65), Pt = Kl(oe.parameters, de, e), un = Ar(oe), Vn = L & 32768 ? t.getLocalName(oe) : oe.name;
      return te(Mt, 98304, 0), k = ut, t.updateFunctionDeclaration(oe, Jn(oe.modifiers, de, fo), oe.asteriskToken, Vn, void 0, Pt, void 0, un);
    }
    function Pn(oe, ut, Mt, Pt) {
      const un = k;
      k = void 0;
      const Vn = Pt && di(Pt) && !Ja(oe) ? H(32670, 73) : H(32670, 65), Rr = Kl(oe.parameters, de, e), ni = Ar(oe);
      return L & 32768 && !Mt && (oe.kind === 259 || oe.kind === 215) && (Mt = t.getGeneratedNameForNode(oe)), te(Vn, 98304, 0), k = un, Wr(ht(t.createFunctionExpression(void 0, oe.asteriskToken, Mt, void 0, Rr, void 0, ni), ut), oe);
    }
    function Ar(oe) {
      let ut = !1, Mt = !1, Pt, un;
      const Vn = [], Rr = [], ni = oe.body;
      let Mi;
      if (o(), co(ni) && (Mi = t.copyStandardPrologue(ni.statements, Vn, 0, !1), Mi = t.copyCustomPrologue(ni.statements, Rr, Mi, de, n3), Mi = t.copyCustomPrologue(ni.statements, Rr, Mi, de, r3)), ut = In(Rr, oe) || ut, ut = $i(Rr, oe, !1) || ut, co(ni))
        Mi = t.copyCustomPrologue(ni.statements, Rr, Mi, de), Pt = ni.statements, Ti(Rr, Jn(ni.statements, de, wa, Mi)), !ut && ni.multiLine && (ut = !0);
      else {
        D.assert(oe.kind === 216), Pt = O3(ni, -1);
        const Wo = oe.equalsGreaterThanToken;
        !Zs(Wo) && !Zs(ni) && (YN(Wo, ni, E) ? Mt = !0 : ut = !0);
        const Ts = lt(ni, de, vt), Xs = t.createReturnStatement(Ts);
        ht(Xs, ni), Afe(Xs, ni), or(Xs, 2880), Rr.push(Xs), un = ni;
      }
      if (t.mergeLexicalEnvironment(Vn, s()), vn(Vn, oe, !1), Qi(Vn, oe), kt(Vn) && (ut = !0), Rr.unshift(...Vn), co(ni) && Hp(Rr, ni.statements))
        return ni;
      const ja = t.createBlock(ht(t.createNodeArray(Rr), Pt), ut);
      return ht(ja, oe.body), !ut && Mt && or(ja, 1), un && xfe(ja, 19, un), Wr(ja, oe.body), ja;
    }
    function Hr(oe, ut) {
      if (ut)
        return Bn(oe, de, e);
      const Mt = L & 256 ? H(7104, 512) : H(6976, 128), Pt = Bn(oe, de, e);
      return te(Mt, 0, 0), Pt;
    }
    function we(oe) {
      return Bn(oe, re, e);
    }
    function yt(oe, ut) {
      return Bn(oe, ut ? re : de, e);
    }
    function Nt(oe, ut) {
      return vy(oe) ? FT(oe, de, e, 0, !ut) : oe.operatorToken.kind === 27 ? t.updateBinaryExpression(oe, D.checkDefined(lt(oe.left, re, vt)), oe.operatorToken, D.checkDefined(lt(oe.right, ut ? re : de, vt))) : Bn(oe, de, e);
    }
    function Ce(oe, ut) {
      if (ut)
        return Bn(oe, re, e);
      let Mt;
      for (let un = 0; un < oe.elements.length; un++) {
        const Vn = oe.elements[un], Rr = lt(Vn, un < oe.elements.length - 1 ? re : de, vt);
        (Mt || Rr !== Vn) && (Mt || (Mt = oe.elements.slice(0, un)), D.assert(Rr), Mt.push(Rr));
      }
      const Pt = Mt ? ht(t.createNodeArray(Mt), oe.elements) : oe.elements;
      return t.updateCommaListExpression(oe, Pt);
    }
    function pt(oe) {
      return oe.declarationList.declarations.length === 1 && !!oe.declarationList.declarations[0].initializer && !!(F_(oe.declarationList.declarations[0].initializer) & 1);
    }
    function _e(oe) {
      const ut = H(0, Yr(oe, 1) ? 32 : 0);
      let Mt;
      if (k && !(oe.declarationList.flags & 3) && !pt(oe)) {
        let Pt;
        for (const un of oe.declarationList.declarations)
          if (Ci(k, un), un.initializer) {
            let Vn;
            Xa(un.name) ? Vn = FT(un, de, e, 0) : (Vn = t.createBinaryExpression(un.name, 63, D.checkDefined(lt(un.initializer, de, vt))), ht(Vn, un)), Pt = Fn(Pt, Vn);
          }
        Pt ? Mt = ht(t.createExpressionStatement(t.inlineExpressions(Pt)), oe) : Mt = void 0;
      } else
        Mt = Bn(oe, de, e);
      return te(ut, 0, 0), Mt;
    }
    function ie(oe) {
      if (oe.flags & 3 || oe.transformFlags & 524288) {
        oe.flags & 3 && Es();
        const ut = Jn(oe.declarations, oe.flags & 1 ? He : Ze, Ki), Mt = t.createVariableDeclarationList(ut);
        return Wr(Mt, oe), ht(Mt, oe), Hc(Mt, oe), oe.transformFlags & 524288 && (Xa(oe.declarations[0].name) || Xa(qo(oe.declarations).name)) && fs(Mt, he(ut)), Mt;
      }
      return Bn(oe, de, e);
    }
    function he(oe) {
      let ut = -1, Mt = -1;
      for (const Pt of oe)
        ut = ut === -1 ? Pt.pos : Pt.pos === -1 ? ut : Math.min(ut, Pt.pos), Mt = Math.max(Mt, Pt.end);
      return h_(ut, Mt);
    }
    function j(oe) {
      const ut = d.getNodeCheckFlags(oe), Mt = ut & 16384, Pt = ut & 32768;
      return !((L & 64) !== 0 || Mt && Pt && (L & 512) !== 0) && (L & 4096) === 0 && (!d.isDeclarationWithCollidingName(oe) || Pt && !Mt && (L & 6144) === 0);
    }
    function He(oe) {
      const ut = oe.name;
      return Xa(ut) ? Ze(oe) : !oe.initializer && j(oe) ? t.updateVariableDeclaration(oe, oe.name, void 0, void 0, t.createVoidZero()) : Bn(oe, de, e);
    }
    function Ze(oe) {
      const ut = H(32, 0);
      let Mt;
      return Xa(oe.name) ? Mt = U1(oe, de, e, 0, void 0, (ut & 32) !== 0) : Mt = Bn(oe, de, e), te(ut, 0, 0), Mt;
    }
    function Xe(oe) {
      k.labels.set(Mr(oe.label), !0);
    }
    function Ut(oe) {
      k.labels.set(Mr(oe.label), !1);
    }
    function cn(oe) {
      k && !k.labels && (k.labels = /* @__PURE__ */ new Map());
      const ut = lz(oe, k && Xe);
      return Lv(ut, !1) ? Sn(ut, oe) : t.restoreEnclosingLabel(D.checkDefined(lt(ut, de, wa, t.liftToBlock)), oe, k && Ut);
    }
    function Sn(oe, ut) {
      switch (oe.kind) {
        case 243:
        case 244:
          return ue(oe, ut);
        case 245:
          return mt(oe, ut);
        case 246:
          return it(oe, ut);
        case 247:
          return K(oe, ut);
      }
    }
    function Er(oe, ut, Mt, Pt, un) {
      const Vn = H(oe, ut), Rr = ji(Mt, Pt, Vn, un);
      return te(Vn, 0, 0), Rr;
    }
    function ue(oe, ut) {
      return Er(0, 1280, oe, ut);
    }
    function mt(oe, ut) {
      return Er(5056, 3328, oe, ut);
    }
    function zt(oe) {
      return t.updateForStatement(oe, lt(oe.initializer, re, Jp), lt(oe.condition, de, vt), lt(oe.incrementor, re, vt), D.checkDefined(lt(oe.statement, de, wa, t.liftToBlock)));
    }
    function it(oe, ut) {
      return Er(3008, 5376, oe, ut);
    }
    function K(oe, ut) {
      return Er(3008, 5376, oe, ut, f.downlevelIteration ? q : Re);
    }
    function Pe(oe, ut, Mt) {
      const Pt = [], un = oe.initializer;
      if (Uu(un)) {
        oe.initializer.flags & 3 && Es();
        const Vn = Yc(un.declarations);
        if (Vn && Xa(Vn.name)) {
          const Rr = U1(Vn, de, e, 0, ut), ni = ht(t.createVariableDeclarationList(Rr), oe.initializer);
          Wr(ni, oe.initializer), fs(ni, h_(Rr[0].pos, qo(Rr).end)), Pt.push(t.createVariableStatement(void 0, ni));
        } else
          Pt.push(ht(t.createVariableStatement(void 0, Wr(ht(t.createVariableDeclarationList([
            t.createVariableDeclaration(Vn ? Vn.name : t.createTempVariable(void 0), void 0, void 0, ut)
          ]), Y0(un, -1)), un)), O3(un, -1)));
      } else {
        const Vn = t.createAssignment(un, ut);
        vy(Vn) ? Pt.push(t.createExpressionStatement(Nt(Vn, !0))) : (oC(Vn, un.end), Pt.push(ht(t.createExpressionStatement(D.checkDefined(lt(Vn, de, vt))), O3(un, -1))));
      }
      if (Mt)
        return Z(Ti(Pt, Mt));
      {
        const Vn = lt(oe.statement, de, wa, t.liftToBlock);
        return D.assert(Vn), co(Vn) ? t.updateBlock(Vn, ht(t.createNodeArray(va(Pt, Vn.statements)), Vn.statements)) : (Pt.push(Vn), Z(Pt));
      }
    }
    function Z(oe) {
      return or(t.createBlock(t.createNodeArray(oe), !0), 864);
    }
    function Re(oe, ut, Mt) {
      const Pt = lt(oe.expression, de, vt);
      D.assert(Pt);
      const un = t.createLoopVariable(), Vn = je(Pt) ? t.getGeneratedNameForNode(Pt) : t.createTempVariable(void 0);
      or(Pt, 96 | vo(Pt));
      const Rr = ht(t.createForStatement(or(ht(t.createVariableDeclarationList([
        ht(t.createVariableDeclaration(un, void 0, void 0, t.createNumericLiteral(0)), Y0(oe.expression, -1)),
        ht(t.createVariableDeclaration(Vn, void 0, void 0, Pt), oe.expression)
      ]), oe.expression), 4194304), ht(t.createLessThan(un, t.createPropertyAccessExpression(Vn, "length")), oe.expression), ht(t.createPostfixIncrement(un), oe.expression), Pe(oe, t.createElementAccessExpression(Vn, un), Mt)), oe);
      return or(Rr, 512), ht(Rr, oe), t.restoreEnclosingLabel(Rr, ut, k && Ut);
    }
    function q(oe, ut, Mt, Pt) {
      const un = lt(oe.expression, de, vt);
      D.assert(un);
      const Vn = je(un) ? t.getGeneratedNameForNode(un) : t.createTempVariable(void 0), Rr = je(un) ? t.getGeneratedNameForNode(Vn) : t.createTempVariable(void 0), ni = t.createUniqueName("e"), Mi = t.getGeneratedNameForNode(ni), ja = t.createTempVariable(void 0), Wo = ht(r().createValuesHelper(un), oe.expression), Ts = t.createCallExpression(t.createPropertyAccessExpression(Vn, "next"), void 0, []);
      c(ni), c(ja);
      const Xs = Pt & 1024 ? t.inlineExpressions([t.createAssignment(ni, t.createVoidZero()), Wo]) : Wo, pd = or(ht(t.createForStatement(or(ht(t.createVariableDeclarationList([
        ht(t.createVariableDeclaration(Vn, void 0, void 0, Xs), oe.expression),
        t.createVariableDeclaration(Rr, void 0, void 0, Ts)
      ]), oe.expression), 4194304), t.createLogicalNot(t.createPropertyAccessExpression(Rr, "done")), t.createAssignment(Rr, Ts), Pe(oe, t.createPropertyAccessExpression(Rr, "value"), Mt)), oe), 512);
      return t.createTryStatement(t.createBlock([
        t.restoreEnclosingLabel(pd, ut, k && Ut)
      ]), t.createCatchClause(t.createVariableDeclaration(Mi), or(t.createBlock([
        t.createExpressionStatement(t.createAssignment(ni, t.createObjectLiteralExpression([
          t.createPropertyAssignment("error", Mi)
        ])))
      ]), 1)), t.createBlock([
        t.createTryStatement(t.createBlock([
          or(t.createIfStatement(t.createLogicalAnd(t.createLogicalAnd(Rr, t.createLogicalNot(t.createPropertyAccessExpression(Rr, "done"))), t.createAssignment(ja, t.createPropertyAccessExpression(Vn, "return"))), t.createExpressionStatement(t.createFunctionCallCall(ja, Vn, []))), 1)
        ]), void 0, or(t.createBlock([
          or(t.createIfStatement(ni, t.createThrowStatement(t.createPropertyAccessExpression(ni, "error"))), 1)
        ]), 1))
      ]));
    }
    function Rt(oe) {
      const ut = oe.properties;
      let Mt = -1, Pt = !1;
      for (let ni = 0; ni < ut.length; ni++) {
        const Mi = ut[ni];
        if (Mi.transformFlags & 1048576 && L & 4 || (Pt = D.checkDefined(Mi.name).kind === 164)) {
          Mt = ni;
          break;
        }
      }
      if (Mt < 0)
        return Bn(oe, de, e);
      const un = t.createTempVariable(c), Vn = [], Rr = t.createAssignment(un, or(t.createObjectLiteralExpression(Jn(ut, de, my, 0, Mt), oe.multiLine), Pt ? 131072 : 0));
      return oe.multiLine && Vu(Rr), Vn.push(Rr), Yo(Vn, oe, un, Mt), Vn.push(oe.multiLine ? Vu(Vo(ht(t.cloneNode(un), un), un.parent)) : un), t.inlineExpressions(Vn);
    }
    function gt(oe) {
      return (d.getNodeCheckFlags(oe) & 8192) !== 0;
    }
    function ft(oe) {
      return LT(oe) && !!oe.initializer && gt(oe.initializer);
    }
    function _n(oe) {
      return LT(oe) && !!oe.condition && gt(oe.condition);
    }
    function $n(oe) {
      return LT(oe) && !!oe.incrementor && gt(oe.incrementor);
    }
    function oi(oe) {
      return Ai(oe) || ft(oe);
    }
    function Ai(oe) {
      return (d.getNodeCheckFlags(oe) & 4096) !== 0;
    }
    function Ci(oe, ut) {
      oe.hoistedLocalVariables || (oe.hoistedLocalVariables = []), Mt(ut.name);
      function Mt(Pt) {
        if (Pt.kind === 79)
          oe.hoistedLocalVariables.push(Pt);
        else
          for (const un of Pt.elements)
            Rc(un) || Mt(un.name);
      }
    }
    function ji(oe, ut, Mt, Pt) {
      if (!oi(oe)) {
        let Wo;
        k && (Wo = k.allowedNonLabeledJumps, k.allowedNonLabeledJumps = 6);
        const Ts = Pt ? Pt(oe, ut, void 0, Mt) : t.restoreEnclosingLabel(LT(oe) ? zt(oe) : Bn(oe, de, e), ut, k && Ut);
        return k && (k.allowedNonLabeledJumps = Wo), Ts;
      }
      const un = ss(oe), Vn = [], Rr = k;
      k = un;
      const ni = ft(oe) ? wn(oe, un) : void 0, Mi = Ai(oe) ? pa(oe, un, Rr) : void 0;
      k = Rr, ni && Vn.push(ni.functionDeclaration), Mi && Vn.push(Mi.functionDeclaration), _i(Vn, un, Rr), ni && Vn.push(Gl(ni.functionName, ni.containsYield));
      let ja;
      if (Mi)
        if (Pt)
          ja = Pt(oe, ut, Mi.part, Mt);
        else {
          const Wo = mo(oe, ni, t.createBlock(Mi.part, !0));
          ja = t.restoreEnclosingLabel(Wo, ut, k && Ut);
        }
      else {
        const Wo = mo(oe, ni, D.checkDefined(lt(oe.statement, de, wa, t.liftToBlock)));
        ja = t.restoreEnclosingLabel(Wo, ut, k && Ut);
      }
      return Vn.push(ja), Vn;
    }
    function mo(oe, ut, Mt) {
      switch (oe.kind) {
        case 245:
          return To(oe, ut, Mt);
        case 246:
          return ua(oe, Mt);
        case 247:
          return io(oe, Mt);
        case 243:
          return Hi(oe, Mt);
        case 244:
          return Xr(oe, Mt);
        default:
          return D.failBadSyntaxKind(oe, "IterationStatement expected");
      }
    }
    function To(oe, ut, Mt) {
      const Pt = oe.condition && gt(oe.condition), un = Pt || oe.incrementor && gt(oe.incrementor);
      return t.updateForStatement(oe, lt(ut ? ut.part : oe.initializer, re, Jp), lt(Pt ? void 0 : oe.condition, de, vt), lt(un ? void 0 : oe.incrementor, re, vt), Mt);
    }
    function io(oe, ut) {
      return t.updateForOfStatement(oe, void 0, D.checkDefined(lt(oe.initializer, de, Jp)), D.checkDefined(lt(oe.expression, de, vt)), ut);
    }
    function ua(oe, ut) {
      return t.updateForInStatement(oe, D.checkDefined(lt(oe.initializer, de, Jp)), D.checkDefined(lt(oe.expression, de, vt)), ut);
    }
    function Hi(oe, ut) {
      return t.updateDoStatement(oe, ut, D.checkDefined(lt(oe.expression, de, vt)));
    }
    function Xr(oe, ut) {
      return t.updateWhileStatement(oe, D.checkDefined(lt(oe.expression, de, vt)), ut);
    }
    function ss(oe) {
      let ut;
      switch (oe.kind) {
        case 245:
        case 246:
        case 247:
          const Vn = oe.initializer;
          Vn && Vn.kind === 258 && (ut = Vn);
          break;
      }
      const Mt = [], Pt = [];
      if (ut && hp(ut) & 3) {
        const Vn = ft(oe) || _n(oe) || $n(oe);
        for (const Rr of ut.declarations)
          La(oe, Rr, Mt, Pt, Vn);
      }
      const un = { loopParameters: Mt, loopOutParameters: Pt };
      return k && (k.argumentsName && (un.argumentsName = k.argumentsName), k.thisName && (un.thisName = k.thisName), k.hoistedLocalVariables && (un.hoistedLocalVariables = k.hoistedLocalVariables)), un;
    }
    function _i(oe, ut, Mt) {
      let Pt;
      if (ut.argumentsName && (Mt ? Mt.argumentsName = ut.argumentsName : (Pt || (Pt = [])).push(t.createVariableDeclaration(ut.argumentsName, void 0, void 0, t.createIdentifier("arguments")))), ut.thisName && (Mt ? Mt.thisName = ut.thisName : (Pt || (Pt = [])).push(t.createVariableDeclaration(ut.thisName, void 0, void 0, t.createIdentifier("this")))), ut.hoistedLocalVariables)
        if (Mt)
          Mt.hoistedLocalVariables = ut.hoistedLocalVariables;
        else {
          Pt || (Pt = []);
          for (const un of ut.hoistedLocalVariables)
            Pt.push(t.createVariableDeclaration(un));
        }
      if (ut.loopOutParameters.length) {
        Pt || (Pt = []);
        for (const un of ut.loopOutParameters)
          Pt.push(t.createVariableDeclaration(un.outParamName));
      }
      ut.conditionVariable && (Pt || (Pt = []), Pt.push(t.createVariableDeclaration(ut.conditionVariable, void 0, void 0, t.createFalse()))), Pt && oe.push(t.createVariableStatement(void 0, t.createVariableDeclarationList(Pt)));
    }
    function da(oe) {
      return t.createVariableDeclaration(oe.originalName, void 0, void 0, oe.outParamName);
    }
    function wn(oe, ut) {
      const Mt = t.createUniqueName("_loop_init"), Pt = (oe.initializer.transformFlags & 1048576) !== 0;
      let un = 0;
      ut.containsLexicalThis && (un |= 16), Pt && L & 4 && (un |= 524288);
      const Vn = [];
      Vn.push(t.createVariableStatement(void 0, oe.initializer)), rl(ut.loopOutParameters, 2, 1, Vn);
      const Rr = t.createVariableStatement(void 0, or(t.createVariableDeclarationList([
        t.createVariableDeclaration(Mt, void 0, void 0, or(t.createFunctionExpression(void 0, Pt ? t.createToken(41) : void 0, void 0, void 0, void 0, void 0, D.checkDefined(lt(t.createBlock(Vn, !0), de, co))), un))
      ]), 4194304)), ni = t.createVariableDeclarationList(jt(ut.loopOutParameters, da));
      return { functionName: Mt, containsYield: Pt, functionDeclaration: Rr, part: ni };
    }
    function pa(oe, ut, Mt) {
      const Pt = t.createUniqueName("_loop");
      i();
      const un = lt(oe.statement, de, wa, t.liftToBlock), Vn = s(), Rr = [];
      (_n(oe) || $n(oe)) && (ut.conditionVariable = t.createUniqueName("inc"), oe.incrementor ? Rr.push(t.createIfStatement(ut.conditionVariable, t.createExpressionStatement(D.checkDefined(lt(oe.incrementor, de, vt))), t.createExpressionStatement(t.createAssignment(ut.conditionVariable, t.createTrue())))) : Rr.push(t.createIfStatement(t.createLogicalNot(ut.conditionVariable), t.createExpressionStatement(t.createAssignment(ut.conditionVariable, t.createTrue())))), _n(oe) && Rr.push(t.createIfStatement(t.createPrefixUnaryExpression(53, D.checkDefined(lt(oe.condition, de, vt))), D.checkDefined(lt(t.createBreakStatement(), de, wa))))), D.assert(un), co(un) ? Ti(Rr, un.statements) : Rr.push(un), rl(ut.loopOutParameters, 1, 1, Rr), Pm(Rr, Vn);
      const ni = t.createBlock(Rr, !0);
      co(un) && Wr(ni, un);
      const Mi = (oe.statement.transformFlags & 1048576) !== 0;
      let ja = 1048576;
      ut.containsLexicalThis && (ja |= 16), Mi && L & 4 && (ja |= 524288);
      const Wo = t.createVariableStatement(void 0, or(t.createVariableDeclarationList([
        t.createVariableDeclaration(Pt, void 0, void 0, or(t.createFunctionExpression(void 0, Mi ? t.createToken(41) : void 0, void 0, void 0, ut.loopParameters, void 0, ni), ja))
      ]), 4194304)), Ts = Xl(Pt, ut, Mt, Mi);
      return { functionName: Pt, containsYield: Mi, functionDeclaration: Wo, part: Ts };
    }
    function ec(oe, ut) {
      const Mt = ut === 0 ? oe.outParamName : oe.originalName, Pt = ut === 0 ? oe.originalName : oe.outParamName;
      return t.createBinaryExpression(Pt, 63, Mt);
    }
    function rl(oe, ut, Mt, Pt) {
      for (const un of oe)
        un.flags & ut && Pt.push(t.createExpressionStatement(ec(un, Mt)));
    }
    function Gl(oe, ut) {
      const Mt = t.createCallExpression(oe, void 0, []), Pt = ut ? t.createYieldExpression(t.createToken(41), or(Mt, 16777216)) : Mt;
      return t.createExpressionStatement(Pt);
    }
    function Xl(oe, ut, Mt, Pt) {
      const un = [], Vn = !(ut.nonLocalJumps & -5) && !ut.labeledNonLocalBreaks && !ut.labeledNonLocalContinues, Rr = t.createCallExpression(oe, void 0, jt(ut.loopParameters, (Mi) => Mi.name)), ni = Pt ? t.createYieldExpression(t.createToken(41), or(Rr, 16777216)) : Rr;
      if (Vn)
        un.push(t.createExpressionStatement(ni)), rl(ut.loopOutParameters, 1, 0, un);
      else {
        const Mi = t.createUniqueName("state"), ja = t.createVariableStatement(void 0, t.createVariableDeclarationList([t.createVariableDeclaration(Mi, void 0, void 0, ni)]));
        if (un.push(ja), rl(ut.loopOutParameters, 1, 0, un), ut.nonLocalJumps & 8) {
          let Wo;
          Mt ? (Mt.nonLocalJumps |= 8, Wo = t.createReturnStatement(Mi)) : Wo = t.createReturnStatement(t.createPropertyAccessExpression(Mi, "value")), un.push(t.createIfStatement(t.createTypeCheck(Mi, "object"), Wo));
        }
        if (ut.nonLocalJumps & 2 && un.push(t.createIfStatement(t.createStrictEquality(Mi, t.createStringLiteral("break")), t.createBreakStatement())), ut.labeledNonLocalBreaks || ut.labeledNonLocalContinues) {
          const Wo = [];
          Co(ut.labeledNonLocalBreaks, !0, Mi, Mt, Wo), Co(ut.labeledNonLocalContinues, !1, Mi, Mt, Wo), un.push(t.createSwitchStatement(Mi, t.createCaseBlock(Wo)));
        }
      }
      return un;
    }
    function Ul(oe, ut, Mt, Pt) {
      ut ? (oe.labeledNonLocalBreaks || (oe.labeledNonLocalBreaks = /* @__PURE__ */ new Map()), oe.labeledNonLocalBreaks.set(Mt, Pt)) : (oe.labeledNonLocalContinues || (oe.labeledNonLocalContinues = /* @__PURE__ */ new Map()), oe.labeledNonLocalContinues.set(Mt, Pt));
    }
    function Co(oe, ut, Mt, Pt, un) {
      oe && oe.forEach((Vn, Rr) => {
        const ni = [];
        if (!Pt || Pt.labels && Pt.labels.get(Rr)) {
          const Mi = t.createIdentifier(Rr);
          ni.push(ut ? t.createBreakStatement(Mi) : t.createContinueStatement(Mi));
        } else
          Ul(Pt, ut, Rr, Vn), ni.push(t.createReturnStatement(Mt));
        un.push(t.createCaseClause(t.createStringLiteral(Vn), ni));
      });
    }
    function La(oe, ut, Mt, Pt, un) {
      const Vn = ut.name;
      if (Xa(Vn))
        for (const Rr of Vn.elements)
          Rc(Rr) || La(oe, Rr, Mt, Pt, un);
      else {
        Mt.push(t.createParameterDeclaration(void 0, void 0, Vn));
        const Rr = d.getNodeCheckFlags(ut);
        if (Rr & 262144 || un) {
          const ni = t.createUniqueName("out_" + Mr(Vn));
          let Mi = 0;
          Rr & 262144 && (Mi |= 1), LT(oe) && (oe.initializer && d.isBindingCapturedByNode(oe.initializer, ut) && (Mi |= 2), (oe.condition && d.isBindingCapturedByNode(oe.condition, ut) || oe.incrementor && d.isBindingCapturedByNode(oe.incrementor, ut)) && (Mi |= 1)), Pt.push({ flags: Mi, originalName: Vn, outParamName: ni });
        }
      }
    }
    function Yo(oe, ut, Mt, Pt) {
      const un = ut.properties, Vn = un.length;
      for (let Rr = Pt; Rr < Vn; Rr++) {
        const ni = un[Rr];
        switch (ni.kind) {
          case 174:
          case 175:
            const Mi = vT(ut.properties, ni);
            ni === Mi.firstAccessor && oe.push(Pi(Mt, Mi, ut, !!ut.multiLine));
            break;
          case 171:
            oe.push(qd(ni, Mt, ut, ut.multiLine));
            break;
          case 299:
            oe.push(Vl(ni, Mt, ut.multiLine));
            break;
          case 300:
            oe.push(tu(ni, Mt, ut.multiLine));
            break;
          default:
            D.failBadSyntaxKind(ut);
            break;
        }
      }
    }
    function Vl(oe, ut, Mt) {
      const Pt = t.createAssignment(DT(t, ut, D.checkDefined(lt(oe.name, de, yl))), D.checkDefined(lt(oe.initializer, de, vt)));
      return ht(Pt, oe), Mt && Vu(Pt), Pt;
    }
    function tu(oe, ut, Mt) {
      const Pt = t.createAssignment(DT(t, ut, D.checkDefined(lt(oe.name, de, yl))), t.cloneNode(oe.name));
      return ht(Pt, oe), Mt && Vu(Pt), Pt;
    }
    function qd(oe, ut, Mt, Pt) {
      const un = t.createAssignment(DT(t, ut, D.checkDefined(lt(oe.name, de, yl))), Pn(oe, oe, void 0, Mt));
      return ht(un, oe), Pt && Vu(un), un;
    }
    function oc(oe) {
      const ut = H(7104, 0);
      let Mt;
      if (D.assert(!!oe.variableDeclaration, "Catch clause variable should always be present when downleveling ES2015."), Xa(oe.variableDeclaration.name)) {
        const Pt = t.createTempVariable(void 0), un = t.createVariableDeclaration(Pt);
        ht(un, oe.variableDeclaration);
        const Vn = U1(oe.variableDeclaration, de, e, 0, Pt), Rr = t.createVariableDeclarationList(Vn);
        ht(Rr, oe.variableDeclaration);
        const ni = t.createVariableStatement(void 0, Rr);
        Mt = t.updateCatchClause(oe, un, Jc(oe.block, ni));
      } else
        Mt = Bn(oe, de, e);
      return te(ut, 0, 0), Mt;
    }
    function Jc(oe, ut) {
      const Mt = Jn(oe.statements, de, wa);
      return t.updateBlock(oe, [ut, ...Mt]);
    }
    function Ds(oe) {
      D.assert(!As(oe.name));
      const ut = Pn(oe, Y0(oe, -1), void 0, void 0);
      return or(ut, 1024 | vo(ut)), ht(t.createPropertyAssignment(oe.name, ut), oe);
    }
    function hl(oe) {
      D.assert(!As(oe.name));
      const ut = k;
      k = void 0;
      const Mt = H(32670, 65);
      let Pt;
      const un = Kl(oe.parameters, de, e), Vn = Ar(oe);
      return oe.kind === 174 ? Pt = t.updateGetAccessorDeclaration(oe, oe.modifiers, oe.name, un, oe.type, Vn) : Pt = t.updateSetAccessorDeclaration(oe, oe.modifiers, oe.name, un, Vn), te(Mt, 98304, 0), k = ut, Pt;
    }
    function el(oe) {
      return ht(t.createPropertyAssignment(oe.name, Be(t.cloneNode(oe.name))), oe);
    }
    function Ks(oe) {
      return Bn(oe, de, e);
    }
    function rn(oe) {
      return Bn(oe, de, e);
    }
    function jl(oe) {
      return kt(oe.elements, Lh) ? Q(oe.elements, !1, !!oe.multiLine, !!oe.elements.hasTrailingComma) : Bn(oe, de, e);
    }
    function xu(oe) {
      if (F_(oe) & 1)
        return Wu(oe);
      const ut = bu(oe.expression);
      return ut.kind === 106 || ud(ut) || kt(oe.arguments, Lh) ? It(oe, !0) : t.updateCallExpression(oe, D.checkDefined(lt(oe.expression, ae, vt)), void 0, Jn(oe.arguments, de, vt));
    }
    function Wu(oe) {
      const ut = oo(oo(bu(oe.expression), Js).body, co), Mt = (pf) => uc(pf) && !!us(pf.declarationList.declarations).initializer, Pt = k;
      k = void 0;
      const un = Jn(ut.statements, ye, wa);
      k = Pt;
      const Vn = lr(un, Mt), Rr = lr(un, (pf) => !Mt(pf)), Mi = oo(us(Vn), uc).declarationList.declarations[0], ja = bu(Mi.initializer);
      let Wo = ai(ja, ed);
      !Wo && br(ja) && ja.operatorToken.kind === 27 && (Wo = ai(ja.left, ed));
      const Ts = oo(Wo ? bu(Wo.right) : ja, no), Xs = oo(bu(Ts.expression), Bs), pd = Xs.body.statements;
      let _f = 0, tc = -1;
      const Kd = [];
      if (Wo) {
        const pf = ai(pd[_f], ou);
        pf && (Kd.push(pf), _f++), Kd.push(pd[_f]), _f++, Kd.push(t.createExpressionStatement(t.createAssignment(Wo.left, oo(Mi.name, je))));
      }
      for (; !bp(cy(pd, tc)); )
        tc--;
      Ti(Kd, pd, _f, tc), tc < -1 && Ti(Kd, pd, tc + 1);
      const Au = ai(cy(pd, tc), bp);
      for (const pf of Rr)
        bp(pf) && (Au != null && Au.expression) && !je(Au.expression) ? Kd.push(Au) : Kd.push(pf);
      return Ti(Kd, Vn, 1), t.restoreOuterExpressions(oe.expression, t.restoreOuterExpressions(Mi.initializer, t.restoreOuterExpressions(Wo && Wo.right, t.updateCallExpression(Ts, t.restoreOuterExpressions(Ts.expression, t.updateFunctionExpression(Xs, void 0, void 0, void 0, void 0, Xs.parameters, void 0, t.updateBlock(Xs.body, Kd))), void 0, Ts.arguments))));
    }
    function fe(oe) {
      return It(oe, !1);
    }
    function It(oe, ut) {
      if (oe.transformFlags & 32768 || oe.expression.kind === 106 || ud(bu(oe.expression))) {
        const { target: Mt, thisArg: Pt } = t.createCallBinding(oe.expression, c);
        oe.expression.kind === 106 && or(Pt, 8);
        let un;
        if (oe.transformFlags & 32768 ? un = t.createFunctionApplyCall(D.checkDefined(lt(Mt, ae, vt)), oe.expression.kind === 106 ? Pt : D.checkDefined(lt(Pt, de, vt)), Q(oe.arguments, !0, !1, !1)) : un = ht(t.createFunctionCallCall(D.checkDefined(lt(Mt, ae, vt)), oe.expression.kind === 106 ? Pt : D.checkDefined(lt(Pt, de, vt)), Jn(oe.arguments, de, vt)), oe), oe.expression.kind === 106) {
          const Vn = t.createLogicalOr(un, sn());
          un = ut ? t.createAssignment(t.createUniqueName("_this", 48), Vn) : Vn;
        }
        return Wr(un, oe);
      }
      return Bn(oe, de, e);
    }
    function Ht(oe) {
      if (kt(oe.arguments, Lh)) {
        const { target: ut, thisArg: Mt } = t.createCallBinding(t.createPropertyAccessExpression(oe.expression, "bind"), c);
        return t.createNewExpression(t.createFunctionApplyCall(D.checkDefined(lt(ut, de, vt)), Mt, Q(t.createNodeArray([t.createVoidZero(), ...oe.arguments]), !0, !1, !1)), void 0, []);
      }
      return Bn(oe, de, e);
    }
    function Q(oe, ut, Mt, Pt) {
      const un = oe.length, Vn = No(B4(oe, ot, (ja, Wo, Ts, Xs) => Wo(ja, Mt, Pt && Xs === un)));
      if (Vn.length === 1) {
        const ja = Vn[0];
        if (ut && !f.downlevelIteration || xq(ja.expression) || xk(ja.expression, "___spreadArray"))
          return ja.expression;
      }
      const Rr = r(), ni = Vn[0].kind !== 0;
      let Mi = ni ? t.createArrayLiteralExpression() : Vn[0].expression;
      for (let ja = ni ? 0 : 1; ja < Vn.length; ja++) {
        const Wo = Vn[ja];
        Mi = Rr.createSpreadArrayHelper(Mi, Wo.expression, Wo.kind === 1 && !ut);
      }
      return Mi;
    }
    function ot(oe) {
      return Lh(oe) ? xt : Dr;
    }
    function xt(oe) {
      return jt(oe, mn);
    }
    function mn(oe) {
      D.assertNode(oe, Lh);
      let ut = lt(oe.expression, de, vt);
      D.assert(ut);
      const Mt = xk(ut, "___read");
      let Pt = Mt || xq(ut) ? 2 : 1;
      return f.downlevelIteration && Pt === 1 && !Bu(ut) && !Mt && (ut = r().createReadHelper(ut, void 0), Pt = 2), Ahe(Pt, ut);
    }
    function Dr(oe, ut, Mt) {
      const Pt = t.createArrayLiteralExpression(Jn(t.createNodeArray(oe, Mt), de, vt), ut);
      return Ahe(0, Pt);
    }
    function Pr(oe) {
      return lt(oe.expression, de, vt);
    }
    function Ta(oe) {
      return ht(t.createStringLiteral(oe.text), oe);
    }
    function ls(oe) {
      return oe.hasExtendedUnicodeEscape ? ht(t.createStringLiteral(oe.text), oe) : oe;
    }
    function ho(oe) {
      return oe.numericLiteralFlags & 384 ? ht(t.createNumericLiteral(oe.text), oe) : oe;
    }
    function Ho(oe) {
      return gX(e, oe, de, E, O, 1);
    }
    function Ya(oe) {
      let ut = t.createStringLiteral(oe.head.text);
      for (const Mt of oe.templateSpans) {
        const Pt = [D.checkDefined(lt(Mt.expression, de, vt))];
        Mt.literal.text.length > 0 && Pt.push(t.createStringLiteral(Mt.literal.text)), ut = t.createCallExpression(t.createPropertyAccessExpression(ut, "concat"), void 0, Pt);
      }
      return ht(ut, oe);
    }
    function dl(oe) {
      return L & 8 && !oe ? t.createPropertyAccessExpression(t.createUniqueName("_super", 48), "prototype") : t.createUniqueName("_super", 48);
    }
    function dc(oe) {
      return oe.keywordToken === 103 && oe.name.escapedText === "target" ? (L |= 32768, t.createUniqueName("_newTarget", 48)) : oe;
    }
    function _d(oe, ut, Mt) {
      if (G & 1 && Ka(ut)) {
        const Pt = H(32670, vo(ut) & 16 ? 81 : 65);
        h(oe, ut, Mt), te(Pt, 0, 0);
        return;
      }
      h(oe, ut, Mt);
    }
    function Es() {
      G & 2 || (G |= 2, e.enableSubstitution(79));
    }
    function ds() {
      G & 1 || (G |= 1, e.enableSubstitution(108), e.enableEmitNotification(173), e.enableEmitNotification(171), e.enableEmitNotification(174), e.enableEmitNotification(175), e.enableEmitNotification(216), e.enableEmitNotification(215), e.enableEmitNotification(259));
    }
    function fl(oe, ut) {
      return ut = y(oe, ut), oe === 1 ? Nf(ut) : je(ut) ? Jd(ut) : ut;
    }
    function Jd(oe) {
      if (G & 2 && !BJ(oe)) {
        const ut = Ea(oe, je);
        if (ut && Hl(ut))
          return ht(t.getGeneratedNameForNode(ut), oe);
      }
      return oe;
    }
    function Hl(oe) {
      switch (oe.parent.kind) {
        case 205:
        case 260:
        case 263:
        case 257:
          return oe.parent.name === oe && d.isDeclarationWithCollidingName(oe.parent);
      }
      return !1;
    }
    function Nf(oe) {
      switch (oe.kind) {
        case 79:
          return xe(oe);
        case 108:
          return Nn(oe);
      }
      return oe;
    }
    function xe(oe) {
      if (G & 2 && !BJ(oe)) {
        const ut = d.getReferencedDeclarationWithCollidingName(oe);
        if (ut && !(di(ut) && Dt(ut, oe)))
          return ht(t.getGeneratedNameForNode(ka(ut)), oe);
      }
      return oe;
    }
    function Dt(oe, ut) {
      let Mt = Ea(ut);
      if (!Mt || Mt === oe || Mt.end <= oe.pos || Mt.pos >= oe.end)
        return !1;
      const Pt = Mm(oe);
      for (; Mt; ) {
        if (Mt === Pt || Mt === oe)
          return !1;
        if (Uc(Mt) && Mt.parent === oe)
          return !0;
        Mt = Mt.parent;
      }
      return !1;
    }
    function Nn(oe) {
      return G & 1 && L & 16 ? ht(t.createUniqueName("_this", 48), oe) : oe;
    }
    function Xi(oe, ut) {
      return Ja(ut) ? t.getInternalName(oe) : t.createPropertyAccessExpression(t.getInternalName(oe), "prototype");
    }
    function Lo(oe, ut) {
      if (!oe || !ut || kt(oe.parameters))
        return !1;
      const Mt = Yc(oe.body.statements);
      if (!Mt || !Zs(Mt) || Mt.kind !== 241)
        return !1;
      const Pt = Mt.expression;
      if (!Zs(Pt) || Pt.kind !== 210)
        return !1;
      const un = Pt.expression;
      if (!Zs(un) || un.kind !== 106)
        return !1;
      const Vn = Am(Pt.arguments);
      if (!Vn || !Zs(Vn) || Vn.kind !== 227)
        return !1;
      const Rr = Vn.expression;
      return je(Rr) && Rr.escapedText === "arguments";
    }
  }
  var m3e = C({
    "src/compiler/transformers/es2015.ts"() {
      Oa();
    }
  });
  function Lhe(e) {
    const { factory: t } = e, r = e.getCompilerOptions();
    let i, o;
    (r.jsx === 1 || r.jsx === 3) && (i = e.onEmitNode, e.onEmitNode = f, e.enableEmitNotification(283), e.enableEmitNotification(284), e.enableEmitNotification(282), o = []);
    const s = e.onSubstituteNode;
    return e.onSubstituteNode = d, e.enableSubstitution(208), e.enableSubstitution(299), X_(e, c);
    function c(A) {
      return A;
    }
    function f(A, L, I) {
      switch (L.kind) {
        case 283:
        case 284:
        case 282:
          const O = L.tagName;
          o[kl(O)] = !0;
          break;
      }
      i(A, L, I);
    }
    function d(A, L) {
      return L.id && o && o[L.id] ? s(A, L) : (L = s(A, L), Fr(L) ? y(L) : zc(L) ? h(L) : L);
    }
    function y(A) {
      if (Ni(A.name))
        return A;
      const L = E(A.name);
      return L ? ht(t.createElementAccessExpression(A.expression, L), A) : A;
    }
    function h(A) {
      const L = je(A.name) && E(A.name);
      return L ? t.updatePropertyAssignment(A, L, A.initializer) : A;
    }
    function E(A) {
      const L = U0(A);
      if (L !== void 0 && L >= 81 && L <= 116)
        return ht(t.createStringLiteralFromNode(A), A);
    }
  }
  var h3e = C({
    "src/compiler/transformers/es5.ts"() {
      Oa();
    }
  });
  function g3e(e) {
    switch (e) {
      case 2:
        return "return";
      case 3:
        return "break";
      case 4:
        return "yield";
      case 5:
        return "yield*";
      case 7:
        return "endfinally";
      default:
        return;
    }
  }
  function Ihe(e) {
    const {
      factory: t,
      getEmitHelperFactory: r,
      resumeLexicalEnvironment: i,
      endLexicalEnvironment: o,
      hoistFunctionDeclaration: s,
      hoistVariableDeclaration: c
    } = e, f = e.getCompilerOptions(), d = ts(f), y = e.getEmitResolver(), h = e.onSubstituteNode;
    e.onSubstituteNode = K;
    let E, A, L, I, O, k, G, V, H, te, X = 1, Y, P, de, re, ye = 0, ae = 0, W, ce, me, ve, Te, ee, Qe, Ve;
    return X_(e, Be);
    function Be(xe) {
      if (xe.isDeclarationFile || !(xe.transformFlags & 2048))
        return xe;
      const Dt = Bn(xe, qe, e);
      return Ey(Dt, e.readEmitHelpers()), Dt;
    }
    function qe(xe) {
      const Dt = xe.transformFlags;
      return I ? Oe(xe) : L ? Me(xe) : Qs(xe) && xe.asteriskToken ? We(xe) : Dt & 2048 ? Bn(xe, qe, e) : xe;
    }
    function Oe(xe) {
      switch (xe.kind) {
        case 243:
          return Ar(xe);
        case 244:
          return we(xe);
        case 252:
          return cn(xe);
        case 253:
          return Er(xe);
        default:
          return Me(xe);
      }
    }
    function Me(xe) {
      switch (xe.kind) {
        case 259:
          return Fe(xe);
        case 215:
          return st(xe);
        case 174:
        case 175:
          return Ct(xe);
        case 240:
          return Vt(xe);
        case 245:
          return Nt(xe);
        case 246:
          return pt(xe);
        case 249:
          return j(xe);
        case 248:
          return ie(xe);
        case 250:
          return Ze(xe);
        default:
          return xe.transformFlags & 1048576 ? Ye(xe) : xe.transformFlags & 4196352 ? Bn(xe, qe, e) : xe;
      }
    }
    function Ye(xe) {
      switch (xe.kind) {
        case 223:
          return tt(xe);
        case 357:
          return On(xe);
        case 224:
          return In(xe);
        case 226:
          return Zt(xe);
        case 206:
          return _r(xe);
        case 207:
          return $i(xe);
        case 209:
          return Qi(xe);
        case 210:
          return Or(xe);
        case 211:
          return At(xe);
        default:
          return Bn(xe, qe, e);
      }
    }
    function We(xe) {
      switch (xe.kind) {
        case 259:
          return Fe(xe);
        case 215:
          return st(xe);
        default:
          return D.failBadSyntaxKind(xe);
      }
    }
    function Fe(xe) {
      if (xe.asteriskToken)
        xe = Wr(ht(t.createFunctionDeclaration(xe.modifiers, void 0, xe.name, void 0, Kl(xe.parameters, qe, e), void 0, Et(xe.body)), xe), xe);
      else {
        const Dt = L, Nn = I;
        L = !1, I = !1, xe = Bn(xe, qe, e), L = Dt, I = Nn;
      }
      if (L) {
        s(xe);
        return;
      } else
        return xe;
    }
    function st(xe) {
      if (xe.asteriskToken)
        xe = Wr(ht(t.createFunctionExpression(void 0, void 0, xe.name, void 0, Kl(xe.parameters, qe, e), void 0, Et(xe.body)), xe), xe);
      else {
        const Dt = L, Nn = I;
        L = !1, I = !1, xe = Bn(xe, qe, e), L = Dt, I = Nn;
      }
      return xe;
    }
    function Ct(xe) {
      const Dt = L, Nn = I;
      return L = !1, I = !1, xe = Bn(xe, qe, e), L = Dt, I = Nn, xe;
    }
    function Et(xe) {
      const Dt = [], Nn = L, Xi = I, Lo = O, oe = k, ut = G, Mt = V, Pt = H, un = te, Vn = X, Rr = Y, ni = P, Mi = de, ja = re;
      L = !0, I = !1, O = void 0, k = void 0, G = void 0, V = void 0, H = void 0, te = void 0, X = 1, Y = void 0, P = void 0, de = void 0, re = t.createTempVariable(void 0), i();
      const Wo = t.copyPrologue(xe.statements, Dt, !1, qe);
      vn(xe.statements, Wo);
      const Ts = Q();
      return Pm(Dt, o()), Dt.push(t.createReturnStatement(Ts)), L = Nn, I = Xi, O = Lo, k = oe, G = ut, V = Mt, H = Pt, te = un, X = Vn, Y = Rr, P = ni, de = Mi, re = ja, ht(t.createBlock(Dt, xe.multiLine), xe);
    }
    function Vt(xe) {
      if (xe.transformFlags & 1048576) {
        hi(xe.declarationList);
        return;
      } else {
        if (vo(xe) & 2097152)
          return xe;
        for (const Nn of xe.declarationList.declarations)
          c(Nn.name);
        const Dt = ik(xe.declarationList);
        return Dt.length === 0 ? void 0 : fs(t.createExpressionStatement(t.inlineExpressions(jt(Dt, Rn))), xe);
      }
    }
    function tt(xe) {
      const Dt = Iz(xe);
      switch (Dt) {
        case 0:
          return sn(xe);
        case 1:
          return at(xe);
        default:
          return D.assertNever(Dt);
      }
    }
    function at(xe) {
      const { left: Dt, right: Nn } = xe;
      if (zt(Nn)) {
        let Xi;
        switch (Dt.kind) {
          case 208:
            Xi = t.updatePropertyAccessExpression(Dt, Re(D.checkDefined(lt(Dt.expression, qe, Td))), Dt.name);
            break;
          case 209:
            Xi = t.updateElementAccessExpression(Dt, Re(D.checkDefined(lt(Dt.expression, qe, Td))), Re(D.checkDefined(lt(Dt.argumentExpression, qe, vt))));
            break;
          default:
            Xi = D.checkDefined(lt(Dt, qe, vt));
            break;
        }
        const Lo = xe.operatorToken.kind;
        return C8(Lo) ? ht(t.createAssignment(Xi, ht(t.createBinaryExpression(Re(Xi), ew(Lo), D.checkDefined(lt(Nn, qe, vt))), xe)), xe) : t.updateBinaryExpression(xe, Xi, xe.operatorToken, D.checkDefined(lt(Nn, qe, vt)));
      }
      return Bn(xe, qe, e);
    }
    function sn(xe) {
      return zt(xe.right) ? sde(xe.operatorToken.kind) ? jn(xe) : xe.operatorToken.kind === 27 ? Qt(xe) : t.updateBinaryExpression(xe, Re(D.checkDefined(lt(xe.left, qe, vt))), xe.operatorToken, D.checkDefined(lt(xe.right, qe, vt))) : Bn(xe, qe, e);
    }
    function Qt(xe) {
      let Dt = [];
      return Nn(xe.left), Nn(xe.right), t.inlineExpressions(Dt);
      function Nn(Xi) {
        br(Xi) && Xi.operatorToken.kind === 27 ? (Nn(Xi.left), Nn(Xi.right)) : (zt(Xi) && Dt.length > 0 && (Ht(1, [t.createExpressionStatement(t.inlineExpressions(Dt))]), Dt = []), Dt.push(D.checkDefined(lt(Xi, qe, vt))));
      }
    }
    function On(xe) {
      let Dt = [];
      for (const Nn of xe.elements)
        br(Nn) && Nn.operatorToken.kind === 27 ? Dt.push(Qt(Nn)) : (zt(Nn) && Dt.length > 0 && (Ht(1, [t.createExpressionStatement(t.inlineExpressions(Dt))]), Dt = []), Dt.push(D.checkDefined(lt(Nn, qe, vt))));
      return t.inlineExpressions(Dt);
    }
    function jn(xe) {
      const Dt = Rt(), Nn = q();
      return hl(Nn, D.checkDefined(lt(xe.left, qe, vt)), xe.left), xe.operatorToken.kind === 55 ? rn(Dt, Nn, xe.left) : Ks(Dt, Nn, xe.left), hl(Nn, D.checkDefined(lt(xe.right, qe, vt)), xe.right), gt(Dt), Nn;
    }
    function In(xe) {
      if (zt(xe.whenTrue) || zt(xe.whenFalse)) {
        const Dt = Rt(), Nn = Rt(), Xi = q();
        return rn(Dt, D.checkDefined(lt(xe.condition, qe, vt)), xe.condition), hl(Xi, D.checkDefined(lt(xe.whenTrue, qe, vt)), xe.whenTrue), el(Nn), gt(Dt), hl(Xi, D.checkDefined(lt(xe.whenFalse, qe, vt)), xe.whenFalse), gt(Nn), Xi;
      }
      return Bn(xe, qe, e);
    }
    function Zt(xe) {
      const Dt = Rt(), Nn = lt(xe.expression, qe, vt);
      if (xe.asteriskToken) {
        const Xi = vo(xe.expression) & 16777216 ? Nn : ht(r().createValuesHelper(Nn), xe);
        jl(Xi, xe);
      } else
        xu(Nn, xe);
      return gt(Dt), oc(xe);
    }
    function _r(xe) {
      return Ii(xe.elements, void 0, void 0, xe.multiLine);
    }
    function Ii(xe, Dt, Nn, Xi) {
      const Lo = it(xe);
      let oe;
      if (Lo > 0) {
        oe = q();
        const Pt = Jn(xe, qe, vt, 0, Lo);
        hl(oe, t.createArrayLiteralExpression(Dt ? [Dt, ...Pt] : Pt)), Dt = void 0;
      }
      const ut = Ru(xe, Mt, [], Lo);
      return oe ? t.createArrayConcatCall(oe, [t.createArrayLiteralExpression(ut, Xi)]) : ht(t.createArrayLiteralExpression(Dt ? [Dt, ...ut] : ut, Xi), Nn);
      function Mt(Pt, un) {
        if (zt(un) && Pt.length > 0) {
          const Vn = oe !== void 0;
          oe || (oe = q()), hl(oe, Vn ? t.createArrayConcatCall(oe, [t.createArrayLiteralExpression(Pt, Xi)]) : t.createArrayLiteralExpression(Dt ? [Dt, ...Pt] : Pt, Xi)), Dt = void 0, Pt = [];
        }
        return Pt.push(D.checkDefined(lt(un, qe, vt))), Pt;
      }
    }
    function $i(xe) {
      const Dt = xe.properties, Nn = xe.multiLine, Xi = it(Dt), Lo = q();
      hl(Lo, t.createObjectLiteralExpression(Jn(Dt, qe, my, 0, Xi), Nn));
      const oe = Ru(Dt, ut, [], Xi);
      return oe.push(Nn ? Vu(Vo(ht(t.cloneNode(Lo), Lo), Lo.parent)) : Lo), t.inlineExpressions(oe);
      function ut(Mt, Pt) {
        zt(Pt) && Mt.length > 0 && (Ds(t.createExpressionStatement(t.inlineExpressions(Mt))), Mt = []);
        const un = d_e(t, xe, Pt, Lo), Vn = lt(un, qe, vt);
        return Vn && (Nn && Vu(Vn), Mt.push(Vn)), Mt;
      }
    }
    function Qi(xe) {
      return zt(xe.argumentExpression) ? t.updateElementAccessExpression(xe, Re(D.checkDefined(lt(xe.expression, qe, Td))), D.checkDefined(lt(xe.argumentExpression, qe, vt))) : Bn(xe, qe, e);
    }
    function Or(xe) {
      if (!lf(xe) && ze(xe.arguments, zt)) {
        const { target: Dt, thisArg: Nn } = t.createCallBinding(xe.expression, c, d, !0);
        return Wr(ht(t.createFunctionApplyCall(Re(D.checkDefined(lt(Dt, qe, Td))), Nn, Ii(xe.arguments)), xe), xe);
      }
      return Bn(xe, qe, e);
    }
    function At(xe) {
      if (ze(xe.arguments, zt)) {
        const { target: Dt, thisArg: Nn } = t.createCallBinding(t.createPropertyAccessExpression(xe.expression, "bind"), c);
        return Wr(ht(t.createNewExpression(t.createFunctionApplyCall(Re(D.checkDefined(lt(Dt, qe, vt))), Nn, Ii(xe.arguments, t.createVoidZero())), void 0, []), xe), xe);
      }
      return Bn(xe, qe, e);
    }
    function vn(xe, Dt = 0) {
      const Nn = xe.length;
      for (let Xi = Dt; Xi < Nn; Xi++)
        fn(xe[Xi]);
    }
    function Wt(xe) {
      co(xe) ? vn(xe.statements) : fn(xe);
    }
    function fn(xe) {
      const Dt = I;
      I || (I = zt(xe)), rr(xe), I = Dt;
    }
    function rr(xe) {
      switch (xe.kind) {
        case 238:
          return cr(xe);
        case 241:
          return Pi(xe);
        case 242:
          return an(xe);
        case 243:
          return Pn(xe);
        case 244:
          return Hr(xe);
        case 245:
          return yt(xe);
        case 246:
          return Ce(xe);
        case 248:
          return _e(xe);
        case 249:
          return he(xe);
        case 250:
          return He(xe);
        case 251:
          return Xe(xe);
        case 252:
          return Ut(xe);
        case 253:
          return Sn(xe);
        case 254:
          return ue(xe);
        case 255:
          return mt(xe);
        default:
          return Ds(lt(xe, qe, wa));
      }
    }
    function cr(xe) {
      zt(xe) ? vn(xe.statements) : Ds(lt(xe, qe, wa));
    }
    function Pi(xe) {
      Ds(lt(xe, qe, wa));
    }
    function hi(xe) {
      for (const oe of xe.declarations) {
        const ut = t.cloneNode(oe.name);
        Hc(ut, oe.name), c(ut);
      }
      const Dt = ik(xe), Nn = Dt.length;
      let Xi = 0, Lo = [];
      for (; Xi < Nn; ) {
        for (let oe = Xi; oe < Nn; oe++) {
          const ut = Dt[oe];
          if (zt(ut.initializer) && Lo.length > 0)
            break;
          Lo.push(Rn(ut));
        }
        Lo.length && (Ds(t.createExpressionStatement(t.inlineExpressions(Lo))), Xi += Lo.length, Lo = []);
      }
    }
    function Rn(xe) {
      return fs(t.createAssignment(fs(t.cloneNode(xe.name), xe.name), D.checkDefined(lt(xe.initializer, qe, vt))), xe);
    }
    function an(xe) {
      if (zt(xe))
        if (zt(xe.thenStatement) || zt(xe.elseStatement)) {
          const Dt = Rt(), Nn = xe.elseStatement ? Rt() : void 0;
          rn(xe.elseStatement ? Nn : Dt, D.checkDefined(lt(xe.expression, qe, vt)), xe.expression), Wt(xe.thenStatement), xe.elseStatement && (el(Dt), gt(Nn), Wt(xe.elseStatement)), gt(Dt);
        } else
          Ds(lt(xe, qe, wa));
      else
        Ds(lt(xe, qe, wa));
    }
    function Pn(xe) {
      if (zt(xe)) {
        const Dt = Rt(), Nn = Rt();
        Hi(Dt), gt(Nn), Wt(xe.statement), gt(Dt), Ks(Nn, D.checkDefined(lt(xe.expression, qe, vt))), Xr();
      } else
        Ds(lt(xe, qe, wa));
    }
    function Ar(xe) {
      return I ? (ua(), xe = Bn(xe, qe, e), Xr(), xe) : Bn(xe, qe, e);
    }
    function Hr(xe) {
      if (zt(xe)) {
        const Dt = Rt(), Nn = Hi(Dt);
        gt(Dt), rn(Nn, D.checkDefined(lt(xe.expression, qe, vt))), Wt(xe.statement), el(Dt), Xr();
      } else
        Ds(lt(xe, qe, wa));
    }
    function we(xe) {
      return I ? (ua(), xe = Bn(xe, qe, e), Xr(), xe) : Bn(xe, qe, e);
    }
    function yt(xe) {
      if (zt(xe)) {
        const Dt = Rt(), Nn = Rt(), Xi = Hi(Nn);
        if (xe.initializer) {
          const Lo = xe.initializer;
          Uu(Lo) ? hi(Lo) : Ds(ht(t.createExpressionStatement(D.checkDefined(lt(Lo, qe, vt))), Lo));
        }
        gt(Dt), xe.condition && rn(Xi, D.checkDefined(lt(xe.condition, qe, vt))), Wt(xe.statement), gt(Nn), xe.incrementor && Ds(ht(t.createExpressionStatement(D.checkDefined(lt(xe.incrementor, qe, vt))), xe.incrementor)), el(Dt), Xr();
      } else
        Ds(lt(xe, qe, wa));
    }
    function Nt(xe) {
      I && ua();
      const Dt = xe.initializer;
      if (Dt && Uu(Dt)) {
        for (const Xi of Dt.declarations)
          c(Xi.name);
        const Nn = ik(Dt);
        xe = t.updateForStatement(xe, Nn.length > 0 ? t.inlineExpressions(jt(Nn, Rn)) : void 0, lt(xe.condition, qe, vt), lt(xe.incrementor, qe, vt), b_(xe.statement, qe, e));
      } else
        xe = Bn(xe, qe, e);
      return I && Xr(), xe;
    }
    function Ce(xe) {
      if (zt(xe)) {
        const Dt = q(), Nn = q(), Xi = q(), Lo = t.createLoopVariable(), oe = xe.initializer;
        c(Lo), hl(Dt, D.checkDefined(lt(xe.expression, qe, vt))), hl(Nn, t.createArrayLiteralExpression()), Ds(t.createForInStatement(Xi, Dt, t.createExpressionStatement(t.createCallExpression(t.createPropertyAccessExpression(Nn, "push"), void 0, [Xi])))), hl(Lo, t.createNumericLiteral(0));
        const ut = Rt(), Mt = Rt(), Pt = Hi(Mt);
        gt(ut), rn(Pt, t.createLessThan(Lo, t.createPropertyAccessExpression(Nn, "length"))), hl(Xi, t.createElementAccessExpression(Nn, Lo)), rn(Mt, t.createBinaryExpression(Xi, 101, Dt));
        let un;
        if (Uu(oe)) {
          for (const Vn of oe.declarations)
            c(Vn.name);
          un = t.cloneNode(oe.declarations[0].name);
        } else
          un = D.checkDefined(lt(oe, qe, vt)), D.assert(Td(un));
        hl(un, Xi), Wt(xe.statement), gt(Mt), Ds(t.createExpressionStatement(t.createPostfixIncrement(Lo))), el(ut), Xr();
      } else
        Ds(lt(xe, qe, wa));
    }
    function pt(xe) {
      I && ua();
      const Dt = xe.initializer;
      if (Uu(Dt)) {
        for (const Nn of Dt.declarations)
          c(Nn.name);
        xe = t.updateForInStatement(xe, Dt.declarations[0].name, D.checkDefined(lt(xe.expression, qe, vt)), D.checkDefined(lt(xe.statement, qe, wa, t.liftToBlock)));
      } else
        xe = Bn(xe, qe, e);
      return I && Xr(), xe;
    }
    function _e(xe) {
      const Dt = La(xe.label ? Mr(xe.label) : void 0);
      Dt > 0 ? el(Dt, xe) : Ds(xe);
    }
    function ie(xe) {
      if (I) {
        const Dt = La(xe.label && Mr(xe.label));
        if (Dt > 0)
          return tu(Dt, xe);
      }
      return Bn(xe, qe, e);
    }
    function he(xe) {
      const Dt = Co(xe.label ? Mr(xe.label) : void 0);
      Dt > 0 ? el(Dt, xe) : Ds(xe);
    }
    function j(xe) {
      if (I) {
        const Dt = Co(xe.label && Mr(xe.label));
        if (Dt > 0)
          return tu(Dt, xe);
      }
      return Bn(xe, qe, e);
    }
    function He(xe) {
      Wu(lt(xe.expression, qe, vt), xe);
    }
    function Ze(xe) {
      return qd(lt(xe.expression, qe, vt), xe);
    }
    function Xe(xe) {
      zt(xe) ? (Ai(Re(D.checkDefined(lt(xe.expression, qe, vt)))), Wt(xe.statement), Ci()) : Ds(lt(xe, qe, wa));
    }
    function Ut(xe) {
      if (zt(xe.caseBlock)) {
        const Dt = xe.caseBlock, Nn = Dt.clauses.length, Xi = _i(), Lo = Re(D.checkDefined(lt(xe.expression, qe, vt))), oe = [];
        let ut = -1;
        for (let un = 0; un < Nn; un++) {
          const Vn = Dt.clauses[un];
          oe.push(Rt()), Vn.kind === 293 && ut === -1 && (ut = un);
        }
        let Mt = 0, Pt = [];
        for (; Mt < Nn; ) {
          let un = 0;
          for (let Vn = Mt; Vn < Nn; Vn++) {
            const Rr = Dt.clauses[Vn];
            if (Rr.kind === 292) {
              if (zt(Rr.expression) && Pt.length > 0)
                break;
              Pt.push(t.createCaseClause(D.checkDefined(lt(Rr.expression, qe, vt)), [
                tu(oe[Vn], Rr.expression)
              ]));
            } else
              un++;
          }
          Pt.length && (Ds(t.createSwitchStatement(Lo, t.createCaseBlock(Pt))), Mt += Pt.length, Pt = []), un > 0 && (Mt += un, un = 0);
        }
        ut >= 0 ? el(oe[ut]) : el(Xi);
        for (let un = 0; un < Nn; un++)
          gt(oe[un]), vn(Dt.clauses[un].statements);
        da();
      } else
        Ds(lt(xe, qe, wa));
    }
    function cn(xe) {
      return I && ss(), xe = Bn(xe, qe, e), I && da(), xe;
    }
    function Sn(xe) {
      zt(xe) ? (pa(Mr(xe.label)), Wt(xe.statement), ec()) : Ds(lt(xe, qe, wa));
    }
    function Er(xe) {
      return I && wn(Mr(xe.label)), xe = Bn(xe, qe, e), I && ec(), xe;
    }
    function ue(xe) {
      var Dt;
      fe(D.checkDefined(lt((Dt = xe.expression) != null ? Dt : t.createVoidZero(), qe, vt)), xe);
    }
    function mt(xe) {
      zt(xe) ? (ji(), Wt(xe.tryBlock), xe.catchClause && (mo(xe.catchClause.variableDeclaration), Wt(xe.catchClause.block)), xe.finallyBlock && (To(), Wt(xe.finallyBlock)), io()) : Ds(Bn(xe, qe, e));
    }
    function zt(xe) {
      return !!xe && (xe.transformFlags & 1048576) !== 0;
    }
    function it(xe) {
      const Dt = xe.length;
      for (let Nn = 0; Nn < Dt; Nn++)
        if (zt(xe[Nn]))
          return Nn;
      return -1;
    }
    function K(xe, Dt) {
      return Dt = h(xe, Dt), xe === 1 ? Pe(Dt) : Dt;
    }
    function Pe(xe) {
      return je(xe) ? Z(xe) : xe;
    }
    function Z(xe) {
      if (!Sl(xe) && E && E.has(Mr(xe))) {
        const Dt = Tl(xe);
        if (je(Dt) && Dt.parent) {
          const Nn = y.getReferencedValueDeclaration(Dt);
          if (Nn) {
            const Xi = A[kl(Nn)];
            if (Xi) {
              const Lo = Vo(ht(t.cloneNode(Xi), Xi), Xi.parent);
              return fs(Lo, xe), Hc(Lo, xe), Lo;
            }
          }
        }
      }
      return xe;
    }
    function Re(xe) {
      if (Sl(xe) || vo(xe) & 8192)
        return xe;
      const Dt = t.createTempVariable(c);
      return hl(Dt, xe, xe), Dt;
    }
    function q(xe) {
      const Dt = xe ? t.createUniqueName(xe) : t.createTempVariable(void 0);
      return c(Dt), Dt;
    }
    function Rt() {
      H || (H = []);
      const xe = X;
      return X++, H[xe] = -1, xe;
    }
    function gt(xe) {
      D.assert(H !== void 0, "No labels were defined."), H[xe] = Y ? Y.length : 0;
    }
    function ft(xe) {
      O || (O = [], G = [], k = [], V = []);
      const Dt = G.length;
      return G[Dt] = 0, k[Dt] = Y ? Y.length : 0, O[Dt] = xe, V.push(xe), Dt;
    }
    function _n() {
      const xe = $n();
      if (xe === void 0)
        return D.fail("beginBlock was never called.");
      const Dt = G.length;
      return G[Dt] = 1, k[Dt] = Y ? Y.length : 0, O[Dt] = xe, V.pop(), xe;
    }
    function $n() {
      return tl(V);
    }
    function oi() {
      const xe = $n();
      return xe && xe.kind;
    }
    function Ai(xe) {
      const Dt = Rt(), Nn = Rt();
      gt(Dt), ft({
        kind: 1,
        expression: xe,
        startLabel: Dt,
        endLabel: Nn
      });
    }
    function Ci() {
      D.assert(oi() === 1);
      const xe = _n();
      gt(xe.endLabel);
    }
    function ji() {
      const xe = Rt(), Dt = Rt();
      return gt(xe), ft({
        kind: 0,
        state: 0,
        startLabel: xe,
        endLabel: Dt
      }), Jc(), Dt;
    }
    function mo(xe) {
      D.assert(oi() === 0);
      let Dt;
      if (Sl(xe.name))
        Dt = xe.name, c(xe.name);
      else {
        const oe = Mr(xe.name);
        Dt = q(oe), E || (E = /* @__PURE__ */ new Map(), A = [], e.enableSubstitution(79)), E.set(oe, !0), A[kl(xe)] = Dt;
      }
      const Nn = $n();
      D.assert(Nn.state < 1);
      const Xi = Nn.endLabel;
      el(Xi);
      const Lo = Rt();
      gt(Lo), Nn.state = 1, Nn.catchVariable = Dt, Nn.catchLabel = Lo, hl(Dt, t.createCallExpression(t.createPropertyAccessExpression(re, "sent"), void 0, [])), Jc();
    }
    function To() {
      D.assert(oi() === 0);
      const xe = $n();
      D.assert(xe.state < 2);
      const Dt = xe.endLabel;
      el(Dt);
      const Nn = Rt();
      gt(Nn), xe.state = 2, xe.finallyLabel = Nn;
    }
    function io() {
      D.assert(oi() === 0);
      const xe = _n();
      xe.state < 2 ? el(xe.endLabel) : It(), gt(xe.endLabel), Jc(), xe.state = 3;
    }
    function ua() {
      ft({
        kind: 3,
        isScript: !0,
        breakLabel: -1,
        continueLabel: -1
      });
    }
    function Hi(xe) {
      const Dt = Rt();
      return ft({
        kind: 3,
        isScript: !1,
        breakLabel: Dt,
        continueLabel: xe
      }), Dt;
    }
    function Xr() {
      D.assert(oi() === 3);
      const xe = _n(), Dt = xe.breakLabel;
      xe.isScript || gt(Dt);
    }
    function ss() {
      ft({
        kind: 2,
        isScript: !0,
        breakLabel: -1
      });
    }
    function _i() {
      const xe = Rt();
      return ft({
        kind: 2,
        isScript: !1,
        breakLabel: xe
      }), xe;
    }
    function da() {
      D.assert(oi() === 2);
      const xe = _n(), Dt = xe.breakLabel;
      xe.isScript || gt(Dt);
    }
    function wn(xe) {
      ft({
        kind: 4,
        isScript: !0,
        labelText: xe,
        breakLabel: -1
      });
    }
    function pa(xe) {
      const Dt = Rt();
      ft({
        kind: 4,
        isScript: !1,
        labelText: xe,
        breakLabel: Dt
      });
    }
    function ec() {
      D.assert(oi() === 4);
      const xe = _n();
      xe.isScript || gt(xe.breakLabel);
    }
    function rl(xe) {
      return xe.kind === 2 || xe.kind === 3;
    }
    function Gl(xe) {
      return xe.kind === 4;
    }
    function Xl(xe) {
      return xe.kind === 3;
    }
    function Ul(xe, Dt) {
      for (let Nn = Dt; Nn >= 0; Nn--) {
        const Xi = V[Nn];
        if (Gl(Xi)) {
          if (Xi.labelText === xe)
            return !0;
        } else
          break;
      }
      return !1;
    }
    function Co(xe) {
      if (V)
        if (xe)
          for (let Dt = V.length - 1; Dt >= 0; Dt--) {
            const Nn = V[Dt];
            if (Gl(Nn) && Nn.labelText === xe)
              return Nn.breakLabel;
            if (rl(Nn) && Ul(xe, Dt - 1))
              return Nn.breakLabel;
          }
        else
          for (let Dt = V.length - 1; Dt >= 0; Dt--) {
            const Nn = V[Dt];
            if (rl(Nn))
              return Nn.breakLabel;
          }
      return 0;
    }
    function La(xe) {
      if (V)
        if (xe)
          for (let Dt = V.length - 1; Dt >= 0; Dt--) {
            const Nn = V[Dt];
            if (Xl(Nn) && Ul(xe, Dt - 1))
              return Nn.continueLabel;
          }
        else
          for (let Dt = V.length - 1; Dt >= 0; Dt--) {
            const Nn = V[Dt];
            if (Xl(Nn))
              return Nn.continueLabel;
          }
      return 0;
    }
    function Yo(xe) {
      if (xe !== void 0 && xe > 0) {
        te === void 0 && (te = []);
        const Dt = t.createNumericLiteral(-1);
        return te[xe] === void 0 ? te[xe] = [Dt] : te[xe].push(Dt), Dt;
      }
      return t.createOmittedExpression();
    }
    function Vl(xe) {
      const Dt = t.createNumericLiteral(xe);
      return l7(Dt, 3, g3e(xe)), Dt;
    }
    function tu(xe, Dt) {
      return D.assertLessThan(0, xe, "Invalid label"), ht(t.createReturnStatement(t.createArrayLiteralExpression([
        Vl(3),
        Yo(xe)
      ])), Dt);
    }
    function qd(xe, Dt) {
      return ht(t.createReturnStatement(t.createArrayLiteralExpression(xe ? [Vl(2), xe] : [Vl(2)])), Dt);
    }
    function oc(xe) {
      return ht(t.createCallExpression(t.createPropertyAccessExpression(re, "sent"), void 0, []), xe);
    }
    function Jc() {
      Ht(0);
    }
    function Ds(xe) {
      xe ? Ht(1, [xe]) : Jc();
    }
    function hl(xe, Dt, Nn) {
      Ht(2, [xe, Dt], Nn);
    }
    function el(xe, Dt) {
      Ht(3, [xe], Dt);
    }
    function Ks(xe, Dt, Nn) {
      Ht(4, [xe, Dt], Nn);
    }
    function rn(xe, Dt, Nn) {
      Ht(5, [xe, Dt], Nn);
    }
    function jl(xe, Dt) {
      Ht(7, [xe], Dt);
    }
    function xu(xe, Dt) {
      Ht(6, [xe], Dt);
    }
    function Wu(xe, Dt) {
      Ht(8, [xe], Dt);
    }
    function fe(xe, Dt) {
      Ht(9, [xe], Dt);
    }
    function It() {
      Ht(10);
    }
    function Ht(xe, Dt, Nn) {
      Y === void 0 && (Y = [], P = [], de = []), H === void 0 && gt(Rt());
      const Xi = Y.length;
      Y[Xi] = xe, P[Xi] = Dt, de[Xi] = Nn;
    }
    function Q() {
      ye = 0, ae = 0, W = void 0, ce = !1, me = !1, ve = void 0, Te = void 0, ee = void 0, Qe = void 0, Ve = void 0;
      const xe = ot();
      return r().createGeneratorHelper(or(t.createFunctionExpression(void 0, void 0, void 0, void 0, [t.createParameterDeclaration(void 0, void 0, re)], void 0, t.createBlock(xe, xe.length > 0)), 1048576));
    }
    function ot() {
      if (Y) {
        for (let xe = 0; xe < Y.length; xe++)
          Ho(xe);
        mn(Y.length);
      } else
        mn(0);
      if (ve) {
        const xe = t.createPropertyAccessExpression(re, "label"), Dt = t.createSwitchStatement(xe, t.createCaseBlock(ve));
        return [Vu(Dt)];
      }
      return Te || [];
    }
    function xt() {
      Te && (Pr(!ce), ce = !1, me = !1, ae++);
    }
    function mn(xe) {
      Dr(xe) && (Ta(xe), Ve = void 0, _d(void 0, void 0)), Te && ve && Pr(!1), ls();
    }
    function Dr(xe) {
      if (!me)
        return !0;
      if (!H || !te)
        return !1;
      for (let Dt = 0; Dt < H.length; Dt++)
        if (H[Dt] === xe && te[Dt])
          return !0;
      return !1;
    }
    function Pr(xe) {
      if (ve || (ve = []), Te) {
        if (Ve)
          for (let Dt = Ve.length - 1; Dt >= 0; Dt--) {
            const Nn = Ve[Dt];
            Te = [t.createWithStatement(Nn.expression, t.createBlock(Te))];
          }
        if (Qe) {
          const { startLabel: Dt, catchLabel: Nn, finallyLabel: Xi, endLabel: Lo } = Qe;
          Te.unshift(t.createExpressionStatement(t.createCallExpression(t.createPropertyAccessExpression(t.createPropertyAccessExpression(re, "trys"), "push"), void 0, [
            t.createArrayLiteralExpression([
              Yo(Dt),
              Yo(Nn),
              Yo(Xi),
              Yo(Lo)
            ])
          ]))), Qe = void 0;
        }
        xe && Te.push(t.createExpressionStatement(t.createAssignment(t.createPropertyAccessExpression(re, "label"), t.createNumericLiteral(ae + 1))));
      }
      ve.push(t.createCaseClause(t.createNumericLiteral(ae), Te || [])), Te = void 0;
    }
    function Ta(xe) {
      if (H)
        for (let Dt = 0; Dt < H.length; Dt++)
          H[Dt] === xe && (xt(), W === void 0 && (W = []), W[ae] === void 0 ? W[ae] = [Dt] : W[ae].push(Dt));
    }
    function ls() {
      if (te !== void 0 && W !== void 0)
        for (let xe = 0; xe < W.length; xe++) {
          const Dt = W[xe];
          if (Dt !== void 0)
            for (const Nn of Dt) {
              const Xi = te[Nn];
              if (Xi !== void 0)
                for (const Lo of Xi)
                  Lo.text = String(xe);
            }
        }
    }
    function ho(xe) {
      if (O)
        for (; ye < G.length && k[ye] <= xe; ye++) {
          const Dt = O[ye], Nn = G[ye];
          switch (Dt.kind) {
            case 0:
              Nn === 0 ? (ee || (ee = []), Te || (Te = []), ee.push(Qe), Qe = Dt) : Nn === 1 && (Qe = ee.pop());
              break;
            case 1:
              Nn === 0 ? (Ve || (Ve = []), Ve.push(Dt)) : Nn === 1 && Ve.pop();
              break;
          }
        }
    }
    function Ho(xe) {
      if (Ta(xe), ho(xe), ce)
        return;
      ce = !1, me = !1;
      const Dt = Y[xe];
      if (Dt === 0)
        return;
      if (Dt === 10)
        return Nf();
      const Nn = P[xe];
      if (Dt === 1)
        return Ya(Nn[0]);
      const Xi = de[xe];
      switch (Dt) {
        case 2:
          return dl(Nn[0], Nn[1], Xi);
        case 3:
          return Es(Nn[0], Xi);
        case 4:
          return ds(Nn[0], Nn[1], Xi);
        case 5:
          return fl(Nn[0], Nn[1], Xi);
        case 6:
          return Jd(Nn[0], Xi);
        case 7:
          return Hl(Nn[0], Xi);
        case 8:
          return _d(Nn[0], Xi);
        case 9:
          return dc(Nn[0], Xi);
      }
    }
    function Ya(xe) {
      xe && (Te ? Te.push(xe) : Te = [xe]);
    }
    function dl(xe, Dt, Nn) {
      Ya(ht(t.createExpressionStatement(t.createAssignment(xe, Dt)), Nn));
    }
    function dc(xe, Dt) {
      ce = !0, me = !0, Ya(ht(t.createThrowStatement(xe), Dt));
    }
    function _d(xe, Dt) {
      ce = !0, me = !0, Ya(or(ht(t.createReturnStatement(t.createArrayLiteralExpression(xe ? [Vl(2), xe] : [Vl(2)])), Dt), 768));
    }
    function Es(xe, Dt) {
      ce = !0, Ya(or(ht(t.createReturnStatement(t.createArrayLiteralExpression([
        Vl(3),
        Yo(xe)
      ])), Dt), 768));
    }
    function ds(xe, Dt, Nn) {
      Ya(or(t.createIfStatement(Dt, or(ht(t.createReturnStatement(t.createArrayLiteralExpression([
        Vl(3),
        Yo(xe)
      ])), Nn), 768)), 1));
    }
    function fl(xe, Dt, Nn) {
      Ya(or(t.createIfStatement(t.createLogicalNot(Dt), or(ht(t.createReturnStatement(t.createArrayLiteralExpression([
        Vl(3),
        Yo(xe)
      ])), Nn), 768)), 1));
    }
    function Jd(xe, Dt) {
      ce = !0, Ya(or(ht(t.createReturnStatement(t.createArrayLiteralExpression(xe ? [Vl(4), xe] : [Vl(4)])), Dt), 768));
    }
    function Hl(xe, Dt) {
      ce = !0, Ya(or(ht(t.createReturnStatement(t.createArrayLiteralExpression([
        Vl(5),
        xe
      ])), Dt), 768));
    }
    function Nf() {
      ce = !0, Ya(t.createReturnStatement(t.createArrayLiteralExpression([
        Vl(7)
      ])));
    }
  }
  var y3e = C({
    "src/compiler/transformers/generators.ts"() {
      Oa();
    }
  });
  function EX(e) {
    function t(ie) {
      switch (ie) {
        case 2:
          return P;
        case 3:
          return de;
        default:
          return Y;
      }
    }
    const {
      factory: r,
      getEmitHelperFactory: i,
      startLexicalEnvironment: o,
      endLexicalEnvironment: s,
      hoistVariableDeclaration: c
    } = e, f = e.getCompilerOptions(), d = e.getEmitResolver(), y = e.getEmitHost(), h = ts(f), E = au(f), A = e.onSubstituteNode, L = e.onEmitNode;
    e.onSubstituteNode = Ar, e.onEmitNode = Pn, e.enableSubstitution(210), e.enableSubstitution(212), e.enableSubstitution(79), e.enableSubstitution(223), e.enableSubstitution(300), e.enableEmitNotification(308);
    const I = [], O = [];
    let k, G;
    const V = [];
    let H;
    return X_(e, te);
    function te(ie) {
      if (ie.isDeclarationFile || !(QS(ie, f) || ie.transformFlags & 8388608 || p_(ie) && G3(f) && qs(f)))
        return ie;
      k = ie, G = lX(e, ie, d, f), I[kl(ie)] = G;
      const j = t(E)(ie);
      return k = void 0, G = void 0, H = !1, j;
    }
    function X() {
      return !!(!G.exportEquals && Zl(k));
    }
    function Y(ie) {
      o();
      const he = [], j = y_(f, "alwaysStrict") || !f.noImplicitUseStrict && Zl(k), He = r.copyPrologue(ie.statements, he, j && !p_(ie), ce);
      if (X() && Fn(he, Pi()), Le(G.exportedNames))
        for (let Ut = 0; Ut < G.exportedNames.length; Ut += 50)
          Fn(he, r.createExpressionStatement(Ru(G.exportedNames.slice(Ut, Ut + 50), (cn, Sn) => r.createAssignment(r.createPropertyAccessExpression(r.createIdentifier("exports"), r.createIdentifier(Mr(Sn))), cn), r.createVoidZero())));
      Fn(he, lt(G.externalHelpersImportDeclaration, ce, wa)), Ti(he, Jn(ie.statements, ce, wa, He)), W(he, !1), Pm(he, s());
      const Ze = r.updateSourceFile(ie, ht(r.createNodeArray(he), ie.statements));
      return Ey(Ze, e.readEmitHelpers()), Ze;
    }
    function P(ie) {
      const he = r.createIdentifier("define"), j = WO(r, ie, y, f), He = p_(ie) && ie, { aliasedModuleNames: Ze, unaliasedModuleNames: Xe, importAliasNames: Ut } = re(ie, !0), cn = r.updateSourceFile(ie, ht(r.createNodeArray([
        r.createExpressionStatement(r.createCallExpression(he, void 0, [
          ...j ? [j] : [],
          r.createArrayLiteralExpression(He ? rt : [
            r.createStringLiteral("require"),
            r.createStringLiteral("exports"),
            ...Ze,
            ...Xe
          ]),
          He ? He.statements.length ? He.statements[0].expression : r.createObjectLiteralExpression() : r.createFunctionExpression(void 0, void 0, void 0, void 0, [
            r.createParameterDeclaration(void 0, void 0, "require"),
            r.createParameterDeclaration(void 0, void 0, "exports"),
            ...Ut
          ], void 0, ae(ie))
        ]))
      ]), ie.statements));
      return Ey(cn, e.readEmitHelpers()), cn;
    }
    function de(ie) {
      const { aliasedModuleNames: he, unaliasedModuleNames: j, importAliasNames: He } = re(ie, !1), Ze = WO(r, ie, y, f), Xe = r.createFunctionExpression(void 0, void 0, void 0, void 0, [r.createParameterDeclaration(void 0, void 0, "factory")], void 0, ht(r.createBlock([
        r.createIfStatement(r.createLogicalAnd(r.createTypeCheck(r.createIdentifier("module"), "object"), r.createTypeCheck(r.createPropertyAccessExpression(r.createIdentifier("module"), "exports"), "object")), r.createBlock([
          r.createVariableStatement(void 0, [
            r.createVariableDeclaration("v", void 0, void 0, r.createCallExpression(r.createIdentifier("factory"), void 0, [
              r.createIdentifier("require"),
              r.createIdentifier("exports")
            ]))
          ]),
          or(r.createIfStatement(r.createStrictInequality(r.createIdentifier("v"), r.createIdentifier("undefined")), r.createExpressionStatement(r.createAssignment(r.createPropertyAccessExpression(r.createIdentifier("module"), "exports"), r.createIdentifier("v")))), 1)
        ]), r.createIfStatement(r.createLogicalAnd(r.createTypeCheck(r.createIdentifier("define"), "function"), r.createPropertyAccessExpression(r.createIdentifier("define"), "amd")), r.createBlock([
          r.createExpressionStatement(r.createCallExpression(r.createIdentifier("define"), void 0, [
            ...Ze ? [Ze] : [],
            r.createArrayLiteralExpression([
              r.createStringLiteral("require"),
              r.createStringLiteral("exports"),
              ...he,
              ...j
            ]),
            r.createIdentifier("factory")
          ]))
        ])))
      ], !0), void 0)), Ut = r.updateSourceFile(ie, ht(r.createNodeArray([
        r.createExpressionStatement(r.createCallExpression(Xe, void 0, [
          r.createFunctionExpression(void 0, void 0, void 0, void 0, [
            r.createParameterDeclaration(void 0, void 0, "require"),
            r.createParameterDeclaration(void 0, void 0, "exports"),
            ...He
          ], void 0, ae(ie))
        ]))
      ]), ie.statements));
      return Ey(Ut, e.readEmitHelpers()), Ut;
    }
    function re(ie, he) {
      const j = [], He = [], Ze = [];
      for (const Xe of ie.amdDependencies)
        Xe.name ? (j.push(r.createStringLiteral(Xe.path)), Ze.push(r.createParameterDeclaration(void 0, void 0, Xe.name))) : He.push(r.createStringLiteral(Xe.path));
      for (const Xe of G.externalImports) {
        const Ut = Px(r, Xe, k, y, d, f), cn = kC(r, Xe, k);
        Ut && (he && cn ? (or(cn, 8), j.push(Ut), Ze.push(r.createParameterDeclaration(void 0, void 0, cn))) : He.push(Ut));
      }
      return { aliasedModuleNames: j, unaliasedModuleNames: He, importAliasNames: Ze };
    }
    function ye(ie) {
      if (su(ie) || eu(ie) || !Px(r, ie, k, y, d, f))
        return;
      const he = kC(r, ie, k), j = Et(ie, he);
      if (j !== he)
        return r.createExpressionStatement(r.createAssignment(he, j));
    }
    function ae(ie) {
      o();
      const he = [], j = r.copyPrologue(ie.statements, he, !f.noImplicitUseStrict, ce);
      X() && Fn(he, Pi()), Le(G.exportedNames) && Fn(he, r.createExpressionStatement(Ru(G.exportedNames, (Ze, Xe) => r.createAssignment(r.createPropertyAccessExpression(r.createIdentifier("exports"), r.createIdentifier(Mr(Xe))), Ze), r.createVoidZero()))), Fn(he, lt(G.externalHelpersImportDeclaration, ce, wa)), E === 2 && Ti(he, ia(G.externalImports, ye)), Ti(he, Jn(ie.statements, ce, wa, j)), W(he, !0), Pm(he, s());
      const He = r.createBlock(he, !0);
      return H && gx(He, khe), He;
    }
    function W(ie, he) {
      if (G.exportEquals) {
        const j = lt(G.exportEquals.expression, ve, vt);
        if (j)
          if (he) {
            const He = r.createReturnStatement(j);
            ht(He, G.exportEquals), or(He, 3840), ie.push(He);
          } else {
            const He = r.createExpressionStatement(r.createAssignment(r.createPropertyAccessExpression(r.createIdentifier("module"), "exports"), j));
            ht(He, G.exportEquals), or(He, 3072), ie.push(He);
          }
      }
    }
    function ce(ie) {
      switch (ie.kind) {
        case 269:
          return Vt(ie);
        case 268:
          return at(ie);
        case 275:
          return sn(ie);
        case 274:
          return Qt(ie);
        case 240:
          return In(ie);
        case 259:
          return On(ie);
        case 260:
          return jn(ie);
        case 358:
          return Ii(ie);
        case 359:
          return Qi(ie);
        default:
          return ve(ie);
      }
    }
    function me(ie, he) {
      if (!(ie.transformFlags & 276828160))
        return ie;
      switch (ie.kind) {
        case 245:
          return Ve(ie);
        case 241:
          return Be(ie);
        case 214:
          return qe(ie, he);
        case 356:
          return Oe(ie, he);
        case 210:
          if (lf(ie) && k.impliedNodeFormat === void 0)
            return Ye(ie);
          break;
        case 223:
          if (vy(ie))
            return Qe(ie, he);
          break;
        case 221:
        case 222:
          return Me(ie, he);
      }
      return Bn(ie, ve, e);
    }
    function ve(ie) {
      return me(ie, !1);
    }
    function Te(ie) {
      return me(ie, !0);
    }
    function ee(ie) {
      if (Ls(ie))
        for (const he of ie.properties)
          switch (he.kind) {
            case 299:
              if (ee(he.initializer))
                return !0;
              break;
            case 300:
              if (ee(he.name))
                return !0;
              break;
            case 301:
              if (ee(he.expression))
                return !0;
              break;
            case 171:
            case 174:
            case 175:
              return !1;
            default:
              D.assertNever(he, "Unhandled object member kind");
          }
      else if (Bu(ie)) {
        for (const he of ie.elements)
          if (Lh(he)) {
            if (ee(he.expression))
              return !0;
          } else if (ee(he))
            return !0;
      } else if (je(ie))
        return Le(_e(ie)) > ($7(ie) ? 1 : 0);
      return !1;
    }
    function Qe(ie, he) {
      return ee(ie.left) ? FT(ie, ve, e, 0, !he, Zt) : Bn(ie, ve, e);
    }
    function Ve(ie) {
      return r.updateForStatement(ie, lt(ie.initializer, Te, Jp), lt(ie.condition, ve, vt), lt(ie.incrementor, Te, vt), b_(ie.statement, ve, e));
    }
    function Be(ie) {
      return r.updateExpressionStatement(ie, lt(ie.expression, Te, vt));
    }
    function qe(ie, he) {
      return r.updateParenthesizedExpression(ie, lt(ie.expression, he ? Te : ve, vt));
    }
    function Oe(ie, he) {
      return r.updatePartiallyEmittedExpression(ie, lt(ie.expression, he ? Te : ve, vt));
    }
    function Me(ie, he) {
      if ((ie.operator === 45 || ie.operator === 46) && je(ie.operand) && !Sl(ie.operand) && !Uv(ie.operand) && !$N(ie.operand)) {
        const j = _e(ie.operand);
        if (j) {
          let He, Ze = lt(ie.operand, ve, vt);
          Bv(ie) ? Ze = r.updatePrefixUnaryExpression(ie, Ze) : (Ze = r.updatePostfixUnaryExpression(ie, Ze), he || (He = r.createTempVariable(c), Ze = r.createAssignment(He, Ze), ht(Ze, ie)), Ze = r.createComma(Ze, r.cloneNode(ie.operand)), ht(Ze, ie));
          for (const Xe of j)
            V[ps(Ze)] = !0, Ze = Rn(Xe, Ze), ht(Ze, ie);
          return He && (V[ps(Ze)] = !0, Ze = r.createComma(Ze, He), ht(Ze, ie)), Ze;
        }
      }
      return Bn(ie, ve, e);
    }
    function Ye(ie) {
      if (E === 0 && h >= 7)
        return Bn(ie, ve, e);
      const he = Px(r, ie, k, y, d, f), j = lt(Yc(ie.arguments), ve, vt), He = he && (!j || !jo(j) || j.text !== he.text) ? he : j, Ze = !!(ie.transformFlags & 16384);
      switch (f.module) {
        case 2:
          return Fe(He, Ze);
        case 3:
          return We(He ?? r.createVoidZero(), Ze);
        case 1:
        default:
          return st(He);
      }
    }
    function We(ie, he) {
      if (H = !0, G1(ie)) {
        const j = Sl(ie) ? ie : jo(ie) ? r.createStringLiteralFromNode(ie) : or(ht(r.cloneNode(ie), ie), 3072);
        return r.createConditionalExpression(r.createIdentifier("__syncRequire"), void 0, st(ie), void 0, Fe(j, he));
      } else {
        const j = r.createTempVariable(c);
        return r.createComma(r.createAssignment(j, ie), r.createConditionalExpression(r.createIdentifier("__syncRequire"), void 0, st(j, !0), void 0, Fe(j, he)));
      }
    }
    function Fe(ie, he) {
      const j = r.createUniqueName("resolve"), He = r.createUniqueName("reject"), Ze = [
        r.createParameterDeclaration(void 0, void 0, j),
        r.createParameterDeclaration(void 0, void 0, He)
      ], Xe = r.createBlock([
        r.createExpressionStatement(r.createCallExpression(r.createIdentifier("require"), void 0, [r.createArrayLiteralExpression([ie || r.createOmittedExpression()]), j, He]))
      ]);
      let Ut;
      h >= 2 ? Ut = r.createArrowFunction(void 0, void 0, Ze, void 0, void 0, Xe) : (Ut = r.createFunctionExpression(void 0, void 0, void 0, void 0, Ze, void 0, Xe), he && or(Ut, 16));
      const cn = r.createNewExpression(r.createIdentifier("Promise"), void 0, [Ut]);
      return H_(f) ? r.createCallExpression(r.createPropertyAccessExpression(cn, r.createIdentifier("then")), void 0, [i().createImportStarCallbackHelper()]) : cn;
    }
    function st(ie, he) {
      const j = ie && !im(ie) && !he, He = r.createCallExpression(r.createPropertyAccessExpression(r.createIdentifier("Promise"), "resolve"), void 0, j ? h >= 2 ? [
        r.createTemplateExpression(r.createTemplateHead(""), [
          r.createTemplateSpan(ie, r.createTemplateTail(""))
        ])
      ] : [
        r.createCallExpression(r.createPropertyAccessExpression(r.createStringLiteral(""), "concat"), void 0, [ie])
      ] : []);
      let Ze = r.createCallExpression(r.createIdentifier("require"), void 0, j ? [r.createIdentifier("s")] : ie ? [ie] : []);
      H_(f) && (Ze = i().createImportStarHelper(Ze));
      const Xe = j ? [
        r.createParameterDeclaration(void 0, void 0, "s")
      ] : [];
      let Ut;
      return h >= 2 ? Ut = r.createArrowFunction(void 0, void 0, Xe, void 0, void 0, Ze) : Ut = r.createFunctionExpression(void 0, void 0, void 0, void 0, Xe, void 0, r.createBlock([r.createReturnStatement(Ze)])), r.createCallExpression(r.createPropertyAccessExpression(He, "then"), void 0, [Ut]);
    }
    function Ct(ie, he) {
      return !H_(f) || F_(ie) & 2 ? he : nhe(ie) ? i().createImportStarHelper(he) : he;
    }
    function Et(ie, he) {
      return !H_(f) || F_(ie) & 2 ? he : X5(ie) ? i().createImportStarHelper(he) : sX(ie) ? i().createImportDefaultHelper(he) : he;
    }
    function Vt(ie) {
      let he;
      const j = WA(ie);
      if (E !== 2)
        if (ie.importClause) {
          const He = [];
          j && !nx(ie) ? He.push(r.createVariableDeclaration(r.cloneNode(j.name), void 0, void 0, Et(ie, tt(ie)))) : (He.push(r.createVariableDeclaration(r.getGeneratedNameForNode(ie), void 0, void 0, Et(ie, tt(ie)))), j && nx(ie) && He.push(r.createVariableDeclaration(r.cloneNode(j.name), void 0, void 0, r.getGeneratedNameForNode(ie)))), he = Fn(he, Wr(ht(r.createVariableStatement(void 0, r.createVariableDeclarationList(He, h >= 2 ? 2 : 0)), ie), ie));
        } else
          return Wr(ht(r.createExpressionStatement(tt(ie)), ie), ie);
      else
        j && nx(ie) && (he = Fn(he, r.createVariableStatement(void 0, r.createVariableDeclarationList([
          Wr(ht(r.createVariableDeclaration(r.cloneNode(j.name), void 0, void 0, r.getGeneratedNameForNode(ie)), ie), ie)
        ], h >= 2 ? 2 : 0))));
      if ($i(ie)) {
        const He = kl(ie);
        O[He] = Or(O[He], ie);
      } else
        he = Or(he, ie);
      return Cm(he);
    }
    function tt(ie) {
      const he = Px(r, ie, k, y, d, f), j = [];
      return he && j.push(he), r.createCallExpression(r.createIdentifier("require"), void 0, j);
    }
    function at(ie) {
      D.assert(H0(ie), "import= for internal module references should be handled in an earlier transformer.");
      let he;
      if (E !== 2 ? Yr(ie, 1) ? he = Fn(he, Wr(ht(r.createExpressionStatement(Rn(ie.name, tt(ie))), ie), ie)) : he = Fn(he, Wr(ht(r.createVariableStatement(void 0, r.createVariableDeclarationList([
        r.createVariableDeclaration(r.cloneNode(ie.name), void 0, void 0, tt(ie))
      ], h >= 2 ? 2 : 0)), ie), ie)) : Yr(ie, 1) && (he = Fn(he, Wr(ht(r.createExpressionStatement(Rn(r.getExportName(ie), r.getLocalName(ie))), ie), ie))), $i(ie)) {
        const j = kl(ie);
        O[j] = At(O[j], ie);
      } else
        he = At(he, ie);
      return Cm(he);
    }
    function sn(ie) {
      if (!ie.moduleSpecifier)
        return;
      const he = r.getGeneratedNameForNode(ie);
      if (ie.exportClause && J_(ie.exportClause)) {
        const j = [];
        E !== 2 && j.push(Wr(ht(r.createVariableStatement(void 0, r.createVariableDeclarationList([
          r.createVariableDeclaration(he, void 0, void 0, tt(ie))
        ])), ie), ie));
        for (const He of ie.exportClause.elements)
          if (h === 0)
            j.push(Wr(ht(r.createExpressionStatement(i().createCreateBindingHelper(he, r.createStringLiteralFromNode(He.propertyName || He.name), He.propertyName ? r.createStringLiteralFromNode(He.name) : void 0)), He), He));
          else {
            const Ze = !!H_(f) && !(F_(ie) & 2) && Mr(He.propertyName || He.name) === "default", Xe = r.createPropertyAccessExpression(Ze ? i().createImportDefaultHelper(he) : he, He.propertyName || He.name);
            j.push(Wr(ht(r.createExpressionStatement(Rn(r.getExportName(He), Xe, void 0, !0)), He), He));
          }
        return Cm(j);
      } else if (ie.exportClause) {
        const j = [];
        return j.push(Wr(ht(r.createExpressionStatement(Rn(r.cloneNode(ie.exportClause.name), Ct(ie, E !== 2 ? tt(ie) : XM(ie) ? he : r.createIdentifier(Mr(ie.exportClause.name))))), ie), ie)), Cm(j);
      } else
        return Wr(ht(r.createExpressionStatement(i().createExportStarHelper(E !== 2 ? tt(ie) : he)), ie), ie);
    }
    function Qt(ie) {
      if (ie.isExportEquals)
        return;
      let he;
      const j = ie.original;
      if (j && $i(j)) {
        const He = kl(ie);
        O[He] = cr(O[He], r.createIdentifier("default"), lt(ie.expression, ve, vt), ie, !0);
      } else
        he = cr(he, r.createIdentifier("default"), lt(ie.expression, ve, vt), ie, !0);
      return Cm(he);
    }
    function On(ie) {
      let he;
      if (Yr(ie, 1) ? he = Fn(he, Wr(ht(r.createFunctionDeclaration(Jn(ie.modifiers, an, fo), ie.asteriskToken, r.getDeclarationName(ie, !0, !0), void 0, Jn(ie.parameters, ve, Ba), void 0, Bn(ie.body, ve, e)), ie), ie)) : he = Fn(he, Bn(ie, ve, e)), $i(ie)) {
        const j = kl(ie);
        O[j] = fn(O[j], ie);
      } else
        he = fn(he, ie);
      return Cm(he);
    }
    function jn(ie) {
      let he;
      if (Yr(ie, 1) ? he = Fn(he, Wr(ht(r.createClassDeclaration(Jn(ie.modifiers, an, nl), r.getDeclarationName(ie, !0, !0), void 0, Jn(ie.heritageClauses, ve, jd), Jn(ie.members, ve, Uc)), ie), ie)) : he = Fn(he, Bn(ie, ve, e)), $i(ie)) {
        const j = kl(ie);
        O[j] = fn(O[j], ie);
      } else
        he = fn(he, ie);
      return Cm(he);
    }
    function In(ie) {
      let he, j, He;
      if (Yr(ie, 1)) {
        let Ze, Xe = !1;
        for (const Ut of ie.declarationList.declarations)
          if (je(Ut.name) && Uv(Ut.name))
            if (Ze || (Ze = Jn(ie.modifiers, an, fo)), Ut.initializer) {
              const cn = r.updateVariableDeclaration(Ut, Ut.name, void 0, void 0, Rn(Ut.name, lt(Ut.initializer, ve, vt)));
              j = Fn(j, cn);
            } else
              j = Fn(j, Ut);
          else if (Ut.initializer)
            if (!Xa(Ut.name) && (Js(Ut.initializer) || Bs(Ut.initializer) || Gu(Ut.initializer))) {
              const cn = r.createAssignment(ht(r.createPropertyAccessExpression(r.createIdentifier("exports"), Ut.name), Ut.name), r.createIdentifier(U_(Ut.name))), Sn = r.createVariableDeclaration(Ut.name, Ut.exclamationToken, Ut.type, lt(Ut.initializer, ve, vt));
              j = Fn(j, Sn), He = Fn(He, cn), Xe = !0;
            } else
              He = Fn(He, _r(Ut));
        if (j && (he = Fn(he, r.updateVariableStatement(ie, Ze, r.updateVariableDeclarationList(ie.declarationList, j)))), He) {
          const Ut = Wr(ht(r.createExpressionStatement(r.inlineExpressions(He)), ie), ie);
          Xe && vO(Ut), he = Fn(he, Ut);
        }
      } else
        he = Fn(he, Bn(ie, ve, e));
      if ($i(ie)) {
        const Ze = kl(ie);
        O[Ze] = vn(O[Ze], ie);
      } else
        he = vn(he, ie);
      return Cm(he);
    }
    function Zt(ie, he, j) {
      const He = _e(ie);
      if (He) {
        let Ze = $7(ie) ? he : r.createAssignment(ie, he);
        for (const Xe of He)
          or(Ze, 8), Ze = Rn(Xe, Ze, j);
        return Ze;
      }
      return r.createAssignment(ie, he);
    }
    function _r(ie) {
      return Xa(ie.name) ? FT(lt(ie, ve, Zz), ve, e, 0, !1, Zt) : r.createAssignment(ht(r.createPropertyAccessExpression(r.createIdentifier("exports"), ie.name), ie.name), ie.initializer ? lt(ie.initializer, ve, vt) : r.createVoidZero());
    }
    function Ii(ie) {
      if ($i(ie) && ie.original.kind === 240) {
        const he = kl(ie);
        O[he] = vn(O[he], ie.original);
      }
      return ie;
    }
    function $i(ie) {
      return (vo(ie) & 8388608) !== 0;
    }
    function Qi(ie) {
      const he = kl(ie), j = O[he];
      return j ? (delete O[he], Fn(j, ie)) : ie;
    }
    function Or(ie, he) {
      if (G.exportEquals)
        return ie;
      const j = he.importClause;
      if (!j)
        return ie;
      j.name && (ie = rr(ie, j));
      const He = j.namedBindings;
      if (He)
        switch (He.kind) {
          case 271:
            ie = rr(ie, He);
            break;
          case 272:
            for (const Ze of He.elements)
              ie = rr(ie, Ze, !0);
            break;
        }
      return ie;
    }
    function At(ie, he) {
      return G.exportEquals ? ie : rr(ie, he);
    }
    function vn(ie, he) {
      if (G.exportEquals)
        return ie;
      for (const j of he.declarationList.declarations)
        ie = Wt(ie, j);
      return ie;
    }
    function Wt(ie, he) {
      if (G.exportEquals)
        return ie;
      if (Xa(he.name))
        for (const j of he.name.elements)
          Rc(j) || (ie = Wt(ie, j));
      else
        Sl(he.name) || (ie = rr(ie, he));
      return ie;
    }
    function fn(ie, he) {
      if (G.exportEquals)
        return ie;
      if (Yr(he, 1)) {
        const j = Yr(he, 1024) ? r.createIdentifier("default") : r.getDeclarationName(he);
        ie = cr(ie, j, r.getLocalName(he), he);
      }
      return he.name && (ie = rr(ie, he)), ie;
    }
    function rr(ie, he, j) {
      const He = r.getDeclarationName(he), Ze = G.exportSpecifiers.get(Mr(He));
      if (Ze)
        for (const Xe of Ze)
          ie = cr(ie, Xe.name, He, Xe.name, void 0, j);
      return ie;
    }
    function cr(ie, he, j, He, Ze, Xe) {
      return ie = Fn(ie, hi(he, j, He, Ze, Xe)), ie;
    }
    function Pi() {
      let ie;
      return h === 0 ? ie = r.createExpressionStatement(Rn(r.createIdentifier("__esModule"), r.createTrue())) : ie = r.createExpressionStatement(r.createCallExpression(r.createPropertyAccessExpression(r.createIdentifier("Object"), "defineProperty"), void 0, [
        r.createIdentifier("exports"),
        r.createStringLiteral("__esModule"),
        r.createObjectLiteralExpression([
          r.createPropertyAssignment("value", r.createTrue())
        ])
      ])), or(ie, 2097152), ie;
    }
    function hi(ie, he, j, He, Ze) {
      const Xe = ht(r.createExpressionStatement(Rn(ie, he, void 0, Ze)), j);
      return Vu(Xe), He || or(Xe, 3072), Xe;
    }
    function Rn(ie, he, j, He) {
      return ht(He && h !== 0 ? r.createCallExpression(r.createPropertyAccessExpression(r.createIdentifier("Object"), "defineProperty"), void 0, [
        r.createIdentifier("exports"),
        r.createStringLiteralFromNode(ie),
        r.createObjectLiteralExpression([
          r.createPropertyAssignment("enumerable", r.createTrue()),
          r.createPropertyAssignment("get", r.createFunctionExpression(void 0, void 0, void 0, void 0, [], void 0, r.createBlock([r.createReturnStatement(he)])))
        ])
      ]) : r.createAssignment(r.createPropertyAccessExpression(r.createIdentifier("exports"), r.cloneNode(ie)), he), j);
    }
    function an(ie) {
      switch (ie.kind) {
        case 93:
        case 88:
          return;
      }
      return ie;
    }
    function Pn(ie, he, j) {
      he.kind === 308 ? (k = he, G = I[kl(k)], L(ie, he, j), k = void 0, G = void 0) : L(ie, he, j);
    }
    function Ar(ie, he) {
      return he = A(ie, he), he.id && V[he.id] ? he : ie === 1 ? we(he) : t_(he) ? Hr(he) : he;
    }
    function Hr(ie) {
      const he = ie.name, j = Ce(he);
      if (j !== he) {
        if (ie.objectAssignmentInitializer) {
          const He = r.createAssignment(j, ie.objectAssignmentInitializer);
          return ht(r.createPropertyAssignment(he, He), ie);
        }
        return ht(r.createPropertyAssignment(he, j), ie);
      }
      return ie;
    }
    function we(ie) {
      switch (ie.kind) {
        case 79:
          return Ce(ie);
        case 210:
          return yt(ie);
        case 212:
          return Nt(ie);
        case 223:
          return pt(ie);
      }
      return ie;
    }
    function yt(ie) {
      if (je(ie.expression)) {
        const he = Ce(ie.expression);
        if (V[ps(he)] = !0, !je(he) && !(vo(ie.expression) & 8192))
          return hx(r.updateCallExpression(ie, he, void 0, ie.arguments), 16);
      }
      return ie;
    }
    function Nt(ie) {
      if (je(ie.tag)) {
        const he = Ce(ie.tag);
        if (V[ps(he)] = !0, !je(he) && !(vo(ie.tag) & 8192))
          return hx(r.updateTaggedTemplateExpression(ie, he, void 0, ie.template), 16);
      }
      return ie;
    }
    function Ce(ie) {
      var he, j;
      if (vo(ie) & 8192) {
        const He = HO(k);
        return He ? r.createPropertyAccessExpression(He, ie) : ie;
      } else if (!(Sl(ie) && !(ie.emitNode.autoGenerate.flags & 64)) && !Uv(ie)) {
        const He = d.getReferencedExportContainer(ie, $7(ie));
        if (He && He.kind === 308)
          return ht(r.createPropertyAccessExpression(r.createIdentifier("exports"), r.cloneNode(ie)), ie);
        const Ze = d.getReferencedImportDeclaration(ie);
        if (Ze) {
          if (Wm(Ze))
            return ht(r.createPropertyAccessExpression(r.getGeneratedNameForNode(Ze.parent), r.createIdentifier("default")), ie);
          if (Ld(Ze)) {
            const Xe = Ze.propertyName || Ze.name;
            return ht(r.createPropertyAccessExpression(r.getGeneratedNameForNode(((j = (he = Ze.parent) == null ? void 0 : he.parent) == null ? void 0 : j.parent) || Ze), r.cloneNode(Xe)), ie);
          }
        }
      }
      return ie;
    }
    function pt(ie) {
      if (yy(ie.operatorToken.kind) && je(ie.left) && !Sl(ie.left) && !Uv(ie.left) && !$N(ie.left)) {
        const he = _e(ie.left);
        if (he) {
          let j = ie;
          for (const He of he)
            V[ps(j)] = !0, j = Rn(He, j, ie);
          return j;
        }
      }
      return ie;
    }
    function _e(ie) {
      if (!Sl(ie)) {
        const he = d.getReferencedImportDeclaration(ie) || d.getReferencedValueDeclaration(ie);
        if (he)
          return G && G.exportedBindings[kl(he)];
      }
    }
  }
  var khe, v3e = C({
    "src/compiler/transformers/module/module.ts"() {
      Oa(), khe = {
        name: "typescript:dynamicimport-sync-require",
        scoped: !0,
        text: `
            var __syncRequire = typeof module === "object" && typeof module.exports === "object";`
      };
    }
  });
  function whe(e) {
    const {
      factory: t,
      startLexicalEnvironment: r,
      endLexicalEnvironment: i,
      hoistVariableDeclaration: o
    } = e, s = e.getCompilerOptions(), c = e.getEmitResolver(), f = e.getEmitHost(), d = e.onSubstituteNode, y = e.onEmitNode;
    e.onSubstituteNode = Ze, e.onEmitNode = He, e.enableSubstitution(79), e.enableSubstitution(300), e.enableSubstitution(223), e.enableSubstitution(233), e.enableEmitNotification(308);
    const h = [], E = [], A = [], L = [], I = [];
    let O, k, G, V, H, te, X;
    return X_(e, Y);
    function Y(K) {
      if (K.isDeclarationFile || !(QS(K, s) || K.transformFlags & 8388608))
        return K;
      const Pe = kl(K);
      O = K, te = K, k = h[Pe] = lX(e, K, c, s), G = t.createUniqueName("exports"), A[Pe] = G, V = I[Pe] = t.createUniqueName("context");
      const Z = P(k.externalImports), Re = de(K, Z), q = t.createFunctionExpression(void 0, void 0, void 0, void 0, [
        t.createParameterDeclaration(void 0, void 0, G),
        t.createParameterDeclaration(void 0, void 0, V)
      ], void 0, Re), Rt = WO(t, K, f, s), gt = t.createArrayLiteralExpression(jt(Z, (_n) => _n.name)), ft = or(t.updateSourceFile(K, ht(t.createNodeArray([
        t.createExpressionStatement(t.createCallExpression(t.createPropertyAccessExpression(t.createIdentifier("System"), "register"), void 0, Rt ? [Rt, gt, q] : [gt, q]))
      ]), K.statements)), 2048);
      return qs(s) || Ife(ft, Re, (_n) => !_n.scoped), X && (L[Pe] = X, X = void 0), O = void 0, k = void 0, G = void 0, V = void 0, H = void 0, te = void 0, ft;
    }
    function P(K) {
      const Pe = /* @__PURE__ */ new Map(), Z = [];
      for (const Re of K) {
        const q = Px(t, Re, O, f, c, s);
        if (q) {
          const Rt = q.text, gt = Pe.get(Rt);
          gt !== void 0 ? Z[gt].externalImports.push(Re) : (Pe.set(Rt, Z.length), Z.push({
            name: q,
            externalImports: [Re]
          }));
        }
      }
      return Z;
    }
    function de(K, Pe) {
      const Z = [];
      r();
      const Re = y_(s, "alwaysStrict") || !s.noImplicitUseStrict && Zl(O), q = t.copyPrologue(K.statements, Z, Re, W);
      Z.push(t.createVariableStatement(void 0, t.createVariableDeclarationList([
        t.createVariableDeclaration("__moduleName", void 0, void 0, t.createLogicalAnd(V, t.createPropertyAccessExpression(V, "id")))
      ]))), lt(k.externalHelpersImportDeclaration, W, wa);
      const Rt = Jn(K.statements, W, wa, q);
      Ti(Z, H), Pm(Z, i());
      const gt = re(Z), ft = K.transformFlags & 2097152 ? t.createModifiersFromModifierFlags(512) : void 0, _n = t.createObjectLiteralExpression([
        t.createPropertyAssignment("setters", ae(gt, Pe)),
        t.createPropertyAssignment("execute", t.createFunctionExpression(ft, void 0, void 0, void 0, [], void 0, t.createBlock(Rt, !0)))
      ], !0);
      return Z.push(t.createReturnStatement(_n)), t.createBlock(Z, !0);
    }
    function re(K) {
      if (!k.hasExportStarsToExportValues)
        return;
      if (!k.exportedNames && k.exportSpecifiers.size === 0) {
        let q = !1;
        for (const Rt of k.externalImports)
          if (Rt.kind === 275 && Rt.exportClause) {
            q = !0;
            break;
          }
        if (!q) {
          const Rt = ye(void 0);
          return K.push(Rt), Rt.name;
        }
      }
      const Pe = [];
      if (k.exportedNames)
        for (const q of k.exportedNames)
          q.escapedText !== "default" && Pe.push(t.createPropertyAssignment(t.createStringLiteralFromNode(q), t.createTrue()));
      const Z = t.createUniqueName("exportedNames");
      K.push(t.createVariableStatement(void 0, t.createVariableDeclarationList([
        t.createVariableDeclaration(Z, void 0, void 0, t.createObjectLiteralExpression(Pe, !0))
      ])));
      const Re = ye(Z);
      return K.push(Re), Re.name;
    }
    function ye(K) {
      const Pe = t.createUniqueName("exportStar"), Z = t.createIdentifier("m"), Re = t.createIdentifier("n"), q = t.createIdentifier("exports");
      let Rt = t.createStrictInequality(Re, t.createStringLiteral("default"));
      return K && (Rt = t.createLogicalAnd(Rt, t.createLogicalNot(t.createCallExpression(t.createPropertyAccessExpression(K, "hasOwnProperty"), void 0, [Re])))), t.createFunctionDeclaration(void 0, void 0, Pe, void 0, [t.createParameterDeclaration(void 0, void 0, Z)], void 0, t.createBlock([
        t.createVariableStatement(void 0, t.createVariableDeclarationList([
          t.createVariableDeclaration(q, void 0, void 0, t.createObjectLiteralExpression([]))
        ])),
        t.createForInStatement(t.createVariableDeclarationList([
          t.createVariableDeclaration(Re)
        ]), Z, t.createBlock([
          or(t.createIfStatement(Rt, t.createExpressionStatement(t.createAssignment(t.createElementAccessExpression(q, Re), t.createElementAccessExpression(Z, Re)))), 1)
        ])),
        t.createExpressionStatement(t.createCallExpression(G, void 0, [q]))
      ], !0));
    }
    function ae(K, Pe) {
      const Z = [];
      for (const Re of Pe) {
        const q = ze(Re.externalImports, (ft) => kC(t, ft, O)), Rt = q ? t.getGeneratedNameForNode(q) : t.createUniqueName(""), gt = [];
        for (const ft of Re.externalImports) {
          const _n = kC(t, ft, O);
          switch (ft.kind) {
            case 269:
              if (!ft.importClause)
                break;
            case 268:
              D.assert(_n !== void 0), gt.push(t.createExpressionStatement(t.createAssignment(_n, Rt))), Yr(ft, 1) && gt.push(t.createExpressionStatement(t.createCallExpression(G, void 0, [
                t.createStringLiteral(Mr(_n)),
                Rt
              ])));
              break;
            case 275:
              if (D.assert(_n !== void 0), ft.exportClause)
                if (J_(ft.exportClause)) {
                  const $n = [];
                  for (const oi of ft.exportClause.elements)
                    $n.push(t.createPropertyAssignment(t.createStringLiteral(Mr(oi.name)), t.createElementAccessExpression(Rt, t.createStringLiteral(Mr(oi.propertyName || oi.name)))));
                  gt.push(t.createExpressionStatement(t.createCallExpression(G, void 0, [t.createObjectLiteralExpression($n, !0)])));
                } else
                  gt.push(t.createExpressionStatement(t.createCallExpression(G, void 0, [
                    t.createStringLiteral(Mr(ft.exportClause.name)),
                    Rt
                  ])));
              else
                gt.push(t.createExpressionStatement(t.createCallExpression(K, void 0, [Rt])));
              break;
          }
        }
        Z.push(t.createFunctionExpression(void 0, void 0, void 0, void 0, [t.createParameterDeclaration(void 0, void 0, Rt)], void 0, t.createBlock(gt, !0)));
      }
      return t.createArrayLiteralExpression(Z, !0);
    }
    function W(K) {
      switch (K.kind) {
        case 269:
          return ce(K);
        case 268:
          return ve(K);
        case 275:
          return me(K);
        case 274:
          return Te(K);
        default:
          return Zt(K);
      }
    }
    function ce(K) {
      let Pe;
      if (K.importClause && o(kC(t, K, O)), st(K)) {
        const Z = kl(K);
        E[Z] = Et(E[Z], K);
      } else
        Pe = Et(Pe, K);
      return Cm(Pe);
    }
    function me(K) {
      D.assertIsDefined(K);
    }
    function ve(K) {
      D.assert(H0(K), "import= for internal module references should be handled in an earlier transformer.");
      let Pe;
      if (o(kC(t, K, O)), st(K)) {
        const Z = kl(K);
        E[Z] = Vt(E[Z], K);
      } else
        Pe = Vt(Pe, K);
      return Cm(Pe);
    }
    function Te(K) {
      if (K.isExportEquals)
        return;
      const Pe = lt(K.expression, Hr, vt), Z = K.original;
      if (Z && st(Z)) {
        const Re = kl(K);
        E[Re] = On(E[Re], t.createIdentifier("default"), Pe, !0);
      } else
        return jn(t.createIdentifier("default"), Pe, !0);
    }
    function ee(K) {
      if (Yr(K, 1) ? H = Fn(H, t.updateFunctionDeclaration(K, Jn(K.modifiers, j, nl), K.asteriskToken, t.getDeclarationName(K, !0, !0), void 0, Jn(K.parameters, Hr, Ba), void 0, lt(K.body, Hr, co))) : H = Fn(H, Bn(K, Hr, e)), st(K)) {
        const Pe = kl(K);
        E[Pe] = sn(E[Pe], K);
      } else
        H = sn(H, K);
    }
    function Qe(K) {
      let Pe;
      const Z = t.getLocalName(K);
      if (o(Z), Pe = Fn(Pe, ht(t.createExpressionStatement(t.createAssignment(Z, ht(t.createClassExpression(Jn(K.modifiers, j, nl), K.name, void 0, Jn(K.heritageClauses, Hr, jd), Jn(K.members, Hr, Uc)), K))), K)), st(K)) {
        const Re = kl(K);
        E[Re] = sn(E[Re], K);
      } else
        Pe = sn(Pe, K);
      return Cm(Pe);
    }
    function Ve(K) {
      if (!qe(K.declarationList))
        return lt(K, Hr, wa);
      let Pe;
      const Z = Yr(K, 1), Re = st(K);
      for (const Rt of K.declarationList.declarations)
        Rt.initializer ? Pe = Fn(Pe, Oe(Rt, Z && !Re)) : Be(Rt);
      let q;
      if (Pe && (q = Fn(q, ht(t.createExpressionStatement(t.inlineExpressions(Pe)), K))), Re) {
        const Rt = kl(K);
        E[Rt] = tt(E[Rt], K, Z);
      } else
        q = tt(q, K, !1);
      return Cm(q);
    }
    function Be(K) {
      if (Xa(K.name))
        for (const Pe of K.name.elements)
          Rc(Pe) || Be(Pe);
      else
        o(t.cloneNode(K.name));
    }
    function qe(K) {
      return (vo(K) & 4194304) === 0 && (te.kind === 308 || (Tl(K).flags & 3) === 0);
    }
    function Oe(K, Pe) {
      const Z = Pe ? Me : Ye;
      return Xa(K.name) ? FT(K, Hr, e, 0, !1, Z) : K.initializer ? Z(K.name, lt(K.initializer, Hr, vt)) : K.name;
    }
    function Me(K, Pe, Z) {
      return We(K, Pe, Z, !0);
    }
    function Ye(K, Pe, Z) {
      return We(K, Pe, Z, !1);
    }
    function We(K, Pe, Z, Re) {
      return o(t.cloneNode(K)), Re ? In(K, zt(ht(t.createAssignment(K, Pe), Z))) : zt(ht(t.createAssignment(K, Pe), Z));
    }
    function Fe(K) {
      if (st(K) && K.original.kind === 240) {
        const Pe = kl(K), Z = Yr(K.original, 1);
        E[Pe] = tt(E[Pe], K.original, Z);
      }
      return K;
    }
    function st(K) {
      return (vo(K) & 8388608) !== 0;
    }
    function Ct(K) {
      const Pe = kl(K), Z = E[Pe];
      if (Z)
        return delete E[Pe], Fn(Z, K);
      {
        const Re = Tl(K);
        if (ZR(Re))
          return Fn(Qt(Z, Re), K);
      }
      return K;
    }
    function Et(K, Pe) {
      if (k.exportEquals)
        return K;
      const Z = Pe.importClause;
      if (!Z)
        return K;
      Z.name && (K = Qt(K, Z));
      const Re = Z.namedBindings;
      if (Re)
        switch (Re.kind) {
          case 271:
            K = Qt(K, Re);
            break;
          case 272:
            for (const q of Re.elements)
              K = Qt(K, q);
            break;
        }
      return K;
    }
    function Vt(K, Pe) {
      return k.exportEquals ? K : Qt(K, Pe);
    }
    function tt(K, Pe, Z) {
      if (k.exportEquals)
        return K;
      for (const Re of Pe.declarationList.declarations)
        (Re.initializer || Z) && (K = at(K, Re, Z));
      return K;
    }
    function at(K, Pe, Z) {
      if (k.exportEquals)
        return K;
      if (Xa(Pe.name))
        for (const Re of Pe.name.elements)
          Rc(Re) || (K = at(K, Re, Z));
      else if (!Sl(Pe.name)) {
        let Re;
        Z && (K = On(K, Pe.name, t.getLocalName(Pe)), Re = Mr(Pe.name)), K = Qt(K, Pe, Re);
      }
      return K;
    }
    function sn(K, Pe) {
      if (k.exportEquals)
        return K;
      let Z;
      if (Yr(Pe, 1)) {
        const Re = Yr(Pe, 1024) ? t.createStringLiteral("default") : Pe.name;
        K = On(K, Re, t.getLocalName(Pe)), Z = U_(Re);
      }
      return Pe.name && (K = Qt(K, Pe, Z)), K;
    }
    function Qt(K, Pe, Z) {
      if (k.exportEquals)
        return K;
      const Re = t.getDeclarationName(Pe), q = k.exportSpecifiers.get(Mr(Re));
      if (q)
        for (const Rt of q)
          Rt.name.escapedText !== Z && (K = On(K, Rt.name, Re));
      return K;
    }
    function On(K, Pe, Z, Re) {
      return K = Fn(K, jn(Pe, Z, Re)), K;
    }
    function jn(K, Pe, Z) {
      const Re = t.createExpressionStatement(In(K, Pe));
      return Vu(Re), Z || or(Re, 3072), Re;
    }
    function In(K, Pe) {
      const Z = je(K) ? t.createStringLiteralFromNode(K) : K;
      return or(Pe, vo(Pe) | 3072), Hc(t.createCallExpression(G, void 0, [Z, Pe]), Pe);
    }
    function Zt(K) {
      switch (K.kind) {
        case 240:
          return Ve(K);
        case 259:
          return ee(K);
        case 260:
          return Qe(K);
        case 245:
          return _r(K, !0);
        case 246:
          return Ii(K);
        case 247:
          return $i(K);
        case 243:
          return At(K);
        case 244:
          return vn(K);
        case 253:
          return Wt(K);
        case 251:
          return fn(K);
        case 252:
          return rr(K);
        case 266:
          return cr(K);
        case 292:
          return Pi(K);
        case 293:
          return hi(K);
        case 255:
          return Rn(K);
        case 295:
          return an(K);
        case 238:
          return Pn(K);
        case 358:
          return Fe(K);
        case 359:
          return Ct(K);
        default:
          return Hr(K);
      }
    }
    function _r(K, Pe) {
      const Z = te;
      return te = K, K = t.updateForStatement(K, lt(K.initializer, Pe ? Or : we, Jp), lt(K.condition, Hr, vt), lt(K.incrementor, we, vt), b_(K.statement, Pe ? Zt : Hr, e)), te = Z, K;
    }
    function Ii(K) {
      const Pe = te;
      return te = K, K = t.updateForInStatement(K, Or(K.initializer), lt(K.expression, Hr, vt), b_(K.statement, Zt, e)), te = Pe, K;
    }
    function $i(K) {
      const Pe = te;
      return te = K, K = t.updateForOfStatement(K, K.awaitModifier, Or(K.initializer), lt(K.expression, Hr, vt), b_(K.statement, Zt, e)), te = Pe, K;
    }
    function Qi(K) {
      return Uu(K) && qe(K);
    }
    function Or(K) {
      if (Qi(K)) {
        let Pe;
        for (const Z of K.declarations)
          Pe = Fn(Pe, Oe(Z, !1)), Z.initializer || Be(Z);
        return Pe ? t.inlineExpressions(Pe) : t.createOmittedExpression();
      } else
        return lt(K, we, Jp);
    }
    function At(K) {
      return t.updateDoStatement(K, b_(K.statement, Zt, e), lt(K.expression, Hr, vt));
    }
    function vn(K) {
      return t.updateWhileStatement(K, lt(K.expression, Hr, vt), b_(K.statement, Zt, e));
    }
    function Wt(K) {
      return t.updateLabeledStatement(K, K.label, D.checkDefined(lt(K.statement, Zt, wa, t.liftToBlock)));
    }
    function fn(K) {
      return t.updateWithStatement(K, lt(K.expression, Hr, vt), D.checkDefined(lt(K.statement, Zt, wa, t.liftToBlock)));
    }
    function rr(K) {
      return t.updateSwitchStatement(K, lt(K.expression, Hr, vt), D.checkDefined(lt(K.caseBlock, Zt, MO)));
    }
    function cr(K) {
      const Pe = te;
      return te = K, K = t.updateCaseBlock(K, Jn(K.clauses, Zt, DW)), te = Pe, K;
    }
    function Pi(K) {
      return t.updateCaseClause(K, lt(K.expression, Hr, vt), Jn(K.statements, Zt, wa));
    }
    function hi(K) {
      return Bn(K, Zt, e);
    }
    function Rn(K) {
      return Bn(K, Zt, e);
    }
    function an(K) {
      const Pe = te;
      return te = K, K = t.updateCatchClause(K, K.variableDeclaration, D.checkDefined(lt(K.block, Zt, co))), te = Pe, K;
    }
    function Pn(K) {
      const Pe = te;
      return te = K, K = Bn(K, Zt, e), te = Pe, K;
    }
    function Ar(K, Pe) {
      if (!(K.transformFlags & 276828160))
        return K;
      switch (K.kind) {
        case 245:
          return _r(K, !1);
        case 241:
          return yt(K);
        case 214:
          return Nt(K, Pe);
        case 356:
          return Ce(K, Pe);
        case 223:
          if (vy(K))
            return _e(K, Pe);
          break;
        case 210:
          if (lf(K))
            return pt(K);
          break;
        case 221:
        case 222:
          return he(K, Pe);
      }
      return Bn(K, Hr, e);
    }
    function Hr(K) {
      return Ar(K, !1);
    }
    function we(K) {
      return Ar(K, !0);
    }
    function yt(K) {
      return t.updateExpressionStatement(K, lt(K.expression, we, vt));
    }
    function Nt(K, Pe) {
      return t.updateParenthesizedExpression(K, lt(K.expression, Pe ? we : Hr, vt));
    }
    function Ce(K, Pe) {
      return t.updatePartiallyEmittedExpression(K, lt(K.expression, Pe ? we : Hr, vt));
    }
    function pt(K) {
      const Pe = Px(t, K, O, f, c, s), Z = lt(Yc(K.arguments), Hr, vt), Re = Pe && (!Z || !jo(Z) || Z.text !== Pe.text) ? Pe : Z;
      return t.createCallExpression(t.createPropertyAccessExpression(V, t.createIdentifier("import")), void 0, Re ? [Re] : []);
    }
    function _e(K, Pe) {
      return ie(K.left) ? FT(K, Hr, e, 0, !Pe) : Bn(K, Hr, e);
    }
    function ie(K) {
      if (ed(K, !0))
        return ie(K.left);
      if (Lh(K))
        return ie(K.expression);
      if (Ls(K))
        return kt(K.properties, ie);
      if (Bu(K))
        return kt(K.elements, ie);
      if (t_(K))
        return ie(K.name);
      if (zc(K))
        return ie(K.initializer);
      if (je(K)) {
        const Pe = c.getReferencedExportContainer(K);
        return Pe !== void 0 && Pe.kind === 308;
      } else
        return !1;
    }
    function he(K, Pe) {
      if ((K.operator === 45 || K.operator === 46) && je(K.operand) && !Sl(K.operand) && !Uv(K.operand) && !$N(K.operand)) {
        const Z = mt(K.operand);
        if (Z) {
          let Re, q = lt(K.operand, Hr, vt);
          Bv(K) ? q = t.updatePrefixUnaryExpression(K, q) : (q = t.updatePostfixUnaryExpression(K, q), Pe || (Re = t.createTempVariable(o), q = t.createAssignment(Re, q), ht(q, K)), q = t.createComma(q, t.cloneNode(K.operand)), ht(q, K));
          for (const Rt of Z)
            q = In(Rt, zt(q));
          return Re && (q = t.createComma(q, Re), ht(q, K)), q;
        }
      }
      return Bn(K, Hr, e);
    }
    function j(K) {
      switch (K.kind) {
        case 93:
        case 88:
          return;
      }
      return K;
    }
    function He(K, Pe, Z) {
      if (Pe.kind === 308) {
        const Re = kl(Pe);
        O = Pe, k = h[Re], G = A[Re], X = L[Re], V = I[Re], X && delete L[Re], y(K, Pe, Z), O = void 0, k = void 0, G = void 0, V = void 0, X = void 0;
      } else
        y(K, Pe, Z);
    }
    function Ze(K, Pe) {
      return Pe = d(K, Pe), it(Pe) ? Pe : K === 1 ? cn(Pe) : K === 4 ? Xe(Pe) : Pe;
    }
    function Xe(K) {
      switch (K.kind) {
        case 300:
          return Ut(K);
      }
      return K;
    }
    function Ut(K) {
      var Pe, Z;
      const Re = K.name;
      if (!Sl(Re) && !Uv(Re)) {
        const q = c.getReferencedImportDeclaration(Re);
        if (q) {
          if (Wm(q))
            return ht(t.createPropertyAssignment(t.cloneNode(Re), t.createPropertyAccessExpression(t.getGeneratedNameForNode(q.parent), t.createIdentifier("default"))), K);
          if (Ld(q))
            return ht(t.createPropertyAssignment(t.cloneNode(Re), t.createPropertyAccessExpression(t.getGeneratedNameForNode(((Z = (Pe = q.parent) == null ? void 0 : Pe.parent) == null ? void 0 : Z.parent) || q), t.cloneNode(q.propertyName || q.name))), K);
        }
      }
      return K;
    }
    function cn(K) {
      switch (K.kind) {
        case 79:
          return Sn(K);
        case 223:
          return Er(K);
        case 233:
          return ue(K);
      }
      return K;
    }
    function Sn(K) {
      var Pe, Z;
      if (vo(K) & 8192) {
        const Re = HO(O);
        return Re ? t.createPropertyAccessExpression(Re, K) : K;
      }
      if (!Sl(K) && !Uv(K)) {
        const Re = c.getReferencedImportDeclaration(K);
        if (Re) {
          if (Wm(Re))
            return ht(t.createPropertyAccessExpression(t.getGeneratedNameForNode(Re.parent), t.createIdentifier("default")), K);
          if (Ld(Re))
            return ht(t.createPropertyAccessExpression(t.getGeneratedNameForNode(((Z = (Pe = Re.parent) == null ? void 0 : Pe.parent) == null ? void 0 : Z.parent) || Re), t.cloneNode(Re.propertyName || Re.name)), K);
        }
      }
      return K;
    }
    function Er(K) {
      if (yy(K.operatorToken.kind) && je(K.left) && !Sl(K.left) && !Uv(K.left) && !$N(K.left)) {
        const Pe = mt(K.left);
        if (Pe) {
          let Z = K;
          for (const Re of Pe)
            Z = In(Re, zt(Z));
          return Z;
        }
      }
      return K;
    }
    function ue(K) {
      return FA(K) ? t.createPropertyAccessExpression(V, t.createIdentifier("meta")) : K;
    }
    function mt(K) {
      let Pe;
      if (!Sl(K)) {
        const Z = c.getReferencedImportDeclaration(K) || c.getReferencedValueDeclaration(K);
        if (Z) {
          const Re = c.getReferencedExportContainer(K, !1);
          Re && Re.kind === 308 && (Pe = Fn(Pe, t.getDeclarationName(Z))), Pe = Ti(Pe, k && k.exportedBindings[kl(Z)]);
        }
      }
      return Pe;
    }
    function zt(K) {
      return X === void 0 && (X = []), X[ps(K)] = !0, K;
    }
    function it(K) {
      return X && K.id && X[K.id];
    }
  }
  var b3e = C({
    "src/compiler/transformers/module/system.ts"() {
      Oa();
    }
  });
  function TX(e) {
    const {
      factory: t,
      getEmitHelperFactory: r
    } = e, i = e.getEmitHost(), o = e.getEmitResolver(), s = e.getCompilerOptions(), c = ts(s), f = e.onEmitNode, d = e.onSubstituteNode;
    e.onEmitNode = te, e.onSubstituteNode = X, e.enableEmitNotification(308), e.enableSubstitution(79);
    let y, h, E;
    return X_(e, A);
    function A(P) {
      if (P.isDeclarationFile)
        return P;
      if (Zl(P) || j_(s)) {
        h = P, E = void 0;
        let de = L(P);
        return h = void 0, E && (de = t.updateSourceFile(de, ht(t.createNodeArray(VW(de.statements.slice(), E)), de.statements))), !Zl(P) || kt(de.statements, QR) ? de : t.updateSourceFile(de, ht(t.createNodeArray([...de.statements, UO(t)]), de.statements));
      }
      return P;
    }
    function L(P) {
      const de = UJ(t, r(), P, s);
      if (de) {
        const re = [], ye = t.copyPrologue(P.statements, re);
        return Fn(re, de), Ti(re, Jn(P.statements, I, wa, ye)), t.updateSourceFile(P, ht(t.createNodeArray(re), P.statements));
      } else
        return Bn(P, I, e);
    }
    function I(P) {
      switch (P.kind) {
        case 268:
          return au(s) >= 100 ? k(P) : void 0;
        case 274:
          return V(P);
        case 275:
          return H(P);
      }
      return P;
    }
    function O(P) {
      const de = Px(t, P, D.checkDefined(h), i, o, s), re = [];
      if (de && re.push(de), !E) {
        const ae = t.createUniqueName("_createRequire", 48), W = t.createImportDeclaration(void 0, t.createImportClause(!1, void 0, t.createNamedImports([
          t.createImportSpecifier(!1, t.createIdentifier("createRequire"), ae)
        ])), t.createStringLiteral("module")), ce = t.createUniqueName("__require", 48), me = t.createVariableStatement(void 0, t.createVariableDeclarationList([
          t.createVariableDeclaration(ce, void 0, void 0, t.createCallExpression(t.cloneNode(ae), void 0, [
            t.createPropertyAccessExpression(t.createMetaProperty(100, t.createIdentifier("meta")), t.createIdentifier("url"))
          ]))
        ], c >= 2 ? 2 : 0));
        E = [W, me];
      }
      const ye = E[1].declarationList.declarations[0].name;
      return D.assertNode(ye, je), t.createCallExpression(t.cloneNode(ye), void 0, re);
    }
    function k(P) {
      D.assert(H0(P), "import= for internal module references should be handled in an earlier transformer.");
      let de;
      return de = Fn(de, Wr(ht(t.createVariableStatement(void 0, t.createVariableDeclarationList([
        t.createVariableDeclaration(t.cloneNode(P.name), void 0, void 0, O(P))
      ], c >= 2 ? 2 : 0)), P), P)), de = G(de, P), Cm(de);
    }
    function G(P, de) {
      return Yr(de, 1) && (P = Fn(P, t.createExportDeclaration(void 0, de.isTypeOnly, t.createNamedExports([t.createExportSpecifier(!1, void 0, Mr(de.name))])))), P;
    }
    function V(P) {
      return P.isExportEquals ? void 0 : P;
    }
    function H(P) {
      if (s.module !== void 0 && s.module > 5 || !P.exportClause || !Ih(P.exportClause) || !P.moduleSpecifier)
        return P;
      const de = P.exportClause.name, re = t.getGeneratedNameForNode(de), ye = t.createImportDeclaration(void 0, t.createImportClause(!1, void 0, t.createNamespaceImport(re)), P.moduleSpecifier, P.assertClause);
      Wr(ye, P.exportClause);
      const ae = XM(P) ? t.createExportDefault(re) : t.createExportDeclaration(void 0, !1, t.createNamedExports([t.createExportSpecifier(!1, re, de)]));
      return Wr(ae, P), [ye, ae];
    }
    function te(P, de, re) {
      qi(de) ? ((Zl(de) || j_(s)) && s.importHelpers && (y = /* @__PURE__ */ new Map()), f(P, de, re), y = void 0) : f(P, de, re);
    }
    function X(P, de) {
      return de = d(P, de), y && je(de) && vo(de) & 8192 ? Y(de) : de;
    }
    function Y(P) {
      const de = Mr(P);
      let re = y.get(de);
      return re || y.set(de, re = t.createUniqueName(de, 48)), re;
    }
  }
  var E3e = C({
    "src/compiler/transformers/module/esnextAnd2015.ts"() {
      Oa();
    }
  });
  function Dhe(e) {
    const t = e.onSubstituteNode, r = e.onEmitNode, i = TX(e), o = e.onSubstituteNode, s = e.onEmitNode;
    e.onSubstituteNode = t, e.onEmitNode = r;
    const c = EX(e), f = e.onSubstituteNode, d = e.onEmitNode;
    e.onSubstituteNode = h, e.onEmitNode = E, e.enableSubstitution(308), e.enableEmitNotification(308);
    let y;
    return I;
    function h(k, G) {
      return qi(G) ? (y = G, t(k, G)) : y ? y.impliedNodeFormat === 99 ? o(k, G) : f(k, G) : t(k, G);
    }
    function E(k, G, V) {
      return qi(G) && (y = G), y ? y.impliedNodeFormat === 99 ? s(k, G, V) : d(k, G, V) : r(k, G, V);
    }
    function A(k) {
      return k.impliedNodeFormat === 99 ? i : c;
    }
    function L(k) {
      if (k.isDeclarationFile)
        return k;
      y = k;
      const G = A(k)(k);
      return y = void 0, D.assert(qi(G)), G;
    }
    function I(k) {
      return k.kind === 308 ? L(k) : O(k);
    }
    function O(k) {
      return e.factory.createBundle(jt(k.sourceFiles, L), k.prepends);
    }
  }
  var T3e = C({
    "src/compiler/transformers/module/node.ts"() {
      Oa();
    }
  });
  function eF(e) {
    return Ki(e) || to(e) || If(e) || _s(e) || hy(e) || Iv(e) || wO(e) || hC(e) || ac(e) || Ah(e) || yc(e) || Ba(e) || Fl(e) || Sy(e) || su(e) || em(e) || ql(e) || Tx(e) || Fr(e) || m_(e);
  }
  function Rhe(e) {
    if (hy(e) || Iv(e))
      return t;
    return Ah(e) || ac(e) ? i : Ly(e);
    function t(s) {
      const c = r(s);
      return c !== void 0 ? {
        diagnosticMessage: c,
        errorNode: e,
        typeName: e.name
      } : void 0;
    }
    function r(s) {
      return Ja(e) ? s.errorModuleName ? s.accessibility === 2 ? _.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : _.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : _.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1 : e.parent.kind === 260 ? s.errorModuleName ? s.accessibility === 2 ? _.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : _.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : _.Public_property_0_of_exported_class_has_or_is_using_private_name_1 : s.errorModuleName ? _.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : _.Property_0_of_exported_interface_has_or_is_using_private_name_1;
    }
    function i(s) {
      const c = o(s);
      return c !== void 0 ? {
        diagnosticMessage: c,
        errorNode: e,
        typeName: e.name
      } : void 0;
    }
    function o(s) {
      return Ja(e) ? s.errorModuleName ? s.accessibility === 2 ? _.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : _.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : _.Public_static_method_0_of_exported_class_has_or_is_using_private_name_1 : e.parent.kind === 260 ? s.errorModuleName ? s.accessibility === 2 ? _.Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : _.Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : _.Public_method_0_of_exported_class_has_or_is_using_private_name_1 : s.errorModuleName ? _.Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : _.Method_0_of_exported_interface_has_or_is_using_private_name_1;
    }
  }
  function Ly(e) {
    if (Ki(e) || to(e) || If(e) || Fr(e) || _s(e) || ql(e))
      return r;
    return hy(e) || Iv(e) ? i : wO(e) || hC(e) || ac(e) || Ah(e) || yc(e) || Tx(e) ? o : Ba(e) ? nf(e, e.parent) && Yr(e.parent, 8) ? r : s : Fl(e) ? f : Sy(e) ? d : su(e) ? y : em(e) || m_(e) ? h : D.assertNever(e, `Attempted to set a declaration diagnostic context for unhandled node kind: ${D.formatSyntaxKind(e.kind)}`);
    function t(E) {
      if (e.kind === 257 || e.kind === 205)
        return E.errorModuleName ? E.accessibility === 2 ? _.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : _.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 : _.Exported_variable_0_has_or_is_using_private_name_1;
      if (e.kind === 169 || e.kind === 208 || e.kind === 168 || e.kind === 166 && Yr(e.parent, 8))
        return Ja(e) ? E.errorModuleName ? E.accessibility === 2 ? _.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : _.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : _.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1 : e.parent.kind === 260 || e.kind === 166 ? E.errorModuleName ? E.accessibility === 2 ? _.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : _.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : _.Public_property_0_of_exported_class_has_or_is_using_private_name_1 : E.errorModuleName ? _.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : _.Property_0_of_exported_interface_has_or_is_using_private_name_1;
    }
    function r(E) {
      const A = t(E);
      return A !== void 0 ? {
        diagnosticMessage: A,
        errorNode: e,
        typeName: e.name
      } : void 0;
    }
    function i(E) {
      let A;
      return e.kind === 175 ? Ja(e) ? A = E.errorModuleName ? _.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2 : _.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1 : A = E.errorModuleName ? _.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2 : _.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1 : Ja(e) ? A = E.errorModuleName ? E.accessibility === 2 ? _.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : _.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2 : _.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1 : A = E.errorModuleName ? E.accessibility === 2 ? _.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : _.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2 : _.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1, {
        diagnosticMessage: A,
        errorNode: e.name,
        typeName: e.name
      };
    }
    function o(E) {
      let A;
      switch (e.kind) {
        case 177:
          A = E.errorModuleName ? _.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : _.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0;
          break;
        case 176:
          A = E.errorModuleName ? _.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : _.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0;
          break;
        case 178:
          A = E.errorModuleName ? _.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : _.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0;
          break;
        case 171:
        case 170:
          Ja(e) ? A = E.errorModuleName ? E.accessibility === 2 ? _.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : _.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : _.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0 : e.parent.kind === 260 ? A = E.errorModuleName ? E.accessibility === 2 ? _.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : _.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : _.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0 : A = E.errorModuleName ? _.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : _.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0;
          break;
        case 259:
          A = E.errorModuleName ? E.accessibility === 2 ? _.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : _.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1 : _.Return_type_of_exported_function_has_or_is_using_private_name_0;
          break;
        default:
          return D.fail("This is unknown kind for signature: " + e.kind);
      }
      return {
        diagnosticMessage: A,
        errorNode: e.name || e
      };
    }
    function s(E) {
      const A = c(E);
      return A !== void 0 ? {
        diagnosticMessage: A,
        errorNode: e,
        typeName: e.name
      } : void 0;
    }
    function c(E) {
      switch (e.parent.kind) {
        case 173:
          return E.errorModuleName ? E.accessibility === 2 ? _.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : _.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 : _.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1;
        case 177:
        case 182:
          return E.errorModuleName ? _.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : _.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;
        case 176:
          return E.errorModuleName ? _.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : _.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;
        case 178:
          return E.errorModuleName ? _.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : _.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1;
        case 171:
        case 170:
          return Ja(e.parent) ? E.errorModuleName ? E.accessibility === 2 ? _.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : _.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : _.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1 : e.parent.parent.kind === 260 ? E.errorModuleName ? E.accessibility === 2 ? _.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : _.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : _.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1 : E.errorModuleName ? _.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : _.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;
        case 259:
        case 181:
          return E.errorModuleName ? E.accessibility === 2 ? _.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : _.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 : _.Parameter_0_of_exported_function_has_or_is_using_private_name_1;
        case 175:
        case 174:
          return E.errorModuleName ? E.accessibility === 2 ? _.Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : _.Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2 : _.Parameter_0_of_accessor_has_or_is_using_private_name_1;
        default:
          return D.fail(`Unknown parent for parameter: ${D.formatSyntaxKind(e.parent.kind)}`);
      }
    }
    function f() {
      let E;
      switch (e.parent.kind) {
        case 260:
          E = _.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;
          break;
        case 261:
          E = _.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;
          break;
        case 197:
          E = _.Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1;
          break;
        case 182:
        case 177:
          E = _.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;
          break;
        case 176:
          E = _.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;
          break;
        case 171:
        case 170:
          Ja(e.parent) ? E = _.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1 : e.parent.parent.kind === 260 ? E = _.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1 : E = _.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;
          break;
        case 181:
        case 259:
          E = _.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;
          break;
        case 192:
          E = _.Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1;
          break;
        case 262:
          E = _.Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1;
          break;
        default:
          return D.fail("This is unknown parent for type parameter: " + e.parent.kind);
      }
      return {
        diagnosticMessage: E,
        errorNode: e,
        typeName: e.name
      };
    }
    function d() {
      let E;
      return Nc(e.parent.parent) ? E = jd(e.parent) && e.parent.token === 117 ? _.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 : e.parent.parent.name ? _.extends_clause_of_exported_class_0_has_or_is_using_private_name_1 : _.extends_clause_of_exported_class_has_or_is_using_private_name_0 : E = _.extends_clause_of_exported_interface_0_has_or_is_using_private_name_1, {
        diagnosticMessage: E,
        errorNode: e,
        typeName: ka(e.parent.parent)
      };
    }
    function y() {
      return {
        diagnosticMessage: _.Import_declaration_0_is_using_private_name_1,
        errorNode: e,
        typeName: e.name
      };
    }
    function h(E) {
      return {
        diagnosticMessage: E.errorModuleName ? _.Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2 : _.Exported_type_alias_0_has_or_is_using_private_name_1,
        errorNode: m_(e) ? D.checkDefined(e.typeExpression) : e.type,
        typeName: m_(e) ? ka(e) : e.name
      };
    }
  }
  var S3e = C({
    "src/compiler/transformers/declarations/diagnostics.ts"() {
      Oa();
    }
  });
  function Nhe(e, t, r) {
    const i = e.getCompilerOptions();
    return k8(t, e, N, i, r ? [r] : lr(e.getSourceFiles(), fz), [xX], !1).diagnostics;
  }
  function Ohe(e, t) {
    const r = t.text.substring(e.pos, e.end);
    return pu(r, "@internal");
  }
  function SX(e, t) {
    const r = Ea(e);
    if (r && r.kind === 166) {
      const o = r.parent.parameters.indexOf(r), s = o > 0 ? r.parent.parameters[o - 1] : void 0, c = t.text, f = s ? va(B0(c, Ko(c, s.end + 1, !1, !0)), ph(c, e.pos)) : B0(c, Ko(c, e.pos, !1, !0));
      return f && f.length && Ohe(qo(f), t);
    }
    const i = r && iz(r, t);
    return !!ze(i, (o) => Ohe(o, t));
  }
  function xX(e) {
    const t = () => D.fail("Diagnostic emitted without context");
    let r = t, i = !0, o = !1, s = !1, c = !1, f = !1, d, y, h, E, A, L;
    const { factory: I } = e, O = e.getEmitHost(), k = {
      trackSymbol: ve,
      reportInaccessibleThisError: Be,
      reportInaccessibleUniqueSymbolError: Qe,
      reportCyclicStructureError: Ve,
      reportPrivateInBaseOfClassExpression: Te,
      reportLikelyUnsafeImportRequiredError: qe,
      reportTruncationError: Oe,
      moduleResolverHost: O,
      trackReferencedAmbientModule: W,
      trackExternalModuleSymbolOfImportTypeNode: me,
      reportNonlocalAugmentation: Me,
      reportNonSerializableProperty: Ye,
      reportImportTypeNodeResolutionModeOverride: We
    };
    let G, V, H, te, X, Y;
    const P = e.getEmitResolver(), de = e.getCompilerOptions(), { noResolve: re, stripInternal: ye } = de;
    return st;
    function ae(j) {
      if (j) {
        y = y || /* @__PURE__ */ new Set();
        for (const He of j)
          y.add(He);
      }
    }
    function W(j, He) {
      const Ze = P.getTypeReferenceDirectivesForSymbol(He, 67108863);
      if (Le(Ze))
        return ae(Ze);
      const Xe = Zn(j);
      te.set(kl(Xe), Xe);
    }
    function ce(j) {
      if (j.accessibility === 0) {
        if (j && j.aliasesToMakeVisible)
          if (!h)
            h = j.aliasesToMakeVisible;
          else
            for (const He of j.aliasesToMakeVisible)
              d_(h, He);
      } else {
        const He = r(j);
        if (He)
          return He.typeName ? e.addDiagnostic(Nr(j.errorNode || He.errorNode, He.diagnosticMessage, Sc(He.typeName), j.errorSymbolName, j.errorModuleName)) : e.addDiagnostic(Nr(j.errorNode || He.errorNode, He.diagnosticMessage, j.errorSymbolName, j.errorModuleName)), !0;
      }
      return !1;
    }
    function me(j) {
      o || (L || (L = [])).push(j);
    }
    function ve(j, He, Ze) {
      if (j.flags & 262144)
        return !1;
      const Xe = ce(P.isSymbolAccessible(j, He, Ze, !0));
      return ae(P.getTypeReferenceDirectivesForSymbol(j, Ze)), Xe;
    }
    function Te(j) {
      (G || V) && e.addDiagnostic(Nr(G || V, _.Property_0_of_exported_class_expression_may_not_be_private_or_protected, j));
    }
    function ee() {
      return G ? ws(G) : V && ka(V) ? ws(ka(V)) : V && Bl(V) ? V.isExportEquals ? "export=" : "default" : "(Missing)";
    }
    function Qe() {
      (G || V) && e.addDiagnostic(Nr(G || V, _.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary, ee(), "unique symbol"));
    }
    function Ve() {
      (G || V) && e.addDiagnostic(Nr(G || V, _.The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary, ee()));
    }
    function Be() {
      (G || V) && e.addDiagnostic(Nr(G || V, _.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary, ee(), "this"));
    }
    function qe(j) {
      (G || V) && e.addDiagnostic(Nr(G || V, _.The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary, ee(), j));
    }
    function Oe() {
      (G || V) && e.addDiagnostic(Nr(G || V, _.The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed));
    }
    function Me(j, He, Ze) {
      var Xe;
      const Ut = (Xe = He.declarations) == null ? void 0 : Xe.find((Sn) => Zn(Sn) === j), cn = lr(Ze.declarations, (Sn) => Zn(Sn) !== j);
      if (Ut && cn)
        for (const Sn of cn)
          e.addDiagnostic(Xo(Nr(Sn, _.Declaration_augments_declaration_in_another_file_This_cannot_be_serialized), Nr(Ut, _.This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file)));
    }
    function Ye(j) {
      (G || V) && e.addDiagnostic(Nr(G || V, _.The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized, j));
    }
    function We() {
      !jN() && (G || V) && e.addDiagnostic(Nr(G || V, _.The_type_of_this_expression_cannot_be_named_without_a_resolution_mode_assertion_which_is_an_unstable_feature_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next));
    }
    function Fe(j, He) {
      const Ze = r;
      r = (Ut) => Ut.errorNode && eF(Ut.errorNode) ? Ly(Ut.errorNode)(Ut) : {
        diagnosticMessage: Ut.errorModuleName ? _.Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit : _.Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit,
        errorNode: Ut.errorNode || j
      };
      const Xe = P.getDeclarationStatementsForSourceFile(j, V1, k, He);
      return r = Ze, Xe;
    }
    function st(j) {
      if (j.kind === 308 && j.isDeclarationFile)
        return j;
      if (j.kind === 309) {
        o = !0, te = /* @__PURE__ */ new Map(), X = /* @__PURE__ */ new Map();
        let zt = !1;
        const it = I.createBundle(jt(j.sourceFiles, (Z) => {
          if (Z.isDeclarationFile)
            return;
          if (zt = zt || Z.hasNoDefaultLib, H = Z, d = Z, h = void 0, A = !1, E = /* @__PURE__ */ new Map(), r = t, c = !1, f = !1, Ct(Z, te), Et(Z, X), sf(Z) || p_(Z)) {
            s = !1, i = !1;
            const q = Zu(Z) ? I.createNodeArray(Fe(Z, !0)) : Jn(Z.statements, hi, wa);
            return I.updateSourceFile(Z, [I.createModuleDeclaration([I.createModifier(136)], I.createStringLiteral(k3(e.getEmitHost(), Z)), I.createModuleBlock(ht(I.createNodeArray(rr(q)), Z.statements)))], !0, [], [], !1, []);
          }
          i = !0;
          const Re = Zu(Z) ? I.createNodeArray(Fe(Z)) : Jn(Z.statements, hi, wa);
          return I.updateSourceFile(Z, rr(Re), !0, [], [], !1, []);
        }), ia(j.prepends, (Z) => {
          if (Z.kind === 311) {
            const Re = Yq(Z, "dts", ye);
            return zt = zt || !!Re.hasNoDefaultLib, Ct(Re, te), ae(jt(Re.typeReferenceDirectives, (q) => [q.fileName, q.resolutionMode])), Et(Re, X), Re;
          }
          return Z;
        }));
        it.syntheticFileReferences = [], it.syntheticTypeReferences = Er(), it.syntheticLibReferences = Sn(), it.hasNoDefaultLib = zt;
        const K = mi(Qc(rw(j, O, !0).declarationFilePath)), Pe = mt(it.syntheticFileReferences, K);
        return te.forEach(Pe), it;
      }
      i = !0, c = !1, f = !1, d = j, H = j, r = t, o = !1, s = !1, A = !1, h = void 0, E = /* @__PURE__ */ new Map(), y = void 0, te = Ct(H, /* @__PURE__ */ new Map()), X = Et(H, /* @__PURE__ */ new Map());
      const He = [], Ze = mi(Qc(rw(j, O, !0).declarationFilePath)), Xe = mt(He, Ze);
      let Ut;
      if (Zu(H))
        Ut = I.createNodeArray(Fe(j)), te.forEach(Xe), Y = lr(Ut, lT);
      else {
        const zt = Jn(j.statements, hi, wa);
        Ut = ht(I.createNodeArray(rr(zt)), j.statements), te.forEach(Xe), Y = lr(Ut, lT), Zl(j) && (!s || c && !f) && (Ut = ht(I.createNodeArray([...Ut, UO(I)]), Ut));
      }
      const cn = I.updateSourceFile(j, Ut, !0, He, Er(), j.hasNoDefaultLib, Sn());
      return cn.exportedModulesFromDeclarationEmit = L, cn;
      function Sn() {
        return Ro(X.keys(), (zt) => ({ fileName: zt, pos: -1, end: -1 }));
      }
      function Er() {
        return y ? ia(Ro(y.keys()), ue) : [];
      }
      function ue([zt, it]) {
        if (Y) {
          for (const K of Y)
            if (su(K) && zm(K.moduleReference)) {
              const Pe = K.moduleReference.expression;
              if (xs(Pe) && Pe.text === zt)
                return;
            } else if (Wc(K) && jo(K.moduleSpecifier) && K.moduleSpecifier.text === zt)
              return;
        }
        return { fileName: zt, pos: -1, end: -1, ...it ? { resolutionMode: it } : void 0 };
      }
      function mt(zt, it) {
        return (K) => {
          let Pe;
          if (K.isDeclarationFile)
            Pe = K.fileName;
          else {
            if (o && jr(j.sourceFiles, K))
              return;
            const Z = rw(K, O, !0);
            Pe = Z.declarationFilePath || Z.jsFilePath || K.fileName;
          }
          if (Pe) {
            const Z = F5(de, H, zs(it, O.getCurrentDirectory(), O.getCanonicalFileName), zs(Pe, O.getCurrentDirectory(), O.getCanonicalFileName), O);
            if (!Sf(Z)) {
              ae([[
                Z,
                void 0
              ]]);
              return;
            }
            let Re = zS(it, Pe, O.getCurrentDirectory(), O.getCanonicalFileName, !1);
            if (xa(Re, "./") && bA(Re) && (Re = Re.substring(2)), xa(Re, "node_modules/") || Gx(Re))
              return;
            zt.push({ pos: -1, end: -1, fileName: Re });
          }
        };
      }
    }
    function Ct(j, He) {
      return re || !kT(j) && Zu(j) || ze(j.referencedFiles, (Ze) => {
        const Xe = O.getSourceFileFromReference(j, Ze);
        Xe && He.set(kl(Xe), Xe);
      }), He;
    }
    function Et(j, He) {
      return ze(j.libReferenceDirectives, (Ze) => {
        O.getLibFileFromReference(Ze) && He.set(N_(Ze.fileName), !0);
      }), He;
    }
    function Vt(j) {
      if (j.kind === 79)
        return j;
      return j.kind === 204 ? I.updateArrayBindingPattern(j, Jn(j.elements, He, BM)) : I.updateObjectBindingPattern(j, Jn(j.elements, He, _s));
      function He(Ze) {
        return Ze.kind === 229 ? Ze : Ze.propertyName && je(Ze.propertyName) && je(Ze.name) && !Ze.symbol.isReferenced && !x3(Ze.propertyName) ? I.updateBindingElement(Ze, Ze.dotDotDotToken, void 0, Ze.propertyName, at(Ze) ? Ze.initializer : void 0) : I.updateBindingElement(Ze, Ze.dotDotDotToken, Ze.propertyName, Vt(Ze.name), at(Ze) ? Ze.initializer : void 0);
      }
    }
    function tt(j, He, Ze) {
      let Xe;
      A || (Xe = r, r = Ly(j));
      const Ut = I.updateParameterDeclaration(j, A3e(j, He), j.dotDotDotToken, Vt(j.name), P.isOptionalParameter(j) ? j.questionToken || I.createToken(57) : void 0, Qt(j, Ze || j.type, !0), sn(j));
      return A || (r = Xe), Ut;
    }
    function at(j) {
      return C3e(j) && P.isLiteralConstDeclaration(Ea(j));
    }
    function sn(j) {
      if (at(j))
        return P.createLiteralConstValue(Ea(j), k);
    }
    function Qt(j, He, Ze) {
      if (!Ze && Gd(j, 8) || at(j))
        return;
      const Xe = j.kind === 166 && (P.isRequiredInitializedParameter(j) || P.isOptionalUninitializedParameterProperty(j));
      if (He && !Xe)
        return lt(He, cr, Gi);
      if (!Ea(j))
        return He ? lt(He, cr, Gi) : I.createKeywordTypeNode(131);
      if (j.kind === 175)
        return I.createKeywordTypeNode(131);
      G = j.name;
      let Ut;
      if (A || (Ut = r, r = Ly(j)), j.kind === 257 || j.kind === 205)
        return cn(P.createTypeOfDeclaration(j, d, V1, k));
      if (j.kind === 166 || j.kind === 169 || j.kind === 168)
        return If(j) || !j.initializer ? cn(P.createTypeOfDeclaration(j, d, V1, k, Xe)) : cn(P.createTypeOfDeclaration(j, d, V1, k, Xe) || P.createTypeOfExpression(j.initializer, d, V1, k));
      return cn(P.createReturnTypeOfSignatureDeclaration(j, d, V1, k));
      function cn(Sn) {
        return G = void 0, A || (r = Ut), Sn || I.createKeywordTypeNode(131);
      }
    }
    function On(j) {
      switch (j = Ea(j), j.kind) {
        case 259:
        case 264:
        case 261:
        case 260:
        case 262:
        case 263:
          return !P.isDeclarationVisible(j);
        case 257:
          return !In(j);
        case 268:
        case 269:
        case 275:
        case 274:
          return !1;
        case 172:
          return !0;
      }
      return !1;
    }
    function jn(j) {
      var He;
      if (j.body)
        return !0;
      const Ze = (He = j.symbol.declarations) == null ? void 0 : He.filter((Xe) => yc(Xe) && !Xe.body);
      return !Ze || Ze.indexOf(j) === Ze.length - 1;
    }
    function In(j) {
      return Rc(j) ? !1 : Xa(j.name) ? kt(j.name.elements, In) : P.isDeclarationVisible(j);
    }
    function Zt(j, He, Ze) {
      if (Gd(j, 8))
        return I.createNodeArray();
      const Xe = jt(He, (Ut) => tt(Ut, Ze));
      return Xe ? I.createNodeArray(Xe, He.hasTrailingComma) : I.createNodeArray();
    }
    function _r(j, He) {
      let Ze;
      if (!He) {
        const Xe = S1(j);
        Xe && (Ze = [tt(Xe)]);
      }
      if (e_(j)) {
        let Xe;
        if (!He) {
          const Ut = $I(j);
          if (Ut) {
            const cn = ie(j, P.getAllAccessorDeclarations(j));
            Xe = tt(Ut, void 0, cn);
          }
        }
        Xe || (Xe = I.createParameterDeclaration(void 0, void 0, "value")), Ze = Fn(Ze, Xe);
      }
      return I.createNodeArray(Ze || rt);
    }
    function Ii(j, He) {
      return Gd(j, 8) ? void 0 : Jn(He, cr, Fl);
    }
    function $i(j) {
      return qi(j) || em(j) || Jl(j) || Nc(j) || nd(j) || Ka(j) || Tx(j) || Dk(j);
    }
    function Qi(j, He) {
      const Ze = P.isEntityNameVisible(j, He);
      ce(Ze), ae(P.getTypeReferenceDirectivesForEntityName(j));
    }
    function Or(j, He) {
      return xf(j) && xf(He) && (j.jsDoc = He.jsDoc), Hc(j, jm(He));
    }
    function At(j, He) {
      if (He) {
        if (s = s || j.kind !== 264 && j.kind !== 202, xs(He))
          if (o) {
            const Ze = Vue(e.getEmitHost(), P, j);
            if (Ze)
              return I.createStringLiteral(Ze);
          } else {
            const Ze = P.getSymbolOfExternalModuleSpecifier(He);
            Ze && (L || (L = [])).push(Ze);
          }
        return He;
      }
    }
    function vn(j) {
      if (P.isDeclarationVisible(j))
        if (j.moduleReference.kind === 280) {
          const He = VI(j);
          return I.updateImportEqualsDeclaration(j, j.modifiers, j.isTypeOnly, j.name, I.updateExternalModuleReference(j.moduleReference, At(j, He)));
        } else {
          const He = r;
          return r = Ly(j), Qi(j.moduleReference, d), r = He, j;
        }
    }
    function Wt(j) {
      if (!j.importClause)
        return I.updateImportDeclaration(j, j.modifiers, j.importClause, At(j, j.moduleSpecifier), fn(j.assertClause));
      const He = j.importClause && j.importClause.name && P.isDeclarationVisible(j.importClause) ? j.importClause.name : void 0;
      if (!j.importClause.namedBindings)
        return He && I.updateImportDeclaration(j, j.modifiers, I.updateImportClause(j.importClause, j.importClause.isTypeOnly, He, void 0), At(j, j.moduleSpecifier), fn(j.assertClause));
      if (j.importClause.namedBindings.kind === 271) {
        const Xe = P.isDeclarationVisible(j.importClause.namedBindings) ? j.importClause.namedBindings : void 0;
        return He || Xe ? I.updateImportDeclaration(j, j.modifiers, I.updateImportClause(j.importClause, j.importClause.isTypeOnly, He, Xe), At(j, j.moduleSpecifier), fn(j.assertClause)) : void 0;
      }
      const Ze = ia(j.importClause.namedBindings.elements, (Xe) => P.isDeclarationVisible(Xe) ? Xe : void 0);
      if (Ze && Ze.length || He)
        return I.updateImportDeclaration(j, j.modifiers, I.updateImportClause(j.importClause, j.importClause.isTypeOnly, He, Ze && Ze.length ? I.updateNamedImports(j.importClause.namedBindings, Ze) : void 0), At(j, j.moduleSpecifier), fn(j.assertClause));
      if (P.isImportRequiredByAugmentation(j))
        return I.updateImportDeclaration(j, j.modifiers, void 0, At(j, j.moduleSpecifier), fn(j.assertClause));
    }
    function fn(j) {
      if (Vx(j) !== void 0)
        return jN() || e.addDiagnostic(Nr(j, _.resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next)), j;
    }
    function rr(j) {
      for (; Le(h); ) {
        const Ze = h.shift();
        if (!$M(Ze))
          return D.fail(`Late replaced statement was found which is not handled by the declaration transformer!: ${D.formatSyntaxKind(Ze.kind)}`);
        const Xe = i;
        i = Ze.parent && qi(Ze.parent) && !(Zl(Ze.parent) && o);
        const Ut = an(Ze);
        i = Xe, E.set(kl(Ze), Ut);
      }
      return Jn(j, He, wa);
      function He(Ze) {
        if ($M(Ze)) {
          const Xe = kl(Ze);
          if (E.has(Xe)) {
            const Ut = E.get(Xe);
            return E.delete(Xe), Ut && ((Va(Ut) ? kt(Ut, GM) : GM(Ut)) && (c = !0), qi(Ze.parent) && (Va(Ut) ? kt(Ut, QR) : QR(Ut)) && (s = !0)), Ut;
          }
        }
        return Ze;
      }
    }
    function cr(j) {
      if (yt(j) || vu(j) && (On(j) || Rv(j) && !P.isLateBound(Ea(j))) || Ka(j) && P.isImplementationOfOverload(j) || Yfe(j))
        return;
      let He;
      $i(j) && (He = d, d = j);
      const Ze = r, Xe = eF(j), Ut = A;
      let cn = (j.kind === 184 || j.kind === 197) && j.parent.kind !== 262;
      if ((ac(j) || Ah(j)) && Gd(j, 8))
        return j.symbol && j.symbol.declarations && j.symbol.declarations[0] !== j ? void 0 : Sn(I.createPropertyDeclaration(pt(j), j.name, void 0, void 0, void 0));
      if (Xe && !A && (r = Ly(j)), kk(j) && Qi(j.exprName, d), cn && (A = !0), I3e(j))
        switch (j.kind) {
          case 230: {
            (rf(j.expression) || zl(j.expression)) && Qi(j.expression, d);
            const Er = Bn(j, cr, e);
            return Sn(I.updateExpressionWithTypeArguments(Er, Er.expression, Er.typeArguments));
          }
          case 180: {
            Qi(j.typeName, d);
            const Er = Bn(j, cr, e);
            return Sn(I.updateTypeReferenceNode(Er, Er.typeName, Er.typeArguments));
          }
          case 177:
            return Sn(I.updateConstructSignature(j, Ii(j, j.typeParameters), Zt(j, j.parameters), Qt(j, j.type)));
          case 173: {
            const Er = I.createConstructorDeclaration(pt(j), Zt(j, j.parameters, 0), void 0);
            return Sn(Er);
          }
          case 171: {
            if (Ni(j.name))
              return Sn(void 0);
            const Er = I.createMethodDeclaration(pt(j), void 0, j.name, j.questionToken, Ii(j, j.typeParameters), Zt(j, j.parameters), Qt(j, j.type), void 0);
            return Sn(Er);
          }
          case 174: {
            if (Ni(j.name))
              return Sn(void 0);
            const Er = ie(j, P.getAllAccessorDeclarations(j));
            return Sn(I.updateGetAccessorDeclaration(j, pt(j), j.name, _r(j, Gd(j, 8)), Qt(j, Er), void 0));
          }
          case 175:
            return Ni(j.name) ? Sn(void 0) : Sn(I.updateSetAccessorDeclaration(j, pt(j), j.name, _r(j, Gd(j, 8)), void 0));
          case 169:
            return Ni(j.name) ? Sn(void 0) : Sn(I.updatePropertyDeclaration(j, pt(j), j.name, j.questionToken, Qt(j, j.type), sn(j)));
          case 168:
            return Ni(j.name) ? Sn(void 0) : Sn(I.updatePropertySignature(j, pt(j), j.name, j.questionToken, Qt(j, j.type)));
          case 170:
            return Ni(j.name) ? Sn(void 0) : Sn(I.updateMethodSignature(j, pt(j), j.name, j.questionToken, Ii(j, j.typeParameters), Zt(j, j.parameters), Qt(j, j.type)));
          case 176:
            return Sn(I.updateCallSignature(j, Ii(j, j.typeParameters), Zt(j, j.parameters), Qt(j, j.type)));
          case 178:
            return Sn(I.updateIndexSignature(j, pt(j), Zt(j, j.parameters), lt(j.type, cr, Gi) || I.createKeywordTypeNode(131)));
          case 257:
            return Xa(j.name) ? Ar(j.name) : (cn = !0, A = !0, Sn(I.updateVariableDeclaration(j, j.name, void 0, Qt(j, j.type), sn(j))));
          case 165:
            return Pi(j) && (j.default || j.constraint) ? Sn(I.updateTypeParameterDeclaration(j, j.modifiers, j.name, void 0, void 0)) : Sn(Bn(j, cr, e));
          case 191: {
            const Er = lt(j.checkType, cr, Gi), ue = lt(j.extendsType, cr, Gi), mt = d;
            d = j.trueType;
            const zt = lt(j.trueType, cr, Gi);
            d = mt;
            const it = lt(j.falseType, cr, Gi);
            return D.assert(Er), D.assert(ue), D.assert(zt), D.assert(it), Sn(I.updateConditionalTypeNode(j, Er, ue, zt, it));
          }
          case 181:
            return Sn(I.updateFunctionTypeNode(j, Jn(j.typeParameters, cr, Fl), Zt(j, j.parameters), D.checkDefined(lt(j.type, cr, Gi))));
          case 182:
            return Sn(I.updateConstructorTypeNode(j, pt(j), Jn(j.typeParameters, cr, Fl), Zt(j, j.parameters), D.checkDefined(lt(j.type, cr, Gi))));
          case 202:
            return j0(j) ? Sn(I.updateImportTypeNode(j, I.updateLiteralTypeNode(j.argument, At(j, j.argument.literal)), j.assertions, j.qualifier, Jn(j.typeArguments, cr, Gi), j.isTypeOf)) : Sn(j);
          default:
            D.assertNever(j, `Attempted to process unhandled node kind: ${D.formatSyntaxKind(j.kind)}`);
        }
      return gC(j) && ol(H, j.pos).line === ol(H, j.end).line && or(j, 1), Sn(Bn(j, cr, e));
      function Sn(Er) {
        return Er && Xe && Rv(j) && we(j), $i(j) && (d = He), Xe && !A && (r = Ze), cn && (A = Ut), Er === j ? Er : Er && Wr(Or(Er, j), j);
      }
    }
    function Pi(j) {
      return j.parent.kind === 171 && Gd(j.parent, 8);
    }
    function hi(j) {
      if (!L3e(j) || yt(j))
        return;
      switch (j.kind) {
        case 275:
          return qi(j.parent) && (s = !0), f = !0, I.updateExportDeclaration(j, j.modifiers, j.isTypeOnly, j.exportClause, At(j, j.moduleSpecifier), Vx(j.assertClause) ? j.assertClause : void 0);
        case 274: {
          if (qi(j.parent) && (s = !0), f = !0, j.expression.kind === 79)
            return j;
          {
            const Ze = I.createUniqueName("_default", 16);
            r = () => ({
              diagnosticMessage: _.Default_export_of_the_module_has_or_is_using_private_name_0,
              errorNode: j
            }), V = j;
            const Xe = I.createVariableDeclaration(Ze, void 0, P.createTypeOfExpression(j.expression, j, V1, k), void 0);
            V = void 0;
            const Ut = I.createVariableStatement(i ? [I.createModifier(136)] : [], I.createVariableDeclarationList([Xe], 2));
            return Or(Ut, j), vO(j), [Ut, I.updateExportAssignment(j, j.modifiers, Ze)];
          }
        }
      }
      const He = an(j);
      return E.set(kl(j), He), j;
    }
    function Rn(j) {
      if (su(j) || Gd(j, 1024) || !K_(j))
        return j;
      const He = I.createModifiersFromModifierFlags(Mu(j) & 258046);
      return I.updateModifiers(j, He);
    }
    function an(j) {
      if (h)
        for (; z4(h, j); )
          ;
      if (yt(j))
        return;
      switch (j.kind) {
        case 268:
          return vn(j);
        case 269:
          return Wt(j);
      }
      if (vu(j) && On(j) || Ka(j) && P.isImplementationOfOverload(j))
        return;
      let He;
      $i(j) && (He = d, d = j);
      const Ze = eF(j), Xe = r;
      Ze && (r = Ly(j));
      const Ut = i;
      switch (j.kind) {
        case 262: {
          i = !1;
          const Sn = cn(I.updateTypeAliasDeclaration(j, pt(j), j.name, Jn(j.typeParameters, cr, Fl), D.checkDefined(lt(j.type, cr, Gi))));
          return i = Ut, Sn;
        }
        case 261:
          return cn(I.updateInterfaceDeclaration(j, pt(j), j.name, Ii(j, j.typeParameters), he(j.heritageClauses), Jn(j.members, cr, rT)));
        case 259: {
          const Sn = cn(I.updateFunctionDeclaration(j, pt(j), void 0, j.name, Ii(j, j.typeParameters), Zt(j, j.parameters), Qt(j, j.type), void 0));
          if (Sn && P.isExpandoFunctionDeclaration(j) && jn(j)) {
            const Er = P.getPropertiesOfContainerFunction(j), ue = Jm.createModuleDeclaration(void 0, Sn.name || I.createIdentifier("_default"), I.createModuleBlock([]), 16);
            Vo(ue, d), ue.locals = lo(Er), ue.symbol = Er[0].parent;
            const mt = [];
            let zt = ia(Er, (q) => {
              if (!q.valueDeclaration || !Fr(q.valueDeclaration))
                return;
              r = Ly(q.valueDeclaration);
              const Rt = P.createTypeOfDeclaration(q.valueDeclaration, ue, V1, k);
              r = Xe;
              const gt = ta(q.escapedName), ft = ax(gt), _n = ft ? I.getGeneratedNameForNode(q.valueDeclaration) : I.createIdentifier(gt);
              ft && mt.push([_n, gt]);
              const $n = I.createVariableDeclaration(_n, void 0, Rt, void 0);
              return I.createVariableStatement(ft ? void 0 : [I.createToken(93)], I.createVariableDeclarationList([$n]));
            });
            mt.length ? zt.push(I.createExportDeclaration(void 0, !1, I.createNamedExports(jt(mt, ([q, Rt]) => I.createExportSpecifier(!1, q, Rt))))) : zt = ia(zt, (q) => I.updateModifiers(q, 0));
            const it = I.createModuleDeclaration(pt(j), j.name, I.createModuleBlock(zt), 16);
            if (!Gd(Sn, 1024))
              return [Sn, it];
            const K = I.createModifiersFromModifierFlags(Mu(Sn) & -1026 | 2), Pe = I.updateFunctionDeclaration(Sn, K, void 0, Sn.name, Sn.typeParameters, Sn.parameters, Sn.type, void 0), Z = I.updateModuleDeclaration(it, K, it.name, it.body), Re = I.createExportAssignment(void 0, !1, it.name);
            return qi(j.parent) && (s = !0), f = !0, [Pe, Z, Re];
          } else
            return Sn;
        }
        case 264: {
          i = !1;
          const Sn = j.body;
          if (Sn && Sn.kind === 265) {
            const Er = c, ue = f;
            f = !1, c = !1;
            const mt = Jn(Sn.statements, hi, wa);
            let zt = rr(mt);
            j.flags & 16777216 && (c = !1), !Kp(j) && !Ce(zt) && !f && (c ? zt = I.createNodeArray([...zt, UO(I)]) : zt = Jn(zt, Rn, wa));
            const it = I.updateModuleBlock(Sn, zt);
            i = Ut, c = Er, f = ue;
            const K = pt(j);
            return cn(I.updateModuleDeclaration(j, K, h1(j) ? At(j, j.name) : j.name, it));
          } else {
            i = Ut;
            const Er = pt(j);
            i = !1, lt(Sn, hi);
            const ue = kl(Sn), mt = E.get(ue);
            return E.delete(ue), cn(I.updateModuleDeclaration(j, Er, j.name, mt));
          }
        }
        case 260: {
          G = j.name, V = j;
          const Sn = I.createNodeArray(pt(j)), Er = Ii(j, j.typeParameters), ue = Eh(j);
          let mt;
          if (ue) {
            const Re = r;
            mt = uR(ca(ue.parameters, (q) => {
              if (!Yr(q, 16476) || yt(q))
                return;
              if (r = Ly(q), q.name.kind === 79)
                return Or(I.createPropertyDeclaration(pt(q), q.name, q.questionToken, Qt(q, q.type), sn(q)), q);
              return Rt(q.name);
              function Rt(gt) {
                let ft;
                for (const _n of gt.elements)
                  Rc(_n) || (Xa(_n.name) && (ft = va(ft, Rt(_n.name))), ft = ft || [], ft.push(I.createPropertyDeclaration(pt(q), _n.name, void 0, Qt(_n, void 0), void 0)));
                return ft;
              }
            })), r = Re;
          }
          const it = kt(j.members, (Re) => !!Re.name && Ni(Re.name)) ? [
            I.createPropertyDeclaration(void 0, I.createPrivateIdentifier("#private"), void 0, void 0, void 0)
          ] : void 0, K = va(va(it, mt), Jn(j.members, cr, Uc)), Pe = I.createNodeArray(K), Z = Xp(j);
          if (Z && !zl(Z.expression) && Z.expression.kind !== 104) {
            const Re = j.name ? ta(j.name.escapedText) : "default", q = I.createUniqueName(`${Re}_base`, 16);
            r = () => ({
              diagnosticMessage: _.extends_clause_of_exported_class_0_has_or_is_using_private_name_1,
              errorNode: Z,
              typeName: j.name
            });
            const Rt = I.createVariableDeclaration(q, void 0, P.createTypeOfExpression(Z.expression, j, V1, k), void 0), gt = I.createVariableStatement(i ? [I.createModifier(136)] : [], I.createVariableDeclarationList([Rt], 2)), ft = I.createNodeArray(jt(j.heritageClauses, (_n) => {
              if (_n.token === 94) {
                const $n = r;
                r = Ly(_n.types[0]);
                const oi = I.updateHeritageClause(_n, jt(_n.types, (Ai) => I.updateExpressionWithTypeArguments(Ai, q, Jn(Ai.typeArguments, cr, Gi))));
                return r = $n, oi;
              }
              return I.updateHeritageClause(_n, Jn(I.createNodeArray(lr(_n.types, ($n) => zl($n.expression) || $n.expression.kind === 104)), cr, Sy));
            }));
            return [gt, cn(I.updateClassDeclaration(j, Sn, j.name, Er, ft, Pe))];
          } else {
            const Re = he(j.heritageClauses);
            return cn(I.updateClassDeclaration(j, Sn, j.name, Er, Re, Pe));
          }
        }
        case 240:
          return cn(Pn(j));
        case 263:
          return cn(I.updateEnumDeclaration(j, I.createNodeArray(pt(j)), j.name, I.createNodeArray(ia(j.members, (Sn) => {
            if (yt(Sn))
              return;
            const Er = P.getConstantValue(Sn);
            return Or(I.updateEnumMember(Sn, Sn.name, Er !== void 0 ? typeof Er == "string" ? I.createStringLiteral(Er) : I.createNumericLiteral(Er) : void 0), Sn);
          }))));
      }
      return D.assertNever(j, `Unhandled top-level node in declaration emit: ${D.formatSyntaxKind(j.kind)}`);
      function cn(Sn) {
        return $i(j) && (d = He), Ze && (r = Xe), j.kind === 264 && (i = Ut), Sn === j ? Sn : (V = void 0, G = void 0, Sn && Wr(Or(Sn, j), j));
      }
    }
    function Pn(j) {
      if (!ze(j.declarationList.declarations, In))
        return;
      const He = Jn(j.declarationList.declarations, cr, Ki);
      if (Le(He))
        return I.updateVariableStatement(j, I.createNodeArray(pt(j)), I.updateVariableDeclarationList(j.declarationList, He));
    }
    function Ar(j) {
      return No(ia(j.elements, (He) => Hr(He)));
    }
    function Hr(j) {
      if (j.kind !== 229 && j.name)
        return In(j) ? Xa(j.name) ? Ar(j.name) : I.createVariableDeclaration(j.name, void 0, Qt(j, void 0), void 0) : void 0;
    }
    function we(j) {
      let He;
      A || (He = r, r = Rhe(j)), G = j.name, D.assert(P.isLateBound(Ea(j)));
      const Xe = j.name.expression;
      Qi(Xe, d), A || (r = He), G = void 0;
    }
    function yt(j) {
      return !!ye && !!j && SX(j, H);
    }
    function Nt(j) {
      return Bl(j) || eu(j);
    }
    function Ce(j) {
      return kt(j, Nt);
    }
    function pt(j) {
      const He = Mu(j), Ze = _e(j);
      return He === Ze ? rX(j.modifiers, (Xe) => ai(Xe, fo), fo) : I.createModifiersFromModifierFlags(Ze);
    }
    function _e(j) {
      let He = 241147, Ze = i && !x3e(j) ? 2 : 0;
      const Xe = j.parent.kind === 308;
      return (!Xe || o && Xe && Zl(j.parent)) && (He ^= 2, Ze = 0), Phe(j, He, Ze);
    }
    function ie(j, He) {
      let Ze = AX(j);
      return !Ze && j !== He.firstAccessor && (Ze = AX(He.firstAccessor), r = Ly(He.firstAccessor)), !Ze && He.secondAccessor && j !== He.secondAccessor && (Ze = AX(He.secondAccessor), r = Ly(He.secondAccessor)), Ze;
    }
    function he(j) {
      return I.createNodeArray(lr(jt(j, (He) => I.updateHeritageClause(He, Jn(I.createNodeArray(lr(He.types, (Ze) => zl(Ze.expression) || He.token === 94 && Ze.expression.kind === 104)), cr, Sy))), (He) => He.types && !!He.types.length));
    }
  }
  function x3e(e) {
    return e.kind === 261;
  }
  function A3e(e, t, r) {
    return N.createModifiersFromModifierFlags(Phe(e, t, r));
  }
  function Phe(e, t = 258043, r = 0) {
    let i = Mu(e) & t | r;
    return i & 1024 && !(i & 1) && (i ^= 1), i & 1024 && i & 2 && (i ^= 2), i;
  }
  function AX(e) {
    if (e)
      return e.kind === 174 ? e.type : e.parameters.length > 0 ? e.parameters[0].type : void 0;
  }
  function C3e(e) {
    switch (e.kind) {
      case 169:
      case 168:
        return !Gd(e, 8);
      case 166:
      case 257:
        return !0;
    }
    return !1;
  }
  function L3e(e) {
    switch (e.kind) {
      case 259:
      case 264:
      case 268:
      case 261:
      case 260:
      case 262:
      case 263:
      case 240:
      case 269:
      case 275:
      case 274:
        return !0;
    }
    return !1;
  }
  function I3e(e) {
    switch (e.kind) {
      case 177:
      case 173:
      case 171:
      case 174:
      case 175:
      case 169:
      case 168:
      case 170:
      case 176:
      case 178:
      case 257:
      case 165:
      case 230:
      case 180:
      case 191:
      case 181:
      case 182:
      case 202:
        return !0;
    }
    return !1;
  }
  var V1, k3e = C({
    "src/compiler/transformers/declarations.ts"() {
      Oa(), XK(), V1 = 531469;
    }
  });
  function w3e(e) {
    switch (e) {
      case 99:
      case 7:
      case 6:
      case 5:
        return TX;
      case 4:
        return whe;
      case 100:
      case 199:
        return Dhe;
      default:
        return EX;
    }
  }
  function CX(e, t, r) {
    return {
      scriptTransformers: D3e(e, t, r),
      declarationTransformers: R3e(t)
    };
  }
  function D3e(e, t, r) {
    if (r)
      return rt;
    const i = ts(e), o = au(e), s = nO(e), c = [];
    return Ti(c, t && jt(t.before, Fhe)), c.push(uhe), e.experimentalDecorators ? c.push(phe) : (i < 99 || !s) && c.push(mhe), c.push(fhe), cq(e) && c.push(The), i < 99 && c.push(Ehe), i < 8 && c.push(bhe), i < 7 && c.push(vhe), i < 6 && c.push(yhe), i < 5 && c.push(ghe), i < 4 && c.push(hhe), i < 3 && c.push(xhe), i < 2 && (c.push(Che), c.push(Ihe)), c.push(w3e(o)), i < 1 && c.push(Lhe), Ti(c, t && jt(t.after, Fhe)), c;
  }
  function R3e(e) {
    const t = [];
    return t.push(xX), Ti(t, e && jt(e.afterDeclarations, O3e)), t;
  }
  function N3e(e) {
    return (t) => SJ(t) ? e.transformBundle(t) : e.transformSourceFile(t);
  }
  function Mhe(e, t) {
    return (r) => {
      const i = e(r);
      return typeof i == "function" ? t(r, i) : N3e(i);
    };
  }
  function Fhe(e) {
    return Mhe(e, X_);
  }
  function O3e(e) {
    return Mhe(e, (t, r) => r);
  }
  function tw(e, t) {
    return t;
  }
  function I8(e, t, r) {
    r(e, t);
  }
  function k8(e, t, r, i, o, s, c) {
    var f, d;
    const y = new Array(361);
    let h, E, A, L = 0, I = [], O = [], k = [], G = [], V = 0, H = !1, te = [], X = 0, Y, P, de = tw, re = I8, ye = 0;
    const ae = [], W = {
      factory: r,
      getCompilerOptions: () => i,
      getEmitResolver: () => e,
      getEmitHost: () => t,
      getEmitHelperFactory: Ed(() => Nfe(W)),
      startLexicalEnvironment: Fe,
      suspendLexicalEnvironment: st,
      resumeLexicalEnvironment: Ct,
      endLexicalEnvironment: Et,
      setLexicalEnvironmentFlags: Vt,
      getLexicalEnvironmentFlags: tt,
      hoistVariableDeclaration: Me,
      hoistFunctionDeclaration: Ye,
      addInitializationStatement: We,
      startBlockScope: at,
      endBlockScope: sn,
      addBlockScopedVariable: Qt,
      requestEmitHelper: On,
      readEmitHelpers: jn,
      enableSubstitution: ee,
      enableEmitNotification: Be,
      isSubstitutionEnabled: Qe,
      isEmitNotificationEnabled: qe,
      get onSubstituteNode() {
        return de;
      },
      set onSubstituteNode(Zt) {
        D.assert(ye < 1, "Cannot modify transformation hooks after initialization has completed."), D.assert(Zt !== void 0, "Value must not be 'undefined'"), de = Zt;
      },
      get onEmitNode() {
        return re;
      },
      set onEmitNode(Zt) {
        D.assert(ye < 1, "Cannot modify transformation hooks after initialization has completed."), D.assert(Zt !== void 0, "Value must not be 'undefined'"), re = Zt;
      },
      addDiagnostic(Zt) {
        ae.push(Zt);
      }
    };
    for (const Zt of o)
      nJ(Zn(Ea(Zt)));
    al("beforeTransform");
    const ce = s.map((Zt) => Zt(W)), me = (Zt) => {
      for (const _r of ce)
        Zt = _r(Zt);
      return Zt;
    };
    ye = 1;
    const ve = [];
    for (const Zt of o)
      (f = bi) == null || f.push(bi.Phase.Emit, "transformNodes", Zt.kind === 308 ? { path: Zt.path } : { kind: Zt.kind, pos: Zt.pos, end: Zt.end }), ve.push((c ? me : Te)(Zt)), (d = bi) == null || d.pop();
    return ye = 2, al("afterTransform"), Jf("transformTime", "beforeTransform", "afterTransform"), {
      transformed: ve,
      substituteNode: Ve,
      emitNodeWithNotification: Oe,
      isEmitNotificationEnabled: qe,
      dispose: In,
      diagnostics: ae
    };
    function Te(Zt) {
      return Zt && (!qi(Zt) || !Zt.isDeclarationFile) ? me(Zt) : Zt;
    }
    function ee(Zt) {
      D.assert(ye < 2, "Cannot modify the transformation context after transformation has completed."), y[Zt] |= 1;
    }
    function Qe(Zt) {
      return (y[Zt.kind] & 1) !== 0 && (vo(Zt) & 8) === 0;
    }
    function Ve(Zt, _r) {
      return D.assert(ye < 3, "Cannot substitute a node after the result is disposed."), _r && Qe(_r) && de(Zt, _r) || _r;
    }
    function Be(Zt) {
      D.assert(ye < 2, "Cannot modify the transformation context after transformation has completed."), y[Zt] |= 2;
    }
    function qe(Zt) {
      return (y[Zt.kind] & 2) !== 0 || (vo(Zt) & 4) !== 0;
    }
    function Oe(Zt, _r, Ii) {
      D.assert(ye < 3, "Cannot invoke TransformationResult callbacks after the result is disposed."), _r && (qe(_r) ? re(Zt, _r, Ii) : Ii(Zt, _r));
    }
    function Me(Zt) {
      D.assert(ye > 0, "Cannot modify the lexical environment during initialization."), D.assert(ye < 2, "Cannot modify the lexical environment after transformation has completed.");
      const _r = or(r.createVariableDeclaration(Zt), 128);
      h ? h.push(_r) : h = [_r], L & 1 && (L |= 2);
    }
    function Ye(Zt) {
      D.assert(ye > 0, "Cannot modify the lexical environment during initialization."), D.assert(ye < 2, "Cannot modify the lexical environment after transformation has completed."), or(Zt, 2097152), E ? E.push(Zt) : E = [Zt];
    }
    function We(Zt) {
      D.assert(ye > 0, "Cannot modify the lexical environment during initialization."), D.assert(ye < 2, "Cannot modify the lexical environment after transformation has completed."), or(Zt, 2097152), A ? A.push(Zt) : A = [Zt];
    }
    function Fe() {
      D.assert(ye > 0, "Cannot modify the lexical environment during initialization."), D.assert(ye < 2, "Cannot modify the lexical environment after transformation has completed."), D.assert(!H, "Lexical environment is suspended."), I[V] = h, O[V] = E, k[V] = A, G[V] = L, V++, h = void 0, E = void 0, A = void 0, L = 0;
    }
    function st() {
      D.assert(ye > 0, "Cannot modify the lexical environment during initialization."), D.assert(ye < 2, "Cannot modify the lexical environment after transformation has completed."), D.assert(!H, "Lexical environment is already suspended."), H = !0;
    }
    function Ct() {
      D.assert(ye > 0, "Cannot modify the lexical environment during initialization."), D.assert(ye < 2, "Cannot modify the lexical environment after transformation has completed."), D.assert(H, "Lexical environment is not suspended."), H = !1;
    }
    function Et() {
      D.assert(ye > 0, "Cannot modify the lexical environment during initialization."), D.assert(ye < 2, "Cannot modify the lexical environment after transformation has completed."), D.assert(!H, "Lexical environment is suspended.");
      let Zt;
      if (h || E || A) {
        if (E && (Zt = [...E]), h) {
          const _r = r.createVariableStatement(void 0, r.createVariableDeclarationList(h));
          or(_r, 2097152), Zt ? Zt.push(_r) : Zt = [_r];
        }
        A && (Zt ? Zt = [...Zt, ...A] : Zt = [...A]);
      }
      return V--, h = I[V], E = O[V], A = k[V], L = G[V], V === 0 && (I = [], O = [], k = [], G = []), Zt;
    }
    function Vt(Zt, _r) {
      L = _r ? L | Zt : L & ~Zt;
    }
    function tt() {
      return L;
    }
    function at() {
      D.assert(ye > 0, "Cannot start a block scope during initialization."), D.assert(ye < 2, "Cannot start a block scope after transformation has completed."), te[X] = Y, X++, Y = void 0;
    }
    function sn() {
      D.assert(ye > 0, "Cannot end a block scope during initialization."), D.assert(ye < 2, "Cannot end a block scope after transformation has completed.");
      const Zt = kt(Y) ? [
        r.createVariableStatement(void 0, r.createVariableDeclarationList(Y.map((_r) => r.createVariableDeclaration(_r)), 1))
      ] : void 0;
      return X--, Y = te[X], X === 0 && (te = []), Zt;
    }
    function Qt(Zt) {
      D.assert(X > 0, "Cannot add a block scoped variable outside of an iteration body."), (Y || (Y = [])).push(Zt);
    }
    function On(Zt) {
      if (D.assert(ye > 0, "Cannot modify the transformation context during initialization."), D.assert(ye < 2, "Cannot modify the transformation context after transformation has completed."), D.assert(!Zt.scoped, "Cannot request a scoped emit helper."), Zt.dependencies)
        for (const _r of Zt.dependencies)
          On(_r);
      P = Fn(P, Zt);
    }
    function jn() {
      D.assert(ye > 0, "Cannot modify the transformation context during initialization."), D.assert(ye < 2, "Cannot modify the transformation context after transformation has completed.");
      const Zt = P;
      return P = void 0, Zt;
    }
    function In() {
      if (ye < 3) {
        for (const Zt of o)
          nJ(Zn(Ea(Zt)));
        h = void 0, I = void 0, E = void 0, O = void 0, de = void 0, re = void 0, P = void 0, ye = 3;
      }
    }
  }
  var LX, bg, P3e = C({
    "src/compiler/transformer.ts"() {
      Oa(), s1(), LX = { scriptTransformers: rt, declarationTransformers: rt }, bg = {
        factory: N,
        getCompilerOptions: () => ({}),
        getEmitResolver: Wa,
        getEmitHost: Wa,
        getEmitHelperFactory: Wa,
        startLexicalEnvironment: so,
        resumeLexicalEnvironment: so,
        suspendLexicalEnvironment: so,
        endLexicalEnvironment: M0,
        setLexicalEnvironmentFlags: so,
        getLexicalEnvironmentFlags: () => 0,
        hoistVariableDeclaration: so,
        hoistFunctionDeclaration: so,
        addInitializationStatement: so,
        startBlockScope: so,
        endBlockScope: M0,
        addBlockScopedVariable: so,
        requestEmitHelper: so,
        readEmitHelpers: Wa,
        enableSubstitution: so,
        enableEmitNotification: so,
        isSubstitutionEnabled: Wa,
        isEmitNotificationEnabled: Wa,
        onSubstituteNode: tw,
        onEmitNode: I8,
        addDiagnostic: so
      };
    }
  });
  function Bhe(e) {
    return cc(e, ".tsbuildinfo");
  }
  function IX(e, t, r, i = !1, o, s) {
    const c = Va(r) ? r : Bz(e, r, i), f = e.getCompilerOptions();
    if (qs(f)) {
      const d = e.getPrependNodes();
      if (c.length || d.length) {
        const y = N.createBundle(c, d), h = t(rw(y, e, i), y);
        if (h)
          return h;
      }
    } else {
      if (!o)
        for (const d of c) {
          const y = t(rw(d, e, i), d);
          if (y)
            return y;
        }
      if (s) {
        const d = Iy(f);
        if (d)
          return t({ buildInfoPath: d }, void 0);
      }
    }
  }
  function Iy(e) {
    const t = e.configFilePath;
    if (!eO(e))
      return;
    if (e.tsBuildInfoFile)
      return e.tsBuildInfoFile;
    const r = qs(e);
    let i;
    if (r)
      i = Ud(r);
    else {
      if (!t)
        return;
      const o = Ud(t);
      i = e.outDir ? e.rootDir ? bv(e.outDir, wm(e.rootDir, o, !0)) : Bi(e.outDir, mu(o)) : o;
    }
    return i + ".tsbuildinfo";
  }
  function nw(e, t) {
    const r = qs(e), i = e.emitDeclarationOnly ? void 0 : r, o = i && Ghe(i, e), s = t || W_(e) ? Ud(r) + ".d.ts" : void 0, c = s && V3(e) ? s + ".map" : void 0, f = Iy(e);
    return { jsFilePath: i, sourceMapFilePath: o, declarationFilePath: s, declarationMapPath: c, buildInfoPath: f };
  }
  function rw(e, t, r) {
    const i = t.getCompilerOptions();
    if (e.kind === 309)
      return nw(i, r);
    {
      const o = jue(e.fileName, t, kX(e.fileName, i)), s = p_(e), c = s && QE(e.fileName, o, t.getCurrentDirectory(), !t.useCaseSensitiveFileNames()) === 0, f = i.emitDeclarationOnly || c ? void 0 : o, d = !f || p_(e) ? void 0 : Ghe(f, i), y = r || W_(i) && !s ? Hue(e.fileName, t) : void 0, h = y && V3(i) ? y + ".map" : void 0;
      return { jsFilePath: f, sourceMapFilePath: d, declarationFilePath: y, declarationMapPath: h, buildInfoPath: void 0 };
    }
  }
  function Ghe(e, t) {
    return t.sourceMap && !t.inlineSourceMap ? e + ".map" : void 0;
  }
  function kX(e, t) {
    return cc(e, ".json") ? ".json" : t.jsx === 1 && Tc(e, [".jsx", ".tsx"]) ? ".jsx" : Tc(e, [".mts", ".mjs"]) ? ".mjs" : Tc(e, [".cts", ".cjs"]) ? ".cjs" : ".js";
  }
  function Uhe(e, t, r, i, o) {
    return i ? bv(i, wm(o ? o() : aw(t, r), e, r)) : e;
  }
  function iw(e, t, r, i) {
    return L1(Uhe(e, t, r, t.options.declarationDir || t.options.outDir, i), Mz(e));
  }
  function Vhe(e, t, r, i) {
    if (t.options.emitDeclarationOnly)
      return;
    const o = cc(e, ".json"), s = L1(Uhe(e, t, r, t.options.outDir, i), kX(e, t.options));
    return !o || QE(e, s, D.checkDefined(t.options.configFilePath), r) !== 0 ? s : void 0;
  }
  function jhe() {
    let e;
    return { addOutput: t, getOutputs: r };
    function t(i) {
      i && (e || (e = [])).push(i);
    }
    function r() {
      return e || rt;
    }
  }
  function Hhe(e, t) {
    const { jsFilePath: r, sourceMapFilePath: i, declarationFilePath: o, declarationMapPath: s, buildInfoPath: c } = nw(e.options, !1);
    t(r), t(i), t(o), t(s), t(c);
  }
  function Whe(e, t, r, i, o) {
    if (fd(t))
      return;
    const s = Vhe(t, e, r, o);
    if (i(s), !cc(t, ".json") && (s && e.options.sourceMap && i(`${s}.map`), W_(e.options))) {
      const c = iw(t, e, r, o);
      i(c), e.options.declarationMap && i(`${c}.map`);
    }
  }
  function w8(e, t, r, i, o) {
    let s;
    return e.rootDir ? (s = Pa(e.rootDir, r), o == null || o(e.rootDir)) : e.composite && e.configFilePath ? (s = mi(Qc(e.configFilePath)), o == null || o(s)) : s = Zhe(t(), r, i), s && s[s.length - 1] !== Ms && (s += Ms), s;
  }
  function aw({ options: e, fileNames: t }, r) {
    return w8(e, () => lr(t, (i) => !(e.noEmitForJsFiles && Tc(i, Ek)) && !fd(i)), mi(Qc(D.checkDefined(e.configFilePath))), ru(!r));
  }
  function tF(e, t) {
    const { addOutput: r, getOutputs: i } = jhe();
    if (qs(e.options))
      Hhe(e, r);
    else {
      const o = Ed(() => aw(e, t));
      for (const s of e.fileNames)
        Whe(e, s, t, r, o);
      r(Iy(e.options));
    }
    return i();
  }
  function M3e(e, t, r) {
    t = Jo(t), D.assert(jr(e.fileNames, t), "Expected fileName to be present in command line");
    const { addOutput: i, getOutputs: o } = jhe();
    return qs(e.options) ? Hhe(e, i) : Whe(e, t, r, i), o();
  }
  function wX(e, t) {
    if (qs(e.options)) {
      const { jsFilePath: o, declarationFilePath: s } = nw(e.options, !1);
      return D.checkDefined(o || s, `project ${e.options.configFilePath} expected to have at least one output`);
    }
    const r = Ed(() => aw(e, t));
    for (const o of e.fileNames) {
      if (fd(o))
        continue;
      const s = Vhe(o, e, t, r);
      if (s)
        return s;
      if (!cc(o, ".json") && W_(e.options))
        return iw(o, e, t, r);
    }
    const i = Iy(e.options);
    return i || D.fail(`project ${e.options.configFilePath} expected to have at least one output`);
  }
  function nF(e, t, r, { scriptTransformers: i, declarationTransformers: o }, s, c, f) {
    var d = t.getCompilerOptions(), y = d.sourceMap || d.inlineSourceMap || V3(d) ? [] : void 0, h = d.listEmittedFiles ? [] : void 0, E = QA(), A = X0(d), L = HN(A), { enter: I, exit: O } = eM("printTime", "beforePrint", "afterPrint"), k, G = !1;
    return I(), IX(t, V, Bz(t, r, f), f, c, !r), O(), {
      emitSkipped: G,
      diagnostics: E.getDiagnostics(),
      emittedFiles: h,
      sourceMaps: y
    };
    function V({ jsFilePath: W, sourceMapFilePath: ce, declarationFilePath: me, declarationMapPath: ve, buildInfoPath: Te }, ee) {
      var Qe, Ve, Be, qe, Oe, Me;
      let Ye;
      Te && ee && SJ(ee) && (Ye = mi(Pa(Te, t.getCurrentDirectory())), k = {
        commonSourceDirectory: We(t.getCommonSourceDirectory()),
        sourceFiles: ee.sourceFiles.map((Fe) => We(Pa(Fe.fileName, t.getCurrentDirectory())))
      }), (Qe = bi) == null || Qe.push(bi.Phase.Emit, "emitJsFileOrBundle", { jsFilePath: W }), te(ee, W, ce, We), (Ve = bi) == null || Ve.pop(), (Be = bi) == null || Be.push(bi.Phase.Emit, "emitDeclarationFileOrBundle", { declarationFilePath: me }), X(ee, me, ve, We), (qe = bi) == null || qe.pop(), (Oe = bi) == null || Oe.push(bi.Phase.Emit, "emitBuildInfo", { buildInfoPath: Te }), H(k, Te), (Me = bi) == null || Me.pop(), !G && h && (s || (W && h.push(W), ce && h.push(ce), Te && h.push(Te)), s !== 0 && (me && h.push(me), ve && h.push(ve)));
      function We(Fe) {
        return c1(wm(Ye, Fe, t.getCanonicalFileName));
      }
    }
    function H(W, ce) {
      if (!ce || r || G)
        return;
      if (t.isEmitBlocked(ce)) {
        G = !0;
        return;
      }
      const me = t.getBuildInfo(W) || D8(void 0, W);
      XI(t, E, ce, zhe(me), !1, void 0, { buildInfo: me });
    }
    function te(W, ce, me, ve) {
      if (!W || s || !ce)
        return;
      if (t.isEmitBlocked(ce) || d.noEmit) {
        G = !0;
        return;
      }
      const Te = k8(e, t, N, d, [W], i, !1), ee = {
        removeComments: d.removeComments,
        newLine: d.newLine,
        noEmitHelpers: d.noEmitHelpers,
        module: d.module,
        target: d.target,
        sourceMap: d.sourceMap,
        inlineSourceMap: d.inlineSourceMap,
        inlineSources: d.inlineSources,
        extendedDiagnostics: d.extendedDiagnostics,
        writeBundleFileInfo: !!k,
        relativeToBuildInfo: ve
      }, Qe = j1(ee, {
        hasGlobalName: e.hasGlobalName,
        onEmitNode: Te.emitNodeWithNotification,
        isEmitNotificationEnabled: Te.isEmitNotificationEnabled,
        substituteNode: Te.substituteNode
      });
      D.assert(Te.transformed.length === 1, "Should only see one output from the transform"), P(ce, me, Te, Qe, d), Te.dispose(), k && (k.js = Qe.bundleFileInfo);
    }
    function X(W, ce, me, ve) {
      if (!W || s === 0)
        return;
      if (!ce) {
        (s || d.emitDeclarationOnly) && (G = !0);
        return;
      }
      const Te = qi(W) ? [W] : W.sourceFiles, ee = f ? Te : lr(Te, fz), Qe = qs(d) ? [N.createBundle(ee, qi(W) ? void 0 : W.prepends)] : ee;
      s && !W_(d) && ee.forEach(Y);
      const Ve = k8(e, t, N, d, Qe, o, !1);
      if (Le(Ve.diagnostics))
        for (const Me of Ve.diagnostics)
          E.add(Me);
      const Be = {
        removeComments: d.removeComments,
        newLine: d.newLine,
        noEmitHelpers: !0,
        module: d.module,
        target: d.target,
        sourceMap: !f && d.declarationMap,
        inlineSourceMap: d.inlineSourceMap,
        extendedDiagnostics: d.extendedDiagnostics,
        onlyPrintJsDocStyle: !0,
        writeBundleFileInfo: !!k,
        recordInternalSection: !!k,
        relativeToBuildInfo: ve
      }, qe = j1(Be, {
        hasGlobalName: e.hasGlobalName,
        onEmitNode: Ve.emitNodeWithNotification,
        isEmitNotificationEnabled: Ve.isEmitNotificationEnabled,
        substituteNode: Ve.substituteNode
      }), Oe = !!Ve.diagnostics && !!Ve.diagnostics.length || !!t.isEmitBlocked(ce) || !!d.noEmit;
      G = G || Oe, (!Oe || f) && (D.assert(Ve.transformed.length === 1, "Should only see one output from the decl transform"), P(ce, me, Ve, qe, {
        sourceMap: Be.sourceMap,
        sourceRoot: d.sourceRoot,
        mapRoot: d.mapRoot,
        extendedDiagnostics: d.extendedDiagnostics
      })), Ve.dispose(), k && (k.dts = qe.bundleFileInfo);
    }
    function Y(W) {
      if (Bl(W)) {
        W.expression.kind === 79 && e.collectLinkedAliases(W.expression, !0);
        return;
      } else if (dd(W)) {
        e.collectLinkedAliases(W.propertyName || W.name, !0);
        return;
      }
      Ma(W, Y);
    }
    function P(W, ce, me, ve, Te) {
      const ee = me.transformed[0], Qe = ee.kind === 309 ? ee : void 0, Ve = ee.kind === 308 ? ee : void 0, Be = Qe ? Qe.sourceFiles : [Ve];
      let qe;
      de(Te, ee) && (qe = Jme(t, mu(Qc(W)), re(Te), ye(Te, W, Ve), Te)), Qe ? ve.writeBundle(Qe, L, qe) : ve.writeFile(Ve, L, qe);
      let Oe;
      if (qe) {
        y && y.push({
          inputSourceFileNames: qe.getSources(),
          sourceMap: qe.toJSON()
        });
        const Ye = ae(Te, qe, W, ce, Ve);
        if (Ye && (L.isAtStartOfLine() || L.rawWrite(A), Oe = L.getTextPos(), L.writeComment(`//# sourceMappingURL=${Ye}`)), ce) {
          const We = qe.toString();
          XI(t, E, ce, We, !1, Be), ve.bundleFileInfo && (ve.bundleFileInfo.mapHash = UT(We, t));
        }
      } else
        L.writeLine();
      const Me = L.getText();
      XI(t, E, W, Me, !!d.emitBOM, Be, { sourceMapUrlPos: Oe, diagnostics: me.diagnostics }), ve.bundleFileInfo && (ve.bundleFileInfo.hash = UT(Me, t)), L.clear();
    }
    function de(W, ce) {
      return (W.sourceMap || W.inlineSourceMap) && (ce.kind !== 308 || !cc(ce.fileName, ".json"));
    }
    function re(W) {
      const ce = Qc(W.sourceRoot || "");
      return ce && Ou(ce);
    }
    function ye(W, ce, me) {
      if (W.sourceRoot)
        return t.getCommonSourceDirectory();
      if (W.mapRoot) {
        let ve = Qc(W.mapRoot);
        return me && (ve = mi(w3(me.fileName, t, ve))), qp(ve) === 0 && (ve = Bi(t.getCommonSourceDirectory(), ve)), ve;
      }
      return mi(Jo(ce));
    }
    function ae(W, ce, me, ve, Te) {
      if (W.inlineSourceMap) {
        const Qe = ce.toString();
        return `data:application/json;base64,${fde($c, Qe)}`;
      }
      const ee = mu(Qc(D.checkDefined(ve)));
      if (W.mapRoot) {
        let Qe = Qc(W.mapRoot);
        return Te && (Qe = mi(w3(Te.fileName, t, Qe))), qp(Qe) === 0 ? (Qe = Bi(t.getCommonSourceDirectory(), Qe), encodeURI(zS(mi(Jo(me)), Bi(Qe, ee), t.getCurrentDirectory(), t.getCanonicalFileName, !0))) : encodeURI(Bi(Qe, ee));
      }
      return encodeURI(ee);
    }
  }
  function D8(e, t) {
    return { bundle: t, program: e, version: Se };
  }
  function zhe(e) {
    return JSON.stringify(e);
  }
  function rF(e, t) {
    return Yz(e, t);
  }
  function F3e(e, t, r) {
    var i;
    const o = D.checkDefined(e.js), s = ((i = o.sources) == null ? void 0 : i.prologues) && e1(o.sources.prologues, (c) => c.file);
    return e.sourceFiles.map((c, f) => {
      var d, y;
      const h = s == null ? void 0 : s.get(f), E = h == null ? void 0 : h.directives.map((I) => {
        const O = ht(N.createStringLiteral(I.expression.text), I.expression), k = ht(N.createExpressionStatement(O), I);
        return Vo(O, k), k;
      }), A = N.createToken(1), L = N.createSourceFile(E ?? [], A, 0);
      return L.fileName = wm(r.getCurrentDirectory(), Pa(c, t), !r.useCaseSensitiveFileNames()), L.text = (d = h == null ? void 0 : h.text) != null ? d : "", hk(L, 0, (y = h == null ? void 0 : h.text.length) != null ? y : 0), sC(L.statements, L), hk(A, L.end, 0), Vo(A, L), L;
    });
  }
  function qhe(e, t, r, i) {
    var o, s;
    (o = bi) == null || o.push(bi.Phase.Emit, "emitUsingBuildInfo", {}, !0), vR.mark("beforeEmit");
    const c = B3e(e, t, r, i);
    return vR.mark("afterEmit"), vR.measure("Emit", "beforeEmit", "afterEmit"), (s = bi) == null || s.pop(), c;
  }
  function B3e(e, t, r, i) {
    const { buildInfoPath: o, jsFilePath: s, sourceMapFilePath: c, declarationFilePath: f, declarationMapPath: d } = nw(e.options, !1), y = t.getBuildInfo(o, e.options.configFilePath);
    if (!y || !y.bundle || !y.bundle.js || f && !y.bundle.dts)
      return o;
    const h = t.readFile(D.checkDefined(s));
    if (!h || UT(h, t) !== y.bundle.js.hash)
      return s;
    const E = c && t.readFile(c);
    if (c && !E || e.options.inlineSourceMap)
      return c || "inline sourcemap decoding";
    if (c && UT(E, t) !== y.bundle.js.mapHash)
      return c;
    const A = f && t.readFile(f);
    if (f && !A || f && UT(A, t) !== y.bundle.dts.hash)
      return f;
    const L = d && t.readFile(d);
    if (d && !L || e.options.inlineSourceMap)
      return d || "inline sourcemap decoding";
    if (d && UT(L, t) !== y.bundle.dts.mapHash)
      return d;
    const I = mi(Pa(o, t.getCurrentDirectory())), O = Qq(s, h, c, E, f, A, d, L, o, y, !0), k = [], G = YX(e.projectReferences, r, (Y) => t.readFile(Y), t), V = F3e(y.bundle, I, t);
    let H, te;
    const X = {
      getPrependNodes: Ed(() => [...G, O]),
      getCanonicalFileName: t.getCanonicalFileName,
      getCommonSourceDirectory: () => Pa(y.bundle.commonSourceDirectory, I),
      getCompilerOptions: () => e.options,
      getCurrentDirectory: () => t.getCurrentDirectory(),
      getSourceFile: M0,
      getSourceFileByPath: M0,
      getSourceFiles: () => V,
      getLibFileFromReference: Wa,
      isSourceFileFromExternalLibrary: t1,
      getResolvedProjectReferenceToRedirect: M0,
      getProjectReferenceRedirect: M0,
      isSourceOfProjectReferenceRedirect: t1,
      writeFile: (Y, P, de, re, ye, ae) => {
        switch (Y) {
          case s:
            if (h === P)
              return;
            break;
          case c:
            if (E === P)
              return;
            break;
          case o:
            break;
          case f:
            if (A === P)
              return;
            H = P, te = ae;
            break;
          case d:
            if (L === P)
              return;
            break;
          default:
            D.fail(`Unexpected path: ${Y}`);
        }
        k.push({ name: Y, text: P, writeByteOrderMark: de, data: ae });
      },
      isEmitBlocked: t1,
      readFile: (Y) => t.readFile(Y),
      fileExists: (Y) => t.fileExists(Y),
      useCaseSensitiveFileNames: () => t.useCaseSensitiveFileNames(),
      getBuildInfo: (Y) => {
        const P = y.program;
        P && H !== void 0 && e.options.composite && (P.outSignature = UT(H, t, te));
        const { js: de, dts: re, sourceFiles: ye } = y.bundle;
        return Y.js.sources = de.sources, re && (Y.dts.sources = re.sources), Y.sourceFiles = ye, D8(P, Y);
      },
      getSourceFileFromReference: M0,
      redirectTargetsMap: f_(),
      getFileIncludeReasons: Wa,
      createHash: Uo(t, t.createHash)
    };
    return nF(iF, X, void 0, CX(e.options, i)), k;
  }
  function j1(e = {}, t = {}) {
    var {
      hasGlobalName: r,
      onEmitNode: i = I8,
      isEmitNotificationEnabled: o,
      substituteNode: s = tw,
      onBeforeEmitNode: c,
      onAfterEmitNode: f,
      onBeforeEmitNodeArray: d,
      onAfterEmitNodeArray: y,
      onBeforeEmitToken: h,
      onAfterEmitToken: E
    } = t, A = !!e.extendedDiagnostics, L = X0(e), I = au(e), O = /* @__PURE__ */ new Map(), k, G, V, H, te, X, Y, P, de, re, ye, ae, W, ce, me, ve = e.preserveSourceNewlines, Te, ee, Qe, Ve = _L, Be, qe = e.writeBundleFileInfo ? { sections: [] } : void 0, Oe = qe ? D.checkDefined(e.relativeToBuildInfo) : void 0, Me = e.recordInternalSection, Ye = 0, We = "text", Fe = !0, st, Ct, Et = -1, Vt, tt = -1, at = -1, sn = -1, Qt = -1, On, jn, In = !1, Zt = !!e.removeComments, _r, Ii, { enter: $i, exit: Qi } = ule(A, "commentTime", "beforeComment", "afterComment"), Or = N.parenthesizer, At = {
      select: (S) => S === 0 ? Or.parenthesizeLeadingTypeArgument : void 0
    }, vn = tc();
    return He(), {
      printNode: Wt,
      printList: fn,
      printFile: cr,
      printBundle: rr,
      writeNode: hi,
      writeList: Rn,
      writeFile: Ce,
      writeBundle: yt,
      bundleFileInfo: qe
    };
    function Wt(S, le, ke) {
      switch (S) {
        case 0:
          D.assert(qi(le), "Expected a SourceFile node.");
          break;
        case 2:
          D.assert(je(le), "Expected an Identifier node.");
          break;
        case 1:
          D.assert(vt(le), "Expected an Expression node.");
          break;
      }
      switch (le.kind) {
        case 308:
          return cr(le);
        case 309:
          return rr(le);
        case 310:
          return Pi(le);
      }
      return hi(S, le, ke, pt()), _e();
    }
    function fn(S, le, ke) {
      return Rn(S, le, ke, pt()), _e();
    }
    function rr(S) {
      return yt(S, pt(), void 0), _e();
    }
    function cr(S) {
      return Ce(S, pt(), void 0), _e();
    }
    function Pi(S) {
      return Nt(S, pt()), _e();
    }
    function hi(S, le, ke, on) {
      const Cr = ee;
      j(on, void 0), ie(S, le, ke), He(), ee = Cr;
    }
    function Rn(S, le, ke, on) {
      const Cr = ee;
      j(on, void 0), ke && he(ke), Rs(void 0, le, S), He(), ee = Cr;
    }
    function an() {
      return ee.getTextPosWithWriteLine ? ee.getTextPosWithWriteLine() : ee.getTextPos();
    }
    function Pn(S, le, ke) {
      const on = tl(qe.sections);
      on && on.kind === ke ? on.end = le : qe.sections.push({ pos: S, end: le, kind: ke });
    }
    function Ar(S) {
      if (Me && qe && k && (vu(S) || uc(S)) && SX(S, k) && We !== "internal") {
        const le = We;
        return we(ee.getTextPos()), Ye = an(), We = "internal", le;
      }
    }
    function Hr(S) {
      S && (we(ee.getTextPos()), Ye = an(), We = S);
    }
    function we(S) {
      return Ye < S ? (Pn(Ye, S, We), !0) : !1;
    }
    function yt(S, le, ke) {
      Be = !1;
      const on = ee;
      j(le, ke), Sb(S), fS(S), _n(S), cS(S);
      for (const Cr of S.prepends) {
        Lc();
        const Si = ee.getTextPos(), li = qe && qe.sections;
        if (li && (qe.sections = []), ie(4, Cr, void 0), qe) {
          const Vi = qe.sections;
          qe.sections = li, Cr.oldFileOfCurrentEmit ? qe.sections.push(...Vi) : (Vi.forEach((_o) => D.assert(Tde(_o))), qe.sections.push({
            pos: Si,
            end: ee.getTextPos(),
            kind: "prepend",
            data: Oe(Cr.fileName),
            texts: Vi
          }));
        }
      }
      Ye = an();
      for (const Cr of S.sourceFiles)
        ie(0, Cr, Cr);
      if (qe && S.sourceFiles.length) {
        const Cr = ee.getTextPos();
        if (we(Cr)) {
          const Si = g2(S);
          Si && (qe.sources || (qe.sources = {}), qe.sources.prologues = Si);
          const li = ft(S);
          li && (qe.sources || (qe.sources = {}), qe.sources.helpers = li);
        }
      }
      He(), ee = on;
    }
    function Nt(S, le) {
      const ke = ee;
      j(le, void 0), ie(4, S, void 0), He(), ee = ke;
    }
    function Ce(S, le, ke) {
      Be = !0;
      const on = ee;
      j(le, ke), Sb(S), fS(S), ie(0, S, S), He(), ee = on;
    }
    function pt() {
      return Qe || (Qe = HN(L));
    }
    function _e() {
      const S = Qe.getText();
      return Qe.clear(), S;
    }
    function ie(S, le, ke) {
      ke && he(ke), mt(S, le, void 0);
    }
    function he(S) {
      k = S, On = void 0, jn = void 0, S && jg(S);
    }
    function j(S, le) {
      S && e.omitTrailingSemicolon && (S = Nz(S)), ee = S, st = le, Fe = !ee || !st;
    }
    function He() {
      G = [], V = [], H = [], te = /* @__PURE__ */ new Set(), X = [], Y = /* @__PURE__ */ new Map(), P = [], de = 0, re = [], ye = 0, ae = [], W = void 0, ce = [], me = void 0, k = void 0, On = void 0, jn = void 0, j(void 0, void 0);
    }
    function Ze() {
      return On || (On = ig(D.checkDefined(k)));
    }
    function Xe(S, le) {
      if (S === void 0)
        return;
      const ke = Ar(S);
      mt(4, S, le), Hr(ke);
    }
    function Ut(S) {
      S !== void 0 && mt(2, S, void 0);
    }
    function cn(S, le) {
      S !== void 0 && mt(1, S, le);
    }
    function Sn(S) {
      mt(jo(S) ? 6 : 4, S);
    }
    function Er(S) {
      ve && F_(S) & 4 && (ve = !1);
    }
    function ue(S) {
      ve = S;
    }
    function mt(S, le, ke) {
      Ii = ke, K(0, S, le)(S, le), Ii = void 0;
    }
    function zt(S) {
      return !Zt && !qi(S);
    }
    function it(S) {
      return !Fe && !qi(S) && !m3(S) && !kT(S) && !t_e(S);
    }
    function K(S, le, ke) {
      switch (S) {
        case 0:
          if (i !== I8 && (!o || o(ke)))
            return Z;
        case 1:
          if (s !== tw && (_r = s(le, ke) || ke) !== ke)
            return Ii && (_r = Ii(_r)), gt;
        case 2:
          if (zt(ke))
            return Yd;
        case 3:
          if (it(ke))
            return vE;
        case 4:
          return Re;
        default:
          return D.assertNever(S);
      }
    }
    function Pe(S, le, ke) {
      return K(S + 1, le, ke);
    }
    function Z(S, le) {
      const ke = Pe(0, S, le);
      i(S, le, ke);
    }
    function Re(S, le) {
      if (c == null || c(le), ve) {
        const ke = ve;
        Er(le), q(S, le), ue(ke);
      } else
        q(S, le);
      f == null || f(le), Ii = void 0;
    }
    function q(S, le, ke = !0) {
      if (ke) {
        const on = iJ(le);
        if (on)
          return io(S, le, on);
      }
      if (S === 0)
        return Eb(oo(le, qi));
      if (S === 2)
        return Xr(oo(le, je));
      if (S === 6)
        return Ai(oo(le, jo), !0);
      if (S === 3)
        return Rt(oo(le, Fl));
      if (S === 5)
        return D.assertNode(le, vJ), Ia(!0);
      if (S === 4) {
        switch (le.kind) {
          case 15:
          case 16:
          case 17:
            return Ai(le, !1);
          case 79:
            return Xr(le);
          case 80:
            return ss(le);
          case 163:
            return _i(le);
          case 164:
            return wn(le);
          case 165:
            return pa(le);
          case 166:
            return ec(le);
          case 167:
            return rl(le);
          case 168:
            return Gl(le);
          case 169:
            return Xl(le);
          case 170:
            return Ul(le);
          case 171:
            return Co(le);
          case 172:
            return La(le);
          case 173:
            return Yo(le);
          case 174:
          case 175:
            return Vl(le);
          case 176:
            return tu(le);
          case 177:
            return qd(le);
          case 178:
            return oc(le);
          case 179:
            return hl(le);
          case 180:
            return el(le);
          case 181:
            return Ks(le);
          case 182:
            return fe(le);
          case 183:
            return It(le);
          case 184:
            return Ht(le);
          case 185:
            return Q(le);
          case 186:
            return xt(le);
          case 187:
            return Dr(le);
          case 189:
            return Pr(le);
          case 190:
            return Ta(le);
          case 191:
            return ls(le);
          case 192:
            return ho(le);
          case 193:
            return Ho(le);
          case 230:
            return x_(le);
          case 194:
            return Ya();
          case 195:
            return dl(le);
          case 196:
            return dc(le);
          case 197:
            return _d(le);
          case 198:
            return Es(le);
          case 199:
            return mn(le);
          case 200:
            return ds(le);
          case 201:
            return Jc(le);
          case 202:
            return fl(le);
          case 203:
            return Jd(le);
          case 204:
            return Hl(le);
          case 205:
            return Nf(le);
          case 236:
            return et(le);
          case 237:
            return Ds();
          case 238:
            return qt(le);
          case 240:
            return Da(le);
          case 239:
            return Ia(!1);
          case 241:
            return Ie(le);
          case 242:
            return Ue(le);
          case 243:
            return Ot(le);
          case 244:
            return hn(le);
          case 245:
            return bn(le);
          case 246:
            return Tn(le);
          case 247:
            return Hn(le);
          case 248:
            return Ji(le);
          case 249:
            return tr(le);
          case 250:
            return Ym(le);
          case 251:
            return xg(le);
          case 252:
            return Z_(le);
          case 253:
            return ub(le);
          case 254:
            return Qv(le);
          case 255:
            return u2(le);
          case 256:
            return rS(le);
          case 257:
            return d2(le);
          case 258:
            return Ag(le);
          case 259:
            return ep(le);
          case 260:
            return iS(le);
          case 261:
            return $1(le);
          case 262:
            return Q1(le);
          case 263:
            return t0(le);
          case 264:
            return f2(le);
          case 265:
            return Z1(le);
          case 266:
            return eE(le);
          case 267:
            return tp(le);
          case 268:
            return n0(le);
          case 269:
            return r0(le);
          case 270:
            return aS(le);
          case 271:
            return Lg(le);
          case 277:
            return kd(le);
          case 272:
            return Qo(le);
          case 273:
            return tE(le);
          case 274:
            return uL(le);
          case 275:
            return Py(le);
          case 276:
            return wd(le);
          case 278:
            return Dd(le);
          case 296:
            return Ig(le);
          case 297:
            return $m(le);
          case 279:
            return;
          case 280:
            return _2(le);
          case 11:
            return gb(le);
          case 283:
          case 286:
            return oS(le);
          case 284:
          case 287:
            return dL(le);
          case 288:
            return i0(le);
          case 289:
            return p2(le);
          case 290:
            return nE(le);
          case 291:
            return a0(le);
          case 292:
            return o0(le);
          case 293:
            return wg(le);
          case 294:
            return ns(le);
          case 295:
            return np(le);
          case 299:
            return rE(le);
          case 300:
            return vc(le);
          case 301:
            return Ph(le);
          case 302:
            return vb(le);
          case 303:
            return ji(le);
          case 310:
          case 304:
            return Ci(le);
          case 305:
          case 306:
            return mo(le);
          case 307:
            return To(le);
          case 308:
            return Eb(le);
          case 309:
            return D.fail("Bundles should be printed using printBundle");
          case 311:
            return D.fail("InputFiles should not be printed");
          case 312:
            return _l(le);
          case 313:
            return Dg(le);
          case 315:
            return pr("*");
          case 316:
            return pr("?");
          case 317:
            return jl(le);
          case 318:
            return xu(le);
          case 319:
            return Wu(le);
          case 320:
            return rn(le);
          case 188:
          case 321:
            return ot(le);
          case 322:
            return;
          case 323:
            return rp(le);
          case 325:
            return Xd(le);
          case 326:
            return iE(le);
          case 330:
          case 335:
          case 340:
            return Qm(le);
          case 331:
          case 332:
            return Pc(le);
          case 333:
          case 334:
            return;
          case 336:
          case 337:
          case 338:
          case 339:
            return;
          case 341:
            return Wi(le);
          case 342:
            return Jr(le);
          case 344:
          case 351:
            return Rg(le);
          case 343:
          case 345:
          case 346:
          case 347:
          case 352:
          case 353:
            return bb(le);
          case 348:
            return lS(le);
          case 349:
            return fL(le);
          case 350:
            return cu(le);
          case 355:
          case 359:
          case 358:
            return;
        }
        if (vt(le) && (S = 1, s !== tw)) {
          const on = s(S, le) || le;
          on !== le && (le = on, Ii && (le = Ii(le)));
        }
      }
      if (S === 1)
        switch (le.kind) {
          case 8:
          case 9:
            return oi(le);
          case 10:
          case 13:
          case 14:
            return Ai(le, !1);
          case 79:
            return Xr(le);
          case 80:
            return ss(le);
          case 206:
            return xe(le);
          case 207:
            return Dt(le);
          case 208:
            return Nn(le);
          case 209:
            return Lo(le);
          case 210:
            return oe(le);
          case 211:
            return ut(le);
          case 212:
            return Mt(le);
          case 213:
            return Pt(le);
          case 214:
            return un(le);
          case 215:
            return Vn(le);
          case 216:
            return Rr(le);
          case 217:
            return Mi(le);
          case 218:
            return ja(le);
          case 219:
            return Wo(le);
          case 220:
            return Ts(le);
          case 221:
            return Xs(le);
          case 222:
            return _f(le);
          case 223:
            return vn(le);
          case 224:
            return Kd(le);
          case 225:
            return Au(le);
          case 226:
            return pf(le);
          case 227:
            return S_(le);
          case 228:
            return $o(le);
          case 229:
            return;
          case 231:
            return mf(le);
          case 232:
            return Q_(le);
          case 230:
            return x_(le);
          case 235:
            return Ip(le);
          case 233:
            return U(le);
          case 234:
            return D.fail("SyntheticExpression should never be printed.");
          case 279:
            return;
          case 281:
            return mb(le);
          case 282:
            return kg(le);
          case 285:
            return hb(le);
          case 354:
            return D.fail("SyntaxList should not be printed");
          case 355:
            return;
          case 356:
            return m2(le);
          case 357:
            return h2(le);
          case 358:
          case 359:
            return;
          case 360:
            return D.fail("SyntheticReferenceExpression should not be printed");
        }
      if (Ad(le.kind))
        return sE(le, fa);
      if (yW(le.kind))
        return sE(le, pr);
      D.fail(`Unhandled SyntaxKind: ${D.formatSyntaxKind(le.kind)}.`);
    }
    function Rt(S) {
      Xe(S.name), ir(), fa("in"), ir(), Xe(S.constraint);
    }
    function gt(S, le) {
      const ke = Pe(1, S, le);
      D.assertIsDefined(_r), le = _r, _r = void 0, ke(S, le);
    }
    function ft(S) {
      let le;
      if (I === 0 || e.noEmitHelpers)
        return;
      const ke = /* @__PURE__ */ new Map();
      for (const on of S.sourceFiles) {
        const Cr = HO(on) !== void 0, Si = $n(on);
        if (Si)
          for (const li of Si)
            !li.scoped && !Cr && !ke.get(li.name) && (ke.set(li.name, !0), (le || (le = [])).push(li.name));
      }
      return le;
    }
    function _n(S) {
      let le = !1;
      const ke = S.kind === 309 ? S : void 0;
      if (ke && I === 0)
        return;
      const on = ke ? ke.prepends.length : 0, Cr = ke ? ke.sourceFiles.length + on : 1;
      for (let Si = 0; Si < Cr; Si++) {
        const li = ke ? Si < on ? ke.prepends[Si] : ke.sourceFiles[Si - on] : S, Vi = qi(li) ? li : kT(li) ? void 0 : k, _o = e.noEmitHelpers || !!Vi && m_e(Vi), nu = (qi(li) || kT(li)) && !Be, Qd = kT(li) ? li.helpers : $n(li);
        if (Qd)
          for (const yf of Qd) {
            if (yf.scoped) {
              if (ke)
                continue;
            } else {
              if (_o)
                continue;
              if (nu) {
                if (O.get(yf.name))
                  continue;
                O.set(yf.name, !0);
              }
            }
            const Ky = an();
            typeof yf.text == "string" ? Yl(yf.text) : Yl(yf.text(Mf)), qe && qe.sections.push({ pos: Ky, end: ee.getTextPos(), kind: "emitHelpers", data: yf.name }), le = !0;
          }
      }
      return le;
    }
    function $n(S) {
      const le = c7(S);
      return le && sy(le, Ofe);
    }
    function oi(S) {
      Ai(S, !1);
    }
    function Ai(S, le) {
      const ke = Rl(S, e.neverAsciiEscape, le);
      (e.sourceMap || e.inlineSourceMap) && (S.kind === 10 || Cv(S.kind)) ? Cb(ke) : b2(ke);
    }
    function Ci(S) {
      for (const le of S.texts)
        Lc(), Xe(le);
    }
    function ji(S) {
      ee.rawWrite(S.parent.text.substring(S.pos, S.end));
    }
    function mo(S) {
      const le = an();
      ji(S), qe && Pn(le, ee.getTextPos(), S.kind === 305 ? "text" : "internal");
    }
    function To(S) {
      const le = an();
      if (ji(S), qe) {
        const ke = Aj(S.section);
        ke.pos = le, ke.end = ee.getTextPos(), qe.sections.push(ke);
      }
    }
    function io(S, le, ke) {
      switch (ke.kind) {
        case 1:
          ua(S, le, ke);
          break;
        case 0:
          Hi(S, le, ke);
          break;
      }
    }
    function ua(S, le, ke) {
      Gy(`\${${ke.order}:`), q(S, le, !1), Gy("}");
    }
    function Hi(S, le, ke) {
      D.assert(le.kind === 239, `A tab stop cannot be attached to a node of kind ${D.formatSyntaxKind(le.kind)}.`), D.assert(S !== 5, "A tab stop cannot be attached to an embedded statement."), Gy(`$${ke.order}`);
    }
    function Xr(S) {
      (S.symbol ? E2 : Ve)(jy(S, !1), S.symbol), Rs(S, xT(S), 53776);
    }
    function ss(S) {
      Ve(jy(S, !1));
    }
    function _i(S) {
      da(S.left), pr("."), Xe(S.right);
    }
    function da(S) {
      S.kind === 79 ? cn(S) : Xe(S);
    }
    function wn(S) {
      const le = de, ke = me;
      du(), pr("["), cn(S.expression, Or.parenthesizeExpressionOfComputedPropertyName), pr("]"), u0(le, ke);
    }
    function pa(S) {
      Ng(S, S.modifiers), Xe(S.name), S.constraint && (ir(), fa("extends"), ir(), Xe(S.constraint)), S.default && (ir(), Pf("="), ir(), Xe(S.default));
    }
    function ec(S) {
      Of(S, S.modifiers, !0), Xe(S.dotDotDotToken), _S(S.name, l0), Xe(S.questionToken), S.parent && S.parent.kind === 320 && !S.name ? Xe(S.type) : wp(S.type), ip(S.initializer, S.type ? S.type.end : S.questionToken ? S.questionToken.end : S.name ? S.name.end : S.modifiers ? S.modifiers.end : S.pos, S, Or.parenthesizeExpressionForDisallowedComma);
    }
    function rl(S) {
      pr("@"), cn(S.expression, Or.parenthesizeLeftSideOfAccess);
    }
    function Gl(S) {
      Ng(S, S.modifiers), _S(S.name, T2), Xe(S.questionToken), wp(S.type), Dl();
    }
    function Xl(S) {
      Of(S, S.modifiers, !0), Xe(S.name), Xe(S.questionToken), Xe(S.exclamationToken), wp(S.type), ip(S.initializer, S.type ? S.type.end : S.questionToken ? S.questionToken.end : S.name.end, S), Dl();
    }
    function Ul(S) {
      Fg(S), Ng(S, S.modifiers), Xe(S.name), Xe(S.questionToken), cm(S, S.typeParameters), Pg(S, S.parameters), wp(S.type), Dl(), Bh(S);
    }
    function Co(S) {
      Of(S, S.modifiers, !0), Xe(S.asteriskToken), Xe(S.name), Xe(S.questionToken), Oh(S, kp);
    }
    function La(S) {
      fa("static"), X1(S.body);
    }
    function Yo(S) {
      Of(S, S.modifiers, !1), fa("constructor"), Oh(S, kp);
    }
    function Vl(S) {
      const le = Of(S, S.modifiers, !0), ke = S.kind === 174 ? 137 : 151;
      pn(ke, le, fa, S), ir(), Xe(S.name), Oh(S, kp);
    }
    function tu(S) {
      Fg(S), cm(S, S.typeParameters), Pg(S, S.parameters), wp(S.type), Dl(), Bh(S);
    }
    function qd(S) {
      Fg(S), fa("new"), ir(), cm(S, S.typeParameters), Pg(S, S.parameters), wp(S.type), Dl(), Bh(S);
    }
    function oc(S) {
      Of(S, S.modifiers, !1), Fy(S, S.parameters), wp(S.type), Dl();
    }
    function Jc(S) {
      Xe(S.type), Xe(S.literal);
    }
    function Ds() {
      Dl();
    }
    function hl(S) {
      S.assertsModifier && (Xe(S.assertsModifier), ir()), Xe(S.parameterName), S.type && (ir(), fa("is"), ir(), Xe(S.type));
    }
    function el(S) {
      Xe(S.typeName), lm(S, S.typeArguments);
    }
    function Ks(S) {
      Fg(S), cm(S, S.typeParameters), mS(S, S.parameters), ir(), pr("=>"), ir(), Xe(S.type), Bh(S);
    }
    function rn(S) {
      fa("function"), Pg(S, S.parameters), pr(":"), Xe(S.type);
    }
    function jl(S) {
      pr("?"), Xe(S.type);
    }
    function xu(S) {
      pr("!"), Xe(S.type);
    }
    function Wu(S) {
      Xe(S.type), pr("=");
    }
    function fe(S) {
      Fg(S), Ng(S, S.modifiers), fa("new"), ir(), cm(S, S.typeParameters), Pg(S, S.parameters), ir(), pr("=>"), ir(), Xe(S.type), Bh(S);
    }
    function It(S) {
      fa("typeof"), ir(), Xe(S.exprName), lm(S, S.typeArguments);
    }
    function Ht(S) {
      u0(0, void 0), pr("{");
      const le = vo(S) & 1 ? 768 : 32897;
      Rs(S, S.members, le | 524288), pr("}"), du();
    }
    function Q(S) {
      Xe(S.elementType, Or.parenthesizeNonArrayTypeOfPostfixType), pr("["), pr("]");
    }
    function ot(S) {
      pr("..."), Xe(S.type);
    }
    function xt(S) {
      pn(22, S.pos, pr, S);
      const le = vo(S) & 1 ? 528 : 657;
      Rs(S, S.elements, le | 524288, Or.parenthesizeElementTypeOfTupleType), pn(23, S.elements.end, pr, S);
    }
    function mn(S) {
      Xe(S.dotDotDotToken), Xe(S.name), Xe(S.questionToken), pn(58, S.name.end, pr, S), ir(), Xe(S.type);
    }
    function Dr(S) {
      Xe(S.type, Or.parenthesizeTypeOfOptionalType), pr("?");
    }
    function Pr(S) {
      Rs(S, S.types, 516, Or.parenthesizeConstituentTypeOfUnionType);
    }
    function Ta(S) {
      Rs(S, S.types, 520, Or.parenthesizeConstituentTypeOfIntersectionType);
    }
    function ls(S) {
      Xe(S.checkType, Or.parenthesizeCheckTypeOfConditionalType), ir(), fa("extends"), ir(), Xe(S.extendsType, Or.parenthesizeExtendsTypeOfConditionalType), ir(), pr("?"), ir(), Xe(S.trueType), ir(), pr(":"), ir(), Xe(S.falseType);
    }
    function ho(S) {
      fa("infer"), ir(), Xe(S.typeParameter);
    }
    function Ho(S) {
      pr("("), Xe(S.type), pr(")");
    }
    function Ya() {
      fa("this");
    }
    function dl(S) {
      ap(S.operator, fa), ir();
      const le = S.operator === 146 ? Or.parenthesizeOperandOfReadonlyTypeOperator : Or.parenthesizeOperandOfTypeOperator;
      Xe(S.type, le);
    }
    function dc(S) {
      Xe(S.objectType, Or.parenthesizeNonArrayTypeOfPostfixType), pr("["), Xe(S.indexType), pr("]");
    }
    function _d(S) {
      const le = vo(S);
      pr("{"), le & 1 ? ir() : (Lc(), A_()), S.readonlyToken && (Xe(S.readonlyToken), S.readonlyToken.kind !== 146 && fa("readonly"), ir()), pr("["), mt(3, S.typeParameter), S.nameType && (ir(), fa("as"), ir(), Xe(S.nameType)), pr("]"), S.questionToken && (Xe(S.questionToken), S.questionToken.kind !== 57 && pr("?")), pr(":"), ir(), Xe(S.type), Dl(), le & 1 ? ir() : (Lc(), Dp()), Rs(S, S.members, 2), pr("}");
    }
    function Es(S) {
      cn(S.literal);
    }
    function ds(S) {
      Xe(S.head), Rs(S, S.templateSpans, 262144);
    }
    function fl(S) {
      if (S.isTypeOf && (fa("typeof"), ir()), fa("import"), pr("("), Xe(S.argument), S.assertions) {
        pr(","), ir(), pr("{"), ir(), fa("assert"), pr(":"), ir();
        const le = S.assertions.assertClause.elements;
        Rs(S.assertions.assertClause, le, 526226), ir(), pr("}");
      }
      pr(")"), S.qualifier && (pr("."), Xe(S.qualifier)), lm(S, S.typeArguments);
    }
    function Jd(S) {
      pr("{"), Rs(S, S.elements, 525136), pr("}");
    }
    function Hl(S) {
      pr("["), Rs(S, S.elements, 524880), pr("]");
    }
    function Nf(S) {
      Xe(S.dotDotDotToken), S.propertyName && (Xe(S.propertyName), pr(":"), ir()), Xe(S.name), ip(S.initializer, S.name.end, S, Or.parenthesizeExpressionForDisallowedComma);
    }
    function xe(S) {
      const le = S.elements, ke = S.multiLine ? 65536 : 0;
      By(S, le, 8914 | ke, Or.parenthesizeExpressionForDisallowedComma);
    }
    function Dt(S) {
      u0(0, void 0), ze(S.properties, uE);
      const le = vo(S) & 131072;
      le && A_();
      const ke = S.multiLine ? 65536 : 0, on = k && k.languageVersion >= 1 && !p_(k) ? 64 : 0;
      Rs(S, S.properties, 526226 | on | ke), le && Dp(), du();
    }
    function Nn(S) {
      cn(S.expression, Or.parenthesizeLeftSideOfAccess);
      const le = S.questionDotToken || Vm(N.createToken(24), S.expression.end, S.name.pos), ke = Rp(S, S.expression, le), on = Rp(S, le, S.name);
      nc(ke, !1), le.kind !== 28 && Xi(S.expression) && !ee.hasTrailingComment() && !ee.hasTrailingWhitespace() && pr("."), S.questionDotToken ? Xe(le) : pn(le.kind, S.expression.end, pr, S), nc(on, !1), Xe(S.name), Mg(ke, on);
    }
    function Xi(S) {
      if (S = M_(S), v_(S)) {
        const le = Rl(S, !0, !1);
        return !S.numericLiteralFlags && !pu(le, yo(24));
      } else if (ll(S)) {
        const le = Cfe(S);
        return typeof le == "number" && isFinite(le) && Math.floor(le) === le;
      }
    }
    function Lo(S) {
      cn(S.expression, Or.parenthesizeLeftSideOfAccess), Xe(S.questionDotToken), pn(22, S.expression.end, pr, S), cn(S.argumentExpression), pn(23, S.argumentExpression.end, pr, S);
    }
    function oe(S) {
      const le = F_(S) & 16;
      le && (pr("("), Cb("0"), pr(","), ir()), cn(S.expression, Or.parenthesizeLeftSideOfAccess), le && pr(")"), Xe(S.questionDotToken), lm(S, S.typeArguments), By(S, S.arguments, 2576, Or.parenthesizeExpressionForDisallowedComma);
    }
    function ut(S) {
      pn(103, S.pos, fa, S), ir(), cn(S.expression, Or.parenthesizeExpressionOfNew), lm(S, S.typeArguments), By(S, S.arguments, 18960, Or.parenthesizeExpressionForDisallowedComma);
    }
    function Mt(S) {
      const le = F_(S) & 16;
      le && (pr("("), Cb("0"), pr(","), ir()), cn(S.tag, Or.parenthesizeLeftSideOfAccess), le && pr(")"), lm(S, S.typeArguments), ir(), cn(S.template);
    }
    function Pt(S) {
      pr("<"), Xe(S.type), pr(">"), cn(S.expression, Or.parenthesizeOperandOfPrefixUnary);
    }
    function un(S) {
      const le = pn(20, S.pos, pr, S), ke = lE(S.expression, S);
      cn(S.expression, void 0), Lb(S.expression, S), Mg(ke), pn(21, S.expression ? S.expression.end : le, pr, S);
    }
    function Vn(S) {
      Uh(S.name), Zv(S);
    }
    function Rr(S) {
      Ng(S, S.modifiers), Oh(S, ni);
    }
    function ni(S) {
      cm(S, S.typeParameters), mS(S, S.parameters), wp(S.type), ir(), Xe(S.equalsGreaterThanToken);
    }
    function Mi(S) {
      pn(89, S.pos, fa, S), ir(), cn(S.expression, Or.parenthesizeOperandOfPrefixUnary);
    }
    function ja(S) {
      pn(112, S.pos, fa, S), ir(), cn(S.expression, Or.parenthesizeOperandOfPrefixUnary);
    }
    function Wo(S) {
      pn(114, S.pos, fa, S), ir(), cn(S.expression, Or.parenthesizeOperandOfPrefixUnary);
    }
    function Ts(S) {
      pn(133, S.pos, fa, S), ir(), cn(S.expression, Or.parenthesizeOperandOfPrefixUnary);
    }
    function Xs(S) {
      ap(S.operator, Pf), pd(S) && ir(), cn(S.operand, Or.parenthesizeOperandOfPrefixUnary);
    }
    function pd(S) {
      const le = S.operand;
      return le.kind === 221 && (S.operator === 39 && (le.operator === 39 || le.operator === 45) || S.operator === 40 && (le.operator === 40 || le.operator === 46));
    }
    function _f(S) {
      cn(S.operand, Or.parenthesizeOperandOfPostfixUnary), ap(S.operator, Pf);
    }
    function tc() {
      return n5(S, le, ke, on, Cr, void 0);
      function S(li, Vi) {
        if (Vi) {
          Vi.stackIndex++, Vi.preserveSourceNewlinesStack[Vi.stackIndex] = ve, Vi.containerPosStack[Vi.stackIndex] = at, Vi.containerEndStack[Vi.stackIndex] = sn, Vi.declarationListContainerEndStack[Vi.stackIndex] = Qt;
          const _o = Vi.shouldEmitCommentsStack[Vi.stackIndex] = zt(li), nu = Vi.shouldEmitSourceMapsStack[Vi.stackIndex] = it(li);
          c == null || c(li), _o && gd(li), nu && bE(li), Er(li);
        } else
          Vi = {
            stackIndex: 0,
            preserveSourceNewlinesStack: [void 0],
            containerPosStack: [-1],
            containerEndStack: [-1],
            declarationListContainerEndStack: [-1],
            shouldEmitCommentsStack: [!1],
            shouldEmitSourceMapsStack: [!1]
          };
        return Vi;
      }
      function le(li, Vi, _o) {
        return Si(li, _o, "left");
      }
      function ke(li, Vi, _o) {
        const nu = li.kind !== 27, Qd = Rp(_o, _o.left, li), yf = Rp(_o, li, _o.right);
        nc(Qd, nu), Nd(li.pos), sE(li, li.kind === 101 ? fa : Pf), Ug(li.end, !0), nc(yf, !0);
      }
      function on(li, Vi, _o) {
        return Si(li, _o, "right");
      }
      function Cr(li, Vi) {
        const _o = Rp(li, li.left, li.operatorToken), nu = Rp(li, li.operatorToken, li.right);
        if (Mg(_o, nu), Vi.stackIndex > 0) {
          const Qd = Vi.preserveSourceNewlinesStack[Vi.stackIndex], yf = Vi.containerPosStack[Vi.stackIndex], Ky = Vi.containerEndStack[Vi.stackIndex], Zd = Vi.declarationListContainerEndStack[Vi.stackIndex], h0 = Vi.shouldEmitCommentsStack[Vi.stackIndex], g0 = Vi.shouldEmitSourceMapsStack[Vi.stackIndex];
          ue(Qd), g0 && EE(li), h0 && gS(li, yf, Ky, Zd), f == null || f(li), Vi.stackIndex--;
        }
      }
      function Si(li, Vi, _o) {
        const nu = _o === "left" ? Or.getParenthesizeLeftSideOfBinaryForOperator(Vi.operatorToken.kind) : Or.getParenthesizeRightSideOfBinaryForOperator(Vi.operatorToken.kind);
        let Qd = K(0, 1, li);
        if (Qd === gt && (D.assertIsDefined(_r), li = nu(oo(_r, vt)), Qd = Pe(1, 1, li), _r = void 0), (Qd === Yd || Qd === vE || Qd === Re) && br(li))
          return li;
        Ii = nu, Qd(1, li);
      }
    }
    function Kd(S) {
      const le = Rp(S, S.condition, S.questionToken), ke = Rp(S, S.questionToken, S.whenTrue), on = Rp(S, S.whenTrue, S.colonToken), Cr = Rp(S, S.colonToken, S.whenFalse);
      cn(S.condition, Or.parenthesizeConditionOfConditionalExpression), nc(le, !0), Xe(S.questionToken), nc(ke, !0), cn(S.whenTrue, Or.parenthesizeBranchOfConditionalExpression), Mg(le, ke), nc(on, !0), Xe(S.colonToken), nc(Cr, !0), cn(S.whenFalse, Or.parenthesizeBranchOfConditionalExpression), Mg(on, Cr);
    }
    function Au(S) {
      Xe(S.head), Rs(S, S.templateSpans, 262144);
    }
    function pf(S) {
      pn(125, S.pos, fa, S), Xe(S.asteriskToken), sm(S.expression && Ys(S.expression), sc);
    }
    function S_(S) {
      pn(25, S.pos, pr, S), cn(S.expression, Or.parenthesizeExpressionForDisallowedComma);
    }
    function $o(S) {
      Uh(S.name), Y1(S);
    }
    function x_(S) {
      cn(S.expression, Or.parenthesizeLeftSideOfAccess), lm(S, S.typeArguments);
    }
    function mf(S) {
      cn(S.expression, void 0), S.type && (ir(), fa("as"), ir(), Xe(S.type));
    }
    function Q_(S) {
      cn(S.expression, Or.parenthesizeLeftSideOfAccess), Pf("!");
    }
    function Ip(S) {
      cn(S.expression, void 0), S.type && (ir(), fa("satisfies"), ir(), Xe(S.type));
    }
    function U(S) {
      Uy(S.keywordToken, S.pos, pr), pr("."), Xe(S.name);
    }
    function et(S) {
      cn(S.expression), Xe(S.literal);
    }
    function qt(S) {
      Xn(S, !S.multiLine && Fh(S));
    }
    function Xn(S, le) {
      pn(18, S.pos, pr, S);
      const ke = le || vo(S) & 1 ? 768 : 129;
      Rs(S, S.statements, ke), pn(19, S.statements.end, pr, S, !!(ke & 1));
    }
    function Da(S) {
      Of(S, S.modifiers, !1), Xe(S.declarationList), Dl();
    }
    function Ia(S) {
      S ? pr(";") : Dl();
    }
    function Ie(S) {
      cn(S.expression, Or.parenthesizeExpressionOfExpressionStatement), (!k || !p_(k) || Zs(S.expression)) && Dl();
    }
    function Ue(S) {
      const le = pn(99, S.pos, fa, S);
      ir(), pn(20, le, pr, S), cn(S.expression), pn(21, S.expression.end, pr, S), md(S, S.thenStatement), S.elseStatement && (Vy(S, S.thenStatement, S.elseStatement), pn(91, S.thenStatement.end, fa, S), S.elseStatement.kind === 242 ? (ir(), Xe(S.elseStatement)) : md(S, S.elseStatement));
    }
    function Lt(S, le) {
      const ke = pn(115, le, fa, S);
      ir(), pn(20, ke, pr, S), cn(S.expression), pn(21, S.expression.end, pr, S);
    }
    function Ot(S) {
      pn(90, S.pos, fa, S), md(S, S.statement), co(S.statement) && !ve ? ir() : Vy(S, S.statement, S.expression), Lt(S, S.statement.end), Dl();
    }
    function hn(S) {
      Lt(S, S.pos), md(S, S.statement);
    }
    function bn(S) {
      const le = pn(97, S.pos, fa, S);
      ir();
      let ke = pn(20, le, pr, S);
      qr(S.initializer), ke = pn(26, S.initializer ? S.initializer.end : ke, pr, S), sm(S.condition), ke = pn(26, S.condition ? S.condition.end : ke, pr, S), sm(S.incrementor), pn(21, S.incrementor ? S.incrementor.end : ke, pr, S), md(S, S.statement);
    }
    function Tn(S) {
      const le = pn(97, S.pos, fa, S);
      ir(), pn(20, le, pr, S), qr(S.initializer), ir(), pn(101, S.initializer.end, fa, S), ir(), cn(S.expression), pn(21, S.expression.end, pr, S), md(S, S.statement);
    }
    function Hn(S) {
      const le = pn(97, S.pos, fa, S);
      ir(), pS(S.awaitModifier), pn(20, le, pr, S), qr(S.initializer), ir(), pn(162, S.initializer.end, fa, S), ir(), cn(S.expression), pn(21, S.expression.end, pr, S), md(S, S.statement);
    }
    function qr(S) {
      S !== void 0 && (S.kind === 258 ? Xe(S) : cn(S));
    }
    function Ji(S) {
      pn(86, S.pos, fa, S), xb(S.label), Dl();
    }
    function tr(S) {
      pn(81, S.pos, fa, S), xb(S.label), Dl();
    }
    function pn(S, le, ke, on, Cr) {
      const Si = Ea(on), li = Si && Si.kind === on.kind, Vi = le;
      if (li && k && (le = Ko(k.text, le)), li && on.pos !== Vi) {
        const _o = Cr && k && !g_(Vi, le, k);
        _o && A_(), Nd(Vi), _o && Dp();
      }
      if (le = ap(S, ke, le), li && on.end !== le) {
        const _o = on.kind === 291;
        Ug(le, !_o, _o);
      }
      return le;
    }
    function dr(S) {
      return S.kind === 2 || !!S.hasTrailingNewLine;
    }
    function Aa(S) {
      return k ? kt(ph(k.text, S.pos), dr) || kt(fC(S), dr) ? !0 : H7(S) ? S.pos !== S.expression.pos && kt(B0(k.text, S.expression.pos), dr) ? !0 : Aa(S.expression) : !1 : !1;
    }
    function Ys(S) {
      if (!Zt && H7(S) && Aa(S)) {
        const le = Ea(S);
        if (le && Vd(le)) {
          const ke = N.createParenthesizedExpression(S.expression);
          return Wr(ke, S), ht(ke, le), ke;
        }
        return N.createParenthesizedExpression(S);
      }
      return S;
    }
    function sc(S) {
      return Ys(Or.parenthesizeExpressionForDisallowedComma(S));
    }
    function Ym(S) {
      pn(105, S.pos, fa, S), sm(S.expression && Ys(S.expression), Ys), Dl();
    }
    function xg(S) {
      const le = pn(116, S.pos, fa, S);
      ir(), pn(20, le, pr, S), cn(S.expression), pn(21, S.expression.end, pr, S), md(S, S.statement);
    }
    function Z_(S) {
      const le = pn(107, S.pos, fa, S);
      ir(), pn(20, le, pr, S), cn(S.expression), pn(21, S.expression.end, pr, S), ir(), Xe(S.caseBlock);
    }
    function ub(S) {
      Xe(S.label), pn(58, S.label.end, pr, S), ir(), Xe(S.statement);
    }
    function Qv(S) {
      pn(109, S.pos, fa, S), sm(Ys(S.expression), Ys), Dl();
    }
    function u2(S) {
      pn(111, S.pos, fa, S), ir(), Xe(S.tryBlock), S.catchClause && (Vy(S, S.tryBlock, S.catchClause), Xe(S.catchClause)), S.finallyBlock && (Vy(S, S.catchClause || S.tryBlock, S.finallyBlock), pn(96, (S.catchClause || S.tryBlock).end, fa, S), ir(), Xe(S.finallyBlock));
    }
    function rS(S) {
      Uy(87, S.pos, fa), Dl();
    }
    function d2(S) {
      var le, ke, on, Cr, Si;
      Xe(S.name), Xe(S.exclamationToken), wp(S.type), ip(S.initializer, (Si = (Cr = (le = S.type) == null ? void 0 : le.end) != null ? Cr : (on = (ke = S.name.emitNode) == null ? void 0 : ke.typeNode) == null ? void 0 : on.end) != null ? Si : S.name.end, S, Or.parenthesizeExpressionForDisallowedComma);
    }
    function Ag(S) {
      fa(FI(S) ? "let" : ug(S) ? "const" : "var"), ir(), Rs(S, S.declarations, 528);
    }
    function ep(S) {
      Zv(S);
    }
    function Zv(S) {
      Of(S, S.modifiers, !1), fa("function"), Xe(S.asteriskToken), ir(), Ut(S.name), Oh(S, kp);
    }
    function Oh(S, le) {
      const ke = S.body;
      if (ke)
        if (co(ke)) {
          const on = vo(S) & 131072;
          on && A_(), Fg(S), ze(S.parameters, bc), bc(S.body), le(S), X1(ke), Bh(S), on && Dp();
        } else
          le(S), ir(), cn(ke, Or.parenthesizeConciseBodyOfArrowFunction);
      else
        le(S), Dl();
    }
    function kp(S) {
      cm(S, S.typeParameters), Pg(S, S.parameters), wp(S.type);
    }
    function e0(S) {
      if (vo(S) & 1)
        return !0;
      if (S.multiLine || !Zs(S) && k && !bT(S, k) || uu(S, Yc(S.statements), 2) || th(S, tl(S.statements), 2, S.statements))
        return !1;
      let le;
      for (const ke of S.statements) {
        if (C_(le, ke, 2) > 0)
          return !1;
        le = ke;
      }
      return !0;
    }
    function X1(S) {
      c == null || c(S), ir(), pr("{"), A_();
      const le = e0(S) ? db : Cg;
      Gg(S, S.statements, le), Dp(), Uy(19, S.statements.end, pr, S), f == null || f(S);
    }
    function db(S) {
      Cg(S, !0);
    }
    function Cg(S, le) {
      const ke = s0(S.statements), on = ee.getTextPos();
      _n(S), ke === 0 && on === ee.getTextPos() && le ? (Dp(), Rs(S, S.statements, 768), A_()) : Rs(S, S.statements, 1, void 0, ke);
    }
    function iS(S) {
      Y1(S);
    }
    function Y1(S) {
      u0(0, void 0), ze(S.members, uE), Of(S, S.modifiers, !0), pn(84, $p(S).pos, fa, S), S.name && (ir(), Ut(S.name));
      const le = vo(S) & 131072;
      le && A_(), cm(S, S.typeParameters), Rs(S, S.heritageClauses, 0), ir(), pr("{"), Rs(S, S.members, 129), pr("}"), le && Dp(), du();
    }
    function $1(S) {
      u0(0, void 0), Of(S, S.modifiers, !1), fa("interface"), ir(), Xe(S.name), cm(S, S.typeParameters), Rs(S, S.heritageClauses, 512), ir(), pr("{"), Rs(S, S.members, 129), pr("}"), du();
    }
    function Q1(S) {
      Of(S, S.modifiers, !1), fa("type"), ir(), Xe(S.name), cm(S, S.typeParameters), ir(), pr("="), ir(), Xe(S.type), Dl();
    }
    function t0(S) {
      Of(S, S.modifiers, !1), fa("enum"), ir(), Xe(S.name), ir(), pr("{"), Rs(S, S.members, 145), pr("}");
    }
    function f2(S) {
      Of(S, S.modifiers, !1), ~S.flags & 1024 && (fa(S.flags & 16 ? "namespace" : "module"), ir()), Xe(S.name);
      let le = S.body;
      if (!le)
        return Dl();
      for (; le && Jl(le); )
        pr("."), Xe(le.name), le = le.body;
      ir(), Xe(le);
    }
    function Z1(S) {
      Fg(S), ze(S.statements, bc), Xn(S, Fh(S)), Bh(S);
    }
    function eE(S) {
      pn(18, S.pos, pr, S), Rs(S, S.clauses, 129), pn(19, S.clauses.end, pr, S, !0);
    }
    function n0(S) {
      Of(S, S.modifiers, !1), pn(100, S.modifiers ? S.modifiers.end : S.pos, fa, S), ir(), S.isTypeOnly && (pn(154, S.pos, fa, S), ir()), Xe(S.name), ir(), pn(63, S.name.end, pr, S), ir(), fb(S.moduleReference), Dl();
    }
    function fb(S) {
      S.kind === 79 ? cn(S) : Xe(S);
    }
    function r0(S) {
      Of(S, S.modifiers, !1), pn(100, S.modifiers ? S.modifiers.end : S.pos, fa, S), ir(), S.importClause && (Xe(S.importClause), ir(), pn(158, S.importClause.end, fa, S), ir()), cn(S.moduleSpecifier), S.assertClause && xb(S.assertClause), Dl();
    }
    function aS(S) {
      S.isTypeOnly && (pn(154, S.pos, fa, S), ir()), Xe(S.name), S.name && S.namedBindings && (pn(27, S.name.end, pr, S), ir()), Xe(S.namedBindings);
    }
    function Lg(S) {
      const le = pn(41, S.pos, pr, S);
      ir(), pn(128, le, fa, S), ir(), Xe(S.name);
    }
    function Qo(S) {
      _b(S);
    }
    function tE(S) {
      pb(S);
    }
    function uL(S) {
      const le = pn(93, S.pos, fa, S);
      ir(), S.isExportEquals ? pn(63, le, Pf, S) : pn(88, le, fa, S), ir(), cn(S.expression, S.isExportEquals ? Or.getParenthesizeRightSideOfBinaryForOperator(63) : Or.parenthesizeExpressionOfExportDefault), Dl();
    }
    function Py(S) {
      Of(S, S.modifiers, !1);
      let le = pn(93, S.pos, fa, S);
      if (ir(), S.isTypeOnly && (le = pn(154, le, fa, S), ir()), S.exportClause ? Xe(S.exportClause) : le = pn(41, le, pr, S), S.moduleSpecifier) {
        ir();
        const ke = S.exportClause ? S.exportClause.end : le;
        pn(158, ke, fa, S), ir(), cn(S.moduleSpecifier);
      }
      S.assertClause && xb(S.assertClause), Dl();
    }
    function Ig(S) {
      pn(130, S.pos, fa, S), ir();
      const le = S.elements;
      Rs(S, le, 526226);
    }
    function $m(S) {
      Xe(S.name), pr(":"), ir();
      const le = S.value;
      if (!(vo(le) & 1024)) {
        const ke = jm(le);
        Ug(ke.pos);
      }
      Xe(le);
    }
    function tp(S) {
      let le = pn(93, S.pos, fa, S);
      ir(), le = pn(128, le, fa, S), ir(), le = pn(143, le, fa, S), ir(), Xe(S.name), Dl();
    }
    function kd(S) {
      const le = pn(41, S.pos, pr, S);
      ir(), pn(128, le, fa, S), ir(), Xe(S.name);
    }
    function wd(S) {
      _b(S);
    }
    function Dd(S) {
      pb(S);
    }
    function _b(S) {
      pr("{"), Rs(S, S.elements, 525136), pr("}");
    }
    function pb(S) {
      S.isTypeOnly && (fa("type"), ir()), S.propertyName && (Xe(S.propertyName), ir(), pn(128, S.propertyName.end, fa, S), ir()), Xe(S.name);
    }
    function _2(S) {
      fa("require"), pr("("), cn(S.expression), pr(")");
    }
    function mb(S) {
      Xe(S.openingElement), Rs(S, S.children, 262144), Xe(S.closingElement);
    }
    function kg(S) {
      pr("<"), yb(S.tagName), lm(S, S.typeArguments), ir(), Xe(S.attributes), pr("/>");
    }
    function hb(S) {
      Xe(S.openingFragment), Rs(S, S.children, 262144), Xe(S.closingFragment);
    }
    function oS(S) {
      if (pr("<"), kh(S)) {
        const le = lE(S.tagName, S);
        yb(S.tagName), lm(S, S.typeArguments), S.attributes.properties && S.attributes.properties.length > 0 && ir(), Xe(S.attributes), Lb(S.attributes, S), Mg(le);
      }
      pr(">");
    }
    function gb(S) {
      ee.writeLiteral(S.text);
    }
    function dL(S) {
      pr("</"), Dx(S) && yb(S.tagName), pr(">");
    }
    function p2(S) {
      Rs(S, S.properties, 262656);
    }
    function i0(S) {
      Xe(S.name), y2("=", pr, S.initializer, Sn);
    }
    function nE(S) {
      pr("{..."), cn(S.expression), pr("}");
    }
    function Ke(S) {
      let le = !1;
      return UR((k == null ? void 0 : k.text) || "", S + 1, () => le = !0), le;
    }
    function My(S) {
      let le = !1;
      return GR((k == null ? void 0 : k.text) || "", S + 1, () => le = !0), le;
    }
    function om(S) {
      return Ke(S) || My(S);
    }
    function a0(S) {
      var le;
      if (S.expression || !Zt && !Zs(S) && om(S.pos)) {
        const ke = k && !Zs(S) && ol(k, S.pos).line !== ol(k, S.end).line;
        ke && ee.increaseIndent();
        const on = pn(18, S.pos, pr, S);
        Xe(S.dotDotDotToken), cn(S.expression), pn(19, ((le = S.expression) == null ? void 0 : le.end) || on, pr, S), ke && ee.decreaseIndent();
      }
    }
    function yb(S) {
      S.kind === 79 ? cn(S) : Xe(S);
    }
    function o0(S) {
      pn(82, S.pos, fa, S), ir(), cn(S.expression, Or.parenthesizeExpressionForDisallowedComma), sS(S, S.statements, S.expression.end);
    }
    function wg(S) {
      const le = pn(88, S.pos, fa, S);
      sS(S, S.statements, le);
    }
    function sS(S, le, ke) {
      const on = le.length === 1 && (!k || Zs(S) || Zs(le[0]) || P3(S, le[0], k));
      let Cr = 163969;
      on ? (Uy(58, ke, pr, S), ir(), Cr &= -130) : pn(58, ke, pr, S), Rs(S, le, Cr);
    }
    function ns(S) {
      ir(), ap(S.token, fa), ir(), Rs(S, S.types, 528);
    }
    function np(S) {
      const le = pn(83, S.pos, fa, S);
      ir(), S.variableDeclaration && (pn(20, le, pr, S), Xe(S.variableDeclaration), pn(21, S.variableDeclaration.end, pr, S), ir()), Xe(S.block);
    }
    function rE(S) {
      Xe(S.name), pr(":"), ir();
      const le = S.initializer;
      if (!(vo(le) & 1024)) {
        const ke = jm(le);
        Ug(ke.pos);
      }
      cn(le, Or.parenthesizeExpressionForDisallowedComma);
    }
    function vc(S) {
      Xe(S.name), S.objectAssignmentInitializer && (ir(), pr("="), ir(), cn(S.objectAssignmentInitializer, Or.parenthesizeExpressionForDisallowedComma));
    }
    function Ph(S) {
      S.expression && (pn(25, S.pos, pr, S), cn(S.expression, Or.parenthesizeExpressionForDisallowedComma));
    }
    function vb(S) {
      Xe(S.name), ip(S.initializer, S.name.end, S, Or.parenthesizeExpressionForDisallowedComma);
    }
    function rp(S) {
      if (Ve("/**"), S.comment) {
        const le = qR(S.comment);
        if (le) {
          const ke = le.split(/\r\n?|\n/g);
          for (const on of ke)
            Lc(), ir(), pr("*"), ir(), Ve(on);
        }
      }
      S.tags && (S.tags.length === 1 && S.tags[0].kind === 347 && !S.comment ? (ir(), Xe(S.tags[0])) : Rs(S, S.tags, 33)), ir(), Ve("*/");
    }
    function bb(S) {
      Mh(S.tagName), _l(S.typeExpression), Zm(S.comment);
    }
    function cu(S) {
      Mh(S.tagName), Xe(S.name), Zm(S.comment);
    }
    function Dg(S) {
      ir(), pr("{"), Xe(S.name), pr("}");
    }
    function Pc(S) {
      Mh(S.tagName), ir(), pr("{"), Xe(S.class), pr("}"), Zm(S.comment);
    }
    function lS(S) {
      Mh(S.tagName), _l(S.constraint), ir(), Rs(S, S.typeParameters, 528), Zm(S.comment);
    }
    function fL(S) {
      Mh(S.tagName), S.typeExpression && (S.typeExpression.kind === 312 ? _l(S.typeExpression) : (ir(), pr("{"), Ve("Object"), S.typeExpression.isArrayType && (pr("["), pr("]")), pr("}"))), S.fullName && (ir(), Xe(S.fullName)), Zm(S.comment), S.typeExpression && S.typeExpression.kind === 325 && Xd(S.typeExpression);
    }
    function Wi(S) {
      Mh(S.tagName), S.name && (ir(), Xe(S.name)), Zm(S.comment), iE(S.typeExpression);
    }
    function Jr(S) {
      Zm(S.comment), iE(S.typeExpression);
    }
    function Qm(S) {
      Mh(S.tagName), Zm(S.comment);
    }
    function Xd(S) {
      Rs(S, N.createNodeArray(S.jsDocPropertyTags), 33);
    }
    function iE(S) {
      S.typeParameters && Rs(S, N.createNodeArray(S.typeParameters), 33), S.parameters && Rs(S, N.createNodeArray(S.parameters), 33), S.type && (Lc(), ir(), pr("*"), ir(), Xe(S.type));
    }
    function Rg(S) {
      Mh(S.tagName), _l(S.typeExpression), ir(), S.isBracketed && pr("["), Xe(S.name), S.isBracketed && pr("]"), Zm(S.comment);
    }
    function Mh(S) {
      pr("@"), Xe(S);
    }
    function Zm(S) {
      const le = qR(S);
      le && (ir(), Ve(le));
    }
    function _l(S) {
      S && (ir(), pr("{"), Xe(S.type), pr("}"));
    }
    function Eb(S) {
      Lc();
      const le = S.statements;
      if (le.length === 0 || !gp(le[0]) || Zs(le[0])) {
        Gg(S, le, r_);
        return;
      }
      r_(S);
    }
    function cS(S) {
      uS(!!S.hasNoDefaultLib, S.syntheticFileReferences || [], S.syntheticTypeReferences || [], S.syntheticLibReferences || []);
      for (const le of S.prepends)
        if (kT(le) && le.syntheticReferences)
          for (const ke of le.syntheticReferences)
            Xe(ke), Lc();
    }
    function Tb(S) {
      S.isDeclarationFile && uS(S.hasNoDefaultLib, S.referencedFiles, S.typeReferenceDirectives, S.libReferenceDirectives);
    }
    function uS(S, le, ke, on) {
      if (S) {
        const Cr = ee.getTextPos();
        eh('/// <reference no-default-lib="true"/>'), qe && qe.sections.push({ pos: Cr, end: ee.getTextPos(), kind: "no-default-lib" }), Lc();
      }
      if (k && k.moduleName && (eh(`/// <amd-module name="${k.moduleName}" />`), Lc()), k && k.amdDependencies)
        for (const Cr of k.amdDependencies)
          Cr.name ? eh(`/// <amd-dependency name="${Cr.name}" path="${Cr.path}" />`) : eh(`/// <amd-dependency path="${Cr.path}" />`), Lc();
      for (const Cr of le) {
        const Si = ee.getTextPos();
        eh(`/// <reference path="${Cr.fileName}" />`), qe && qe.sections.push({ pos: Si, end: ee.getTextPos(), kind: "reference", data: Cr.fileName }), Lc();
      }
      for (const Cr of ke) {
        const Si = ee.getTextPos(), li = Cr.resolutionMode && Cr.resolutionMode !== (k == null ? void 0 : k.impliedNodeFormat) ? `resolution-mode="${Cr.resolutionMode === 99 ? "import" : "require"}"` : "";
        eh(`/// <reference types="${Cr.fileName}" ${li}/>`), qe && qe.sections.push({ pos: Si, end: ee.getTextPos(), kind: Cr.resolutionMode ? Cr.resolutionMode === 99 ? "type-import" : "type-require" : "type", data: Cr.fileName }), Lc();
      }
      for (const Cr of on) {
        const Si = ee.getTextPos();
        eh(`/// <reference lib="${Cr.fileName}" />`), qe && qe.sections.push({ pos: Si, end: ee.getTextPos(), kind: "lib", data: Cr.fileName }), Lc();
      }
    }
    function r_(S) {
      const le = S.statements;
      Fg(S), ze(S.statements, bc), _n(S);
      const ke = vi(le, (on) => !gp(on));
      Tb(S), Rs(S, le, 1, void 0, ke === -1 ? le.length : ke), Bh(S);
    }
    function m2(S) {
      const le = vo(S);
      !(le & 1024) && S.pos !== S.expression.pos && Ug(S.expression.pos), cn(S.expression), !(le & 2048) && S.end !== S.expression.end && Nd(S.expression.end);
    }
    function h2(S) {
      By(S, S.elements, 528, void 0);
    }
    function s0(S, le, ke, on) {
      let Cr = !!le;
      for (let Si = 0; Si < S.length; Si++) {
        const li = S[Si];
        if (gp(li)) {
          if (ke ? !ke.has(li.expression.text) : !0) {
            Cr && (Cr = !1, he(le)), Lc();
            const _o = ee.getTextPos();
            Xe(li), on && qe && qe.sections.push({ pos: _o, end: ee.getTextPos(), kind: "prologue", data: li.expression.text }), ke && ke.add(li.expression.text);
          }
        } else
          return Si;
      }
      return S.length;
    }
    function dS(S, le) {
      for (const ke of S)
        if (!le.has(ke.data)) {
          Lc();
          const on = ee.getTextPos();
          Xe(ke), qe && qe.sections.push({ pos: on, end: ee.getTextPos(), kind: "prologue", data: ke.data }), le && le.add(ke.data);
        }
    }
    function fS(S) {
      if (qi(S))
        s0(S.statements, S);
      else {
        const le = /* @__PURE__ */ new Set();
        for (const ke of S.prepends)
          dS(ke.prologues, le);
        for (const ke of S.sourceFiles)
          s0(ke.statements, ke, le, !0);
        he(void 0);
      }
    }
    function g2(S) {
      const le = /* @__PURE__ */ new Set();
      let ke;
      for (let on = 0; on < S.sourceFiles.length; on++) {
        const Cr = S.sourceFiles[on];
        let Si, li = 0;
        for (const Vi of Cr.statements) {
          if (!gp(Vi))
            break;
          le.has(Vi.expression.text) || (le.add(Vi.expression.text), (Si || (Si = [])).push({
            pos: Vi.pos,
            end: Vi.end,
            expression: {
              pos: Vi.expression.pos,
              end: Vi.expression.end,
              text: Vi.expression.text
            }
          }), li = li < Vi.end ? Vi.end : li);
        }
        Si && (ke || (ke = [])).push({ file: on, text: Cr.text.substring(0, li), directives: Si });
      }
      return ke;
    }
    function Sb(S) {
      if (qi(S) || kT(S)) {
        const le = SM(S.text);
        if (le)
          return eh(le), Lc(), !0;
      } else {
        for (const le of S.prepends)
          if (D.assertNode(le, kT), Sb(le))
            return !0;
        for (const le of S.sourceFiles)
          if (Sb(le))
            return !0;
      }
    }
    function _S(S, le) {
      if (!S)
        return;
      const ke = Ve;
      Ve = le, Xe(S), Ve = ke;
    }
    function Of(S, le, ke) {
      if (le != null && le.length) {
        if (Yn(le, fo))
          return Ng(S, le);
        if (Yn(le, Fu))
          return ke ? Og(S, le) : S.pos;
        d == null || d(le);
        let on, Cr, Si = 0, li = 0, Vi;
        for (; Si < le.length; ) {
          for (; li < le.length; ) {
            if (Vi = le[li], Cr = Fu(Vi) ? "decorators" : "modifiers", on === void 0)
              on = Cr;
            else if (Cr !== on)
              break;
            li++;
          }
          const _o = { pos: -1, end: -1 };
          Si === 0 && (_o.pos = le.pos), li === le.length - 1 && (_o.end = le.end), (on === "modifiers" || ke) && Ab(Xe, S, le, on === "modifiers" ? 2359808 : 2146305, void 0, Si, li - Si, !1, _o), Si = li, on = Cr, li++;
        }
        if (y == null || y(le), Vi && !Qp(Vi.end))
          return Vi.end;
      }
      return S.pos;
    }
    function Ng(S, le) {
      Rs(S, le, 2359808);
      const ke = tl(le);
      return ke && !Qp(ke.end) ? ke.end : S.pos;
    }
    function wp(S) {
      S && (pr(":"), ir(), Xe(S));
    }
    function ip(S, le, ke, on) {
      S && (ir(), pn(63, le, Pf, ke), ir(), cn(S, on));
    }
    function y2(S, le, ke, on) {
      ke && (le(S), on(ke));
    }
    function xb(S) {
      S && (ir(), Xe(S));
    }
    function sm(S, le) {
      S && (ir(), cn(S, le));
    }
    function pS(S) {
      S && (Xe(S), ir());
    }
    function md(S, le) {
      co(le) || vo(S) & 1 ? (ir(), Xe(le)) : (Lc(), A_(), vJ(le) ? mt(5, le) : Xe(le), Dp());
    }
    function Og(S, le) {
      Rs(S, le, 2146305);
      const ke = tl(le);
      return ke && !Qp(ke.end) ? ke.end : S.pos;
    }
    function lm(S, le) {
      Rs(S, le, 53776, At);
    }
    function cm(S, le) {
      if (Ka(S) && S.typeArguments)
        return lm(S, S.typeArguments);
      Rs(S, le, 53776);
    }
    function Pg(S, le) {
      Rs(S, le, 2576);
    }
    function aE(S, le) {
      const ke = Am(le);
      return ke && ke.pos === S.pos && Js(S) && !S.type && !kt(S.modifiers) && !kt(S.typeParameters) && !kt(ke.modifiers) && !ke.dotDotDotToken && !ke.questionToken && !ke.type && !ke.initializer && je(ke.name);
    }
    function mS(S, le) {
      aE(S, le) ? Rs(S, le, 528) : Pg(S, le);
    }
    function Fy(S, le) {
      Rs(S, le, 8848);
    }
    function oE(S) {
      switch (S & 60) {
        case 0:
          break;
        case 16:
          pr(",");
          break;
        case 4:
          ir(), pr("|");
          break;
        case 32:
          ir(), pr("*"), ir();
          break;
        case 8:
          ir(), pr("&");
          break;
      }
    }
    function Rs(S, le, ke, on, Cr, Si) {
      v2(Xe, S, le, ke | (S && vo(S) & 2 ? 65536 : 0), on, Cr, Si);
    }
    function By(S, le, ke, on, Cr, Si) {
      v2(cn, S, le, ke, on, Cr, Si);
    }
    function v2(S, le, ke, on, Cr, Si = 0, li = ke ? ke.length - Si : 0) {
      if (ke === void 0 && on & 16384)
        return;
      const _o = ke === void 0 || Si >= ke.length || li === 0;
      if (_o && on & 32768) {
        d == null || d(ke), y == null || y(ke);
        return;
      }
      on & 15360 && (pr(U3e(on)), _o && ke && Ug(ke.pos, !0)), d == null || d(ke), _o ? on & 1 && !(ve && (!le || k && bT(le, k))) ? Lc() : on & 256 && !(on & 524288) && ir() : Ab(S, le, ke, on, Cr, Si, li, ke.hasTrailingComma, ke), y == null || y(ke), on & 15360 && (_o && ke && Nd(ke.end), pr(V3e(on)));
    }
    function Ab(S, le, ke, on, Cr, Si, li, Vi, _o) {
      const nu = (on & 262144) === 0;
      let Qd = nu;
      const yf = uu(le, ke[Si], on);
      yf ? (Lc(yf), Qd = !1) : on & 256 && ir(), on & 128 && A_();
      const Ky = z3e(S, Cr);
      let Zd, h0, g0 = !1;
      for (let ih = 0; ih < li; ih++) {
        const Yy = ke[Si + ih];
        if (on & 32)
          Lc(), oE(on);
        else if (Zd) {
          on & 60 && Zd.end !== (le ? le.end : -1) && (vo(Zd) & 2048 || Nd(Zd.end)), oE(on), Hr(h0);
          const i_ = C_(Zd, Yy, on);
          i_ > 0 ? (on & 131 || (A_(), g0 = !0), Lc(i_), Qd = !1) : Zd && on & 512 && ir();
        }
        if (h0 = Ar(Yy), Qd) {
          const i_ = jm(Yy);
          Ug(i_.pos);
        } else
          Qd = nu;
        Te = Yy.pos, Ky(Yy, S, Cr, ih), g0 && (Dp(), g0 = !1), Zd = Yy;
      }
      const Xy = Zd ? vo(Zd) : 0, L_ = Zt || !!(Xy & 2048), TE = Vi && on & 64 && on & 16;
      TE && (Zd && !L_ ? pn(27, Zd.end, pr, Zd) : pr(",")), Zd && (le ? le.end : -1) !== Zd.end && on & 60 && !L_ && Nd(TE && (_o != null && _o.end) ? _o.end : Zd.end), on & 128 && Dp(), Hr(h0);
      const Bf = th(le, ke[Si + li - 1], on, _o);
      Bf ? Lc(Bf) : on & 2097408 && ir();
    }
    function Cb(S) {
      ee.writeLiteral(S);
    }
    function b2(S) {
      ee.writeStringLiteral(S);
    }
    function _L(S) {
      ee.write(S);
    }
    function E2(S, le) {
      ee.writeSymbol(S, le);
    }
    function pr(S) {
      ee.writePunctuation(S);
    }
    function Dl() {
      ee.writeTrailingSemicolon(";");
    }
    function fa(S) {
      ee.writeKeyword(S);
    }
    function Pf(S) {
      ee.writeOperator(S);
    }
    function l0(S) {
      ee.writeParameter(S);
    }
    function eh(S) {
      ee.writeComment(S);
    }
    function ir() {
      ee.writeSpace(" ");
    }
    function T2(S) {
      ee.writeProperty(S);
    }
    function Gy(S) {
      ee.nonEscapingWrite ? ee.nonEscapingWrite(S) : ee.write(S);
    }
    function Lc(S = 1) {
      for (let le = 0; le < S; le++)
        ee.writeLine(le > 0);
    }
    function A_() {
      ee.increaseIndent();
    }
    function Dp() {
      ee.decreaseIndent();
    }
    function Uy(S, le, ke, on) {
      return Fe ? ap(S, ke, le) : pL(on, S, ke, le, ap);
    }
    function sE(S, le) {
      h && h(S), le(yo(S.kind)), E && E(S);
    }
    function ap(S, le, ke) {
      const on = yo(S);
      return le(on), ke < 0 ? ke : ke + on.length;
    }
    function Vy(S, le, ke) {
      if (vo(S) & 1)
        ir();
      else if (ve) {
        const on = Rp(S, le, ke);
        on ? Lc(on) : ir();
      } else
        Lc();
    }
    function Yl(S) {
      const le = S.split(/\r\n?|\n/g), ke = Pce(le);
      for (const on of le) {
        const Cr = ke ? on.slice(ke) : on;
        Cr.length && (Lc(), Ve(Cr));
      }
    }
    function nc(S, le) {
      S ? (A_(), Lc(S)) : le && ir();
    }
    function Mg(S, le) {
      S && Dp(), le && Dp();
    }
    function uu(S, le, ke) {
      if (ke & 2 || ve) {
        if (ke & 65536)
          return 1;
        if (le === void 0)
          return !S || k && bT(S, k) ? 0 : 1;
        if (le.pos === Te || le.kind === 11)
          return 0;
        if (k && S && !Qp(S.pos) && !Zs(le) && (!le.parent || Tl(le.parent) === Tl(S)))
          return ve ? Rd((on) => gde(le.pos, S.pos, k, on)) : P3(S, le, k) ? 0 : 1;
        if (Ib(le, ke))
          return 1;
      }
      return ke & 1 ? 1 : 0;
    }
    function C_(S, le, ke) {
      if (ke & 2 || ve) {
        if (S === void 0 || le === void 0 || le.kind === 11)
          return 0;
        if (k && !Zs(S) && !Zs(le))
          return ve && jh(S, le) ? Rd((on) => Qz(S, le, k, on)) : !ve && p0(S, le) ? YN(S, le, k) ? 0 : 1 : ke & 65536 ? 1 : 0;
        if (Ib(S, ke) || Ib(le, ke))
          return 1;
      } else if (EO(le))
        return 1;
      return ke & 1 ? 1 : 0;
    }
    function th(S, le, ke, on) {
      if (ke & 2 || ve) {
        if (ke & 65536)
          return 1;
        if (le === void 0)
          return !S || k && bT(S, k) ? 0 : 1;
        if (k && S && !Qp(S.pos) && !Zs(le) && (!le.parent || le.parent === S)) {
          if (ve) {
            const Cr = on && !Qp(on.end) ? on.end : le.end;
            return Rd((Si) => yde(Cr, S.end, k, Si));
          }
          return pde(S, le, k) ? 0 : 1;
        }
        if (Ib(le, ke))
          return 1;
      }
      return ke & 1 && !(ke & 131072) ? 1 : 0;
    }
    function Rd(S) {
      D.assert(!!ve);
      const le = S(!0);
      return le === 0 ? S(!1) : le;
    }
    function lE(S, le) {
      const ke = ve && uu(le, S, 0);
      return ke && nc(ke, !1), !!ke;
    }
    function Lb(S, le) {
      const ke = ve && th(le, S, 0, void 0);
      ke && Lc(ke);
    }
    function Ib(S, le) {
      if (Zs(S)) {
        const ke = EO(S);
        return ke === void 0 ? (le & 65536) !== 0 : ke;
      }
      return (le & 65536) !== 0;
    }
    function Rp(S, le, ke) {
      return vo(S) & 262144 ? 0 : (S = cE(S), le = cE(le), ke = cE(ke), EO(ke) ? 1 : k && !Zs(S) && !Zs(le) && !Zs(ke) ? ve ? Rd((on) => Qz(le, ke, k, on)) : YN(le, ke, k) ? 0 : 1 : 0);
    }
    function Fh(S) {
      return S.statements.length === 0 && (!k || YN(S, S, k));
    }
    function cE(S) {
      for (; S.kind === 214 && Zs(S); )
        S = S.expression;
      return S;
    }
    function jy(S, le) {
      if (Sl(S) || KS(S))
        return kb(S);
      if (jo(S) && S.textSourceNode)
        return jy(S.textSourceNode, le);
      const ke = k, on = !!ke && !!S.parent && !Zs(S);
      if (og(S)) {
        if (!on || Zn(S) !== Tl(ke))
          return Mr(S);
      } else if (D.assertNode(S, nT), !on)
        return S.text;
      return m1(ke, S, le);
    }
    function Rl(S, le, ke) {
      if (S.kind === 10 && S.textSourceNode) {
        const Cr = S.textSourceNode;
        if (je(Cr) || Ni(Cr) || v_(Cr)) {
          const Si = v_(Cr) ? Cr.text : jy(Cr);
          return ke ? `"${Rz(Si)}"` : le || vo(S) & 33554432 ? `"${ox(Si)}"` : `"${VN(Si)}"`;
        } else
          return Rl(Cr, le, ke);
      }
      const on = (le ? 1 : 0) | (ke ? 2 : 0) | (e.terminateUnterminatedLiterals ? 4 : 0) | (e.target && e.target === 99 ? 8 : 0);
      return Yce(S, k, on);
    }
    function Fg(S) {
      S && vo(S) & 1048576 || (re.push(ye), ye = 0, X.push(Y), Y = void 0, ae.push(W));
    }
    function Bh(S) {
      S && vo(S) & 1048576 || (ye = re.pop(), Y = X.pop(), W = ae.pop());
    }
    function c0(S) {
      (!W || W === tl(ae)) && (W = /* @__PURE__ */ new Set()), W.add(S);
    }
    function u0(S, le) {
      P.push(de), de = S, ce.push(W), me = le;
    }
    function du() {
      de = P.pop(), me = ce.pop();
    }
    function Gh(S) {
      (!me || me === tl(ce)) && (me = /* @__PURE__ */ new Set()), me.add(S);
    }
    function bc(S) {
      if (S)
        switch (S.kind) {
          case 238:
            ze(S.statements, bc);
            break;
          case 253:
          case 251:
          case 243:
          case 244:
            bc(S.statement);
            break;
          case 242:
            bc(S.thenStatement), bc(S.elseStatement);
            break;
          case 245:
          case 247:
          case 246:
            bc(S.initializer), bc(S.statement);
            break;
          case 252:
            bc(S.caseBlock);
            break;
          case 266:
            ze(S.clauses, bc);
            break;
          case 292:
          case 293:
            ze(S.statements, bc);
            break;
          case 255:
            bc(S.tryBlock), bc(S.catchClause), bc(S.finallyBlock);
            break;
          case 295:
            bc(S.variableDeclaration), bc(S.block);
            break;
          case 240:
            bc(S.declarationList);
            break;
          case 258:
            ze(S.declarations, bc);
            break;
          case 257:
          case 166:
          case 205:
          case 260:
            Uh(S.name);
            break;
          case 259:
            Uh(S.name), vo(S) & 1048576 && (ze(S.parameters, bc), bc(S.body));
            break;
          case 203:
          case 204:
            ze(S.elements, bc);
            break;
          case 269:
            bc(S.importClause);
            break;
          case 270:
            Uh(S.name), bc(S.namedBindings);
            break;
          case 271:
            Uh(S.name);
            break;
          case 277:
            Uh(S.name);
            break;
          case 272:
            ze(S.elements, bc);
            break;
          case 273:
            Uh(S.propertyName || S.name);
            break;
        }
    }
    function uE(S) {
      if (S)
        switch (S.kind) {
          case 299:
          case 300:
          case 169:
          case 171:
          case 174:
          case 175:
            Uh(S.name);
            break;
        }
    }
    function Uh(S) {
      S && (Sl(S) || KS(S) ? kb(S) : Xa(S) && bc(S));
    }
    function kb(S) {
      const le = S.emitNode.autoGenerate;
      if ((le.flags & 7) === 4)
        return hd(r5(S), Ni(S), le.flags, le.prefix, le.suffix);
      {
        const ke = le.id;
        return H[ke] || (H[ke] = Ir(S));
      }
    }
    function hd(S, le, ke, on, Cr) {
      const Si = ps(S), li = le ? V : G;
      return li[Si] || (li[Si] = as(S, le, ke ?? 0, DC(on, kb), DC(Cr)));
    }
    function nh(S, le) {
      return d0(S) && !wb(S, le) && !te.has(S);
    }
    function wb(S, le) {
      return le ? !!(me != null && me.has(S)) : !!(W != null && W.has(S));
    }
    function d0(S, le) {
      return k ? JM(k, S, r) : !0;
    }
    function dE(S, le) {
      for (let ke = le; ke && mT(ke, le); ke = ke.nextContainer)
        if (Nm(ke) && ke.locals) {
          const on = ke.locals.get(sl(S));
          if (on && on.flags & 3257279)
            return !1;
        }
      return !0;
    }
    function Hy(S) {
      var le;
      switch (S) {
        case "":
          return ye;
        case "#":
          return de;
        default:
          return (le = Y == null ? void 0 : Y.get(S)) != null ? le : 0;
      }
    }
    function hS(S, le) {
      switch (S) {
        case "":
          ye = le;
          break;
        case "#":
          de = le;
          break;
        default:
          Y ?? (Y = /* @__PURE__ */ new Map()), Y.set(S, le);
          break;
      }
    }
    function f0(S, le, ke, on, Cr) {
      on.length > 0 && on.charCodeAt(0) === 35 && (on = on.slice(1));
      const Si = RT(ke, on, "", Cr);
      let li = Hy(Si);
      if (S && !(li & S)) {
        const _o = RT(ke, on, S === 268435456 ? "_i" : "_n", Cr);
        if (nh(_o, ke))
          return li |= S, ke ? Gh(_o) : le && c0(_o), hS(Si, li), _o;
      }
      for (; ; ) {
        const Vi = li & 268435455;
        if (li++, Vi !== 8 && Vi !== 13) {
          const _o = Vi < 26 ? "_" + String.fromCharCode(97 + Vi) : "_" + (Vi - 26), nu = RT(ke, on, _o, Cr);
          if (nh(nu, ke))
            return ke ? Gh(nu) : le && c0(nu), hS(Si, li), nu;
        }
      }
    }
    function Bg(S, le = nh, ke, on, Cr, Si, li) {
      if (S.length > 0 && S.charCodeAt(0) === 35 && (S = S.slice(1)), Si.length > 0 && Si.charCodeAt(0) === 35 && (Si = Si.slice(1)), ke) {
        const _o = RT(Cr, Si, S, li);
        if (le(_o, Cr))
          return Cr ? Gh(_o) : on ? c0(_o) : te.add(_o), _o;
      }
      S.charCodeAt(S.length - 1) !== 95 && (S += "_");
      let Vi = 1;
      for (; ; ) {
        const _o = RT(Cr, Si, S + Vi, li);
        if (le(_o, Cr))
          return Cr ? Gh(_o) : on ? c0(_o) : te.add(_o), _o;
        Vi++;
      }
    }
    function Mf(S) {
      return Bg(S, d0, !0, !1, !1, "", "");
    }
    function fE(S) {
      const le = jy(S.name);
      return dE(le, ai(S, Nm)) ? le : Bg(le, nh, !1, !1, !1, "", "");
    }
    function hf(S) {
      const le = HA(S), ke = jo(le) ? Qce(le.text) : "module";
      return Bg(ke, nh, !1, !1, !1, "", "");
    }
    function Vh() {
      return Bg("default", nh, !1, !1, !1, "", "");
    }
    function _0() {
      return Bg("class", nh, !1, !1, !1, "", "");
    }
    function S2(S, le, ke, on) {
      return je(S.name) ? hd(S.name, le) : f0(0, !1, le, ke, on);
    }
    function as(S, le, ke, on, Cr) {
      switch (S.kind) {
        case 79:
        case 80:
          return Bg(jy(S), nh, !!(ke & 16), !!(ke & 8), le, on, Cr);
        case 264:
        case 263:
          return D.assert(!on && !Cr && !le), fE(S);
        case 269:
        case 275:
          return D.assert(!on && !Cr && !le), hf(S);
        case 259:
        case 260: {
          D.assert(!on && !Cr && !le);
          const Si = S.name;
          return Si && !Sl(Si) ? as(Si, !1, ke, on, Cr) : Vh();
        }
        case 274:
          return D.assert(!on && !Cr && !le), Vh();
        case 228:
          return D.assert(!on && !Cr && !le), _0();
        case 171:
        case 174:
        case 175:
          return S2(S, le, on, Cr);
        case 164:
          return f0(0, !0, le, on, Cr);
        default:
          return f0(0, !1, le, on, Cr);
      }
    }
    function Ir(S) {
      const le = S.emitNode.autoGenerate, ke = DC(le.prefix, kb), on = DC(le.suffix);
      switch (le.flags & 7) {
        case 1:
          return f0(0, !!(le.flags & 8), Ni(S), ke, on);
        case 2:
          return D.assertNode(S, je), f0(268435456, !!(le.flags & 8), !1, ke, on);
        case 3:
          return Bg(Mr(S), le.flags & 32 ? d0 : nh, !!(le.flags & 16), !!(le.flags & 8), Ni(S), ke, on);
      }
      return D.fail(`Unsupported GeneratedIdentifierKind: ${D.formatEnum(le.flags & 7, sM, !0)}.`);
    }
    function Yd(S, le) {
      const ke = Pe(2, S, le), on = at, Cr = sn, Si = Qt;
      gd(le), ke(S, le), gS(le, on, Cr, Si);
    }
    function gd(S) {
      const le = vo(S), ke = jm(S);
      _E(S, le, ke.pos, ke.end), le & 4096 && (Zt = !0);
    }
    function gS(S, le, ke, on) {
      const Cr = vo(S), Si = jm(S);
      Cr & 4096 && (Zt = !1), Wy(S, Cr, Si.pos, Si.end, le, ke, on);
      const li = wfe(S);
      li && Wy(S, Cr, li.pos, li.end, le, ke, on);
    }
    function _E(S, le, ke, on) {
      $i(), In = !1;
      const Cr = ke < 0 || (le & 1024) !== 0 || S.kind === 11, Si = on < 0 || (le & 2048) !== 0 || S.kind === 11;
      (ke > 0 || on > 0) && ke !== on && (Cr || dm(ke, S.kind !== 355), (!Cr || ke >= 0 && le & 1024) && (at = ke), (!Si || on >= 0 && le & 2048) && (sn = on, S.kind === 258 && (Qt = on))), ze(fC(S), x2), Qi();
    }
    function Wy(S, le, ke, on, Cr, Si, li) {
      $i();
      const Vi = on < 0 || (le & 2048) !== 0 || S.kind === 11;
      ze(SO(S), zy), (ke > 0 || on > 0) && ke !== on && (at = Cr, sn = Si, Qt = li, !Vi && S.kind !== 355 && pE(on)), Qi();
    }
    function x2(S) {
      (S.hasLeadingNewline || S.kind === 2) && ee.writeLine(), um(S), S.hasTrailingNewLine || S.kind === 2 ? ee.writeLine() : ee.writeSpace(" ");
    }
    function zy(S) {
      ee.isAtStartOfLine() || ee.writeSpace(" "), um(S), S.hasTrailingNewLine && ee.writeLine();
    }
    function um(S) {
      const le = Np(S), ke = S.kind === 3 ? MR(le) : void 0;
      eC(le, ke, ee, 0, le.length, L);
    }
    function Np(S) {
      return S.kind === 3 ? `/*${S.text}*/` : `//${S.text}`;
    }
    function Gg(S, le, ke) {
      $i();
      const { pos: on, end: Cr } = le, Si = vo(S), li = on < 0 || (Si & 1024) !== 0, Vi = Zt || Cr < 0 || (Si & 2048) !== 0;
      li || m0(le), Qi(), Si & 4096 && !Zt ? (Zt = !0, ke(S), Zt = !1) : ke(S), $i(), Vi || (dm(le.end, !0), In && !ee.isAtStartOfLine() && ee.writeLine()), Qi();
    }
    function p0(S, le) {
      return S = Tl(S), S.parent && S.parent === Tl(le).parent;
    }
    function jh(S, le) {
      if (le.pos < S.end)
        return !1;
      S = Tl(S), le = Tl(le);
      const ke = S.parent;
      if (!ke || ke !== le.parent)
        return !1;
      const on = $de(S), Cr = on == null ? void 0 : on.indexOf(S);
      return Cr !== void 0 && Cr > -1 && on.indexOf(le) === Cr + 1;
    }
    function dm(S, le) {
      In = !1, le ? S === 0 && (k != null && k.isDeclarationFile) ? Ns(S, $l) : Ns(S, rh) : S === 0 && Ns(S, yS);
    }
    function yS(S, le, ke, on, Cr) {
      gE(S, le) && rh(S, le, ke, on, Cr);
    }
    function $l(S, le, ke, on, Cr) {
      gE(S, le) || rh(S, le, ke, on, Cr);
    }
    function gf(S, le) {
      return e.onlyPrintJsDocStyle ? qJ(S, le) || KM(S, le) : !0;
    }
    function rh(S, le, ke, on, Cr) {
      !k || !gf(k.text, S) || (In || ($ue(Ze(), ee, Cr, S), In = !0), $d(S), eC(k.text, Ze(), ee, S, le, L), $d(le), on ? ee.writeLine() : ke === 3 && ee.writeSpace(" "));
    }
    function Nd(S) {
      Zt || S === -1 || dm(S, !0);
    }
    function pE(S) {
      mE(S, qy);
    }
    function qy(S, le, ke, on) {
      !k || !gf(k.text, S) || (ee.isAtStartOfLine() || ee.writeSpace(" "), $d(S), eC(k.text, Ze(), ee, S, le, L), $d(le), on && ee.writeLine());
    }
    function Ug(S, le, ke) {
      Zt || ($i(), mE(S, le ? qy : ke ? A2 : Ff), Qi());
    }
    function A2(S, le, ke) {
      k && ($d(S), eC(k.text, Ze(), ee, S, le, L), $d(le), ke === 2 && ee.writeLine());
    }
    function Ff(S, le, ke, on) {
      k && ($d(S), eC(k.text, Ze(), ee, S, le, L), $d(le), on ? ee.writeLine() : ee.writeSpace(" "));
    }
    function Ns(S, le) {
      k && (at === -1 || S !== at) && (hE(S) ? Vg(le) : GR(k.text, S, le, S));
    }
    function mE(S, le) {
      k && (sn === -1 || S !== sn && S !== Qt) && UR(k.text, S, le);
    }
    function hE(S) {
      return jn !== void 0 && qo(jn).nodePos === S;
    }
    function Vg(S) {
      if (!k)
        return;
      const le = qo(jn).detachedCommentEndPos;
      jn.length - 1 ? jn.pop() : jn = void 0, GR(k.text, le, S, le);
    }
    function m0(S) {
      const le = k && Zue(k.text, Ze(), ee, vS, S, L, Zt);
      le && (jn ? jn.push(le) : jn = [le]);
    }
    function vS(S, le, ke, on, Cr, Si) {
      !k || !gf(k.text, on) || ($d(on), eC(S, le, ke, on, Cr, Si), $d(Cr));
    }
    function gE(S, le) {
      return !!k && jW(k.text, S, le);
    }
    function yE(S) {
      return S.parsedSourceMap === void 0 && S.sourceMapText !== void 0 && (S.parsedSourceMap = iX(S.sourceMapText) || !1), S.parsedSourceMap || void 0;
    }
    function vE(S, le) {
      const ke = Pe(3, S, le);
      bE(le), ke(S, le), EE(le);
    }
    function bE(S) {
      const le = vo(S), ke = Q0(S);
      if (gW(S)) {
        D.assertIsDefined(S.parent, "UnparsedNodes must have parent pointers");
        const on = yE(S.parent);
        on && st && st.appendSourceMap(ee.getLine(), ee.getColumn(), on, S.parent.sourceMapPath, S.parent.getLineAndCharacterOfPosition(S.pos), S.parent.getLineAndCharacterOfPosition(S.end));
      } else {
        const on = ke.source || Ct;
        S.kind !== 355 && !(le & 32) && ke.pos >= 0 && Hh(ke.source || Ct, Jy(on, ke.pos)), le & 128 && (Fe = !0);
      }
    }
    function EE(S) {
      const le = vo(S), ke = Q0(S);
      gW(S) || (le & 128 && (Fe = !1), S.kind !== 355 && !(le & 64) && ke.end >= 0 && Hh(ke.source || Ct, ke.end));
    }
    function Jy(S, le) {
      return S.skipTrivia ? S.skipTrivia(le) : Ko(S.text, le);
    }
    function $d(S) {
      if (Fe || Qp(S) || L2(Ct))
        return;
      const { line: le, character: ke } = ol(Ct, S);
      st.addMapping(ee.getLine(), ee.getColumn(), Et, le, ke, void 0);
    }
    function Hh(S, le) {
      if (S !== Ct) {
        const ke = Ct, on = Et;
        jg(S), $d(le), C2(ke, on);
      } else
        $d(le);
    }
    function pL(S, le, ke, on, Cr) {
      if (Fe || S && m3(S))
        return Cr(le, ke, on);
      const Si = S && S.emitNode, li = Si && Si.flags || 0, Vi = Si && Si.tokenSourceMapRanges && Si.tokenSourceMapRanges[le], _o = Vi && Vi.source || Ct;
      return on = Jy(_o, Vi ? Vi.pos : on), !(li & 256) && on >= 0 && Hh(_o, on), on = Cr(le, ke, on), Vi && (on = Vi.end), !(li & 512) && on >= 0 && Hh(_o, on), on;
    }
    function jg(S) {
      if (!Fe) {
        if (Ct = S, S === Vt) {
          Et = tt;
          return;
        }
        L2(S) || (Et = st.addSource(S.fileName), e.inlineSources && st.setSourceContent(Et, S.text), Vt = S, tt = Et);
      }
    }
    function C2(S, le) {
      Ct = S, Et = le;
    }
    function L2(S) {
      return cc(S.fileName, ".json");
    }
  }
  function G3e() {
    const e = [];
    return e[1024] = ["{", "}"], e[2048] = ["(", ")"], e[4096] = ["<", ">"], e[8192] = ["[", "]"], e;
  }
  function U3e(e) {
    return DX[e & 15360][0];
  }
  function V3e(e) {
    return DX[e & 15360][1];
  }
  function j3e(e, t, r, i) {
    t(e);
  }
  function H3e(e, t, r, i) {
    t(e, r.select(i));
  }
  function W3e(e, t, r, i) {
    t(e, r);
  }
  function z3e(e, t) {
    return e.length === 1 ? j3e : typeof t == "object" ? H3e : W3e;
  }
  var DX, iF, RX, H1, NX, R8, q3e = C({
    "src/compiler/emitter.ts"() {
      Oa(), Oa(), s1(), DX = G3e(), iF = {
        hasGlobalName: Wa,
        getReferencedExportContainer: Wa,
        getReferencedImportDeclaration: Wa,
        getReferencedDeclarationWithCollidingName: Wa,
        isDeclarationWithCollidingName: Wa,
        isValueAliasDeclaration: Wa,
        isReferencedAliasDeclaration: Wa,
        isTopLevelValueImportEqualsWithEntityName: Wa,
        getNodeCheckFlags: Wa,
        isDeclarationVisible: Wa,
        isLateBound: (e) => !1,
        collectLinkedAliases: Wa,
        isImplementationOfOverload: Wa,
        isRequiredInitializedParameter: Wa,
        isOptionalUninitializedParameterProperty: Wa,
        isExpandoFunctionDeclaration: Wa,
        getPropertiesOfContainerFunction: Wa,
        createTypeOfDeclaration: Wa,
        createReturnTypeOfSignatureDeclaration: Wa,
        createTypeOfExpression: Wa,
        createLiteralConstValue: Wa,
        isSymbolAccessible: Wa,
        isEntityNameVisible: Wa,
        getConstantValue: Wa,
        getReferencedValueDeclaration: Wa,
        getTypeReferenceSerializationKind: Wa,
        isOptionalParameter: Wa,
        moduleExportsSomeValue: Wa,
        isArgumentsLocalBinding: Wa,
        getExternalModuleFileFromDeclaration: Wa,
        getTypeReferenceDirectivesForEntityName: Wa,
        getTypeReferenceDirectivesForSymbol: Wa,
        isLiteralConstDeclaration: Wa,
        getJsxFactoryEntity: Wa,
        getJsxFragmentFactoryEntity: Wa,
        getAllAccessorDeclarations: Wa,
        getSymbolOfExternalModuleSpecifier: Wa,
        isBindingCapturedByNode: Wa,
        getDeclarationStatementsForSourceFile: Wa,
        isImportRequiredByAugmentation: Wa
      }, RX = /* @__PURE__ */ Ed(() => j1({})), H1 = /* @__PURE__ */ Ed(() => j1({ removeComments: !0 })), NX = /* @__PURE__ */ Ed(() => j1({ removeComments: !0, neverAsciiEscape: !0 })), R8 = /* @__PURE__ */ Ed(() => j1({ removeComments: !0, omitTrailingSemicolon: !0 }));
    }
  });
  function Jhe(e, t, r) {
    if (!e.getDirectories || !e.readDirectory)
      return;
    const i = /* @__PURE__ */ new Map(), o = ru(r);
    return {
      useCaseSensitiveFileNames: r,
      fileExists: L,
      readFile: (P, de) => e.readFile(P, de),
      directoryExists: e.directoryExists && I,
      getDirectories: k,
      readDirectory: G,
      createDirectory: e.createDirectory && O,
      writeFile: e.writeFile && A,
      addOrDeleteFileOrDirectory: H,
      addOrDeleteFile: te,
      clearCache: Y,
      realpath: e.realpath && V
    };
    function s(P) {
      return zs(P, t, o);
    }
    function c(P) {
      return i.get(Ou(P));
    }
    function f(P) {
      const de = c(mi(P));
      return de && (de.sortedAndCanonicalizedFiles || (de.sortedAndCanonicalizedFiles = de.files.map(o).sort(), de.sortedAndCanonicalizedDirectories = de.directories.map(o).sort()), de);
    }
    function d(P) {
      return mu(Jo(P));
    }
    function y(P, de) {
      var re;
      if (!e.realpath || Ou(s(e.realpath(P))) === de) {
        const ye = {
          files: jt(e.readDirectory(P, void 0, void 0, ["*.*"]), d) || [],
          directories: e.getDirectories(P) || []
        };
        return i.set(Ou(de), ye), ye;
      }
      if ((re = e.directoryExists) != null && re.call(e, P))
        return i.set(de, !1), !1;
    }
    function h(P, de) {
      de = Ou(de);
      const re = c(de);
      if (re)
        return re;
      try {
        return y(P, de);
      } catch {
        D.assert(!i.has(Ou(de)));
        return;
      }
    }
    function E(P, de) {
      return yv(P, de, ml, Nu) >= 0;
    }
    function A(P, de, re) {
      const ye = s(P), ae = f(ye);
      return ae && X(ae, d(P), !0), e.writeFile(P, de, re);
    }
    function L(P) {
      const de = s(P), re = f(de);
      return re && E(re.sortedAndCanonicalizedFiles, o(d(P))) || e.fileExists(P);
    }
    function I(P) {
      const de = s(P);
      return i.has(Ou(de)) || e.directoryExists(P);
    }
    function O(P) {
      const de = s(P), re = f(de);
      if (re) {
        const ye = d(P), ae = o(ye), W = re.sortedAndCanonicalizedDirectories;
        gv(W, ae, Nu) && re.directories.push(ye);
      }
      e.createDirectory(P);
    }
    function k(P) {
      const de = s(P), re = h(P, de);
      return re ? re.directories.slice() : e.getDirectories(P);
    }
    function G(P, de, re, ye, ae) {
      const W = s(P), ce = h(P, W);
      let me;
      if (ce !== void 0)
        return mq(P, de, re, ye, r, t, ae, ve, V);
      return e.readDirectory(P, de, re, ye, ae);
      function ve(ee) {
        const Qe = s(ee);
        if (Qe === W)
          return ce || Te(ee, Qe);
        const Ve = h(ee, Qe);
        return Ve !== void 0 ? Ve || Te(ee, Qe) : o7;
      }
      function Te(ee, Qe) {
        if (me && Qe === W)
          return me;
        const Ve = {
          files: jt(e.readDirectory(ee, void 0, void 0, ["*.*"]), d) || rt,
          directories: e.getDirectories(ee) || rt
        };
        return Qe === W && (me = Ve), Ve;
      }
    }
    function V(P) {
      return e.realpath ? e.realpath(P) : P;
    }
    function H(P, de) {
      if (c(de) !== void 0) {
        Y();
        return;
      }
      const ye = f(de);
      if (!ye)
        return;
      if (!e.directoryExists) {
        Y();
        return;
      }
      const ae = d(P), W = {
        fileExists: e.fileExists(de),
        directoryExists: e.directoryExists(de)
      };
      return W.directoryExists || E(ye.sortedAndCanonicalizedDirectories, o(ae)) ? Y() : X(ye, ae, W.fileExists), W;
    }
    function te(P, de, re) {
      if (re === 1)
        return;
      const ye = f(de);
      ye && X(ye, d(P), re === 0);
    }
    function X(P, de, re) {
      const ye = P.sortedAndCanonicalizedFiles, ae = o(de);
      if (re)
        gv(ye, ae, Nu) && P.files.push(de);
      else {
        const W = yv(ye, ae, ml, Nu);
        if (W >= 0) {
          ye.splice(W, 1);
          const ce = P.files.findIndex((me) => o(me) === ae);
          P.files.splice(ce, 1);
        }
      }
    }
    function Y() {
      i.clear();
    }
  }
  function OX(e, t, r, i, o) {
    var s;
    const c = e1(((s = t == null ? void 0 : t.configFile) == null ? void 0 : s.extendedSourceFiles) || rt, o);
    r.forEach((f, d) => {
      c.has(d) || (f.projects.delete(e), f.close());
    }), c.forEach((f, d) => {
      const y = r.get(d);
      y ? y.projects.add(e) : r.set(d, {
        projects: /* @__PURE__ */ new Set([e]),
        watcher: i(f, d),
        close: () => {
          const h = r.get(d);
          !h || h.projects.size !== 0 || (h.watcher.close(), r.delete(d));
        }
      });
    });
  }
  function Khe(e, t) {
    t.forEach((r) => {
      r.projects.delete(e) && r.close();
    });
  }
  function PX(e, t, r) {
    e.delete(t) && e.forEach(({ extendedResult: i }, o) => {
      var s;
      (s = i.extendedSourceFiles) != null && s.some((c) => r(c) === t) && PX(e, o, r);
    });
  }
  function J3e(e, t, r) {
    const i = new Map(e);
    rC(t, i, {
      createNewValue: r,
      onDeleteValue: Um
    });
  }
  function Xhe(e, t, r) {
    const i = e.getMissingFilePaths(), o = e1(i, ml, n1);
    rC(t, o, {
      createNewValue: r,
      onDeleteValue: Um
    });
  }
  function aF(e, t, r) {
    rC(e, t, {
      createNewValue: i,
      onDeleteValue: Km,
      onExistingValue: o
    });
    function i(s, c) {
      return {
        watcher: r(s, c),
        flags: c
      };
    }
    function o(s, c, f) {
      s.flags !== c && (s.watcher.close(), e.set(f, i(f, c)));
    }
  }
  function oF({
    watchedDirPath: e,
    fileOrDirectory: t,
    fileOrDirectoryPath: r,
    configFileName: i,
    options: o,
    program: s,
    extraFileExtensions: c,
    currentDirectory: f,
    useCaseSensitiveFileNames: d,
    writeLog: y,
    toPath: h
  }) {
    const E = pY(r);
    if (!E)
      return y(`Project: ${i} Detected ignored path: ${t}`), !0;
    if (r = E, r === e)
      return !1;
    if (bA(r) && !jde(t, o, c))
      return y(`Project: ${i} Detected file add/remove of non supported extension: ${t}`), !0;
    if (Ipe(t, o.configFile.configFileSpecs, Pa(mi(i), f), d, f))
      return y(`Project: ${i} Detected excluded file: ${t}`), !0;
    if (!s || qs(o) || o.outDir)
      return !1;
    if (fd(r)) {
      if (o.declarationDir)
        return !1;
    } else if (!Tc(r, Ek))
      return !1;
    const A = Ud(r), L = Va(s) ? void 0 : K3e(s) ? s.getProgramOrUndefined() : s, I = !L && !Va(s) ? s : void 0;
    if (O(A + ".ts") || O(A + ".tsx"))
      return y(`Project: ${i} Detected output file: ${t}`), !0;
    return !1;
    function O(k) {
      return L ? !!L.getSourceFileByPath(k) : I ? I.getState().fileInfos.has(k) : !!nn(s, (G) => h(G) === k);
    }
  }
  function K3e(e) {
    return !!e.getState;
  }
  function Yhe(e, t) {
    return e ? e.isEmittedFile(t) : !1;
  }
  function $he(e, t, r, i) {
    gle(t === 2 ? r : so);
    const o = {
      watchFile: (O, k, G, V) => e.watchFile(O, k, G, V),
      watchDirectory: (O, k, G, V) => e.watchDirectory(O, k, (G & 1) !== 0, V)
    }, s = t !== 0 ? {
      watchFile: L("watchFile"),
      watchDirectory: L("watchDirectory")
    } : void 0, c = t === 2 ? {
      watchFile: E,
      watchDirectory: A
    } : s || o, f = t === 2 ? h : j8;
    return {
      watchFile: d("watchFile"),
      watchDirectory: d("watchDirectory")
    };
    function d(O) {
      return (k, G, V, H, te, X) => {
        var Y;
        return p5(k, O === "watchFile" ? H == null ? void 0 : H.excludeFiles : H == null ? void 0 : H.excludeDirectories, y(), ((Y = e.getCurrentDirectory) == null ? void 0 : Y.call(e)) || "") ? f(k, V, H, te, X) : c[O].call(void 0, k, G, V, H, te, X);
      };
    }
    function y() {
      return typeof e.useCaseSensitiveFileNames == "boolean" ? e.useCaseSensitiveFileNames : e.useCaseSensitiveFileNames();
    }
    function h(O, k, G, V, H) {
      return r(`ExcludeWatcher:: Added:: ${I(O, k, G, V, H, i)}`), {
        close: () => r(`ExcludeWatcher:: Close:: ${I(O, k, G, V, H, i)}`)
      };
    }
    function E(O, k, G, V, H, te) {
      r(`FileWatcher:: Added:: ${I(O, G, V, H, te, i)}`);
      const X = s.watchFile(O, k, G, V, H, te);
      return {
        close: () => {
          r(`FileWatcher:: Close:: ${I(O, G, V, H, te, i)}`), X.close();
        }
      };
    }
    function A(O, k, G, V, H, te) {
      const X = `DirectoryWatcher:: Added:: ${I(O, G, V, H, te, i)}`;
      r(X);
      const Y = il(), P = s.watchDirectory(O, k, G, V, H, te), de = il() - Y;
      return r(`Elapsed:: ${de}ms ${X}`), {
        close: () => {
          const re = `DirectoryWatcher:: Close:: ${I(O, G, V, H, te, i)}`;
          r(re);
          const ye = il();
          P.close();
          const ae = il() - ye;
          r(`Elapsed:: ${ae}ms ${re}`);
        }
      };
    }
    function L(O) {
      return (k, G, V, H, te, X) => o[O].call(void 0, k, (...Y) => {
        const P = `${O === "watchFile" ? "FileWatcher" : "DirectoryWatcher"}:: Triggered with ${Y[0]} ${Y[1] !== void 0 ? Y[1] : ""}:: ${I(k, V, H, te, X, i)}`;
        r(P);
        const de = il();
        G.call(void 0, ...Y);
        const re = il() - de;
        r(`Elapsed:: ${re}ms ${P}`);
      }, V, H, te, X);
    }
    function I(O, k, G, V, H, te) {
      return `WatchInfo: ${O} ${k} ${JSON.stringify(G)} ${te ? te(V, H) : H === void 0 ? V : `${V} ${H}`}`;
    }
  }
  function N8(e) {
    const t = e == null ? void 0 : e.fallbackPolling;
    return {
      watchFile: t !== void 0 ? t : 1
    };
  }
  function Km(e) {
    e.watcher.close();
  }
  var MX, FX, X3e = C({
    "src/compiler/watchUtilities.ts"() {
      Oa(), Oa(), MX = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Partial = 1] = "Partial", e[e.Full = 2] = "Full", e))(MX || {}), FX = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.TriggerOnly = 1] = "TriggerOnly", e[e.Verbose = 2] = "Verbose", e))(FX || {});
    }
  });
  function Qhe(e, t, r = "tsconfig.json") {
    return rg(e, (i) => {
      const o = Bi(i, r);
      return t(o) ? o : void 0;
    });
  }
  function sF(e, t) {
    const r = mi(t), i = km(e) ? e : Bi(r, e);
    return Jo(i);
  }
  function Zhe(e, t, r) {
    let i;
    return ze(e, (s) => {
      const c = RR(s, t);
      if (c.pop(), !i) {
        i = c;
        return;
      }
      const f = Math.min(i.length, c.length);
      for (let d = 0; d < f; d++)
        if (r(i[d]) !== r(c[d])) {
          if (d === 0)
            return !0;
          i.length = d;
          break;
        }
      c.length < i.length && (i.length = c.length);
    }) ? "" : i ? l1(i) : t;
  }
  function ege(e, t) {
    return UX(e, t);
  }
  function BX(e, t, r) {
    return (i, o, s) => {
      let c;
      try {
        al("beforeIORead"), c = e(i, t().charset), al("afterIORead"), Jf("I/O Read", "beforeIORead", "afterIORead");
      } catch (f) {
        s && s(f.message), c = "";
      }
      return c !== void 0 ? YO(i, c, o, r) : void 0;
    };
  }
  function GX(e, t, r) {
    return (i, o, s, c) => {
      try {
        al("beforeIOWrite"), Uz(i, o, s, e, t, r), al("afterIOWrite"), Jf("I/O Write", "beforeIOWrite", "afterIOWrite");
      } catch (f) {
        c && c(f.message);
      }
    };
  }
  function UX(e, t, r = $c) {
    const i = /* @__PURE__ */ new Map(), o = ru(r.useCaseSensitiveFileNames);
    function s(h) {
      return i.has(h) ? !0 : (y.directoryExists || r.directoryExists)(h) ? (i.set(h, !0), !0) : !1;
    }
    function c() {
      return mi(Jo(r.getExecutingFilePath()));
    }
    const f = X0(e), d = r.realpath && ((h) => r.realpath(h)), y = {
      getSourceFile: BX((h) => y.readFile(h), () => e, t),
      getDefaultLibLocation: c,
      getDefaultLibFileName: (h) => Bi(c(), AM(h)),
      writeFile: GX((h, E, A) => r.writeFile(h, E, A), (h) => (y.createDirectory || r.createDirectory)(h), (h) => s(h)),
      getCurrentDirectory: Ed(() => r.getCurrentDirectory()),
      useCaseSensitiveFileNames: () => r.useCaseSensitiveFileNames,
      getCanonicalFileName: o,
      getNewLine: () => f,
      fileExists: (h) => r.fileExists(h),
      readFile: (h) => r.readFile(h),
      trace: (h) => r.write(h + f),
      directoryExists: (h) => r.directoryExists(h),
      getEnvironmentVariable: (h) => r.getEnvironmentVariable ? r.getEnvironmentVariable(h) : "",
      getDirectories: (h) => r.getDirectories(h),
      realpath: d,
      readDirectory: (h, E, A, L, I) => r.readDirectory(h, E, A, L, I),
      createDirectory: (h) => r.createDirectory(h),
      createHash: Uo(r, r.createHash)
    };
    return y;
  }
  function O8(e, t, r) {
    const i = e.readFile, o = e.fileExists, s = e.directoryExists, c = e.createDirectory, f = e.writeFile, d = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Map(), A = (O) => {
      const k = t(O), G = d.get(k);
      return G !== void 0 ? G !== !1 ? G : void 0 : L(k, O);
    }, L = (O, k) => {
      const G = i.call(e, k);
      return d.set(O, G !== void 0 ? G : !1), G;
    };
    e.readFile = (O) => {
      const k = t(O), G = d.get(k);
      return G !== void 0 ? G !== !1 ? G : void 0 : !cc(O, ".json") && !Bhe(O) ? i.call(e, O) : L(k, O);
    };
    const I = r ? (O, k, G, V) => {
      const H = t(O), te = typeof k == "object" ? k.impliedNodeFormat : void 0, X = E.get(te), Y = X == null ? void 0 : X.get(H);
      if (Y)
        return Y;
      const P = r(O, k, G, V);
      return P && (fd(O) || cc(O, ".json")) && E.set(te, (X || /* @__PURE__ */ new Map()).set(H, P)), P;
    } : void 0;
    return e.fileExists = (O) => {
      const k = t(O), G = y.get(k);
      if (G !== void 0)
        return G;
      const V = o.call(e, O);
      return y.set(k, !!V), V;
    }, f && (e.writeFile = (O, k, ...G) => {
      const V = t(O);
      y.delete(V);
      const H = d.get(V);
      H !== void 0 && H !== k ? (d.delete(V), E.forEach((te) => te.delete(V))) : I && E.forEach((te) => {
        const X = te.get(V);
        X && X.text !== k && te.delete(V);
      }), f.call(e, O, k, ...G);
    }), s && (e.directoryExists = (O) => {
      const k = t(O), G = h.get(k);
      if (G !== void 0)
        return G;
      const V = s.call(e, O);
      return h.set(k, !!V), V;
    }, c && (e.createDirectory = (O) => {
      const k = t(O);
      h.delete(k), c.call(e, O);
    })), {
      originalReadFile: i,
      originalFileExists: o,
      originalDirectoryExists: s,
      originalCreateDirectory: c,
      originalWriteFile: f,
      getSourceFileWithCache: I,
      readFileWithCache: A
    };
  }
  function Y3e(e, t, r) {
    let i;
    return i = Ti(i, e.getConfigFileParsingDiagnostics()), i = Ti(i, e.getOptionsDiagnostics(r)), i = Ti(i, e.getSyntacticDiagnostics(t, r)), i = Ti(i, e.getGlobalDiagnostics(r)), i = Ti(i, e.getSemanticDiagnostics(t, r)), W_(e.getCompilerOptions()) && (i = Ti(i, e.getDeclarationDiagnostics(t, r))), TA(i || rt);
  }
  function $3e(e, t) {
    let r = "";
    for (const i of e)
      r += VX(i, t);
    return r;
  }
  function VX(e, t) {
    const r = `${nM(e)} TS${e.code}: ${Wv(e.messageText, t.getNewLine())}${t.getNewLine()}`;
    if (e.file) {
      const { line: i, character: o } = ol(e.file, e.start), s = e.file.fileName;
      return `${_I(s, t.getCurrentDirectory(), (f) => t.getCanonicalFileName(f))}(${i + 1},${o + 1}): ` + r;
    }
    return r;
  }
  function tge(e) {
    switch (e) {
      case 1:
        return "\x1B[91m";
      case 0:
        return "\x1B[93m";
      case 2:
        return D.fail("Should never get an Info diagnostic on the command line.");
      case 3:
        return "\x1B[94m";
    }
  }
  function W1(e, t) {
    return t + e + ZX;
  }
  function nge(e, t, r, i, o, s) {
    const { line: c, character: f } = ol(e, t), { line: d, character: y } = ol(e, t + r), h = ol(e, e.text.length).line, E = d - c >= 4;
    let A = (d + 1 + "").length;
    E && (A = Math.max(eY.length, A));
    let L = "";
    for (let I = c; I <= d; I++) {
      L += s.getNewLine(), E && c + 1 < I && I < d - 1 && (L += i + W1(GS(eY, A), mF) + hF + s.getNewLine(), I = d - 1);
      const O = FR(e, I, 0), k = I < h ? FR(e, I + 1, 0) : e.text.length;
      let G = e.text.slice(O, k);
      if (G = gR(G), G = G.replace(/\t/g, " "), L += i + W1(GS(I + 1 + "", A), mF) + hF, L += G + s.getNewLine(), L += i + W1(GS("", A), mF) + hF, L += o, I === c) {
        const V = I === d ? y : void 0;
        L += G.slice(0, f).replace(/\S/g, " "), L += G.slice(f, V).replace(/./g, "~");
      } else
        I === d ? L += G.slice(0, y).replace(/./g, "~") : L += G.replace(/./g, "~");
      L += ZX;
    }
    return L;
  }
  function jX(e, t, r, i = W1) {
    const { line: o, character: s } = ol(e, t), c = r ? _I(e.fileName, r.getCurrentDirectory(), (d) => r.getCanonicalFileName(d)) : e.fileName;
    let f = "";
    return f += i(c, "\x1B[96m"), f += ":", f += i(`${o + 1}`, "\x1B[93m"), f += ":", f += i(`${s + 1}`, "\x1B[93m"), f;
  }
  function rge(e, t) {
    let r = "";
    for (const i of e) {
      if (i.file) {
        const { file: o, start: s } = i;
        r += jX(o, s, t), r += " - ";
      }
      if (r += W1(nM(i), tge(i.category)), r += W1(` TS${i.code}: `, "\x1B[90m"), r += Wv(i.messageText, t.getNewLine()), i.file && (r += t.getNewLine(), r += nge(i.file, i.start, i.length, "", tge(i.category), t)), i.relatedInformation) {
        r += t.getNewLine();
        for (const { file: o, start: s, length: c, messageText: f } of i.relatedInformation)
          o && (r += t.getNewLine(), r += oge + jX(o, s, t), r += nge(o, s, c, tY, "\x1B[96m", t)), r += t.getNewLine(), r += tY + Wv(f, t.getNewLine());
      }
      r += t.getNewLine();
    }
    return r;
  }
  function Wv(e, t, r = 0) {
    if (Ha(e))
      return e;
    if (e === void 0)
      return "";
    let i = "";
    if (r) {
      i += t;
      for (let o = 0; o < r; o++)
        i += "  ";
    }
    if (i += e.messageText, r++, e.next)
      for (const o of e.next)
        i += Wv(o, t, r);
    return i;
  }
  function P8(e, t) {
    return (Ha(e) ? t : e.resolutionMode) || t;
  }
  function HX(e, t) {
    if (e.impliedNodeFormat !== void 0)
      return Tp(e, pF(e, t));
  }
  function WX(e) {
    var t;
    return eu(e) ? e.isTypeOnly : !!((t = e.importClause) != null && t.isTypeOnly);
  }
  function Tp(e, t) {
    var r, i;
    if (e.impliedNodeFormat === void 0)
      return;
    if ((Wc(t.parent) || eu(t.parent)) && WX(t.parent)) {
      const c = Vx(t.parent.assertClause);
      if (c)
        return c;
    }
    if (t.parent.parent && gg(t.parent.parent)) {
      const s = Vx((r = t.parent.parent.assertions) == null ? void 0 : r.assertClause);
      if (s)
        return s;
    }
    if (e.impliedNodeFormat !== 99)
      return lf(Dv(t.parent)) ? 99 : 1;
    const o = (i = Dv(t.parent)) == null ? void 0 : i.parent;
    return o && su(o) ? 1 : 99;
  }
  function Vx(e, t) {
    if (!e)
      return;
    if (Le(e.elements) !== 1) {
      t == null || t(e, _.Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require);
      return;
    }
    const r = e.elements[0];
    if (xs(r.name)) {
      if (r.name.text !== "resolution-mode") {
        t == null || t(r.name, _.resolution_mode_is_the_only_valid_key_for_type_import_assertions);
        return;
      }
      if (xs(r.value)) {
        if (r.value.text !== "import" && r.value.text !== "require") {
          t == null || t(r.value, _.resolution_mode_should_be_either_require_or_import);
          return;
        }
        return r.value.text === "import" ? 99 : 1;
      }
    }
  }
  function zX(e) {
    return e.text;
  }
  function qX(e, t, r, i, o) {
    return {
      nameAndMode: lw,
      resolve: (s, c) => Jk(s, e, r, i, o, t, c)
    };
  }
  function lF(e) {
    return Ha(e) ? e : N_(e.fileName);
  }
  function cF(e, t, r, i, o) {
    return {
      nameAndMode: B8,
      resolve: (s, c) => LK(s, e, r, i, t, o, c)
    };
  }
  function M8(e, t, r, i, o, s, c, f) {
    if (e.length === 0)
      return rt;
    const d = [], y = /* @__PURE__ */ new Map(), h = f(t, r, i, s, c);
    for (const E of e) {
      const A = h.nameAndMode.getName(E), L = h.nameAndMode.getMode(E, o), I = qk(A, L);
      let O = y.get(I);
      O || y.set(I, O = h.resolve(A, L)), d.push(O);
    }
    return d;
  }
  function ige(e, t) {
    return F8(void 0, e, (r, i) => r && t(r, i));
  }
  function F8(e, t, r, i) {
    let o;
    return s(e, t, void 0);
    function s(c, f, d) {
      if (i) {
        const y = i(c, d);
        if (y)
          return y;
      }
      return ze(f, (y, h) => {
        if (y && (o != null && o.has(y.sourceFile.path)))
          return;
        const E = r(y, d, h);
        return E || !y ? E : ((o || (o = /* @__PURE__ */ new Set())).add(y.sourceFile.path), s(y.commandLine.projectReferences, y.references, y));
      });
    }
  }
  function rb(e) {
    switch (e == null ? void 0 : e.kind) {
      case 3:
      case 4:
      case 5:
      case 7:
        return !0;
      default:
        return !1;
    }
  }
  function UC(e) {
    return e.pos !== void 0;
  }
  function ow(e, t) {
    var r, i, o, s, c, f;
    const d = D.checkDefined(e(t.file)), { kind: y, index: h } = t;
    let E, A, L, I;
    switch (y) {
      case 3:
        const O = pF(d, h);
        if (L = (o = (i = (r = d.resolvedModules) == null ? void 0 : r.get(O.text, HX(d, h))) == null ? void 0 : i.resolvedModule) == null ? void 0 : o.packageId, O.pos === -1)
          return { file: d, packageId: L, text: O.text };
        E = Ko(d.text, O.pos), A = O.end;
        break;
      case 4:
        ({ pos: E, end: A } = d.referencedFiles[h]);
        break;
      case 5:
        ({ pos: E, end: A, resolutionMode: I } = d.typeReferenceDirectives[h]), L = (f = (c = (s = d.resolvedTypeReferenceDirectiveNames) == null ? void 0 : s.get(N_(d.typeReferenceDirectives[h].fileName), I || d.impliedNodeFormat)) == null ? void 0 : c.resolvedTypeReferenceDirective) == null ? void 0 : f.packageId;
        break;
      case 7:
        ({ pos: E, end: A } = d.libReferenceDirectives[h]);
        break;
      default:
        return D.assertNever(y);
    }
    return { file: d, pos: E, end: A, packageId: L };
  }
  function JX(e, t, r, i, o, s, c, f, d) {
    if (!e || c != null && c() || !Hp(e.getRootFileNames(), t))
      return !1;
    let y;
    if (!Hp(e.getProjectReferences(), d, L) || e.getSourceFiles().some(E) || e.getMissingFilePaths().some(o))
      return !1;
    const h = e.getCompilerOptions();
    if (!tq(h, r))
      return !1;
    if (h.configFile && r.configFile)
      return h.configFile.text === r.configFile.text;
    return !0;
    function E(O) {
      return !A(O) || s(O.path);
    }
    function A(O) {
      return O.version === i(O.resolvedPath, O.fileName);
    }
    function L(O, k, G) {
      return GW(O, k) && I(e.getResolvedProjectReferences()[G], O);
    }
    function I(O, k) {
      if (O) {
        if (jr(y, O))
          return !0;
        const V = sw(k), H = f(V);
        return !H || O.commandLine.options.configFile !== H.options.configFile || !Hp(O.commandLine.fileNames, H.fileNames) ? !1 : ((y || (y = [])).push(O), !ze(O.references, (te, X) => !I(te, O.commandLine.projectReferences[X])));
      }
      const G = sw(k);
      return !f(G);
    }
  }
  function GT(e) {
    return e.options.configFile ? [...e.options.configFile.parseDiagnostics, ...e.errors] : e.errors;
  }
  function uF(e, t, r, i) {
    const o = KX(e, t, r, i);
    return typeof o == "object" ? o.impliedNodeFormat : o;
  }
  function KX(e, t, r, i) {
    switch (vl(i)) {
      case 3:
      case 99:
        return Tc(e, [".d.mts", ".mts", ".mjs"]) ? 99 : Tc(e, [".d.cts", ".cts", ".cjs"]) ? 1 : Tc(e, [".d.ts", ".ts", ".tsx", ".js", ".jsx"]) ? o() : void 0;
      default:
        return;
    }
    function o() {
      const s = k5(t, r, i), c = [];
      s.failedLookupLocations = c, s.affectingLocations = c;
      const f = w5(e, s);
      return { impliedNodeFormat: (f == null ? void 0 : f.contents.packageJsonContent.type) === "module" ? 99 : 1, packageJsonLocations: c, packageJsonScope: f };
    }
  }
  function Q3e(e, t) {
    return e ? DA(e.getCompilerOptions(), t, g5) : !1;
  }
  function Z3e(e, t, r, i, o, s) {
    return {
      rootNames: e,
      options: t,
      host: r,
      oldProgram: i,
      configFileParsingDiagnostics: o,
      typeScriptVersion: s
    };
  }
  function dF(e, t, r, i, o) {
    var s, c, f, d, y, h, E, A, L, I, O, k, G, V, H, te;
    const X = Va(e) ? Z3e(e, t, r, i, o) : e, { rootNames: Y, options: P, configFileParsingDiagnostics: de, projectReferences: re, typeScriptVersion: ye } = X;
    let { oldProgram: ae } = X;
    const W = Ed(() => x_("ignoreDeprecations", _.Invalid_value_for_ignoreDeprecations));
    let ce, me, ve, Te, ee, Qe, Ve;
    const Be = /* @__PURE__ */ new Map();
    let qe = f_();
    const Oe = {}, Me = {};
    let Ye = OT(), We, Fe, st;
    const Ct = typeof P.maxNodeModuleJsDepth == "number" ? P.maxNodeModuleJsDepth : 0;
    let Et = 0;
    const Vt = /* @__PURE__ */ new Map(), tt = /* @__PURE__ */ new Map();
    (s = bi) == null || s.push(bi.Phase.Program, "createProgram", { configFilePath: P.configFilePath, rootDir: P.rootDir }, !0), al("beforeProgram");
    const at = X.host || ege(P), sn = _F(at);
    let Qt = P.noLib;
    const On = Ed(() => at.getDefaultLibFileName(P)), jn = at.getDefaultLibLocation ? at.getDefaultLibLocation() : mi(On()), In = QA(), Zt = at.getCurrentDirectory(), _r = fk(P), Ii = rO(P, _r), $i = /* @__PURE__ */ new Map();
    let Qi, Or, At;
    const vn = at.hasInvalidatedResolutions || t1;
    at.resolveModuleNameLiterals ? (At = at.resolveModuleNameLiterals.bind(at), Or = (c = at.getModuleResolutionCache) == null ? void 0 : c.call(at)) : at.resolveModuleNames ? (At = (Ie, Ue, Lt, Ot, hn, bn) => at.resolveModuleNames(Ie.map(zX), Ue, bn == null ? void 0 : bn.map(zX), Lt, Ot, hn).map((Tn) => Tn ? Tn.extension !== void 0 ? { resolvedModule: Tn } : { resolvedModule: { ...Tn, extension: lO(Tn.resolvedFileName) } } : nY), Or = (f = at.getModuleResolutionCache) == null ? void 0 : f.call(at)) : (Or = C5(Zt, oe, P), At = (Ie, Ue, Lt, Ot, hn) => M8(Ie, Ue, Lt, Ot, hn, at, Or, qX));
    let Wt;
    if (at.resolveTypeReferenceDirectiveReferences)
      Wt = at.resolveTypeReferenceDirectiveReferences.bind(at);
    else if (at.resolveTypeReferenceDirectives)
      Wt = (Ie, Ue, Lt, Ot, hn) => at.resolveTypeReferenceDirectives(Ie.map(lF), Ue, Lt, Ot, hn == null ? void 0 : hn.impliedNodeFormat).map((bn) => ({ resolvedTypeReferenceDirective: bn }));
    else {
      const Ie = L5(Zt, oe, void 0, Or == null ? void 0 : Or.getPackageJsonInfoCache());
      Wt = (Ue, Lt, Ot, hn, bn) => M8(Ue, Lt, Ot, hn, bn, at, Ie, cF);
    }
    const fn = /* @__PURE__ */ new Map();
    let rr = /* @__PURE__ */ new Map(), cr = f_(), Pi = !1;
    const hi = /* @__PURE__ */ new Map();
    let Rn;
    const an = at.useCaseSensitiveFileNames() ? /* @__PURE__ */ new Map() : void 0;
    let Pn, Ar, Hr, we;
    const yt = !!((d = at.useSourceOfProjectReferenceRedirect) != null && d.call(at)) && !P.disableSourceOfProjectReferenceRedirect, { onProgramCreateComplete: Nt, fileExists: Ce, directoryExists: pt } = e7e({
      compilerHost: at,
      getSymlinkCache: Ia,
      useSourceOfProjectReferenceRedirect: yt,
      toPath: mt,
      getResolvedProjectReferences: ft,
      getSourceOfProjectReferenceRedirect: fl,
      forEachResolvedProjectReference: ds
    }), _e = at.readFile.bind(at);
    (y = bi) == null || y.push(bi.Phase.Program, "shouldProgramCreateNewSourceFiles", { hasOldProgram: !!ae });
    const ie = Q3e(ae, P);
    (h = bi) == null || h.pop();
    let he;
    if ((E = bi) == null || E.push(bi.Phase.Program, "tryReuseStructureFromOldProgram", {}), he = Re(), (A = bi) == null || A.pop(), he !== 2) {
      if (ce = [], me = [], re && (Pn || (Pn = re.map(Pt)), Y.length && (Pn == null || Pn.forEach((Ie, Ue) => {
        if (!Ie)
          return;
        const Lt = qs(Ie.commandLine.options);
        if (yt) {
          if (Lt || au(Ie.commandLine.options) === 0)
            for (const Ot of Ie.commandLine.fileNames)
              mn(Ot, { kind: 1, index: Ue });
        } else if (Lt)
          mn(L1(Lt, ".d.ts"), { kind: 2, index: Ue });
        else if (au(Ie.commandLine.options) === 0) {
          const Ot = Ed(() => aw(Ie.commandLine, !at.useCaseSensitiveFileNames()));
          for (const hn of Ie.commandLine.fileNames)
            !fd(hn) && !cc(hn, ".json") && mn(iw(hn, Ie.commandLine, !at.useCaseSensitiveFileNames(), Ot), { kind: 2, index: Ue });
        }
      }))), (L = bi) == null || L.push(bi.Phase.Program, "processRootFiles", { count: Y.length }), ze(Y, (Ie, Ue) => jl(Ie, !1, !1, { kind: 0, index: Ue })), (I = bi) == null || I.pop(), Fe ?? (Fe = Y.length ? A5(P, at) : rt), st = OT(), Fe.length) {
        (O = bi) == null || O.push(bi.Phase.Program, "processTypeReferences", { count: Fe.length });
        const Ie = P.configFilePath ? mi(P.configFilePath) : at.getCurrentDirectory(), Ue = Bi(Ie, gF), Lt = Pe(Fe, Ue);
        for (let Ot = 0; Ot < Fe.length; Ot++)
          st.set(Fe[Ot], void 0, Lt[Ot]), Dt(Fe[Ot], void 0, Lt[Ot], {
            kind: 8,
            typeReference: Fe[Ot],
            packageId: (G = (k = Lt[Ot]) == null ? void 0 : k.resolvedTypeReferenceDirective) == null ? void 0 : G.packageId
          });
        (V = bi) == null || V.pop();
      }
      if (Y.length && !Qt) {
        const Ie = On();
        !P.lib && Ie ? jl(Ie, !0, !1, { kind: 6 }) : ze(P.lib, (Ue, Lt) => {
          jl(Xi(Ue), !0, !1, { kind: 6, index: Lt });
        });
      }
      Rn = Ro(_A(hi.entries(), ([Ie, Ue]) => Ue === void 0 ? Ie : void 0)), ve = sy(ce, Er).concat(me), ce = void 0, me = void 0;
    }
    if (D.assert(!!Rn), ae && at.onReleaseOldSourceFile) {
      const Ie = ae.getSourceFiles();
      for (const Ue of Ie) {
        const Lt = ua(Ue.resolvedPath);
        (ie || !Lt || Lt.impliedNodeFormat !== Ue.impliedNodeFormat || Ue.resolvedPath === Ue.path && Lt.resolvedPath !== Ue.path) && at.onReleaseOldSourceFile(Ue, ae.getCompilerOptions(), !!ua(Ue.path));
      }
      at.getParsedCommandLine || ae.forEachResolvedProjectReference((Ue) => {
        Hl(Ue.sourceFile.path) || at.onReleaseOldSourceFile(Ue.sourceFile, ae.getCompilerOptions(), !1);
      });
    }
    ae && at.onReleaseParsedCommandLine && F8(ae.getProjectReferences(), ae.getResolvedProjectReferences(), (Ie, Ue, Lt) => {
      const Ot = (Ue == null ? void 0 : Ue.commandLine.projectReferences[Lt]) || ae.getProjectReferences()[Lt], hn = sw(Ot);
      Ar != null && Ar.has(mt(hn)) || at.onReleaseParsedCommandLine(hn, Ie, ae.getCompilerOptions());
    }), ae = void 0;
    const j = {
      getRootFileNames: () => Y,
      getSourceFile: io,
      getSourceFileByPath: ua,
      getSourceFiles: () => ve,
      getMissingFilePaths: () => Rn,
      getModuleResolutionCache: () => Or,
      getFilesByNameMap: () => hi,
      getCompilerOptions: () => P,
      getSyntacticDiagnostics: Xr,
      getOptionsDiagnostics: hl,
      getGlobalDiagnostics: Ks,
      getSemanticDiagnostics: ss,
      getCachedSemanticDiagnostics: _i,
      getSuggestionDiagnostics: Yo,
      getDeclarationDiagnostics: pa,
      getBindAndCheckDiagnostics: da,
      getProgramDiagnostics: wn,
      getTypeChecker: Ci,
      getClassifiableNames: it,
      getCommonSourceDirectory: zt,
      emit: ji,
      getCurrentDirectory: () => Zt,
      getNodeCount: () => Ci().getNodeCount(),
      getIdentifierCount: () => Ci().getIdentifierCount(),
      getSymbolCount: () => Ci().getSymbolCount(),
      getTypeCount: () => Ci().getTypeCount(),
      getInstantiationCount: () => Ci().getInstantiationCount(),
      getRelationCacheSizes: () => Ci().getRelationCacheSizes(),
      getFileProcessingDiagnostics: () => We,
      getResolvedTypeReferenceDirectives: () => Ye,
      getAutomaticTypeDirectiveNames: () => Fe,
      getAutomaticTypeDirectiveResolutions: () => st,
      isSourceFileFromExternalLibrary: oi,
      isSourceFileDefaultLibrary: Ai,
      getSourceFileFromReference: Q,
      getLibFileFromReference: Ht,
      sourceFileToPackageName: rr,
      redirectTargetsMap: cr,
      usesUriStyleNodeCoreModules: Pi,
      isEmittedFile: Xn,
      getConfigFileParsingDiagnostics: rn,
      getProjectReferences: _n,
      getResolvedProjectReferences: ft,
      getProjectReferenceRedirect: dl,
      getResolvedProjectReferenceToRedirect: Es,
      getResolvedProjectReferenceByPath: Hl,
      forEachResolvedProjectReference: ds,
      isSourceOfProjectReferenceRedirect: Jd,
      emitBuildInfo: gt,
      fileExists: Ce,
      readFile: _e,
      directoryExists: pt,
      getSymlinkCache: Ia,
      realpath: (H = at.realpath) == null ? void 0 : H.bind(at),
      useCaseSensitiveFileNames: () => at.useCaseSensitiveFileNames(),
      getCanonicalFileName: oe,
      getFileIncludeReasons: () => qe,
      structureIsReused: he,
      writeFile: Rt
    };
    return Nt(), We == null || We.forEach((Ie) => {
      switch (Ie.kind) {
        case 1:
          return In.add(ja(Ie.file && ua(Ie.file), Ie.fileProcessingReason, Ie.diagnostic, Ie.args || rt));
        case 0:
          const { file: Ue, pos: Lt, end: Ot } = ow(ua, Ie.reason);
          return In.add(Dc(Ue, D.checkDefined(Lt), D.checkDefined(Ot) - Lt, Ie.diagnostic, ...Ie.args || rt));
        case 2:
          return Ie.diagnostics.forEach((hn) => In.add(hn));
        default:
          D.assertNever(Ie);
      }
    }), un(), al("afterProgram"), Jf("Program", "beforeProgram", "afterProgram"), (te = bi) == null || te.pop(), j;
    function He(Ie) {
      var Ue;
      (Ue = Ie.resolutionDiagnostics) != null && Ue.length && (We ?? (We = [])).push({
        kind: 2,
        diagnostics: Ie.resolutionDiagnostics
      });
    }
    function Ze(Ie, Ue, Lt, Ot) {
      if (at.resolveModuleNameLiterals || !at.resolveModuleNames)
        return He(Lt);
      if (!Or || Gc(Ue))
        return;
      const hn = Pa(Ie.originalFileName, Zt), bn = mi(hn), Tn = cn(Ie), Hn = Or.getFromNonRelativeNameCache(Ue, Ot, bn, Tn);
      Hn && He(Hn);
    }
    function Xe(Ie, Ue, Lt) {
      var Ot, hn;
      if (!Ie.length)
        return rt;
      const bn = Pa(Ue.originalFileName, Zt), Tn = cn(Ue);
      (Ot = bi) == null || Ot.push(bi.Phase.Program, "resolveModuleNamesWorker", { containingFileName: bn }), al("beforeResolveModule");
      const Hn = At(Ie, bn, Tn, P, Ue, Lt);
      return al("afterResolveModule"), Jf("ResolveModule", "beforeResolveModule", "afterResolveModule"), (hn = bi) == null || hn.pop(), Hn;
    }
    function Ut(Ie, Ue, Lt) {
      var Ot, hn;
      if (!Ie.length)
        return [];
      const bn = Ha(Ue) ? void 0 : Ue, Tn = Ha(Ue) ? Ue : Pa(Ue.originalFileName, Zt), Hn = bn && cn(bn);
      (Ot = bi) == null || Ot.push(bi.Phase.Program, "resolveTypeReferenceDirectiveNamesWorker", { containingFileName: Tn }), al("beforeResolveTypeReference");
      const qr = Wt(Ie, Tn, Hn, P, bn, Lt);
      return al("afterResolveTypeReference"), Jf("ResolveTypeReference", "beforeResolveTypeReference", "afterResolveTypeReference"), (hn = bi) == null || hn.pop(), qr;
    }
    function cn(Ie) {
      const Ue = Es(Ie.originalFileName);
      if (Ue || !fd(Ie.originalFileName))
        return Ue;
      const Lt = Sn(Ie.path);
      if (Lt)
        return Lt;
      if (!at.realpath || !P.preserveSymlinks || !pu(Ie.originalFileName, Cy))
        return;
      const Ot = mt(at.realpath(Ie.originalFileName));
      return Ot === Ie.path ? void 0 : Sn(Ot);
    }
    function Sn(Ie) {
      const Ue = fl(Ie);
      if (Ha(Ue))
        return Es(Ue);
      if (Ue)
        return ds((Lt) => {
          const Ot = qs(Lt.commandLine.options);
          if (Ot)
            return mt(Ot) === Ie ? Lt : void 0;
        });
    }
    function Er(Ie, Ue) {
      return Ws(ue(Ie), ue(Ue));
    }
    function ue(Ie) {
      if (Ev(jn, Ie.fileName, !1)) {
        const Ue = mu(Ie.fileName);
        if (Ue === "lib.d.ts" || Ue === "lib.es6.d.ts")
          return 0;
        const Lt = gA(lI(Ue, "lib."), ".d.ts"), Ot = s8.indexOf(Lt);
        if (Ot !== -1)
          return Ot + 1;
      }
      return s8.length + 2;
    }
    function mt(Ie) {
      return zs(Ie, Zt, oe);
    }
    function zt() {
      if (ee === void 0) {
        const Ie = lr(ve, (Ue) => sx(Ue, j));
        ee = w8(P, () => ia(Ie, (Ue) => Ue.isDeclarationFile ? void 0 : Ue.fileName), Zt, oe, (Ue) => Mt(Ie, Ue));
      }
      return ee;
    }
    function it() {
      var Ie;
      if (!Ve) {
        Ci(), Ve = /* @__PURE__ */ new Set();
        for (const Ue of ve)
          (Ie = Ue.classifiableNames) == null || Ie.forEach((Lt) => Ve.add(Lt));
      }
      return Ve;
    }
    function K(Ie, Ue) {
      var Lt;
      if (he === 0 && !Ue.ambientModuleNames.length)
        return Xe(Ie, Ue, void 0);
      const Ot = ae && ae.getSourceFile(Ue.fileName);
      if (Ot !== Ue && Ue.resolvedModules) {
        const pn = [];
        for (const dr of Ie) {
          const Aa = Ue.resolvedModules.get(dr.text, Tp(Ue, dr));
          pn.push(Aa);
        }
        return pn;
      }
      let hn, bn, Tn;
      const Hn = nY;
      for (let pn = 0; pn < Ie.length; pn++) {
        const dr = Ie[pn];
        if (Ue === Ot && !vn(Ot.path)) {
          const Ys = Tp(Ue, dr), sc = (Lt = Ot.resolvedModules) == null ? void 0 : Lt.get(dr.text, Ys);
          if (sc != null && sc.resolvedModule) {
            Hv(P, at) && ha(at, sc.resolvedModule.packageId ? _.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : _.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2, dr.text, Pa(Ue.originalFileName, Zt), sc.resolvedModule.resolvedFileName, sc.resolvedModule.packageId && oT(sc.resolvedModule.packageId)), (bn ?? (bn = new Array(Ie.length)))[pn] = sc, (Tn ?? (Tn = [])).push(dr);
            continue;
          }
        }
        let Aa = !1;
        jr(Ue.ambientModuleNames, dr.text) ? (Aa = !0, Hv(P, at) && ha(at, _.Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1, dr.text, Pa(Ue.originalFileName, Zt))) : Aa = tr(dr), Aa ? (bn || (bn = new Array(Ie.length)))[pn] = Hn : (hn ?? (hn = [])).push(dr);
      }
      const qr = hn && hn.length ? Xe(hn, Ue, Tn) : rt;
      if (!bn)
        return D.assert(qr.length === Ie.length), qr;
      let Ji = 0;
      for (let pn = 0; pn < bn.length; pn++)
        bn[pn] || (bn[pn] = qr[Ji], Ji++);
      return D.assert(Ji === qr.length), bn;
      function tr(pn) {
        const dr = RA(Ot, pn.text, Tp(Ue, pn)), Aa = dr && ae.getSourceFile(dr.resolvedFileName);
        if (dr && Aa)
          return !1;
        const Ys = Be.get(pn.text);
        return Ys ? (Hv(P, at) && ha(at, _.Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified, pn.text, Ys), !0) : !1;
      }
    }
    function Pe(Ie, Ue) {
      var Lt;
      if (he === 0)
        return Ut(Ie, Ue, void 0);
      const Ot = Ha(Ue) ? void 0 : ae && ae.getSourceFile(Ue.fileName);
      if (!Ha(Ue) && Ot !== Ue && Ue.resolvedTypeReferenceDirectiveNames) {
        const pn = [];
        for (const dr of Ie) {
          const Aa = Ue.resolvedTypeReferenceDirectiveNames.get(lF(dr), P8(dr, Ue.impliedNodeFormat));
          pn.push(Aa);
        }
        return pn;
      }
      let hn, bn, Tn;
      const Hn = Ha(Ue) ? void 0 : Ue, qr = Ha(Ue) ? !vn(mt(Ue)) : Ue === Ot && !vn(Ot.path);
      for (let pn = 0; pn < Ie.length; pn++) {
        const dr = Ie[pn];
        if (qr) {
          const Aa = lF(dr), Ys = P8(dr, Hn == null ? void 0 : Hn.impliedNodeFormat), sc = (Lt = Ha(Ue) ? ae == null ? void 0 : ae.getAutomaticTypeDirectiveResolutions() : Ot == null ? void 0 : Ot.resolvedTypeReferenceDirectiveNames) == null ? void 0 : Lt.get(Aa, Ys);
          if (sc != null && sc.resolvedTypeReferenceDirective) {
            Hv(P, at) && ha(at, sc.resolvedTypeReferenceDirective.packageId ? _.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : _.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2, Aa, Ha(Ue) ? Ue : Pa(Ue.originalFileName, Zt), sc.resolvedTypeReferenceDirective.resolvedFileName, sc.resolvedTypeReferenceDirective.packageId && oT(sc.resolvedTypeReferenceDirective.packageId)), (bn ?? (bn = new Array(Ie.length)))[pn] = sc, (Tn ?? (Tn = [])).push(dr);
            continue;
          }
        }
        (hn ?? (hn = [])).push(dr);
      }
      if (!hn)
        return bn || rt;
      const Ji = Ut(hn, Ue, Tn);
      if (!bn)
        return D.assert(Ji.length === Ie.length), Ji;
      let tr = 0;
      for (let pn = 0; pn < bn.length; pn++)
        bn[pn] || (bn[pn] = Ji[tr], tr++);
      return D.assert(tr === Ji.length), bn;
    }
    function Z() {
      return !F8(ae.getProjectReferences(), ae.getResolvedProjectReferences(), (Ie, Ue, Lt) => {
        const Ot = (Ue ? Ue.commandLine.projectReferences : re)[Lt], hn = Pt(Ot);
        return Ie ? !hn || hn.sourceFile !== Ie.sourceFile || !Hp(Ie.commandLine.fileNames, hn.commandLine.fileNames) : hn !== void 0;
      }, (Ie, Ue) => {
        const Lt = Ue ? Hl(Ue.sourceFile.path).commandLine.projectReferences : re;
        return !Hp(Ie, Lt, GW);
      });
    }
    function Re() {
      var Ie;
      if (!ae)
        return 0;
      const Ue = ae.getCompilerOptions();
      if (BW(Ue, P))
        return 0;
      const Lt = ae.getRootFileNames();
      if (!Hp(Lt, Y) || !Z())
        return 0;
      re && (Pn = re.map(Pt));
      const Ot = [], hn = [];
      if (he = 2, ae.getMissingFilePaths().some((tr) => at.fileExists(tr)))
        return 0;
      const bn = ae.getSourceFiles();
      let Tn;
      ((tr) => {
        tr[tr.Exists = 0] = "Exists", tr[tr.Modified = 1] = "Modified";
      })(Tn || (Tn = {}));
      const Hn = /* @__PURE__ */ new Map();
      for (const tr of bn) {
        const pn = ls(tr.fileName, Or, at, P);
        let dr = at.getSourceFileByPath ? at.getSourceFileByPath(tr.fileName, tr.resolvedPath, pn, void 0, ie || pn.impliedNodeFormat !== tr.impliedNodeFormat) : at.getSourceFile(tr.fileName, pn, void 0, ie || pn.impliedNodeFormat !== tr.impliedNodeFormat);
        if (!dr)
          return 0;
        dr.packageJsonLocations = (Ie = pn.packageJsonLocations) != null && Ie.length ? pn.packageJsonLocations : void 0, dr.packageJsonScope = pn.packageJsonScope, D.assert(!dr.redirectInfo, "Host should not return a redirect source file from `getSourceFile`");
        let Aa;
        if (tr.redirectInfo) {
          if (dr !== tr.redirectInfo.unredirected)
            return 0;
          Aa = !1, dr = tr;
        } else if (ae.redirectTargetsMap.has(tr.path)) {
          if (dr !== tr)
            return 0;
          Aa = !1;
        } else
          Aa = dr !== tr;
        dr.path = tr.path, dr.originalFileName = tr.originalFileName, dr.resolvedPath = tr.resolvedPath, dr.fileName = tr.fileName;
        const Ys = ae.sourceFileToPackageName.get(tr.path);
        if (Ys !== void 0) {
          const sc = Hn.get(Ys), Ym = Aa ? 1 : 0;
          if (sc !== void 0 && Ym === 1 || sc === 1)
            return 0;
          Hn.set(Ys, Ym);
        }
        Aa ? (tr.impliedNodeFormat !== dr.impliedNodeFormat ? he = 1 : Hp(tr.libReferenceDirectives, dr.libReferenceDirectives, xu) ? tr.hasNoDefaultLib !== dr.hasNoDefaultLib ? he = 1 : Hp(tr.referencedFiles, dr.referencedFiles, xu) ? (It(dr), Hp(tr.imports, dr.imports, Wu) && Hp(tr.moduleAugmentations, dr.moduleAugmentations, Wu) ? (tr.flags & 6291456) !== (dr.flags & 6291456) ? he = 1 : Hp(tr.typeReferenceDirectives, dr.typeReferenceDirectives, xu) || (he = 1) : he = 1) : he = 1 : he = 1, hn.push({ oldFile: tr, newFile: dr })) : vn(tr.path) && (he = 1, hn.push({ oldFile: tr, newFile: dr })), Ot.push(dr);
      }
      if (he !== 2)
        return he;
      const qr = hn.map((tr) => tr.oldFile);
      for (const tr of bn)
        if (!jr(qr, tr))
          for (const pn of tr.ambientModuleNames)
            Be.set(pn, tr.fileName);
      for (const { oldFile: tr, newFile: pn } of hn) {
        const dr = age(pn), Aa = K(dr, pn);
        UW(dr, pn, Aa, tr.resolvedModules, jce, lw) ? (he = 1, pn.resolvedModules = RK(pn, dr, Aa, lw)) : pn.resolvedModules = tr.resolvedModules;
        const sc = pn.typeReferenceDirectives, Ym = Pe(sc, pn);
        UW(sc, pn, Ym, tr.resolvedTypeReferenceDirectiveNames, Hce, B8) ? (he = 1, pn.resolvedTypeReferenceDirectiveNames = RK(pn, sc, Ym, B8)) : pn.resolvedTypeReferenceDirectiveNames = tr.resolvedTypeReferenceDirectiveNames;
      }
      if (he !== 2)
        return he;
      if (Bce(Ue, P))
        return 1;
      if (at.hasChangedAutomaticTypeDirectiveNames) {
        if (at.hasChangedAutomaticTypeDirectiveNames())
          return 1;
      } else if (Fe = A5(P, at), !Hp(ae.getAutomaticTypeDirectiveNames(), Fe))
        return 1;
      Rn = ae.getMissingFilePaths(), D.assert(Ot.length === ae.getSourceFiles().length);
      for (const tr of Ot)
        hi.set(tr.path, tr);
      return ae.getFilesByNameMap().forEach((tr, pn) => {
        if (!tr) {
          hi.set(pn, tr);
          return;
        }
        if (tr.path === pn) {
          ae.isSourceFileFromExternalLibrary(tr) && tt.set(tr.path, !0);
          return;
        }
        hi.set(pn, hi.get(tr.path));
      }), ve = Ot, qe = ae.getFileIncludeReasons(), We = ae.getFileProcessingDiagnostics(), Ye = ae.getResolvedTypeReferenceDirectives(), Fe = ae.getAutomaticTypeDirectiveNames(), st = ae.getAutomaticTypeDirectiveResolutions(), rr = ae.sourceFileToPackageName, cr = ae.redirectTargetsMap, Pi = ae.usesUriStyleNodeCoreModules, 2;
    }
    function q(Ie) {
      return {
        getPrependNodes: $n,
        getCanonicalFileName: oe,
        getCommonSourceDirectory: j.getCommonSourceDirectory,
        getCompilerOptions: j.getCompilerOptions,
        getCurrentDirectory: () => Zt,
        getSourceFile: j.getSourceFile,
        getSourceFileByPath: j.getSourceFileByPath,
        getSourceFiles: j.getSourceFiles,
        getLibFileFromReference: j.getLibFileFromReference,
        isSourceFileFromExternalLibrary: oi,
        getResolvedProjectReferenceToRedirect: Es,
        getProjectReferenceRedirect: dl,
        isSourceOfProjectReferenceRedirect: Jd,
        getSymlinkCache: Ia,
        writeFile: Ie || Rt,
        isEmitBlocked: mo,
        readFile: (Ue) => at.readFile(Ue),
        fileExists: (Ue) => {
          const Lt = mt(Ue);
          return ua(Lt) ? !0 : jr(Rn, Lt) ? !1 : at.fileExists(Ue);
        },
        useCaseSensitiveFileNames: () => at.useCaseSensitiveFileNames(),
        getBuildInfo: (Ue) => {
          var Lt;
          return (Lt = j.getBuildInfo) == null ? void 0 : Lt.call(j, Ue);
        },
        getSourceFileFromReference: (Ue, Lt) => j.getSourceFileFromReference(Ue, Lt),
        redirectTargetsMap: cr,
        getFileIncludeReasons: j.getFileIncludeReasons,
        createHash: Uo(at, at.createHash)
      };
    }
    function Rt(Ie, Ue, Lt, Ot, hn, bn) {
      at.writeFile(Ie, Ue, Lt, Ot, hn, bn);
    }
    function gt(Ie) {
      var Ue, Lt;
      D.assert(!qs(P)), (Ue = bi) == null || Ue.push(bi.Phase.Emit, "emitBuildInfo", {}, !0), al("beforeEmit");
      const Ot = nF(iF, q(Ie), void 0, LX, !1, !0);
      return al("afterEmit"), Jf("Emit", "beforeEmit", "afterEmit"), (Lt = bi) == null || Lt.pop(), Ot;
    }
    function ft() {
      return Pn;
    }
    function _n() {
      return re;
    }
    function $n() {
      return YX(re, (Ie, Ue) => {
        var Lt;
        return (Lt = Pn[Ue]) == null ? void 0 : Lt.commandLine;
      }, (Ie) => {
        const Ue = mt(Ie), Lt = ua(Ue);
        return Lt ? Lt.text : hi.has(Ue) ? void 0 : at.readFile(Ue);
      }, at);
    }
    function oi(Ie) {
      return !!tt.get(Ie.path);
    }
    function Ai(Ie) {
      if (!Ie.isDeclarationFile)
        return !1;
      if (Ie.hasNoDefaultLib)
        return !0;
      if (!P.noLib)
        return !1;
      const Ue = at.useCaseSensitiveFileNames() ? BS : FS;
      return P.lib ? kt(P.lib, (Lt) => Ue(Ie.fileName, Xi(Lt))) : Ue(Ie.fileName, On());
    }
    function Ci() {
      return Qe || (Qe = Ume(j));
    }
    function ji(Ie, Ue, Lt, Ot, hn, bn) {
      var Tn, Hn;
      (Tn = bi) == null || Tn.push(bi.Phase.Emit, "emit", { path: Ie == null ? void 0 : Ie.path }, !0);
      const qr = rl(() => To(j, Ie, Ue, Lt, Ot, hn, bn));
      return (Hn = bi) == null || Hn.pop(), qr;
    }
    function mo(Ie) {
      return $i.has(mt(Ie));
    }
    function To(Ie, Ue, Lt, Ot, hn, bn, Tn) {
      if (!Tn) {
        const Ji = XX(Ie, Ue, Lt, Ot);
        if (Ji)
          return Ji;
      }
      const Hn = Ci().getEmitResolver(qs(P) ? void 0 : Ue, Ot);
      al("beforeEmit");
      const qr = nF(Hn, q(Lt), Ue, CX(P, bn, hn), hn, !1, Tn);
      return al("afterEmit"), Jf("Emit", "beforeEmit", "afterEmit"), qr;
    }
    function io(Ie) {
      return ua(mt(Ie));
    }
    function ua(Ie) {
      return hi.get(Ie) || void 0;
    }
    function Hi(Ie, Ue, Lt) {
      return TA(Ie ? Ue(Ie, Lt) : ca(j.getSourceFiles(), (Ot) => (Lt && Lt.throwIfCancellationRequested(), Ue(Ot, Lt))));
    }
    function Xr(Ie, Ue) {
      return Hi(Ie, ec, Ue);
    }
    function ss(Ie, Ue) {
      return Hi(Ie, Gl, Ue);
    }
    function _i(Ie) {
      var Ue;
      return Ie ? (Ue = Oe.perFile) == null ? void 0 : Ue.get(Ie.path) : Oe.allDiagnostics;
    }
    function da(Ie, Ue) {
      return Xl(Ie, Ue);
    }
    function wn(Ie) {
      var Ue;
      if (_k(Ie, P, j))
        return rt;
      const Lt = In.getDiagnostics(Ie.fileName);
      return (Ue = Ie.commentDirectives) != null && Ue.length ? La(Ie, Ie.commentDirectives, Lt).diagnostics : Lt;
    }
    function pa(Ie, Ue) {
      const Lt = j.getCompilerOptions();
      return !Ie || qs(Lt) ? qd(Ie, Ue) : Hi(Ie, Ds, Ue);
    }
    function ec(Ie) {
      return Zu(Ie) ? (Ie.additionalSyntacticDiagnostics || (Ie.additionalSyntacticDiagnostics = tu(Ie)), va(Ie.additionalSyntacticDiagnostics, Ie.parseDiagnostics)) : Ie.parseDiagnostics;
    }
    function rl(Ie) {
      try {
        return Ie();
      } catch (Ue) {
        throw Ue instanceof dI && (Qe = void 0), Ue;
      }
    }
    function Gl(Ie, Ue) {
      return va(fF(Xl(Ie, Ue), P), wn(Ie));
    }
    function Xl(Ie, Ue) {
      return Jc(Ie, Ue, Oe, Ul);
    }
    function Ul(Ie, Ue) {
      return rl(() => {
        if (_k(Ie, P, j))
          return rt;
        const Lt = Ci();
        D.assert(!!Ie.bindDiagnostics);
        const hn = (Ie.scriptKind === 1 || Ie.scriptKind === 2) && cO(Ie, P), bn = qM(Ie, P.checkJs), Hn = !(!!Ie.checkJsDirective && Ie.checkJsDirective.enabled === !1) && (Ie.scriptKind === 3 || Ie.scriptKind === 4 || Ie.scriptKind === 5 || bn || hn || Ie.scriptKind === 7);
        let qr = Hn ? Ie.bindDiagnostics : rt, Ji = Hn ? Lt.getDiagnostics(Ie, Ue) : rt;
        return bn && (qr = lr(qr, (tr) => yF.has(tr.code)), Ji = lr(Ji, (tr) => yF.has(tr.code))), Co(Ie, Hn && !bn, qr, Ji, hn ? Ie.jsDocDiagnostics : void 0);
      });
    }
    function Co(Ie, Ue, ...Lt) {
      var Ot;
      const hn = No(Lt);
      if (!Ue || !((Ot = Ie.commentDirectives) != null && Ot.length))
        return hn;
      const { diagnostics: bn, directives: Tn } = La(Ie, Ie.commentDirectives, hn);
      for (const Hn of Tn.getUnusedExpectations())
        bn.push(rz(Ie, Hn.range, _.Unused_ts_expect_error_directive));
      return bn;
    }
    function La(Ie, Ue, Lt) {
      const Ot = Xce(Ie, Ue);
      return { diagnostics: Lt.filter((bn) => Vl(bn, Ot) === -1), directives: Ot };
    }
    function Yo(Ie, Ue) {
      return rl(() => Ci().getSuggestionDiagnostics(Ie, Ue));
    }
    function Vl(Ie, Ue) {
      const { file: Lt, start: Ot } = Ie;
      if (!Lt)
        return -1;
      const hn = ig(Lt);
      let bn = BR(hn, Ot).line - 1;
      for (; bn >= 0; ) {
        if (Ue.markUsed(bn))
          return bn;
        const Tn = Lt.text.slice(hn[bn], hn[bn + 1]).trim();
        if (Tn !== "" && !/^(\s*)\/\/(.*)$/.test(Tn))
          return -1;
        bn--;
      }
      return -1;
    }
    function tu(Ie) {
      return rl(() => {
        const Ue = [];
        return Lt(Ie, Ie), XO(Ie, Lt, Ot), Ue;
        function Lt(Hn, qr) {
          switch (qr.kind) {
            case 166:
            case 169:
            case 171:
              if (qr.questionToken === Hn)
                return Ue.push(Tn(Hn, _.The_0_modifier_can_only_be_used_in_TypeScript_files, "?")), "skip";
            case 170:
            case 173:
            case 174:
            case 175:
            case 215:
            case 259:
            case 216:
            case 257:
              if (qr.type === Hn)
                return Ue.push(Tn(Hn, _.Type_annotations_can_only_be_used_in_TypeScript_files)), "skip";
          }
          switch (Hn.kind) {
            case 270:
              if (Hn.isTypeOnly)
                return Ue.push(Tn(qr, _._0_declarations_can_only_be_used_in_TypeScript_files, "import type")), "skip";
              break;
            case 275:
              if (Hn.isTypeOnly)
                return Ue.push(Tn(Hn, _._0_declarations_can_only_be_used_in_TypeScript_files, "export type")), "skip";
              break;
            case 273:
            case 278:
              if (Hn.isTypeOnly)
                return Ue.push(Tn(Hn, _._0_declarations_can_only_be_used_in_TypeScript_files, Ld(Hn) ? "import...type" : "export...type")), "skip";
              break;
            case 268:
              return Ue.push(Tn(Hn, _.import_can_only_be_used_in_TypeScript_files)), "skip";
            case 274:
              if (Hn.isExportEquals)
                return Ue.push(Tn(Hn, _.export_can_only_be_used_in_TypeScript_files)), "skip";
              break;
            case 294:
              if (Hn.token === 117)
                return Ue.push(Tn(Hn, _.implements_clauses_can_only_be_used_in_TypeScript_files)), "skip";
              break;
            case 261:
              const tr = yo(118);
              return D.assertIsDefined(tr), Ue.push(Tn(Hn, _._0_declarations_can_only_be_used_in_TypeScript_files, tr)), "skip";
            case 264:
              const pn = Hn.flags & 16 ? yo(143) : yo(142);
              return D.assertIsDefined(pn), Ue.push(Tn(Hn, _._0_declarations_can_only_be_used_in_TypeScript_files, pn)), "skip";
            case 262:
              return Ue.push(Tn(Hn, _.Type_aliases_can_only_be_used_in_TypeScript_files)), "skip";
            case 263:
              const dr = D.checkDefined(yo(92));
              return Ue.push(Tn(Hn, _._0_declarations_can_only_be_used_in_TypeScript_files, dr)), "skip";
            case 232:
              return Ue.push(Tn(Hn, _.Non_null_assertions_can_only_be_used_in_TypeScript_files)), "skip";
            case 231:
              return Ue.push(Tn(Hn.type, _.Type_assertion_expressions_can_only_be_used_in_TypeScript_files)), "skip";
            case 235:
              return Ue.push(Tn(Hn.type, _.Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files)), "skip";
            case 213:
              D.fail();
          }
        }
        function Ot(Hn, qr) {
          if (HJ(qr)) {
            const Ji = nn(qr.modifiers, Fu);
            Ji && Ue.push(Tn(Ji, _.Decorators_are_not_valid_here));
          } else if (Mx(qr) && qr.modifiers) {
            const Ji = vi(qr.modifiers, Fu);
            if (Ji >= 0) {
              if (Ba(qr) && !P.experimentalDecorators)
                Ue.push(Tn(qr.modifiers[Ji], _.Decorators_are_not_valid_here));
              else if (Nc(qr)) {
                const tr = vi(qr.modifiers, B7);
                if (tr >= 0) {
                  const pn = vi(qr.modifiers, Ufe);
                  if (Ji > tr && pn >= 0 && Ji < pn)
                    Ue.push(Tn(qr.modifiers[Ji], _.Decorators_are_not_valid_here));
                  else if (tr >= 0 && Ji < tr) {
                    const dr = vi(qr.modifiers, Fu, tr);
                    dr >= 0 && Ue.push(Xo(Tn(qr.modifiers[dr], _.Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export), Tn(qr.modifiers[Ji], _.Decorator_used_before_export_here)));
                  }
                }
              }
            }
          }
          switch (qr.kind) {
            case 260:
            case 228:
            case 171:
            case 173:
            case 174:
            case 175:
            case 215:
            case 259:
            case 216:
              if (Hn === qr.typeParameters)
                return Ue.push(bn(Hn, _.Type_parameter_declarations_can_only_be_used_in_TypeScript_files)), "skip";
            case 240:
              if (Hn === qr.modifiers)
                return hn(qr.modifiers, qr.kind === 240), "skip";
              break;
            case 169:
              if (Hn === qr.modifiers) {
                for (const Ji of Hn)
                  fo(Ji) && Ji.kind !== 124 && Ji.kind !== 127 && Ue.push(Tn(Ji, _.The_0_modifier_can_only_be_used_in_TypeScript_files, yo(Ji.kind)));
                return "skip";
              }
              break;
            case 166:
              if (Hn === qr.modifiers && kt(Hn, fo))
                return Ue.push(bn(Hn, _.Parameter_modifiers_can_only_be_used_in_TypeScript_files)), "skip";
              break;
            case 210:
            case 211:
            case 230:
            case 282:
            case 283:
            case 212:
              if (Hn === qr.typeArguments)
                return Ue.push(bn(Hn, _.Type_arguments_can_only_be_used_in_TypeScript_files)), "skip";
              break;
          }
        }
        function hn(Hn, qr) {
          for (const Ji of Hn)
            switch (Ji.kind) {
              case 85:
                if (qr)
                  continue;
              case 123:
              case 121:
              case 122:
              case 146:
              case 136:
              case 126:
              case 161:
              case 101:
              case 145:
                Ue.push(Tn(Ji, _.The_0_modifier_can_only_be_used_in_TypeScript_files, yo(Ji.kind)));
                break;
              case 124:
              case 93:
              case 88:
              case 127:
            }
        }
        function bn(Hn, qr, Ji, tr, pn) {
          const dr = Hn.pos;
          return Dc(Ie, dr, Hn.end - dr, qr, Ji, tr, pn);
        }
        function Tn(Hn, qr, Ji, tr, pn) {
          return cd(Ie, Hn, qr, Ji, tr, pn);
        }
      });
    }
    function qd(Ie, Ue) {
      return Jc(Ie, Ue, Me, oc);
    }
    function oc(Ie, Ue) {
      return rl(() => {
        const Lt = Ci().getEmitResolver(Ie, Ue);
        return Nhe(q(so), Lt, Ie) || rt;
      });
    }
    function Jc(Ie, Ue, Lt, Ot) {
      var hn;
      const bn = Ie ? (hn = Lt.perFile) == null ? void 0 : hn.get(Ie.path) : Lt.allDiagnostics;
      if (bn)
        return bn;
      const Tn = Ot(Ie, Ue);
      return Ie ? (Lt.perFile || (Lt.perFile = /* @__PURE__ */ new Map())).set(Ie.path, Tn) : Lt.allDiagnostics = Tn, Tn;
    }
    function Ds(Ie, Ue) {
      return Ie.isDeclarationFile ? [] : qd(Ie, Ue);
    }
    function hl() {
      return TA(va(In.getGlobalDiagnostics(), el()));
    }
    function el() {
      if (!P.configFile)
        return rt;
      let Ie = In.getDiagnostics(P.configFile.fileName);
      return ds((Ue) => {
        Ie = va(Ie, In.getDiagnostics(Ue.sourceFile.fileName));
      }), Ie;
    }
    function Ks() {
      return Y.length ? TA(Ci().getGlobalDiagnostics().slice()) : rt;
    }
    function rn() {
      return de || rt;
    }
    function jl(Ie, Ue, Lt, Ot) {
      xt(Jo(Ie), Ue, Lt, void 0, Ot);
    }
    function xu(Ie, Ue) {
      return Ie.fileName === Ue.fileName;
    }
    function Wu(Ie, Ue) {
      return Ie.kind === 79 ? Ue.kind === 79 && Ie.escapedText === Ue.escapedText : Ue.kind === 10 && Ie.text === Ue.text;
    }
    function fe(Ie, Ue) {
      const Lt = N.createStringLiteral(Ie), Ot = N.createImportDeclaration(void 0, void 0, Lt, void 0);
      return hx(Ot, 2), Vo(Lt, Ot), Vo(Ot, Ue), Lt.flags &= -9, Ot.flags &= -9, Lt;
    }
    function It(Ie) {
      if (Ie.imports)
        return;
      const Ue = Zu(Ie), Lt = Zl(Ie);
      let Ot, hn, bn;
      if ((j_(P) || Lt) && !Ie.isDeclarationFile) {
        P.importHelpers && (Ot = [fe($0, Ie)]);
        const tr = W3(H3(P, Ie), P);
        tr && (Ot || (Ot = [])).push(fe(tr, Ie));
      }
      for (const tr of Ie.statements)
        Hn(tr, !1);
      const Tn = Ue && vl(P) !== 100;
      (Ie.flags & 2097152 || Tn) && qr(Ie), Ie.imports = Ot || rt, Ie.moduleAugmentations = hn || rt, Ie.ambientModuleNames = bn || rt;
      return;
      function Hn(tr, pn) {
        if (oN(tr)) {
          const dr = HA(tr);
          dr && jo(dr) && dr.text && (!pn || !Gc(dr.text)) && (Mv(tr, !1), Ot = Fn(Ot, dr), !Pi && Et === 0 && !Ie.isDeclarationFile && (Pi = xa(dr.text, "node:")));
        } else if (Jl(tr) && Pu(tr) && (pn || Yr(tr, 2) || Ie.isDeclarationFile)) {
          tr.name.parent = tr;
          const dr = U_(tr.name);
          if (Lt || pn && !Gc(dr))
            (hn || (hn = [])).push(tr.name);
          else if (!pn) {
            Ie.isDeclarationFile && (bn || (bn = [])).push(dr);
            const Aa = tr.body;
            if (Aa)
              for (const Ys of Aa.statements)
                Hn(Ys, !0);
          }
        }
      }
      function qr(tr) {
        const pn = /import|require/g;
        for (; pn.exec(tr.text) !== null; ) {
          const dr = Ji(tr, pn.lastIndex);
          Tn && xd(dr, !0) || lf(dr) && dr.arguments.length >= 1 && xs(dr.arguments[0]) ? (Mv(dr, !1), Ot = Fn(Ot, dr.arguments[0])) : j0(dr) && (Mv(dr, !1), Ot = Fn(Ot, dr.argument.literal));
        }
      }
      function Ji(tr, pn) {
        let dr = tr;
        const Aa = (Ys) => {
          if (Ys.pos <= pn && (pn < Ys.end || pn === Ys.end && Ys.kind === 1))
            return Ys;
        };
        for (; ; ) {
          const Ys = Ue && xf(dr) && ze(dr.jsDoc, Aa) || Ma(dr, Aa);
          if (!Ys)
            return dr;
          dr = Ys;
        }
      }
    }
    function Ht(Ie) {
      const Ue = N_(Ie.fileName), Lt = l8.get(Ue);
      if (Lt)
        return io(Xi(Lt));
    }
    function Q(Ie, Ue) {
      return ot(sF(Ue.fileName, Ie.fileName), io);
    }
    function ot(Ie, Ue, Lt, Ot) {
      if (bA(Ie)) {
        const hn = at.getCanonicalFileName(Ie);
        if (!P.allowNonTsExtensions && !ze(No(Ii), (Tn) => cc(hn, Tn))) {
          Lt && (px(hn) ? Lt(_.File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option, Ie) : Lt(_.File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1, Ie, "'" + No(_r).join("', '") + "'"));
          return;
        }
        const bn = Ue(Ie);
        if (Lt)
          if (bn)
            rb(Ot) && hn === at.getCanonicalFileName(ua(Ot.file).fileName) && Lt(_.A_file_cannot_have_a_reference_to_itself);
          else {
            const Tn = dl(Ie);
            Tn ? Lt(_.Output_file_0_has_not_been_built_from_source_file_1, Tn, Ie) : Lt(_.File_0_not_found, Ie);
          }
        return bn;
      } else {
        const hn = P.allowNonTsExtensions && Ue(Ie);
        if (hn)
          return hn;
        if (Lt && P.allowNonTsExtensions) {
          Lt(_.File_0_not_found, Ie);
          return;
        }
        const bn = ze(_r[0], (Tn) => Ue(Ie + Tn));
        return Lt && !bn && Lt(_.Could_not_resolve_the_path_0_with_the_extensions_Colon_1, Ie, "'" + No(_r).join("', '") + "'"), bn;
      }
    }
    function xt(Ie, Ue, Lt, Ot, hn) {
      ot(Ie, (bn) => Ta(bn, Ue, Lt, hn, Ot), (bn, ...Tn) => Wo(void 0, hn, bn, Tn), hn);
    }
    function mn(Ie, Ue) {
      return xt(Ie, !1, !1, void 0, Ue);
    }
    function Dr(Ie, Ue, Lt) {
      !rb(Lt) && kt(qe.get(Ue.path), rb) ? Wo(Ue, Lt, _.Already_included_file_name_0_differs_from_file_name_1_only_in_casing, [Ue.fileName, Ie]) : Wo(Ue, Lt, _.File_name_0_differs_from_already_included_file_name_1_only_in_casing, [Ie, Ue.fileName]);
    }
    function Pr(Ie, Ue, Lt, Ot, hn, bn, Tn) {
      var Hn;
      const qr = Jm.createRedirectedSourceFile({ redirectTarget: Ie, unredirected: Ue });
      return qr.fileName = Lt, qr.path = Ot, qr.resolvedPath = hn, qr.originalFileName = bn, qr.packageJsonLocations = (Hn = Tn.packageJsonLocations) != null && Hn.length ? Tn.packageJsonLocations : void 0, qr.packageJsonScope = Tn.packageJsonScope, tt.set(Ot, Et > 0), qr;
    }
    function Ta(Ie, Ue, Lt, Ot, hn) {
      var bn, Tn;
      (bn = bi) == null || bn.push(bi.Phase.Program, "findSourceFile", {
        fileName: Ie,
        isDefaultLib: Ue || void 0,
        fileIncludeKind: lM[Ot.kind]
      });
      const Hn = ho(Ie, Ue, Lt, Ot, hn);
      return (Tn = bi) == null || Tn.pop(), Hn;
    }
    function ls(Ie, Ue, Lt, Ot) {
      const hn = KX(Pa(Ie, Zt), Ue == null ? void 0 : Ue.getPackageJsonInfoCache(), Lt, Ot), bn = ts(Ot), Tn = ZN(Ot);
      return typeof hn == "object" ? { ...hn, languageVersion: bn, setExternalModuleIndicator: Tn } : { languageVersion: bn, impliedNodeFormat: hn, setExternalModuleIndicator: Tn };
    }
    function ho(Ie, Ue, Lt, Ot, hn) {
      var bn, Tn;
      const Hn = mt(Ie);
      if (yt) {
        let dr = fl(Hn);
        if (!dr && at.realpath && P.preserveSymlinks && fd(Ie) && pu(Ie, Cy)) {
          const Aa = mt(at.realpath(Ie));
          Aa !== Hn && (dr = fl(Aa));
        }
        if (dr) {
          const Aa = Ha(dr) ? Ta(dr, Ue, Lt, Ot, hn) : void 0;
          return Aa && Ya(Aa, Hn, void 0), Aa;
        }
      }
      const qr = Ie;
      if (hi.has(Hn)) {
        const dr = hi.get(Hn);
        if (Ho(dr || void 0, Ot), dr && P.forceConsistentCasingInFileNames !== !1) {
          const Aa = dr.fileName;
          mt(Aa) !== mt(Ie) && (Ie = dl(Ie) || Ie);
          const sc = JH(Aa, Zt), Ym = JH(Ie, Zt);
          sc !== Ym && Dr(Ie, dr, Ot);
        }
        return dr && tt.get(dr.path) && Et === 0 ? (tt.set(dr.path, !1), P.noResolve || (Nf(dr, Ue), xe(dr)), P.noLib || Lo(dr), Vt.set(dr.path, !1), ut(dr)) : dr && Vt.get(dr.path) && Et < Ct && (Vt.set(dr.path, !1), ut(dr)), dr || void 0;
      }
      let Ji;
      if (rb(Ot) && !yt) {
        const dr = dc(Ie);
        if (dr) {
          if (qs(dr.commandLine.options))
            return;
          const Aa = _d(dr, Ie);
          Ie = Aa, Ji = mt(Aa);
        }
      }
      const tr = ls(Ie, Or, at, P), pn = at.getSourceFile(Ie, tr, (dr) => Wo(void 0, Ot, _.Cannot_read_file_0_Colon_1, [Ie, dr]), ie || ((bn = ae == null ? void 0 : ae.getSourceFileByPath(mt(Ie))) == null ? void 0 : bn.impliedNodeFormat) !== tr.impliedNodeFormat);
      if (hn) {
        const dr = oT(hn), Aa = fn.get(dr);
        if (Aa) {
          const Ys = Pr(Aa, pn, Ie, Hn, mt(Ie), qr, tr);
          return cr.add(Aa.path, Ie), Ya(Ys, Hn, Ji), Ho(Ys, Ot), rr.set(Hn, WM(hn)), me.push(Ys), Ys;
        } else
          pn && (fn.set(dr, pn), rr.set(Hn, WM(hn)));
      }
      if (Ya(pn, Hn, Ji), pn) {
        if (tt.set(Hn, Et > 0), pn.fileName = Ie, pn.path = Hn, pn.resolvedPath = mt(Ie), pn.originalFileName = qr, pn.packageJsonLocations = (Tn = tr.packageJsonLocations) != null && Tn.length ? tr.packageJsonLocations : void 0, pn.packageJsonScope = tr.packageJsonScope, Ho(pn, Ot), at.useCaseSensitiveFileNames()) {
          const dr = N_(Hn), Aa = an.get(dr);
          Aa ? Dr(Ie, Aa, Ot) : an.set(dr, pn);
        }
        Qt = Qt || pn.hasNoDefaultLib && !Lt, P.noResolve || (Nf(pn, Ue), xe(pn)), P.noLib || Lo(pn), ut(pn), Ue ? ce.push(pn) : me.push(pn);
      }
      return pn;
    }
    function Ho(Ie, Ue) {
      Ie && qe.add(Ie.path, Ue);
    }
    function Ya(Ie, Ue, Lt) {
      Lt ? (hi.set(Lt, Ie), hi.set(Ue, Ie || !1)) : hi.set(Ue, Ie);
    }
    function dl(Ie) {
      const Ue = dc(Ie);
      return Ue && _d(Ue, Ie);
    }
    function dc(Ie) {
      if (!(!Pn || !Pn.length || fd(Ie) || cc(Ie, ".json")))
        return Es(Ie);
    }
    function _d(Ie, Ue) {
      const Lt = qs(Ie.commandLine.options);
      return Lt ? L1(Lt, ".d.ts") : iw(Ue, Ie.commandLine, !at.useCaseSensitiveFileNames());
    }
    function Es(Ie) {
      Hr === void 0 && (Hr = /* @__PURE__ */ new Map(), ds((Lt) => {
        mt(P.configFilePath) !== Lt.sourceFile.path && Lt.commandLine.fileNames.forEach((Ot) => Hr.set(mt(Ot), Lt.sourceFile.path));
      }));
      const Ue = Hr.get(mt(Ie));
      return Ue && Hl(Ue);
    }
    function ds(Ie) {
      return ige(Pn, Ie);
    }
    function fl(Ie) {
      if (fd(Ie))
        return we === void 0 && (we = /* @__PURE__ */ new Map(), ds((Ue) => {
          const Lt = qs(Ue.commandLine.options);
          if (Lt) {
            const Ot = L1(Lt, ".d.ts");
            we.set(mt(Ot), !0);
          } else {
            const Ot = Ed(() => aw(Ue.commandLine, !at.useCaseSensitiveFileNames()));
            ze(Ue.commandLine.fileNames, (hn) => {
              if (!fd(hn) && !cc(hn, ".json")) {
                const bn = iw(hn, Ue.commandLine, !at.useCaseSensitiveFileNames(), Ot);
                we.set(mt(bn), hn);
              }
            });
          }
        })), we.get(Ie);
    }
    function Jd(Ie) {
      return yt && !!Es(Ie);
    }
    function Hl(Ie) {
      if (Ar)
        return Ar.get(Ie) || void 0;
    }
    function Nf(Ie, Ue) {
      ze(Ie.referencedFiles, (Lt, Ot) => {
        xt(sF(Lt.fileName, Ie.fileName), Ue, !1, void 0, { kind: 4, file: Ie.path, index: Ot });
      });
    }
    function xe(Ie) {
      const Ue = Ie.typeReferenceDirectives;
      if (!Ue.length) {
        Ie.resolvedTypeReferenceDirectiveNames = void 0;
        return;
      }
      const Lt = Pe(Ue, Ie);
      for (let Ot = 0; Ot < Ue.length; Ot++) {
        const hn = Ie.typeReferenceDirectives[Ot], bn = Lt[Ot], Tn = N_(hn.fileName);
        Vce(Ie, Tn, bn, P8(hn, Ie.impliedNodeFormat));
        const Hn = hn.resolutionMode || Ie.impliedNodeFormat;
        Hn && vl(P) !== 3 && vl(P) !== 99 && (We ?? (We = [])).push({
          kind: 2,
          diagnostics: [
            rz(Ie, hn, _.resolution_mode_assertions_are_only_supported_when_moduleResolution_is_node16_or_nodenext)
          ]
        }), Dt(Tn, Hn, bn, { kind: 5, file: Ie.path, index: Ot });
      }
    }
    function Dt(Ie, Ue, Lt, Ot) {
      var hn, bn;
      (hn = bi) == null || hn.push(bi.Phase.Program, "processTypeReferenceDirective", { directive: Ie, hasResolved: !!Lt.resolvedTypeReferenceDirective, refKind: Ot.kind, refPath: rb(Ot) ? Ot.file : void 0 }), Nn(Ie, Ue, Lt, Ot), (bn = bi) == null || bn.pop();
    }
    function Nn(Ie, Ue, Lt, Ot) {
      var hn;
      He(Lt);
      const bn = (hn = Ye.get(Ie, Ue)) == null ? void 0 : hn.resolvedTypeReferenceDirective;
      if (bn && bn.primary)
        return;
      let Tn = !0;
      const { resolvedTypeReferenceDirective: Hn } = Lt;
      if (Hn) {
        if (Hn.isExternalLibraryImport && Et++, Hn.primary)
          xt(Hn.resolvedFileName, !1, !1, Hn.packageId, Ot);
        else if (bn) {
          if (Hn.resolvedFileName !== bn.resolvedFileName) {
            const qr = at.readFile(Hn.resolvedFileName), Ji = io(bn.resolvedFileName);
            qr !== Ji.text && Wo(Ji, Ot, _.Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict, [Ie, Hn.resolvedFileName, bn.resolvedFileName]);
          }
          Tn = !1;
        } else
          xt(Hn.resolvedFileName, !1, !1, Hn.packageId, Ot);
        Hn.isExternalLibraryImport && Et--;
      } else
        Wo(void 0, Ot, _.Cannot_find_type_definition_file_for_0, [Ie]);
      Tn && Ye.set(Ie, Ue, Lt);
    }
    function Xi(Ie) {
      const Ue = Ie.split(".");
      let Lt = Ue[1], Ot = 2;
      for (; Ue[Ot] && Ue[Ot] !== "d"; )
        Lt += (Ot === 2 ? "/" : "-") + Ue[Ot], Ot++;
      const hn = Bi(Zt, `__lib_node_modules_lookup_${Ie}__.ts`), bn = Jk("@typescript/lib-" + Lt, hn, { moduleResolution: 2 }, at, Or);
      return bn != null && bn.resolvedModule ? bn.resolvedModule.resolvedFileName : Bi(jn, Ie);
    }
    function Lo(Ie) {
      ze(Ie.libReferenceDirectives, (Ue, Lt) => {
        const Ot = N_(Ue.fileName), hn = l8.get(Ot);
        if (hn)
          jl(Xi(hn), !0, !0, { kind: 7, file: Ie.path, index: Lt });
        else {
          const bn = gA(lI(Ot, "lib."), ".d.ts"), Tn = sI(bn, s8, ml), Hn = Tn ? _.Cannot_find_lib_definition_for_0_Did_you_mean_1 : _.Cannot_find_lib_definition_for_0;
          (We || (We = [])).push({
            kind: 0,
            reason: { kind: 7, file: Ie.path, index: Lt },
            diagnostic: Hn,
            args: [Ot, Tn]
          });
        }
      });
    }
    function oe(Ie) {
      return at.getCanonicalFileName(Ie);
    }
    function ut(Ie) {
      var Ue;
      if (It(Ie), Ie.imports.length || Ie.moduleAugmentations.length) {
        const Lt = age(Ie), Ot = K(Lt, Ie);
        D.assert(Ot.length === Lt.length);
        const hn = (yt ? (Ue = cn(Ie)) == null ? void 0 : Ue.commandLine.options : void 0) || P;
        for (let bn = 0; bn < Lt.length; bn++) {
          const Tn = Ot[bn].resolvedModule, Hn = Lt[bn].text, qr = Tp(Ie, Lt[bn]);
          if (Uce(Ie, Hn, Ot[bn], qr), Ze(Ie, Hn, Ot[bn], qr), !Tn)
            continue;
          const Ji = Tn.isExternalLibraryImport, tr = !sO(Tn.extension), pn = Ji && tr, dr = Tn.resolvedFileName;
          Ji && Et++;
          const Aa = pn && Et > Ct, Ys = dr && !$X(hn, Tn, Ie) && !hn.noResolve && bn < Ie.imports.length && !Aa && !(tr && !tO(hn)) && (fr(Ie.imports[bn]) || !(Ie.imports[bn].flags & 8388608));
          Aa ? Vt.set(Ie.path, !0) : Ys && Ta(dr, !1, !1, { kind: 3, file: Ie.path, index: bn }, Tn.packageId), Ji && Et--;
        }
      } else
        Ie.resolvedModules = void 0;
    }
    function Mt(Ie, Ue) {
      let Lt = !0;
      const Ot = at.getCanonicalFileName(Pa(Ue, Zt));
      for (const hn of Ie)
        hn.isDeclarationFile || at.getCanonicalFileName(Pa(hn.fileName, Zt)).indexOf(Ot) !== 0 && (Ts(hn, _.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files, [hn.fileName, Ue]), Lt = !1);
      return Lt;
    }
    function Pt(Ie) {
      Ar || (Ar = /* @__PURE__ */ new Map());
      const Ue = sw(Ie), Lt = mt(Ue), Ot = Ar.get(Lt);
      if (Ot !== void 0)
        return Ot || void 0;
      let hn, bn;
      if (at.getParsedCommandLine) {
        if (hn = at.getParsedCommandLine(Ue), !hn) {
          Ya(void 0, Lt, void 0), Ar.set(Lt, !1);
          return;
        }
        bn = D.checkDefined(hn.options.configFile), D.assert(!bn.path || bn.path === Lt), Ya(bn, Lt, void 0);
      } else {
        const Hn = Pa(mi(Ue), at.getCurrentDirectory());
        if (bn = at.getSourceFile(Ue, 100), Ya(bn, Lt, void 0), bn === void 0) {
          Ar.set(Lt, !1);
          return;
        }
        hn = n8(bn, sn, Hn, void 0, Ue);
      }
      bn.fileName = Ue, bn.path = Lt, bn.resolvedPath = Lt, bn.originalFileName = Ue;
      const Tn = { commandLine: hn, sourceFile: bn };
      return Ar.set(Lt, Tn), hn.projectReferences && (Tn.references = hn.projectReferences.map(Pt)), Tn;
    }
    function un() {
      P.strictPropertyInitialization && !y_(P, "strictNullChecks") && $o(_.Option_0_cannot_be_specified_without_specifying_option_1, "strictPropertyInitialization", "strictNullChecks"), P.exactOptionalPropertyTypes && !y_(P, "strictNullChecks") && $o(_.Option_0_cannot_be_specified_without_specifying_option_1, "exactOptionalPropertyTypes", "strictNullChecks"), (P.isolatedModules || P.verbatimModuleSyntax) && (P.out && $o(_.Option_0_cannot_be_specified_with_option_1, "out", P.verbatimModuleSyntax ? "verbatimModuleSyntax" : "isolatedModules"), P.outFile && $o(_.Option_0_cannot_be_specified_with_option_1, "outFile", P.verbatimModuleSyntax ? "verbatimModuleSyntax" : "isolatedModules")), P.inlineSourceMap && (P.sourceMap && $o(_.Option_0_cannot_be_specified_with_option_1, "sourceMap", "inlineSourceMap"), P.mapRoot && $o(_.Option_0_cannot_be_specified_with_option_1, "mapRoot", "inlineSourceMap")), P.composite && (P.declaration === !1 && $o(_.Composite_projects_may_not_disable_declaration_emit, "declaration"), P.incremental === !1 && $o(_.Composite_projects_may_not_disable_incremental_compilation, "declaration"));
      const Ie = qs(P);
      if (P.tsBuildInfoFile ? eO(P) || $o(_.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "tsBuildInfoFile", "incremental", "composite") : P.incremental && !Ie && !P.configFilePath && In.add(Fs(_.Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified)), ni(), pd(), P.composite) {
        const Tn = new Set(Y.map(mt));
        for (const Hn of ve)
          sx(Hn, j) && !Tn.has(Hn.path) && Ts(Hn, _.File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern, [Hn.fileName, P.configFilePath || ""]);
      }
      if (P.paths) {
        for (const Tn in P.paths)
          if (Ps(P.paths, Tn))
            if (uq(Tn) || tc(!0, Tn, _.Pattern_0_can_have_at_most_one_Asterisk_character, Tn), Va(P.paths[Tn])) {
              const Hn = P.paths[Tn].length;
              Hn === 0 && tc(!1, Tn, _.Substitutions_for_pattern_0_shouldn_t_be_an_empty_array, Tn);
              for (let qr = 0; qr < Hn; qr++) {
                const Ji = P.paths[Tn][qr], tr = typeof Ji;
                tr === "string" ? (uq(Ji) || _f(Tn, qr, _.Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character, Ji, Tn), !P.baseUrl && !Sf(Ji) && !fI(Ji) && _f(Tn, qr, _.Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash)) : _f(Tn, qr, _.Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2, Ji, Tn, tr);
              }
            } else
              tc(!1, Tn, _.Substitutions_for_pattern_0_should_be_an_array, Tn);
      }
      !P.sourceMap && !P.inlineSourceMap && (P.inlineSources && $o(_.Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided, "inlineSources"), P.sourceRoot && $o(_.Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided, "sourceRoot")), P.out && P.outFile && $o(_.Option_0_cannot_be_specified_with_option_1, "out", "outFile"), P.mapRoot && !(P.sourceMap || P.declarationMap) && $o(_.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "mapRoot", "sourceMap", "declarationMap"), P.declarationDir && (W_(P) || $o(_.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "declarationDir", "declaration", "composite"), Ie && $o(_.Option_0_cannot_be_specified_with_option_1, "declarationDir", P.out ? "out" : "outFile")), P.declarationMap && !W_(P) && $o(_.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "declarationMap", "declaration", "composite"), P.lib && P.noLib && $o(_.Option_0_cannot_be_specified_with_option_1, "lib", "noLib"), P.noImplicitUseStrict && y_(P, "alwaysStrict") && $o(_.Option_0_cannot_be_specified_with_option_1, "noImplicitUseStrict", "alwaysStrict");
      const Ue = ts(P), Lt = nn(ve, (Tn) => Zl(Tn) && !Tn.isDeclarationFile);
      if (P.isolatedModules || P.verbatimModuleSyntax)
        P.module === 0 && Ue < 2 && P.isolatedModules && $o(_.Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher, "isolatedModules", "target"), P.preserveConstEnums === !1 && $o(_.Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled, P.verbatimModuleSyntax ? "verbatimModuleSyntax" : "isolatedModules", "preserveConstEnums");
      else if (Lt && Ue < 2 && P.module === 0) {
        const Tn = g1(Lt, typeof Lt.externalModuleIndicator == "boolean" ? Lt : Lt.externalModuleIndicator);
        In.add(Dc(Lt, Tn.start, Tn.length, _.Cannot_use_imports_exports_or_module_augmentations_when_module_is_none));
      }
      if (Ie && !P.emitDeclarationOnly) {
        if (P.module && !(P.module === 2 || P.module === 4))
          $o(_.Only_amd_and_system_modules_are_supported_alongside_0, P.out ? "out" : "outFile", "module");
        else if (P.module === void 0 && Lt) {
          const Tn = g1(Lt, typeof Lt.externalModuleIndicator == "boolean" ? Lt : Lt.externalModuleIndicator);
          In.add(Dc(Lt, Tn.start, Tn.length, _.Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system, P.out ? "out" : "outFile"));
        }
      }
      if (TT(P) && (vl(P) === 1 ? $o(_.Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic, "resolveJsonModule") : G3(P) || $o(_.Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_esNext, "resolveJsonModule", "module")), P.outDir || P.rootDir || P.sourceRoot || P.mapRoot) {
        const Tn = zt();
        P.outDir && Tn === "" && ve.some((Hn) => qp(Hn.fileName) > 1) && $o(_.Cannot_find_the_common_subdirectory_path_for_the_input_files, "outDir");
      }
      P.useDefineForClassFields && Ue === 0 && $o(_.Option_0_cannot_be_specified_when_option_target_is_ES3, "useDefineForClassFields"), P.checkJs && !tO(P) && In.add(Fs(_.Option_0_cannot_be_specified_without_specifying_option_1, "checkJs", "allowJs")), P.emitDeclarationOnly && (W_(P) || $o(_.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "emitDeclarationOnly", "declaration", "composite"), P.noEmit && $o(_.Option_0_cannot_be_specified_with_option_1, "emitDeclarationOnly", "noEmit")), P.emitDecoratorMetadata && !P.experimentalDecorators && $o(_.Option_0_cannot_be_specified_without_specifying_option_1, "emitDecoratorMetadata", "experimentalDecorators"), P.jsxFactory ? (P.reactNamespace && $o(_.Option_0_cannot_be_specified_with_option_1, "reactNamespace", "jsxFactory"), (P.jsx === 4 || P.jsx === 5) && $o(_.Option_0_cannot_be_specified_when_option_jsx_is_1, "jsxFactory", Wk.get("" + P.jsx)), Bx(P.jsxFactory, Ue) || x_("jsxFactory", _.Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name, P.jsxFactory)) : P.reactNamespace && !P_(P.reactNamespace, Ue) && x_("reactNamespace", _.Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier, P.reactNamespace), P.jsxFragmentFactory && (P.jsxFactory || $o(_.Option_0_cannot_be_specified_without_specifying_option_1, "jsxFragmentFactory", "jsxFactory"), (P.jsx === 4 || P.jsx === 5) && $o(_.Option_0_cannot_be_specified_when_option_jsx_is_1, "jsxFragmentFactory", Wk.get("" + P.jsx)), Bx(P.jsxFragmentFactory, Ue) || x_("jsxFragmentFactory", _.Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name, P.jsxFragmentFactory)), P.reactNamespace && (P.jsx === 4 || P.jsx === 5) && $o(_.Option_0_cannot_be_specified_when_option_jsx_is_1, "reactNamespace", Wk.get("" + P.jsx)), P.jsxImportSource && P.jsx === 2 && $o(_.Option_0_cannot_be_specified_when_option_jsx_is_1, "jsxImportSource", Wk.get("" + P.jsx)), P.preserveValueImports && au(P) < 5 && $o(_.Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later, "preserveValueImports");
      const Ot = au(P);
      P.verbatimModuleSyntax && ((Ot === 2 || Ot === 3 || Ot === 4) && $o(_.Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System, "verbatimModuleSyntax"), P.isolatedModules && et("isolatedModules", "verbatimModuleSyntax"), P.preserveValueImports && et("preserveValueImports", "verbatimModuleSyntax"), P.importsNotUsedAsValues && et("importsNotUsedAsValues", "verbatimModuleSyntax")), P.allowImportingTsExtensions && !(P.noEmit || P.emitDeclarationOnly) && x_("allowImportingTsExtensions", _.Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set);
      const hn = vl(P);
      if (P.resolvePackageJsonExports && !_x(hn) && $o(_.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "resolvePackageJsonExports"), P.resolvePackageJsonImports && !_x(hn) && $o(_.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "resolvePackageJsonImports"), P.customConditions && !_x(hn) && $o(_.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "customConditions"), hn === 100 && !sq(Ot) && x_("moduleResolution", _.Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later, "bundler"), !P.noEmit && !P.suppressOutputPathCheck) {
        const Tn = q(), Hn = /* @__PURE__ */ new Set();
        IX(Tn, (qr) => {
          P.emitDeclarationOnly || bn(qr.jsFilePath, Hn), bn(qr.declarationFilePath, Hn);
        });
      }
      function bn(Tn, Hn) {
        if (Tn) {
          const qr = mt(Tn);
          if (hi.has(qr)) {
            let tr;
            P.configFilePath || (tr = Na(void 0, _.Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig)), tr = Na(tr, _.Cannot_write_file_0_because_it_would_overwrite_input_file, Tn), qt(Tn, F3(tr));
          }
          const Ji = at.useCaseSensitiveFileNames() ? qr : N_(qr);
          Hn.has(Ji) ? qt(Tn, Fs(_.Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files, Tn)) : Hn.add(Ji);
        }
      }
    }
    function Vn() {
      const Ie = P.ignoreDeprecations;
      if (Ie) {
        if (Ie === "5.0")
          return new O_(Ie);
        W();
      }
      return O_.zero;
    }
    function Rr(Ie, Ue, Lt, Ot) {
      const hn = new O_(Ie), bn = new O_(Ue), Tn = new O_(ye || pe), Hn = Vn(), qr = bn.compareTo(Tn) !== 1, Ji = !qr && Hn.compareTo(hn) === -1;
      (qr || Ji) && Ot((tr, pn, dr) => {
        qr ? pn === void 0 ? Lt(tr, pn, dr, _.Option_0_has_been_removed_Please_remove_it_from_your_configuration, tr) : Lt(tr, pn, dr, _.Option_0_1_has_been_removed_Please_remove_it_from_your_configuration, tr, pn) : pn === void 0 ? Lt(tr, pn, dr, _.Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error, tr, Ue, Ie) : Lt(tr, pn, dr, _.Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error, tr, pn, Ue, Ie);
      });
    }
    function ni() {
      function Ie(Ue, Lt, Ot, hn, bn, Tn, Hn, qr) {
        if (Ot) {
          const Ji = Na(void 0, _.Use_0_instead, Ot), tr = Na(Ji, hn, bn, Tn, Hn, qr);
          Q_(!Lt, Ue, void 0, tr);
        } else
          Q_(!Lt, Ue, void 0, hn, bn, Tn, Hn, qr);
      }
      Rr("5.0", "5.5", Ie, (Ue) => {
        P.target === 0 && Ue("target", "ES3"), P.noImplicitUseStrict && Ue("noImplicitUseStrict"), P.keyofStringsOnly && Ue("keyofStringsOnly"), P.suppressExcessPropertyErrors && Ue("suppressExcessPropertyErrors"), P.suppressImplicitAnyIndexErrors && Ue("suppressImplicitAnyIndexErrors"), P.noStrictGenericChecks && Ue("noStrictGenericChecks"), P.charset && Ue("charset"), P.out && Ue("out", void 0, "outFile"), P.importsNotUsedAsValues && Ue("importsNotUsedAsValues", void 0, "verbatimModuleSyntax"), P.preserveValueImports && Ue("preserveValueImports", void 0, "verbatimModuleSyntax");
      });
    }
    function Mi(Ie, Ue, Lt) {
      function Ot(hn, bn, Tn, Hn, qr, Ji, tr, pn) {
        mf(Ue, Lt, Hn, qr, Ji, tr, pn);
      }
      Rr("5.0", "5.5", Ot, (hn) => {
        Ie.prepend && hn("prepend");
      });
    }
    function ja(Ie, Ue, Lt, Ot) {
      var hn;
      let bn, Tn, Hn = rb(Ue) ? Ue : void 0;
      Ie && ((hn = qe.get(Ie.path)) == null || hn.forEach(dr)), Ue && dr(Ue), Hn && (bn == null ? void 0 : bn.length) === 1 && (bn = void 0);
      const qr = Hn && ow(ua, Hn), Ji = bn && Na(bn, _.The_file_is_in_the_program_because_Colon), tr = Ie && gY(Ie), pn = Na(tr ? Ji ? [Ji, ...tr] : tr : Ji, Lt, ...Ot || rt);
      return qr && UC(qr) ? ZM(qr.file, qr.pos, qr.end - qr.pos, pn, Tn) : F3(pn, Tn);
      function dr(Aa) {
        (bn || (bn = [])).push(bY(j, Aa)), !Hn && rb(Aa) ? Hn = Aa : Hn !== Aa && (Tn = Fn(Tn, Xs(Aa))), Aa === Ue && (Ue = void 0);
      }
    }
    function Wo(Ie, Ue, Lt, Ot) {
      (We || (We = [])).push({
        kind: 1,
        file: Ie && Ie.path,
        fileProcessingReason: Ue,
        diagnostic: Lt,
        args: Ot
      });
    }
    function Ts(Ie, Ue, Lt) {
      In.add(ja(Ie, void 0, Ue, Lt));
    }
    function Xs(Ie) {
      if (rb(Ie)) {
        const Ot = ow(ua, Ie);
        let hn;
        switch (Ie.kind) {
          case 3:
            hn = _.File_is_included_via_import_here;
            break;
          case 4:
            hn = _.File_is_included_via_reference_here;
            break;
          case 5:
            hn = _.File_is_included_via_type_library_reference_here;
            break;
          case 7:
            hn = _.File_is_included_via_library_reference_here;
            break;
          default:
            D.assertNever(Ie);
        }
        return UC(Ot) ? Dc(Ot.file, Ot.pos, Ot.end - Ot.pos, hn) : void 0;
      }
      if (!P.configFile)
        return;
      let Ue, Lt;
      switch (Ie.kind) {
        case 0:
          if (!P.configFile.configFileSpecs)
            return;
          const Ot = Pa(Y[Ie.index], Zt), hn = yY(j, Ot);
          if (hn) {
            Ue = s3(P.configFile, "files", hn), Lt = _.File_is_matched_by_files_list_specified_here;
            break;
          }
          const bn = vY(j, Ot);
          if (!bn || !Ha(bn))
            return;
          Ue = s3(P.configFile, "include", bn), Lt = _.File_is_matched_by_include_pattern_specified_here;
          break;
        case 1:
        case 2:
          const Tn = D.checkDefined(Pn == null ? void 0 : Pn[Ie.index]), Hn = F8(re, Pn, (dr, Aa, Ys) => dr === Tn ? { sourceFile: (Aa == null ? void 0 : Aa.sourceFile) || P.configFile, index: Ys } : void 0);
          if (!Hn)
            return;
          const { sourceFile: qr, index: Ji } = Hn, tr = Jt(cN(qr, "references"), (dr) => Bu(dr.initializer) ? dr.initializer : void 0);
          return tr && tr.elements.length > Ji ? cd(qr, tr.elements[Ji], Ie.kind === 2 ? _.File_is_output_from_referenced_project_specified_here : _.File_is_source_from_referenced_project_specified_here) : void 0;
        case 8:
          if (!P.types)
            return;
          Ue = S_("types", Ie.typeReference), Lt = _.File_is_entry_point_of_type_library_specified_here;
          break;
        case 6:
          if (Ie.index !== void 0) {
            Ue = S_("lib", P.lib[Ie.index]), Lt = _.File_is_library_specified_here;
            break;
          }
          const pn = of(d8.type, (dr, Aa) => dr === ts(P) ? Aa : void 0);
          Ue = pn ? pf("target", pn) : void 0, Lt = _.File_is_default_library_for_target_specified_here;
          break;
        default:
          D.assertNever(Ie);
      }
      return Ue && cd(P.configFile, Ue, Lt);
    }
    function pd() {
      const Ie = P.suppressOutputPathCheck ? void 0 : Iy(P);
      F8(re, Pn, (Ue, Lt, Ot) => {
        const hn = (Lt ? Lt.commandLine.projectReferences : re)[Ot], bn = Lt && Lt.sourceFile;
        if (Mi(hn, bn, Ot), !Ue) {
          mf(bn, Ot, _.File_0_not_found, hn.path);
          return;
        }
        const Tn = Ue.commandLine.options;
        if ((!Tn.composite || Tn.noEmit) && (Lt ? Lt.commandLine.fileNames : Y).length && (Tn.composite || mf(bn, Ot, _.Referenced_project_0_must_have_setting_composite_Colon_true, hn.path), Tn.noEmit && mf(bn, Ot, _.Referenced_project_0_may_not_disable_emit, hn.path)), hn.prepend) {
          const Hn = qs(Tn);
          Hn ? at.fileExists(Hn) || mf(bn, Ot, _.Output_file_0_from_project_1_does_not_exist, Hn, hn.path) : mf(bn, Ot, _.Cannot_prepend_project_0_because_it_does_not_have_outFile_set, hn.path);
        }
        !Lt && Ie && Ie === Iy(Tn) && (mf(bn, Ot, _.Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1, Ie, hn.path), $i.set(mt(Ie), !0));
      });
    }
    function _f(Ie, Ue, Lt, Ot, hn, bn) {
      let Tn = !0;
      const Hn = Au();
      for (const qr of Hn)
        if (Ls(qr.initializer))
          for (const Ji of GA(qr.initializer, Ie)) {
            const tr = Ji.initializer;
            Bu(tr) && tr.elements.length > Ue && (In.add(cd(P.configFile, tr.elements[Ue], Lt, Ot, hn, bn)), Tn = !1);
          }
      Tn && In.add(Fs(Lt, Ot, hn, bn));
    }
    function tc(Ie, Ue, Lt, Ot) {
      let hn = !0;
      const bn = Au();
      for (const Tn of bn)
        Ls(Tn.initializer) && U(Tn.initializer, Ie, Ue, void 0, Lt, Ot) && (hn = !1);
      hn && In.add(Fs(Lt, Ot));
    }
    function Kd(Ie) {
      const Ue = Ip();
      return Ue && GA(Ue, Ie);
    }
    function Au() {
      return Kd("paths") || rt;
    }
    function pf(Ie, Ue) {
      const Lt = Kd(Ie);
      return Lt && Jt(Lt, (Ot) => jo(Ot.initializer) && Ot.initializer.text === Ue ? Ot.initializer : void 0);
    }
    function S_(Ie, Ue) {
      const Lt = Ip();
      return Lt && pue(Lt, Ie, Ue);
    }
    function $o(Ie, Ue, Lt, Ot) {
      Q_(!0, Ue, Lt, Ie, Ue, Lt, Ot);
    }
    function x_(Ie, Ue, Lt, Ot) {
      Q_(!1, Ie, void 0, Ue, Lt, Ot);
    }
    function mf(Ie, Ue, Lt, Ot, hn, bn, Tn) {
      const Hn = Jt(cN(Ie || P.configFile, "references"), (qr) => Bu(qr.initializer) ? qr.initializer : void 0);
      Hn && Hn.elements.length > Ue ? In.add(cd(Ie || P.configFile, Hn.elements[Ue], Lt, Ot, hn, bn, Tn)) : In.add(Fs(Lt, Ot, hn, bn, Tn));
    }
    function Q_(Ie, Ue, Lt, Ot, hn, bn, Tn, Hn) {
      const qr = Ip();
      (!qr || !U(qr, Ie, Ue, Lt, Ot, hn, bn, Tn, Hn)) && ("messageText" in Ot ? In.add(F3(Ot)) : In.add(Fs(Ot, hn, bn, Tn, Hn)));
    }
    function Ip() {
      if (Qi === void 0) {
        Qi = !1;
        const Ie = BI(P.configFile);
        if (Ie) {
          for (const Ue of GA(Ie, "compilerOptions"))
            if (Ls(Ue.initializer)) {
              Qi = Ue.initializer;
              break;
            }
        }
      }
      return Qi || void 0;
    }
    function U(Ie, Ue, Lt, Ot, hn, bn, Tn, Hn, qr) {
      const Ji = GA(Ie, Lt, Ot);
      for (const tr of Ji)
        "messageText" in hn ? In.add(cg(P.configFile, Ue ? tr.name : tr.initializer, hn)) : In.add(cd(P.configFile, Ue ? tr.name : tr.initializer, hn, bn, Tn, Hn, qr));
      return !!Ji.length;
    }
    function et(Ie, Ue) {
      const Lt = Ip();
      Lt ? U(Lt, !0, Ie, void 0, _.Option_0_is_redundant_and_cannot_be_specified_with_option_1, Ie, Ue) : $o(_.Option_0_is_redundant_and_cannot_be_specified_with_option_1, Ie, Ue);
    }
    function qt(Ie, Ue) {
      $i.set(mt(Ie), !0), In.add(Ue);
    }
    function Xn(Ie) {
      if (P.noEmit)
        return !1;
      const Ue = mt(Ie);
      if (ua(Ue))
        return !1;
      const Lt = qs(P);
      if (Lt)
        return Da(Ue, Lt) || Da(Ue, Ud(Lt) + ".d.ts");
      if (P.declarationDir && Ev(P.declarationDir, Ue, Zt, !at.useCaseSensitiveFileNames()))
        return !0;
      if (P.outDir)
        return Ev(P.outDir, Ue, Zt, !at.useCaseSensitiveFileNames());
      if (Tc(Ue, Ek) || fd(Ue)) {
        const Ot = Ud(Ue);
        return !!ua(Ot + ".ts") || !!ua(Ot + ".tsx");
      }
      return !1;
    }
    function Da(Ie, Ue) {
      return QE(Ie, Ue, Zt, !at.useCaseSensitiveFileNames()) === 0;
    }
    function Ia() {
      return at.getSymlinkCache ? at.getSymlinkCache() : (Te || (Te = Bde(Zt, oe)), ve && st && !Te.hasProcessedResolutions() && Te.setSymlinksFromResolutions(ve, st), Te);
    }
  }
  function e7e(e) {
    let t;
    const r = e.compilerHost.fileExists, i = e.compilerHost.directoryExists, o = e.compilerHost.getDirectories, s = e.compilerHost.realpath;
    if (!e.useSourceOfProjectReferenceRedirect)
      return { onProgramCreateComplete: so, fileExists: d };
    e.compilerHost.fileExists = d;
    let c;
    return i && (c = e.compilerHost.directoryExists = (L) => i.call(e.compilerHost, L) ? (E(L), !0) : e.getResolvedProjectReferences() ? (t || (t = /* @__PURE__ */ new Set(), e.forEachResolvedProjectReference((I) => {
      const O = qs(I.commandLine.options);
      if (O)
        t.add(mi(e.toPath(O)));
      else {
        const k = I.commandLine.options.declarationDir || I.commandLine.options.outDir;
        k && t.add(e.toPath(k));
      }
    })), A(L, !1)) : !1), o && (e.compilerHost.getDirectories = (L) => !e.getResolvedProjectReferences() || i && i.call(e.compilerHost, L) ? o.call(e.compilerHost, L) : []), s && (e.compilerHost.realpath = (L) => {
      var I;
      return ((I = e.getSymlinkCache().getSymlinkedFiles()) == null ? void 0 : I.get(e.toPath(L))) || s.call(e.compilerHost, L);
    }), { onProgramCreateComplete: f, fileExists: d, directoryExists: c };
    function f() {
      e.compilerHost.fileExists = r, e.compilerHost.directoryExists = i, e.compilerHost.getDirectories = o;
    }
    function d(L) {
      return r.call(e.compilerHost, L) ? !0 : !e.getResolvedProjectReferences() || !fd(L) ? !1 : A(L, !0);
    }
    function y(L) {
      const I = e.getSourceOfProjectReferenceRedirect(e.toPath(L));
      return I !== void 0 ? Ha(I) ? r.call(e.compilerHost, I) : !0 : void 0;
    }
    function h(L) {
      const I = e.toPath(L), O = `${I}${Ms}`;
      return RI(t, (k) => I === k || xa(k, O) || xa(I, `${k}/`));
    }
    function E(L) {
      var I;
      if (!e.getResolvedProjectReferences() || gk(L) || !s || !pu(L, Cy))
        return;
      const O = e.getSymlinkCache(), k = Ou(e.toPath(L));
      if ((I = O.getSymlinkedDirectories()) != null && I.has(k))
        return;
      const G = Jo(s.call(e.compilerHost, L));
      let V;
      if (G === L || (V = Ou(e.toPath(G))) === k) {
        O.setSymlinkedDirectory(k, !1);
        return;
      }
      O.setSymlinkedDirectory(L, {
        real: Ou(G),
        realPath: V
      });
    }
    function A(L, I) {
      var O;
      const k = I ? (X) => y(X) : (X) => h(X), G = k(L);
      if (G !== void 0)
        return G;
      const V = e.getSymlinkCache(), H = V.getSymlinkedDirectories();
      if (!H)
        return !1;
      const te = e.toPath(L);
      return pu(te, Cy) ? I && ((O = V.getSymlinkedFiles()) != null && O.has(te)) ? !0 : dn(H.entries(), ([X, Y]) => {
        if (!Y || !xa(te, X))
          return;
        const P = k(te.replace(X, Y.realPath));
        if (I && P) {
          const de = Pa(L, e.compilerHost.getCurrentDirectory());
          V.setSymlinkedFile(te, `${Y.real}${de.replace(new RegExp(X, "i"), "")}`);
        }
        return P;
      }) || !1 : !1;
    }
  }
  function XX(e, t, r, i) {
    const o = e.getCompilerOptions();
    if (o.noEmit)
      return e.getSemanticDiagnostics(t, i), t || qs(o) ? vF : e.emitBuildInfo(r, i);
    if (!o.noEmitOnError)
      return;
    let s = [
      ...e.getOptionsDiagnostics(i),
      ...e.getSyntacticDiagnostics(t, i),
      ...e.getGlobalDiagnostics(i),
      ...e.getSemanticDiagnostics(t, i)
    ];
    if (s.length === 0 && W_(e.getCompilerOptions()) && (s = e.getDeclarationDiagnostics(void 0, i)), !s.length)
      return;
    let c;
    if (!t && !qs(o)) {
      const f = e.emitBuildInfo(r, i);
      f.diagnostics && (s = [...s, ...f.diagnostics]), c = f.emittedFiles;
    }
    return { diagnostics: s, sourceMaps: void 0, emittedFiles: c, emitSkipped: !0 };
  }
  function fF(e, t) {
    return lr(e, (r) => !r.skippedOn || !t[r.skippedOn]);
  }
  function _F(e, t = e) {
    return {
      fileExists: (r) => t.fileExists(r),
      readDirectory(r, i, o, s, c) {
        return D.assertIsDefined(t.readDirectory, "'CompilerHost.readDirectory' must be implemented to correctly process 'projectReferences'"), t.readDirectory(r, i, o, s, c);
      },
      readFile: (r) => t.readFile(r),
      useCaseSensitiveFileNames: e.useCaseSensitiveFileNames(),
      getCurrentDirectory: () => e.getCurrentDirectory(),
      onUnRecoverableConfigFileDiagnostic: e.onUnRecoverableConfigFileDiagnostic || M0,
      trace: e.trace ? (r) => e.trace(r) : void 0
    };
  }
  function YX(e, t, r, i) {
    if (!e)
      return rt;
    let o;
    for (let s = 0; s < e.length; s++) {
      const c = e[s], f = t(c, s);
      if (c.prepend && f && f.options) {
        if (!qs(f.options))
          continue;
        const { jsFilePath: y, sourceMapFilePath: h, declarationFilePath: E, declarationMapPath: A, buildInfoPath: L } = nw(f.options, !0), I = $q(r, y, h, E, A, L, i, f.options);
        (o || (o = [])).push(I);
      }
    }
    return o || rt;
  }
  function sw(e) {
    return LY(e.path);
  }
  function $X(e, { extension: t }, { isDeclarationFile: r }) {
    switch (t) {
      case ".ts":
      case ".d.ts":
      case ".mts":
      case ".d.mts":
      case ".cts":
      case ".d.cts":
        return;
      case ".tsx":
        return i();
      case ".jsx":
        return i() || o();
      case ".js":
      case ".mjs":
      case ".cjs":
        return o();
      case ".json":
        return s();
      default:
        return c();
    }
    function i() {
      return e.jsx ? void 0 : _.Module_0_was_resolved_to_1_but_jsx_is_not_set;
    }
    function o() {
      return tO(e) || !y_(e, "noImplicitAny") ? void 0 : _.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type;
    }
    function s() {
      return TT(e) ? void 0 : _.Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used;
    }
    function c() {
      return r || e.allowArbitraryExtensions ? void 0 : _.Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set;
    }
  }
  function age({ imports: e, moduleAugmentations: t }) {
    const r = e.map((i) => i);
    for (const i of t)
      i.kind === 10 && r.push(i);
    return r;
  }
  function pF({ imports: e, moduleAugmentations: t }, r) {
    if (r < e.length)
      return e[r];
    let i = e.length;
    for (const o of t)
      if (o.kind === 10) {
        if (r === i)
          return o;
        i++;
      }
    D.fail("should never ask for module name at index higher than possible module name");
  }
  var QX, mF, hF, ZX, eY, oge, tY, nY, lw, B8, gF, yF, vF, t7e = C({
    "src/compiler/program.ts"() {
      Oa(), Oa(), s1(), QX = /* @__PURE__ */ ((e) => (e.Grey = "\x1B[90m", e.Red = "\x1B[91m", e.Yellow = "\x1B[93m", e.Blue = "\x1B[94m", e.Cyan = "\x1B[96m", e))(QX || {}), mF = "\x1B[7m", hF = " ", ZX = "\x1B[0m", eY = "...", oge = "  ", tY = "    ", nY = {
        resolvedModule: void 0,
        resolvedTypeReferenceDirective: void 0
      }, lw = {
        getName: zX,
        getMode: (e, t) => Tp(t, e)
      }, B8 = {
        getName: lF,
        getMode: (e, t) => P8(e, t == null ? void 0 : t.impliedNodeFormat)
      }, gF = "__inferred type names__.ts", yF = /* @__PURE__ */ new Set([
        _.Cannot_redeclare_block_scoped_variable_0.code,
        _.A_module_cannot_have_multiple_default_exports.code,
        _.Another_export_default_is_here.code,
        _.The_first_export_default_is_here.code,
        _.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module.code,
        _.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode.code,
        _.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here.code,
        _.constructor_is_a_reserved_word.code,
        _.delete_cannot_be_called_on_an_identifier_in_strict_mode.code,
        _.Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode.code,
        _.Invalid_use_of_0_Modules_are_automatically_in_strict_mode.code,
        _.Invalid_use_of_0_in_strict_mode.code,
        _.A_label_is_not_allowed_here.code,
        _.Octal_literals_are_not_allowed_in_strict_mode.code,
        _.with_statements_are_not_allowed_in_strict_mode.code,
        _.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement.code,
        _.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement.code,
        _.A_class_declaration_without_the_default_modifier_must_have_a_name.code,
        _.A_class_member_cannot_have_the_0_keyword.code,
        _.A_comma_expression_is_not_allowed_in_a_computed_property_name.code,
        _.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement.code,
        _.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement.code,
        _.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement.code,
        _.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement.code,
        _.A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration.code,
        _.A_definite_assignment_assertion_is_not_permitted_in_this_context.code,
        _.A_destructuring_declaration_must_have_an_initializer.code,
        _.A_get_accessor_cannot_have_parameters.code,
        _.A_rest_element_cannot_contain_a_binding_pattern.code,
        _.A_rest_element_cannot_have_a_property_name.code,
        _.A_rest_element_cannot_have_an_initializer.code,
        _.A_rest_element_must_be_last_in_a_destructuring_pattern.code,
        _.A_rest_parameter_cannot_have_an_initializer.code,
        _.A_rest_parameter_must_be_last_in_a_parameter_list.code,
        _.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma.code,
        _.A_return_statement_cannot_be_used_inside_a_class_static_block.code,
        _.A_set_accessor_cannot_have_rest_parameter.code,
        _.A_set_accessor_must_have_exactly_one_parameter.code,
        _.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module.code,
        _.An_export_declaration_cannot_have_modifiers.code,
        _.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module.code,
        _.An_import_declaration_cannot_have_modifiers.code,
        _.An_object_member_cannot_be_declared_optional.code,
        _.Argument_of_dynamic_import_cannot_be_spread_element.code,
        _.Cannot_assign_to_private_method_0_Private_methods_are_not_writable.code,
        _.Cannot_redeclare_identifier_0_in_catch_clause.code,
        _.Catch_clause_variable_cannot_have_an_initializer.code,
        _.Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator.code,
        _.Classes_can_only_extend_a_single_class.code,
        _.Classes_may_not_have_a_field_named_constructor.code,
        _.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern.code,
        _.Duplicate_label_0.code,
        _.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments.code,
        _.For_await_loops_cannot_be_used_inside_a_class_static_block.code,
        _.JSX_attributes_must_only_be_assigned_a_non_empty_expression.code,
        _.JSX_elements_cannot_have_multiple_attributes_with_the_same_name.code,
        _.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array.code,
        _.JSX_property_access_expressions_cannot_include_JSX_namespace_names.code,
        _.Jump_target_cannot_cross_function_boundary.code,
        _.Line_terminator_not_permitted_before_arrow.code,
        _.Modifiers_cannot_appear_here.code,
        _.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement.code,
        _.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement.code,
        _.Private_identifiers_are_not_allowed_outside_class_bodies.code,
        _.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression.code,
        _.Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier.code,
        _.Tagged_template_expressions_are_not_permitted_in_an_optional_chain.code,
        _.The_left_hand_side_of_a_for_of_statement_may_not_be_async.code,
        _.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer.code,
        _.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer.code,
        _.Trailing_comma_not_allowed.code,
        _.Variable_declaration_list_cannot_be_empty.code,
        _._0_and_1_operations_cannot_be_mixed_without_parentheses.code,
        _._0_expected.code,
        _._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2.code,
        _._0_list_cannot_be_empty.code,
        _._0_modifier_already_seen.code,
        _._0_modifier_cannot_appear_on_a_constructor_declaration.code,
        _._0_modifier_cannot_appear_on_a_module_or_namespace_element.code,
        _._0_modifier_cannot_appear_on_a_parameter.code,
        _._0_modifier_cannot_appear_on_class_elements_of_this_kind.code,
        _._0_modifier_cannot_be_used_here.code,
        _._0_modifier_must_precede_1_modifier.code,
        _.const_declarations_can_only_be_declared_inside_a_block.code,
        _.const_declarations_must_be_initialized.code,
        _.extends_clause_already_seen.code,
        _.let_declarations_can_only_be_declared_inside_a_block.code,
        _.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations.code,
        _.Class_constructor_may_not_be_a_generator.code,
        _.Class_constructor_may_not_be_an_accessor.code,
        _.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code
      ]), vF = { diagnostics: rt, sourceMaps: void 0, emittedFiles: void 0, emitSkipped: !0 };
    }
  }), n7e = C({
    "src/compiler/builderStatePublic.ts"() {
    }
  });
  function sge(e, t, r, i, o, s) {
    const c = [], { emitSkipped: f, diagnostics: d } = e.emit(t, y, i, r, o, s);
    return { outputFiles: c, emitSkipped: f, diagnostics: d };
    function y(h, E, A) {
      c.push({ name: h, writeByteOrderMark: A, text: E });
    }
  }
  var Xm, r7e = C({
    "src/compiler/builderState.ts"() {
      Oa(), ((e) => {
        function t() {
          function ae(W, ce, me) {
            const ve = {
              getKeys: (Te) => ce.get(Te),
              getValues: (Te) => W.get(Te),
              keys: () => W.keys(),
              deleteKey: (Te) => {
                (me || (me = /* @__PURE__ */ new Set())).add(Te);
                const ee = W.get(Te);
                return ee ? (ee.forEach((Qe) => i(ce, Qe, Te)), W.delete(Te), !0) : !1;
              },
              set: (Te, ee) => {
                me == null || me.delete(Te);
                const Qe = W.get(Te);
                return W.set(Te, ee), Qe == null || Qe.forEach((Ve) => {
                  ee.has(Ve) || i(ce, Ve, Te);
                }), ee.forEach((Ve) => {
                  Qe != null && Qe.has(Ve) || r(ce, Ve, Te);
                }), ve;
              }
            };
            return ve;
          }
          return ae(/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map(), void 0);
        }
        e.createManyToManyPathMap = t;
        function r(ae, W, ce) {
          let me = ae.get(W);
          me || (me = /* @__PURE__ */ new Set(), ae.set(W, me)), me.add(ce);
        }
        function i(ae, W, ce) {
          const me = ae.get(W);
          return me != null && me.delete(ce) ? (me.size || ae.delete(W), !0) : !1;
        }
        function o(ae) {
          return ia(ae.declarations, (W) => {
            var ce;
            return (ce = Zn(W)) == null ? void 0 : ce.resolvedPath;
          });
        }
        function s(ae, W) {
          const ce = ae.getSymbolAtLocation(W);
          return ce && o(ce);
        }
        function c(ae, W, ce, me) {
          return zs(ae.getProjectReferenceRedirect(W) || W, ce, me);
        }
        function f(ae, W, ce) {
          let me;
          if (W.imports && W.imports.length > 0) {
            const Qe = ae.getTypeChecker();
            for (const Ve of W.imports) {
              const Be = s(Qe, Ve);
              Be == null || Be.forEach(ee);
            }
          }
          const ve = mi(W.resolvedPath);
          if (W.referencedFiles && W.referencedFiles.length > 0)
            for (const Qe of W.referencedFiles) {
              const Ve = c(ae, Qe.fileName, ve, ce);
              ee(Ve);
            }
          if (W.resolvedTypeReferenceDirectiveNames && W.resolvedTypeReferenceDirectiveNames.forEach(({ resolvedTypeReferenceDirective: Qe }) => {
            if (!Qe)
              return;
            const Ve = Qe.resolvedFileName, Be = c(ae, Ve, ve, ce);
            ee(Be);
          }), W.moduleAugmentations.length) {
            const Qe = ae.getTypeChecker();
            for (const Ve of W.moduleAugmentations) {
              if (!jo(Ve))
                continue;
              const Be = Qe.getSymbolAtLocation(Ve);
              Be && Te(Be);
            }
          }
          for (const Qe of ae.getTypeChecker().getAmbientModules())
            Qe.declarations && Qe.declarations.length > 1 && Te(Qe);
          return me;
          function Te(Qe) {
            if (Qe.declarations)
              for (const Ve of Qe.declarations) {
                const Be = Zn(Ve);
                Be && Be !== W && ee(Be.resolvedPath);
              }
          }
          function ee(Qe) {
            (me || (me = /* @__PURE__ */ new Set())).add(Qe);
          }
        }
        function d(ae, W) {
          return W && !W.referencedMap == !ae;
        }
        e.canReuseOldState = d;
        function y(ae, W, ce) {
          var me, ve, Te;
          const ee = /* @__PURE__ */ new Map(), Qe = ae.getCompilerOptions(), Ve = qs(Qe), Be = Qe.module !== 0 && !Ve ? t() : void 0, qe = Be ? t() : void 0, Oe = d(Be, W);
          ae.getTypeChecker();
          for (const Me of ae.getSourceFiles()) {
            const Ye = D.checkDefined(Me.version, "Program intended to be used with Builder should have source files with versions set"), We = Oe ? (me = W.oldSignatures) == null ? void 0 : me.get(Me.resolvedPath) : void 0, Fe = We === void 0 ? Oe ? (ve = W.fileInfos.get(Me.resolvedPath)) == null ? void 0 : ve.signature : void 0 : We || void 0;
            if (Be) {
              const st = f(ae, Me, ae.getCanonicalFileName);
              if (st && Be.set(Me.resolvedPath, st), Oe) {
                const Ct = (Te = W.oldExportedModulesMap) == null ? void 0 : Te.get(Me.resolvedPath), Et = Ct === void 0 ? W.exportedModulesMap.getValues(Me.resolvedPath) : Ct || void 0;
                Et && qe.set(Me.resolvedPath, Et);
              }
            }
            ee.set(Me.resolvedPath, {
              version: Ye,
              signature: Fe,
              affectsGlobalScope: Ve ? void 0 : P(Me) || void 0,
              impliedFormat: Me.impliedNodeFormat
            });
          }
          return {
            fileInfos: ee,
            referencedMap: Be,
            exportedModulesMap: qe,
            useFileVersionAsSignature: !ce && !Oe
          };
        }
        e.create = y;
        function h(ae) {
          ae.allFilesExcludingDefaultLibraryFile = void 0, ae.allFileNames = void 0;
        }
        e.releaseCache = h;
        function E(ae, W, ce, me, ve) {
          var Te, ee;
          const Qe = A(ae, W, ce, me, ve);
          return (Te = ae.oldSignatures) == null || Te.clear(), (ee = ae.oldExportedModulesMap) == null || ee.clear(), Qe;
        }
        e.getFilesAffectedBy = E;
        function A(ae, W, ce, me, ve) {
          const Te = W.getSourceFileByPath(ce);
          return Te ? O(ae, W, Te, me, ve) ? (ae.referencedMap ? ye : re)(ae, W, Te, me, ve) : [Te] : rt;
        }
        e.getFilesAffectedByWithOldState = A;
        function L(ae, W, ce) {
          ae.fileInfos.get(ce).signature = W, (ae.hasCalledUpdateShapeSignature || (ae.hasCalledUpdateShapeSignature = /* @__PURE__ */ new Set())).add(ce);
        }
        e.updateSignatureOfFile = L;
        function I(ae, W, ce, me, ve) {
          ae.emit(W, (Te, ee, Qe, Ve, Be, qe) => {
            D.assert(fd(Te), `File extension for signature expected to be dts: Got:: ${Te}`), ve(oY(ae, W, ee, me, qe), Be);
          }, ce, !0, void 0, !0);
        }
        e.computeDtsSignature = I;
        function O(ae, W, ce, me, ve, Te = ae.useFileVersionAsSignature) {
          var ee;
          if ((ee = ae.hasCalledUpdateShapeSignature) != null && ee.has(ce.resolvedPath))
            return !1;
          const Qe = ae.fileInfos.get(ce.resolvedPath), Ve = Qe.signature;
          let Be;
          if (!ce.isDeclarationFile && !Te && I(W, ce, me, ve, (qe, Oe) => {
            Be = qe, Be !== Ve && k(ae, ce, Oe[0].exportedModulesFromDeclarationEmit);
          }), Be === void 0 && (Be = ce.version, ae.exportedModulesMap && Be !== Ve)) {
            (ae.oldExportedModulesMap || (ae.oldExportedModulesMap = /* @__PURE__ */ new Map())).set(ce.resolvedPath, ae.exportedModulesMap.getValues(ce.resolvedPath) || !1);
            const qe = ae.referencedMap ? ae.referencedMap.getValues(ce.resolvedPath) : void 0;
            qe ? ae.exportedModulesMap.set(ce.resolvedPath, qe) : ae.exportedModulesMap.deleteKey(ce.resolvedPath);
          }
          return (ae.oldSignatures || (ae.oldSignatures = /* @__PURE__ */ new Map())).set(ce.resolvedPath, Ve || !1), (ae.hasCalledUpdateShapeSignature || (ae.hasCalledUpdateShapeSignature = /* @__PURE__ */ new Set())).add(ce.resolvedPath), Qe.signature = Be, Be !== Ve;
        }
        e.updateShapeSignature = O;
        function k(ae, W, ce) {
          if (!ae.exportedModulesMap)
            return;
          (ae.oldExportedModulesMap || (ae.oldExportedModulesMap = /* @__PURE__ */ new Map())).set(W.resolvedPath, ae.exportedModulesMap.getValues(W.resolvedPath) || !1);
          const me = G(ce);
          me ? ae.exportedModulesMap.set(W.resolvedPath, me) : ae.exportedModulesMap.deleteKey(W.resolvedPath);
        }
        e.updateExportedModules = k;
        function G(ae) {
          let W;
          return ae == null || ae.forEach((ce) => o(ce).forEach((me) => (W ?? (W = /* @__PURE__ */ new Set())).add(me))), W;
        }
        e.getExportedModules = G;
        function V(ae, W, ce) {
          const me = W.getCompilerOptions();
          if (qs(me) || !ae.referencedMap || P(ce))
            return H(ae, W);
          const ve = /* @__PURE__ */ new Set(), Te = [ce.resolvedPath];
          for (; Te.length; ) {
            const ee = Te.pop();
            if (!ve.has(ee)) {
              ve.add(ee);
              const Qe = ae.referencedMap.getValues(ee);
              if (Qe)
                for (const Ve of Qe.keys())
                  Te.push(Ve);
            }
          }
          return Ro(_A(ve.keys(), (ee) => {
            var Qe, Ve;
            return (Ve = (Qe = W.getSourceFileByPath(ee)) == null ? void 0 : Qe.fileName) != null ? Ve : ee;
          }));
        }
        e.getAllDependencies = V;
        function H(ae, W) {
          if (!ae.allFileNames) {
            const ce = W.getSourceFiles();
            ae.allFileNames = ce === rt ? rt : ce.map((me) => me.fileName);
          }
          return ae.allFileNames;
        }
        function te(ae, W) {
          const ce = ae.referencedMap.getKeys(W);
          return ce ? Ro(ce.keys()) : [];
        }
        e.getReferencedByPaths = te;
        function X(ae) {
          for (const W of ae.statements)
            if (!YM(W))
              return !1;
          return !0;
        }
        function Y(ae) {
          return kt(ae.moduleAugmentations, (W) => Kp(W.parent));
        }
        function P(ae) {
          return Y(ae) || !sf(ae) && !p_(ae) && !X(ae);
        }
        function de(ae, W, ce) {
          if (ae.allFilesExcludingDefaultLibraryFile)
            return ae.allFilesExcludingDefaultLibraryFile;
          let me;
          ce && ve(ce);
          for (const Te of W.getSourceFiles())
            Te !== ce && ve(Te);
          return ae.allFilesExcludingDefaultLibraryFile = me || rt, ae.allFilesExcludingDefaultLibraryFile;
          function ve(Te) {
            W.isSourceFileDefaultLibrary(Te) || (me || (me = [])).push(Te);
          }
        }
        e.getAllFilesExcludingDefaultLibraryFile = de;
        function re(ae, W, ce) {
          const me = W.getCompilerOptions();
          return me && qs(me) ? [ce] : de(ae, W, ce);
        }
        function ye(ae, W, ce, me, ve) {
          if (P(ce))
            return de(ae, W, ce);
          const Te = W.getCompilerOptions();
          if (Te && (j_(Te) || qs(Te)))
            return [ce];
          const ee = /* @__PURE__ */ new Map();
          ee.set(ce.resolvedPath, ce);
          const Qe = te(ae, ce.resolvedPath);
          for (; Qe.length > 0; ) {
            const Ve = Qe.pop();
            if (!ee.has(Ve)) {
              const Be = W.getSourceFileByPath(Ve);
              ee.set(Ve, Be), Be && O(ae, W, Be, me, ve) && Qe.push(...te(ae, Be.resolvedPath));
            }
          }
          return Ro(_A(ee.values(), (Ve) => Ve));
        }
      })(Xm || (Xm = {}));
    }
  });
  function zv(e) {
    let t = 1;
    return e.sourceMap && (t = t | 2), e.inlineSourceMap && (t = t | 4), W_(e) && (t = t | 8), e.declarationMap && (t = t | 16), e.emitDeclarationOnly && (t = t & 24), t;
  }
  function VC(e, t) {
    const r = t && (ly(t) ? t : zv(t)), i = ly(e) ? e : zv(e);
    if (r === i)
      return 0;
    if (!r || !i)
      return i;
    const o = r ^ i;
    let s = 0;
    return o & 7 && (s = i & 7), o & 24 && (s = s | i & 24), s;
  }
  function i7e(e, t) {
    return e === t || e !== void 0 && t !== void 0 && e.size === t.size && !RI(e, (r) => !t.has(r));
  }
  function a7e(e, t) {
    var r, i;
    const o = Xm.create(e, t, !1);
    o.program = e;
    const s = e.getCompilerOptions();
    o.compilerOptions = s;
    const c = qs(s);
    c ? s.composite && (t != null && t.outSignature) && c === qs(t == null ? void 0 : t.compilerOptions) && (o.outSignature = t.outSignature && cge(s, t.compilerOptions, t.outSignature)) : o.semanticDiagnosticsPerFile = /* @__PURE__ */ new Map(), o.changedFilesSet = /* @__PURE__ */ new Set(), o.latestChangedDtsFile = s.composite ? t == null ? void 0 : t.latestChangedDtsFile : void 0;
    const f = Xm.canReuseOldState(o.referencedMap, t), d = f ? t.compilerOptions : void 0, y = f && t.semanticDiagnosticsPerFile && !!o.semanticDiagnosticsPerFile && !Pde(s, d), h = s.composite && (t == null ? void 0 : t.emitSignatures) && !c && !Fde(s, t.compilerOptions);
    f ? ((r = t.changedFilesSet) == null || r.forEach((O) => o.changedFilesSet.add(O)), !c && ((i = t.affectedFilesPendingEmit) != null && i.size) && (o.affectedFilesPendingEmit = new Map(t.affectedFilesPendingEmit), o.seenAffectedFiles = /* @__PURE__ */ new Set()), o.programEmitPending = t.programEmitPending) : o.buildInfoEmitPending = !0;
    const E = o.referencedMap, A = f ? t.referencedMap : void 0, L = y && !s.skipLibCheck == !d.skipLibCheck, I = L && !s.skipDefaultLibCheck == !d.skipDefaultLibCheck;
    if (o.fileInfos.forEach((O, k) => {
      var G;
      let V, H;
      if (!f || !(V = t.fileInfos.get(k)) || V.version !== O.version || V.impliedFormat !== O.impliedFormat || !i7e(H = E && E.getValues(k), A && A.getValues(k)) || H && RI(H, (te) => !o.fileInfos.has(te) && t.fileInfos.has(te)))
        lge(o, k);
      else if (y) {
        const te = e.getSourceFileByPath(k);
        if (te.isDeclarationFile && !L || te.hasNoDefaultLib && !I)
          return;
        const X = t.semanticDiagnosticsPerFile.get(k);
        X && (o.semanticDiagnosticsPerFile.set(k, t.hasReusableDiagnostic ? o7e(X, e) : X), o.semanticDiagnosticsFromOldState || (o.semanticDiagnosticsFromOldState = /* @__PURE__ */ new Set()), o.semanticDiagnosticsFromOldState.add(k));
      }
      if (h) {
        const te = t.emitSignatures.get(k);
        te && ((G = o.emitSignatures) != null ? G : o.emitSignatures = /* @__PURE__ */ new Map()).set(k, cge(s, t.compilerOptions, te));
      }
    }), f && of(t.fileInfos, (O, k) => o.fileInfos.has(k) ? !1 : c || O.affectsGlobalScope ? !0 : (o.buildInfoEmitPending = !0, !1)))
      Xm.getAllFilesExcludingDefaultLibraryFile(o, e, void 0).forEach((O) => lge(o, O.resolvedPath));
    else if (d) {
      const O = Mde(s, d) ? zv(s) : VC(s, d);
      O !== 0 && (c ? o.programEmitPending = o.programEmitPending ? o.programEmitPending | O : O : (e.getSourceFiles().forEach((k) => {
        o.changedFilesSet.has(k.resolvedPath) || lY(o, k.resolvedPath, O);
      }), D.assert(!o.seenAffectedFiles || !o.seenAffectedFiles.size), o.seenAffectedFiles = o.seenAffectedFiles || /* @__PURE__ */ new Set(), o.buildInfoEmitPending = !0));
    }
    return c && !o.changedFilesSet.size && (f && (o.bundle = t.bundle), kt(e.getProjectReferences(), (O) => !!O.prepend) && (o.programEmitPending = zv(s))), o;
  }
  function lge(e, t) {
    e.changedFilesSet.add(t), e.buildInfoEmitPending = !0, e.programEmitPending = void 0;
  }
  function cge(e, t, r) {
    return !!e.declarationMap == !!t.declarationMap ? r : Ha(r) ? [r] : r[0];
  }
  function o7e(e, t) {
    if (!e.length)
      return rt;
    let r;
    return e.map((o) => {
      const s = uge(o, t, i);
      s.reportsUnnecessary = o.reportsUnnecessary, s.reportsDeprecated = o.reportDeprecated, s.source = o.source, s.skippedOn = o.skippedOn;
      const { relatedInformation: c } = o;
      return s.relatedInformation = c ? c.length ? c.map((f) => uge(f, t, i)) : [] : void 0, s;
    });
    function i(o) {
      return r ?? (r = mi(Pa(Iy(t.getCompilerOptions()), t.getCurrentDirectory()))), zs(o, r, t.getCanonicalFileName);
    }
  }
  function uge(e, t, r) {
    const { file: i } = e;
    return {
      ...e,
      file: i ? t.getSourceFileByPath(r(i)) : void 0
    };
  }
  function s7e(e) {
    Xm.releaseCache(e), e.program = void 0;
  }
  function l7e(e) {
    const t = qs(e.compilerOptions);
    return D.assert(!e.changedFilesSet.size || t), {
      affectedFilesPendingEmit: e.affectedFilesPendingEmit && new Map(e.affectedFilesPendingEmit),
      seenEmittedFiles: e.seenEmittedFiles && new Map(e.seenEmittedFiles),
      programEmitPending: e.programEmitPending,
      emitSignatures: e.emitSignatures && new Map(e.emitSignatures),
      outSignature: e.outSignature,
      latestChangedDtsFile: e.latestChangedDtsFile,
      hasChangedEmitSignature: e.hasChangedEmitSignature,
      changedFilesSet: t ? new Set(e.changedFilesSet) : void 0
    };
  }
  function c7e(e, t) {
    e.affectedFilesPendingEmit = t.affectedFilesPendingEmit, e.seenEmittedFiles = t.seenEmittedFiles, e.programEmitPending = t.programEmitPending, e.emitSignatures = t.emitSignatures, e.outSignature = t.outSignature, e.latestChangedDtsFile = t.latestChangedDtsFile, e.hasChangedEmitSignature = t.hasChangedEmitSignature, t.changedFilesSet && (e.changedFilesSet = t.changedFilesSet);
  }
  function dge(e, t) {
    D.assert(!t || !e.affectedFiles || e.affectedFiles[e.affectedFilesIndex - 1] !== t || !e.semanticDiagnosticsPerFile.has(t.resolvedPath));
  }
  function fge(e, t, r) {
    for (var i, o; ; ) {
      const { affectedFiles: s } = e;
      if (s) {
        const y = e.seenAffectedFiles;
        let h = e.affectedFilesIndex;
        for (; h < s.length; ) {
          const E = s[h];
          if (!y.has(E.resolvedPath))
            return e.affectedFilesIndex = h, lY(e, E.resolvedPath, zv(e.compilerOptions)), f7e(e, E, t, r), E;
          h++;
        }
        e.changedFilesSet.delete(e.currentChangedFilePath), e.currentChangedFilePath = void 0, (i = e.oldSignatures) == null || i.clear(), (o = e.oldExportedModulesMap) == null || o.clear(), e.affectedFiles = void 0;
      }
      const c = e.changedFilesSet.keys().next();
      if (c.done)
        return;
      const f = D.checkDefined(e.program), d = f.getCompilerOptions();
      if (qs(d))
        return D.assert(!e.semanticDiagnosticsPerFile), f;
      e.affectedFiles = Xm.getFilesAffectedByWithOldState(e, f, c.value, t, r), e.currentChangedFilePath = c.value, e.affectedFilesIndex = 0, e.seenAffectedFiles || (e.seenAffectedFiles = /* @__PURE__ */ new Set());
    }
  }
  function u7e(e, t) {
    var r;
    if ((r = e.affectedFilesPendingEmit) != null && r.size) {
      if (!t)
        return e.affectedFilesPendingEmit = void 0;
      e.affectedFilesPendingEmit.forEach((i, o) => {
        const s = i & 7;
        s ? e.affectedFilesPendingEmit.set(o, s) : e.affectedFilesPendingEmit.delete(o);
      });
    }
  }
  function d7e(e, t) {
    var r;
    if ((r = e.affectedFilesPendingEmit) != null && r.size)
      return of(e.affectedFilesPendingEmit, (i, o) => {
        var s;
        const c = e.program.getSourceFileByPath(o);
        if (!c || !sx(c, e.program)) {
          e.affectedFilesPendingEmit.delete(o);
          return;
        }
        const f = (s = e.seenEmittedFiles) == null ? void 0 : s.get(c.resolvedPath);
        let d = VC(i, f);
        if (t && (d = d & 24), d)
          return { affectedFile: c, emitKind: d };
      });
  }
  function _ge(e) {
    if (!e.cleanedDiagnosticsOfLibFiles) {
      e.cleanedDiagnosticsOfLibFiles = !0;
      const t = D.checkDefined(e.program), r = t.getCompilerOptions();
      ze(t.getSourceFiles(), (i) => t.isSourceFileDefaultLibrary(i) && !_k(i, r, t) && rY(e, i.resolvedPath));
    }
  }
  function f7e(e, t, r, i) {
    if (rY(e, t.resolvedPath), e.allFilesExcludingDefaultLibraryFile === e.affectedFiles) {
      _ge(e), Xm.updateShapeSignature(e, D.checkDefined(e.program), t, r, i);
      return;
    }
    e.compilerOptions.assumeChangesOnlyAffectDirectDependencies || _7e(e, t, r, i);
  }
  function bF(e, t, r, i) {
    if (rY(e, t), !e.changedFilesSet.has(t)) {
      const o = D.checkDefined(e.program), s = o.getSourceFileByPath(t);
      s && (Xm.updateShapeSignature(e, o, s, r, i, !0), W_(e.compilerOptions) && lY(e, t, e.compilerOptions.declarationMap ? 24 : 8));
    }
  }
  function rY(e, t) {
    return e.semanticDiagnosticsFromOldState ? (e.semanticDiagnosticsFromOldState.delete(t), e.semanticDiagnosticsPerFile.delete(t), !e.semanticDiagnosticsFromOldState.size) : !0;
  }
  function pge(e, t) {
    const r = D.checkDefined(e.oldSignatures).get(t) || void 0;
    return D.checkDefined(e.fileInfos.get(t)).signature !== r;
  }
  function iY(e, t, r, i) {
    var o;
    return (o = e.fileInfos.get(t)) != null && o.affectsGlobalScope ? (Xm.getAllFilesExcludingDefaultLibraryFile(e, e.program, void 0).forEach((s) => bF(e, s.resolvedPath, r, i)), _ge(e), !0) : !1;
  }
  function _7e(e, t, r, i) {
    var o;
    if (!e.exportedModulesMap || !e.changedFilesSet.has(t.resolvedPath) || !pge(e, t.resolvedPath))
      return;
    if (j_(e.compilerOptions)) {
      const c = /* @__PURE__ */ new Map();
      c.set(t.resolvedPath, !0);
      const f = Xm.getReferencedByPaths(e, t.resolvedPath);
      for (; f.length > 0; ) {
        const d = f.pop();
        if (!c.has(d)) {
          if (c.set(d, !0), iY(e, d, r, i))
            return;
          if (bF(e, d, r, i), pge(e, d)) {
            const y = D.checkDefined(e.program).getSourceFileByPath(d);
            f.push(...Xm.getReferencedByPaths(e, y.resolvedPath));
          }
        }
      }
    }
    const s = /* @__PURE__ */ new Set();
    (o = e.exportedModulesMap.getKeys(t.resolvedPath)) == null || o.forEach((c) => {
      if (iY(e, c, r, i))
        return !0;
      const f = e.referencedMap.getKeys(c);
      return f && RI(f, (d) => mge(e, d, s, r, i));
    });
  }
  function mge(e, t, r, i, o) {
    var s, c;
    if (hv(r, t)) {
      if (iY(e, t, i, o))
        return !0;
      bF(e, t, i, o), (s = e.exportedModulesMap.getKeys(t)) == null || s.forEach((f) => mge(e, f, r, i, o)), (c = e.referencedMap.getKeys(t)) == null || c.forEach((f) => !r.has(f) && bF(e, f, i, o));
    }
  }
  function aY(e, t, r) {
    return va(p7e(e, t, r), D.checkDefined(e.program).getProgramDiagnostics(t));
  }
  function p7e(e, t, r) {
    const i = t.resolvedPath;
    if (e.semanticDiagnosticsPerFile) {
      const s = e.semanticDiagnosticsPerFile.get(i);
      if (s)
        return fF(s, e.compilerOptions);
    }
    const o = D.checkDefined(e.program).getBindAndCheckDiagnostics(t, r);
    return e.semanticDiagnosticsPerFile && e.semanticDiagnosticsPerFile.set(i, o), fF(o, e.compilerOptions);
  }
  function hge(e) {
    return !!qs(e.options || {});
  }
  function m7e(e, t) {
    var r, i, o;
    const s = D.checkDefined(e.program).getCurrentDirectory(), c = mi(Pa(Iy(e.compilerOptions), s)), f = e.latestChangedDtsFile ? X(e.latestChangedDtsFile) : void 0, d = [], y = /* @__PURE__ */ new Map(), h = [];
    if (qs(e.compilerOptions)) {
      const ae = Ro(e.fileInfos.entries(), ([ee, Qe]) => {
        const Ve = P(ee);
        return re(ee, Ve), Qe.impliedFormat ? { version: Qe.version, impliedFormat: Qe.impliedFormat, signature: void 0, affectsGlobalScope: void 0 } : Qe.version;
      }), W = {
        fileNames: d,
        fileInfos: ae,
        root: h,
        options: ye(e.compilerOptions),
        outSignature: e.outSignature,
        latestChangedDtsFile: f,
        pendingEmit: e.programEmitPending ? e.programEmitPending === zv(e.compilerOptions) ? !1 : e.programEmitPending : void 0
      }, { js: ce, dts: me, commonSourceDirectory: ve, sourceFiles: Te } = t;
      return e.bundle = t = {
        commonSourceDirectory: ve,
        sourceFiles: Te,
        js: ce || (e.compilerOptions.emitDeclarationOnly || (r = e.bundle) == null ? void 0 : r.js),
        dts: me || (W_(e.compilerOptions) ? (i = e.bundle) == null ? void 0 : i.dts : void 0)
      }, D8(W, t);
    }
    let E, A, L;
    const I = Ro(e.fileInfos.entries(), ([ae, W]) => {
      var ce, me;
      const ve = P(ae);
      re(ae, ve), D.assert(d[ve - 1] === Y(ae));
      const Te = (ce = e.oldSignatures) == null ? void 0 : ce.get(ae), ee = Te !== void 0 ? Te || void 0 : W.signature;
      if (e.compilerOptions.composite) {
        const Qe = e.program.getSourceFileByPath(ae);
        if (!p_(Qe) && sx(Qe, e.program)) {
          const Ve = (me = e.emitSignatures) == null ? void 0 : me.get(ae);
          Ve !== ee && (L || (L = [])).push(Ve === void 0 ? ve : [ve, !Ha(Ve) && Ve[0] === ee ? rt : Ve]);
        }
      }
      return W.version === ee ? W.affectsGlobalScope || W.impliedFormat ? { version: W.version, signature: void 0, affectsGlobalScope: W.affectsGlobalScope, impliedFormat: W.impliedFormat } : W.version : ee !== void 0 ? Te === void 0 ? W : { version: W.version, signature: ee, affectsGlobalScope: W.affectsGlobalScope, impliedFormat: W.impliedFormat } : { version: W.version, signature: !1, affectsGlobalScope: W.affectsGlobalScope, impliedFormat: W.impliedFormat };
    });
    let O;
    e.referencedMap && (O = Ro(e.referencedMap.keys()).sort(Nu).map((ae) => [
      P(ae),
      de(e.referencedMap.getValues(ae))
    ]));
    let k;
    e.exportedModulesMap && (k = ia(Ro(e.exportedModulesMap.keys()).sort(Nu), (ae) => {
      var W;
      const ce = (W = e.oldExportedModulesMap) == null ? void 0 : W.get(ae);
      if (ce === void 0)
        return [P(ae), de(e.exportedModulesMap.getValues(ae))];
      if (ce)
        return [P(ae), de(ce)];
    }));
    let G;
    if (e.semanticDiagnosticsPerFile)
      for (const ae of Ro(e.semanticDiagnosticsPerFile.keys()).sort(Nu)) {
        const W = e.semanticDiagnosticsPerFile.get(ae);
        (G || (G = [])).push(W.length ? [
          P(ae),
          g7e(W, Y)
        ] : P(ae));
      }
    let V;
    if ((o = e.affectedFilesPendingEmit) != null && o.size) {
      const ae = zv(e.compilerOptions), W = /* @__PURE__ */ new Set();
      for (const ce of Ro(e.affectedFilesPendingEmit.keys()).sort(Nu))
        if (hv(W, ce)) {
          const me = e.program.getSourceFileByPath(ce);
          if (!me || !sx(me, e.program))
            continue;
          const ve = P(ce), Te = e.affectedFilesPendingEmit.get(ce);
          (V || (V = [])).push(Te === ae ? ve : Te === 8 ? [ve] : [ve, Te]);
        }
    }
    let H;
    if (e.changedFilesSet.size)
      for (const ae of Ro(e.changedFilesSet.keys()).sort(Nu))
        (H || (H = [])).push(P(ae));
    const te = {
      fileNames: d,
      fileInfos: I,
      root: h,
      options: ye(e.compilerOptions),
      fileIdsList: E,
      referencedMap: O,
      exportedModulesMap: k,
      semanticDiagnosticsPerFile: G,
      affectedFilesPendingEmit: V,
      changeFileSet: H,
      emitSignatures: L,
      latestChangedDtsFile: f
    };
    return D8(te, t);
    function X(ae) {
      return Y(Pa(ae, s));
    }
    function Y(ae) {
      return c1(wm(c, ae, e.program.getCanonicalFileName));
    }
    function P(ae) {
      let W = y.get(ae);
      return W === void 0 && (d.push(Y(ae)), y.set(ae, W = d.length)), W;
    }
    function de(ae) {
      const W = Ro(ae.keys(), P).sort(Ws), ce = W.join();
      let me = A == null ? void 0 : A.get(ce);
      return me === void 0 && ((E || (E = [])).push(W), (A || (A = /* @__PURE__ */ new Map())).set(ce, me = E.length)), me;
    }
    function re(ae, W) {
      const ce = e.program.getSourceFile(ae);
      if (!e.program.getFileIncludeReasons().get(ce.path).some((ee) => ee.kind === 0))
        return;
      if (!h.length)
        return h.push(W);
      const me = h[h.length - 1], ve = Va(me);
      if (ve && me[1] === W - 1)
        return me[1] = W;
      if (ve || h.length === 1 || me !== W - 1)
        return h.push(W);
      const Te = h[h.length - 2];
      return !ly(Te) || Te !== me - 1 ? h.push(W) : (h[h.length - 2] = [Te, W], h.length = h.length - 1);
    }
    function ye(ae) {
      let W;
      const { optionsNameMap: ce } = OC();
      for (const me of tg(ae).sort(Nu)) {
        const ve = ce.get(me.toLowerCase());
        ve != null && ve.affectsBuildInfo && ((W || (W = {}))[me] = h7e(ve, ae[me], X));
      }
      return W;
    }
  }
  function h7e(e, t, r) {
    if (e) {
      if (D.assert(e.type !== "listOrElement"), e.type === "list") {
        const i = t;
        if (e.element.isFilePath && i.length)
          return i.map(r);
      } else if (e.isFilePath)
        return r(t);
    }
    return t;
  }
  function g7e(e, t) {
    return D.assert(!!e.length), e.map((r) => {
      const i = gge(r, t);
      i.reportsUnnecessary = r.reportsUnnecessary, i.reportDeprecated = r.reportsDeprecated, i.source = r.source, i.skippedOn = r.skippedOn;
      const { relatedInformation: o } = r;
      return i.relatedInformation = o ? o.length ? o.map((s) => gge(s, t)) : [] : void 0, i;
    });
  }
  function gge(e, t) {
    const { file: r } = e;
    return {
      ...e,
      file: r ? t(r.resolvedPath) : void 0
    };
  }
  function EF(e, t, r, i, o, s) {
    let c, f, d;
    return e === void 0 ? (D.assert(t === void 0), c = r, d = i, D.assert(!!d), f = d.getProgram()) : Va(e) ? (d = i, f = dF({
      rootNames: e,
      options: t,
      host: r,
      oldProgram: d && d.getProgramOrUndefined(),
      configFileParsingDiagnostics: o,
      projectReferences: s
    }), c = r) : (f = e, c = t, d = r, o = i), { host: c, newProgram: f, oldProgram: d, configFileParsingDiagnostics: o || rt };
  }
  function yge(e, t) {
    return (t == null ? void 0 : t.sourceMapUrlPos) !== void 0 ? e.substring(0, t.sourceMapUrlPos) : e;
  }
  function oY(e, t, r, i, o) {
    var s, c;
    r = yge(r, o);
    let f;
    return (s = o == null ? void 0 : o.diagnostics) != null && s.length && (r += o.diagnostics.map((h) => `${y(h)}${TR[h.category]}${h.code}: ${d(h.messageText)}`).join(`
`)), ((c = i.createHash) != null ? c : AR)(r);
    function d(h) {
      return Ha(h) ? h : h === void 0 ? "" : h.next ? h.messageText + h.next.map(d).join(`
`) : h.messageText;
    }
    function y(h) {
      return h.file.resolvedPath === t.resolvedPath ? `(${h.start},${h.length})` : (f === void 0 && (f = mi(t.resolvedPath)), `${c1(wm(f, h.file.resolvedPath, e.getCanonicalFileName))}(${h.start},${h.length})`);
    }
  }
  function UT(e, t, r) {
    var i;
    return ((i = t.createHash) != null ? i : AR)(yge(e, r));
  }
  function sY(e, { newProgram: t, host: r, oldProgram: i, configFileParsingDiagnostics: o }) {
    let s = i && i.getState();
    if (s && t === s.program && o === t.getConfigFileParsingDiagnostics())
      return t = void 0, s = void 0, i;
    const c = a7e(t, s);
    t.getBuildInfo = (O) => m7e(c, O), t = void 0, i = void 0, s = void 0;
    const f = () => c, d = uY(f, o);
    return d.getState = f, d.saveEmitState = () => l7e(c), d.restoreEmitState = (O) => c7e(c, O), d.hasChangedEmitSignature = () => !!c.hasChangedEmitSignature, d.getAllDependencies = (O) => Xm.getAllDependencies(c, D.checkDefined(c.program), O), d.getSemanticDiagnostics = I, d.emit = A, d.releaseProgram = () => s7e(c), e === 0 ? d.getSemanticDiagnosticsOfNextAffectedFile = L : e === 1 ? (d.getSemanticDiagnosticsOfNextAffectedFile = L, d.emitNextAffectedFile = h, d.emitBuildInfo = y) : Wa(), d;
    function y(O, k) {
      if (c.buildInfoEmitPending) {
        const G = D.checkDefined(c.program).emitBuildInfo(O || Uo(r, r.writeFile), k);
        return c.buildInfoEmitPending = !1, G;
      }
      return vF;
    }
    function h(O, k, G, V) {
      var H, te, X, Y, P;
      let de = fge(c, k, r);
      const re = zv(c.compilerOptions);
      let ye = G ? re & 24 : re;
      if (!de)
        if (qs(c.compilerOptions)) {
          if (!c.programEmitPending || (ye = c.programEmitPending, G && (ye = ye & 24), !ye))
            return;
          de = c.program;
        } else {
          const ce = d7e(c, G);
          if (!ce) {
            if (!c.buildInfoEmitPending)
              return;
            const me = c.program, ve = me.emitBuildInfo(O || Uo(r, r.writeFile), k);
            return c.buildInfoEmitPending = !1, { result: ve, affected: me };
          }
          ({ affectedFile: de, emitKind: ye } = ce);
        }
      let ae;
      ye & 7 && (ae = 0), ye & 24 && (ae = ae === void 0 ? 1 : void 0), de === c.program && (c.programEmitPending = c.changedFilesSet.size ? VC(re, ye) : c.programEmitPending ? VC(c.programEmitPending, ye) : void 0);
      const W = c.program.emit(de === c.program ? void 0 : de, E(O, V), k, ae, V);
      if (de !== c.program) {
        const ce = de;
        c.seenAffectedFiles.add(ce.resolvedPath), c.affectedFilesIndex !== void 0 && c.affectedFilesIndex++, c.buildInfoEmitPending = !0;
        const me = ((H = c.seenEmittedFiles) == null ? void 0 : H.get(ce.resolvedPath)) || 0;
        ((te = c.seenEmittedFiles) != null ? te : c.seenEmittedFiles = /* @__PURE__ */ new Map()).set(ce.resolvedPath, ye | me);
        const ve = ((X = c.affectedFilesPendingEmit) == null ? void 0 : X.get(ce.resolvedPath)) || re, Te = VC(ve, ye | me);
        Te ? ((Y = c.affectedFilesPendingEmit) != null ? Y : c.affectedFilesPendingEmit = /* @__PURE__ */ new Map()).set(ce.resolvedPath, Te) : (P = c.affectedFilesPendingEmit) == null || P.delete(ce.resolvedPath);
      } else
        c.changedFilesSet.clear();
      return { result: W, affected: de };
    }
    function E(O, k) {
      return W_(c.compilerOptions) ? (G, V, H, te, X, Y) => {
        var P, de, re, ye, ae, W, ce;
        if (fd(G))
          if (qs(c.compilerOptions)) {
            if (c.compilerOptions.composite) {
              const ve = me(c.outSignature, void 0);
              if (!ve)
                return;
              c.outSignature = ve;
            }
          } else {
            D.assert((X == null ? void 0 : X.length) === 1);
            let ve;
            if (!k) {
              const Te = X[0], ee = c.fileInfos.get(Te.resolvedPath);
              if (ee.signature === Te.version) {
                const Qe = oY(c.program, Te, V, r, Y);
                (P = Y == null ? void 0 : Y.diagnostics) != null && P.length || (ve = Qe), Qe !== Te.version && (r.storeFilesChangingSignatureDuringEmit && ((de = c.filesChangingSignature) != null ? de : c.filesChangingSignature = /* @__PURE__ */ new Set()).add(Te.resolvedPath), c.exportedModulesMap && Xm.updateExportedModules(c, Te, Te.exportedModulesFromDeclarationEmit), c.affectedFiles ? (((re = c.oldSignatures) == null ? void 0 : re.get(Te.resolvedPath)) === void 0 && ((ye = c.oldSignatures) != null ? ye : c.oldSignatures = /* @__PURE__ */ new Map()).set(Te.resolvedPath, ee.signature || !1), ee.signature = Qe) : (ee.signature = Qe, (ae = c.oldExportedModulesMap) == null || ae.clear()));
              }
            }
            if (c.compilerOptions.composite) {
              const Te = X[0].resolvedPath;
              if (ve = me((W = c.emitSignatures) == null ? void 0 : W.get(Te), ve), !ve)
                return;
              ((ce = c.emitSignatures) != null ? ce : c.emitSignatures = /* @__PURE__ */ new Map()).set(Te, ve);
            }
          }
        O ? O(G, V, H, te, X, Y) : r.writeFile ? r.writeFile(G, V, H, te, X, Y) : c.program.writeFile(G, V, H, te, X, Y);
        function me(ve, Te) {
          const ee = !ve || Ha(ve) ? ve : ve[0];
          if (Te ?? (Te = UT(V, r, Y)), Te === ee) {
            if (ve === ee)
              return;
            Y ? Y.differsOnlyInMap = !0 : Y = { differsOnlyInMap: !0 };
          } else
            c.hasChangedEmitSignature = !0, c.latestChangedDtsFile = G;
          return Te;
        }
      } : O || Uo(r, r.writeFile);
    }
    function A(O, k, G, V, H) {
      e === 1 && dge(c, O);
      const te = XX(d, O, k, G);
      if (te)
        return te;
      if (!O)
        if (e === 1) {
          let X = [], Y = !1, P, de = [], re;
          for (; re = h(k, G, V, H); )
            Y = Y || re.result.emitSkipped, P = Ti(P, re.result.diagnostics), de = Ti(de, re.result.emittedFiles), X = Ti(X, re.result.sourceMaps);
          return {
            emitSkipped: Y,
            diagnostics: P || rt,
            emittedFiles: de,
            sourceMaps: X
          };
        } else
          u7e(c, V);
      return D.checkDefined(c.program).emit(O, E(k, H), G, V, H);
    }
    function L(O, k) {
      for (; ; ) {
        const G = fge(c, O, r);
        let V;
        if (G)
          if (G !== c.program) {
            const H = G;
            if ((!k || !k(H)) && (V = aY(c, H, O)), c.seenAffectedFiles.add(H.resolvedPath), c.affectedFilesIndex++, c.buildInfoEmitPending = !0, !V)
              continue;
          } else
            V = c.program.getSemanticDiagnostics(void 0, O), c.changedFilesSet.clear(), c.programEmitPending = zv(c.compilerOptions);
        else
          return;
        return { result: V, affected: G };
      }
    }
    function I(O, k) {
      dge(c, O);
      const G = D.checkDefined(c.program).getCompilerOptions();
      if (qs(G))
        return D.assert(!c.semanticDiagnosticsPerFile), D.checkDefined(c.program).getSemanticDiagnostics(O, k);
      if (O)
        return aY(c, O, k);
      for (; L(k); )
        ;
      let V;
      for (const H of D.checkDefined(c.program).getSourceFiles())
        V = Ti(V, aY(c, H, k));
      return V || rt;
    }
  }
  function lY(e, t, r) {
    var i, o;
    const s = ((i = e.affectedFilesPendingEmit) == null ? void 0 : i.get(t)) || 0;
    ((o = e.affectedFilesPendingEmit) != null ? o : e.affectedFilesPendingEmit = /* @__PURE__ */ new Map()).set(t, s | r);
  }
  function vge(e) {
    return Ha(e) ? { version: e, signature: e, affectsGlobalScope: void 0, impliedFormat: void 0 } : Ha(e.signature) ? e : { version: e.version, signature: e.signature === !1 ? void 0 : e.version, affectsGlobalScope: e.affectsGlobalScope, impliedFormat: e.impliedFormat };
  }
  function bge(e, t) {
    return ly(e) ? t : e[1] || 8;
  }
  function Ege(e, t) {
    return e || zv(t || {});
  }
  function Tge(e, t, r) {
    var i, o, s, c;
    const f = e.program, d = mi(Pa(t, r.getCurrentDirectory())), y = ru(r.useCaseSensitiveFileNames());
    let h;
    const E = (i = f.fileNames) == null ? void 0 : i.map(I);
    let A;
    const L = f.latestChangedDtsFile ? O(f.latestChangedDtsFile) : void 0;
    if (hge(f)) {
      const H = /* @__PURE__ */ new Map();
      f.fileInfos.forEach((te, X) => {
        const Y = k(X + 1);
        H.set(Y, Ha(te) ? { version: te, signature: void 0, affectsGlobalScope: void 0, impliedFormat: void 0 } : te);
      }), h = {
        fileInfos: H,
        compilerOptions: f.options ? sK(f.options, O) : {},
        latestChangedDtsFile: L,
        outSignature: f.outSignature,
        programEmitPending: f.pendingEmit === void 0 ? void 0 : Ege(f.pendingEmit, f.options),
        bundle: e.bundle
      };
    } else {
      A = (o = f.fileIdsList) == null ? void 0 : o.map((Y) => new Set(Y.map(k)));
      const H = /* @__PURE__ */ new Map(), te = (s = f.options) != null && s.composite && !qs(f.options) ? /* @__PURE__ */ new Map() : void 0;
      f.fileInfos.forEach((Y, P) => {
        const de = k(P + 1), re = vge(Y);
        H.set(de, re), te && re.signature && te.set(de, re.signature);
      }), (c = f.emitSignatures) == null || c.forEach((Y) => {
        if (ly(Y))
          te.delete(k(Y));
        else {
          const P = k(Y[0]);
          te.set(P, !Ha(Y[1]) && !Y[1].length ? [te.get(P)] : Y[1]);
        }
      });
      const X = f.affectedFilesPendingEmit ? zv(f.options || {}) : void 0;
      h = {
        fileInfos: H,
        compilerOptions: f.options ? sK(f.options, O) : {},
        referencedMap: V(f.referencedMap),
        exportedModulesMap: V(f.exportedModulesMap),
        semanticDiagnosticsPerFile: f.semanticDiagnosticsPerFile && e1(f.semanticDiagnosticsPerFile, (Y) => k(ly(Y) ? Y : Y[0]), (Y) => ly(Y) ? rt : Y[1]),
        hasReusableDiagnostic: !0,
        affectedFilesPendingEmit: f.affectedFilesPendingEmit && e1(f.affectedFilesPendingEmit, (Y) => k(ly(Y) ? Y : Y[0]), (Y) => bge(Y, X)),
        changedFilesSet: new Set(jt(f.changeFileSet, k)),
        latestChangedDtsFile: L,
        emitSignatures: te != null && te.size ? te : void 0
      };
    }
    return {
      getState: () => h,
      saveEmitState: so,
      restoreEmitState: so,
      getProgram: Wa,
      getProgramOrUndefined: M0,
      releaseProgram: so,
      getCompilerOptions: () => h.compilerOptions,
      getSourceFile: Wa,
      getSourceFiles: Wa,
      getOptionsDiagnostics: Wa,
      getGlobalDiagnostics: Wa,
      getConfigFileParsingDiagnostics: Wa,
      getSyntacticDiagnostics: Wa,
      getDeclarationDiagnostics: Wa,
      getSemanticDiagnostics: Wa,
      emit: Wa,
      getAllDependencies: Wa,
      getCurrentDirectory: Wa,
      emitNextAffectedFile: Wa,
      getSemanticDiagnosticsOfNextAffectedFile: Wa,
      emitBuildInfo: Wa,
      close: so,
      hasChangedEmitSignature: t1
    };
    function I(H) {
      return zs(H, d, y);
    }
    function O(H) {
      return Pa(H, d);
    }
    function k(H) {
      return E[H - 1];
    }
    function G(H) {
      return A[H - 1];
    }
    function V(H) {
      if (!H)
        return;
      const te = Xm.createManyToManyPathMap();
      return H.forEach(([X, Y]) => te.set(k(X), G(Y))), te;
    }
  }
  function cY(e, t, r) {
    const i = mi(Pa(t, r.getCurrentDirectory())), o = ru(r.useCaseSensitiveFileNames()), s = /* @__PURE__ */ new Map();
    let c = 0;
    const f = [];
    return e.fileInfos.forEach((d, y) => {
      const h = zs(e.fileNames[y], i, o), E = Ha(d) ? d : d.version;
      if (s.set(h, E), c < e.root.length) {
        const A = e.root[c], L = y + 1;
        Va(A) ? A[0] <= L && L <= A[1] && (f.push(h), A[1] === L && c++) : A === L && (f.push(h), c++);
      }
    }), { fileInfos: s, roots: f };
  }
  function uY(e, t) {
    return {
      getState: Wa,
      saveEmitState: so,
      restoreEmitState: so,
      getProgram: r,
      getProgramOrUndefined: () => e().program,
      releaseProgram: () => e().program = void 0,
      getCompilerOptions: () => e().compilerOptions,
      getSourceFile: (i) => r().getSourceFile(i),
      getSourceFiles: () => r().getSourceFiles(),
      getOptionsDiagnostics: (i) => r().getOptionsDiagnostics(i),
      getGlobalDiagnostics: (i) => r().getGlobalDiagnostics(i),
      getConfigFileParsingDiagnostics: () => t,
      getSyntacticDiagnostics: (i, o) => r().getSyntacticDiagnostics(i, o),
      getDeclarationDiagnostics: (i, o) => r().getDeclarationDiagnostics(i, o),
      getSemanticDiagnostics: (i, o) => r().getSemanticDiagnostics(i, o),
      emit: (i, o, s, c, f) => r().emit(i, o, s, c, f),
      emitBuildInfo: (i, o) => r().emitBuildInfo(i, o),
      getAllDependencies: Wa,
      getCurrentDirectory: () => r().getCurrentDirectory(),
      close: so
    };
    function r() {
      return D.checkDefined(e().program);
    }
  }
  var dY, fY, y7e = C({
    "src/compiler/builder.ts"() {
      Oa(), Oa(), dY = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Js = 1] = "Js", e[e.JsMap = 2] = "JsMap", e[e.JsInlineMap = 4] = "JsInlineMap", e[e.Dts = 8] = "Dts", e[e.DtsMap = 16] = "DtsMap", e[e.AllJs = 7] = "AllJs", e[e.AllDts = 24] = "AllDts", e[e.All = 31] = "All", e))(dY || {}), fY = /* @__PURE__ */ ((e) => (e[e.SemanticDiagnosticsBuilderProgram = 0] = "SemanticDiagnosticsBuilderProgram", e[e.EmitAndSemanticDiagnosticsBuilderProgram = 1] = "EmitAndSemanticDiagnosticsBuilderProgram", e))(fY || {});
    }
  });
  function v7e(e, t, r, i, o, s) {
    return sY(0, EF(e, t, r, i, o, s));
  }
  function _Y(e, t, r, i, o, s) {
    return sY(1, EF(e, t, r, i, o, s));
  }
  function b7e(e, t, r, i, o, s) {
    const { newProgram: c, configFileParsingDiagnostics: f } = EF(e, t, r, i, o, s);
    return uY(() => ({ program: c, compilerOptions: c.getCompilerOptions() }), f);
  }
  var E7e = C({
    "src/compiler/builderPublic.ts"() {
      Oa();
    }
  });
  function pY(e) {
    return ic(e, "/node_modules/.staging") ? gA(e, "/.staging") : kt(wR, (t) => pu(e, t)) ? void 0 : e;
  }
  function G8(e) {
    const t = qp(e);
    if (e.length === t)
      return !1;
    let r = e.indexOf(Ms, t);
    if (r === -1)
      return !1;
    let i = e.substring(t, r + 1);
    const o = t > 1 || e.charCodeAt(0) !== 47;
    if (o && e.search(/[a-zA-Z]:/) !== 0 && i.search(/[a-zA-Z]\$\//) === 0) {
      if (r = e.indexOf(Ms, r + 1), r === -1)
        return !1;
      i = e.substring(t + i.length, r + 1);
    }
    if (o && i.search(/users\//i) !== 0)
      return !0;
    for (let s = r + 1, c = 2; c > 0; c--)
      if (s = e.indexOf(Ms, s) + 1, s === 0)
        return !1;
    return !0;
  }
  function Sge(e, t, r) {
    let i, o, s;
    const c = f_(), f = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Set(), y = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Map();
    let E = !1, A, L, I, O, k;
    const G = Ed(() => e.getCurrentDirectory()), V = e.getCachedDirectoryStructureHost(), H = /* @__PURE__ */ new Map(), te = C5(G(), e.getCanonicalFileName, e.getCompilationSettings()), X = /* @__PURE__ */ new Map(), Y = L5(G(), e.getCanonicalFileName, e.getCompilationSettings(), te.getPackageJsonInfoCache()), P = [".ts", ".tsx", ".js", ".jsx", ".json"], de = /* @__PURE__ */ new Map(), re = /* @__PURE__ */ new Map(), ye = /* @__PURE__ */ new Map(), ae = t && $E(Pa(t, G())), W = ae && e.toPath(ae), ce = W !== void 0 ? W.split(Ms).length : 0, me = /* @__PURE__ */ new Map();
    return {
      getModuleResolutionCache: () => te,
      startRecordingFilesWithChangedResolutions: Ve,
      finishRecordingFilesWithChangedResolutions: Be,
      startCachingPerDirectoryResolution: Me,
      finishCachingPerDirectoryResolution: Ye,
      resolveModuleNameLiterals: Et,
      resolveTypeReferenceDirectiveReferences: Ct,
      resolveSingleModuleNameWithoutWatching: Vt,
      removeResolutionsFromProjectReferenceRedirects: vn,
      removeResolutionsOfFile: Wt,
      hasChangedAutomaticTypeDirectiveNames: () => E,
      invalidateResolutionOfFile: rr,
      invalidateResolutionsOfFailedLookupLocations: hi,
      setFilesWithInvalidatedNonRelativeUnresolvedImports: cr,
      createHasInvalidatedResolutions: Oe,
      isFileWithInvalidatedNonRelativeUnresolvedImports: qe,
      updateTypeRootsWatch: yt,
      closeTypeRootsWatch: Ar,
      clear: Qe
    };
    function ve(Ce) {
      return Ce.resolvedModule;
    }
    function Te(Ce) {
      return Ce.resolvedTypeReferenceDirective;
    }
    function ee(Ce, pt) {
      return Ce === void 0 || pt.length <= Ce.length ? !1 : xa(pt, Ce) && pt[Ce.length] === Ms;
    }
    function Qe() {
      Zf(re, Km), Zf(ye, Km), de.clear(), c.clear(), Ar(), H.clear(), X.clear(), y.clear(), f.clear(), d.clear(), I = void 0, O = void 0, k = void 0, L = void 0, A = void 0, te.clear(), Y.clear(), te.update(e.getCompilationSettings()), Y.update(e.getCompilationSettings()), h.clear(), E = !1;
    }
    function Ve() {
      i = [];
    }
    function Be() {
      const Ce = i;
      return i = void 0, Ce;
    }
    function qe(Ce) {
      if (!s)
        return !1;
      const pt = s.get(Ce);
      return !!pt && !!pt.length;
    }
    function Oe(Ce) {
      hi();
      const pt = o;
      return o = void 0, (_e) => Ce(_e) || !!(pt != null && pt.has(_e)) || qe(_e);
    }
    function Me() {
      te.clearAllExceptPackageJsonInfoCache(), Y.clearAllExceptPackageJsonInfoCache(), c.forEach(_r), c.clear();
    }
    function Ye(Ce, pt) {
      s = void 0, c.forEach(_r), c.clear(), Ce !== pt && (Ce == null || Ce.getSourceFiles().forEach((_e) => {
        var ie, he, j;
        const He = sf(_e) && (he = (ie = _e.packageJsonLocations) == null ? void 0 : ie.length) != null ? he : 0, Ze = (j = h.get(_e.path)) != null ? j : rt;
        for (let Xe = Ze.length; Xe < He; Xe++)
          Zt(_e.packageJsonLocations[Xe], !1);
        if (Ze.length > He)
          for (let Xe = He; Xe < Ze.length; Xe++)
            ye.get(Ze[Xe]).files--;
        He ? h.set(_e.path, _e.packageJsonLocations) : h.delete(_e.path);
      }), h.forEach((_e, ie) => {
        Ce != null && Ce.getSourceFileByPath(ie) || (_e.forEach((he) => ye.get(he).files--), h.delete(ie));
      })), re.forEach((_e, ie) => {
        _e.refCount === 0 && (re.delete(ie), _e.watcher.close());
      }), ye.forEach((_e, ie) => {
        _e.files === 0 && _e.resolutions === 0 && (ye.delete(ie), _e.watcher.close());
      }), E = !1;
    }
    function We(Ce, pt, _e, ie, he) {
      var j;
      const He = ((j = e.getCompilerHost) == null ? void 0 : j.call(e)) || e, Ze = Jk(Ce, pt, _e, He, te, ie, he);
      if (!e.getGlobalCache)
        return Ze;
      const Xe = e.getGlobalCache();
      if (Xe !== void 0 && !Gc(Ce) && !(Ze.resolvedModule && K3(Ze.resolvedModule.extension))) {
        const { resolvedModule: Ut, failedLookupLocations: cn, affectingLocations: Sn, resolutionDiagnostics: Er } = yme(D.checkDefined(e.globalCacheResolutionModuleName)(Ce), e.projectName, _e, He, Xe, te);
        if (Ut)
          return Ze.resolvedModule = Ut, Ze.failedLookupLocations = FC(Ze.failedLookupLocations, cn), Ze.affectingLocations = FC(Ze.affectingLocations, Sn), Ze.resolutionDiagnostics = FC(Ze.resolutionDiagnostics, Er), Ze;
      }
      return Ze;
    }
    function Fe(Ce, pt, _e) {
      return {
        nameAndMode: lw,
        resolve: (ie, he) => We(ie, Ce, _e, pt, he)
      };
    }
    function st({
      entries: Ce,
      containingFile: pt,
      containingSourceFile: _e,
      redirectedReference: ie,
      options: he,
      perFileCache: j,
      reusedNames: He,
      loader: Ze,
      getResolutionWithResolvedFileName: Xe,
      shouldRetryResolution: Ut,
      logChanges: cn
    }) {
      var Sn;
      const Er = e.toPath(pt), ue = j.get(Er) || j.set(Er, OT()).get(Er), mt = [], zt = cn && qe(Er), it = e.getCurrentProgram(), K = it && it.getResolvedProjectReferenceToRedirect(pt), Pe = K ? !ie || ie.sourceFile.path !== K.sourceFile.path : !!ie, Z = OT();
      for (const q of Ce) {
        const Rt = Ze.nameAndMode.getName(q), gt = Ze.nameAndMode.getMode(q, _e);
        let ft = ue.get(Rt, gt);
        if (!Z.has(Rt, gt) && Pe || !ft || ft.isInvalidated || zt && !Gc(Rt) && Ut(ft)) {
          const _n = ft;
          ft = Ze.resolve(Rt, gt), e.onDiscoveredSymlink && T7e(ft) && e.onDiscoveredSymlink(), ue.set(Rt, gt, ft), On(Rt, ft, Er, Xe), _n && $i(_n, Er, Xe), cn && i && !Re(_n, ft) && (i.push(Er), cn = !1);
        } else {
          const _n = ((Sn = e.getCompilerHost) == null ? void 0 : Sn.call(e)) || e;
          if (Hv(he, _n) && !Z.has(Rt, gt)) {
            const $n = Xe(ft);
            ha(_n, j === H ? $n != null && $n.resolvedFileName ? $n.packageId ? _.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : _.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2 : _.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved : $n != null && $n.resolvedFileName ? $n.packageId ? _.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : _.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2 : _.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved, Rt, pt, $n == null ? void 0 : $n.resolvedFileName, ($n == null ? void 0 : $n.packageId) && oT($n.packageId));
          }
        }
        D.assert(ft !== void 0 && !ft.isInvalidated), Z.set(Rt, gt, !0), mt.push(ft);
      }
      return He == null || He.forEach((q) => Z.set(Ze.nameAndMode.getName(q), Ze.nameAndMode.getMode(q, _e), !0)), ue.size() !== Z.size() && ue.forEach((q, Rt, gt) => {
        Z.has(Rt, gt) || ($i(q, Er, Xe), ue.delete(Rt, gt));
      }), mt;
      function Re(q, Rt) {
        if (q === Rt)
          return !0;
        if (!q || !Rt)
          return !1;
        const gt = Xe(q), ft = Xe(Rt);
        return gt === ft ? !0 : !gt || !ft ? !1 : gt.resolvedFileName === ft.resolvedFileName;
      }
    }
    function Ct(Ce, pt, _e, ie, he, j) {
      var He;
      return st({
        entries: Ce,
        containingFile: pt,
        containingSourceFile: he,
        redirectedReference: _e,
        options: ie,
        reusedNames: j,
        perFileCache: X,
        loader: cF(pt, _e, ie, ((He = e.getCompilerHost) == null ? void 0 : He.call(e)) || e, Y),
        getResolutionWithResolvedFileName: Te,
        shouldRetryResolution: (Ze) => Ze.resolvedTypeReferenceDirective === void 0
      });
    }
    function Et(Ce, pt, _e, ie, he, j) {
      return st({
        entries: Ce,
        containingFile: pt,
        containingSourceFile: he,
        redirectedReference: _e,
        options: ie,
        reusedNames: j,
        perFileCache: H,
        loader: Fe(pt, _e, ie),
        getResolutionWithResolvedFileName: ve,
        shouldRetryResolution: (He) => !He.resolvedModule || !sO(He.resolvedModule.extension),
        logChanges: r
      });
    }
    function Vt(Ce, pt) {
      const _e = e.toPath(pt), ie = H.get(_e), he = ie == null ? void 0 : ie.get(Ce, void 0);
      return he && !he.isInvalidated ? he : We(Ce, pt, e.getCompilationSettings());
    }
    function tt(Ce) {
      return ic(Ce, "/node_modules/@types");
    }
    function at(Ce, pt) {
      if (ee(W, pt)) {
        Ce = km(Ce) ? Jo(Ce) : Pa(Ce, G());
        const _e = pt.split(Ms), ie = Ce.split(Ms);
        return D.assert(ie.length === _e.length, `FailedLookup: ${Ce} failedLookupLocationPath: ${pt}`), _e.length > ce + 1 ? {
          dir: ie.slice(0, ce + 1).join(Ms),
          dirPath: _e.slice(0, ce + 1).join(Ms)
        } : {
          dir: ae,
          dirPath: W,
          nonRecursive: !1
        };
      }
      return sn(mi(Pa(Ce, G())), mi(pt));
    }
    function sn(Ce, pt) {
      for (; Gx(pt); )
        Ce = mi(Ce), pt = mi(pt);
      if (vM(pt))
        return G8(mi(pt)) ? { dir: Ce, dirPath: pt } : void 0;
      let _e = !0, ie, he;
      if (W !== void 0)
        for (; !ee(pt, W); ) {
          const j = mi(pt);
          if (j === pt)
            break;
          _e = !1, ie = pt, he = Ce, pt = j, Ce = mi(Ce);
        }
      return G8(pt) ? { dir: he || Ce, dirPath: ie || pt, nonRecursive: _e } : void 0;
    }
    function Qt(Ce) {
      return Tc(Ce, P);
    }
    function On(Ce, pt, _e, ie) {
      var he, j;
      if (pt.refCount)
        pt.refCount++, D.assertIsDefined(pt.files);
      else {
        pt.refCount = 1, D.assert(!((he = pt.files) != null && he.size)), Gc(Ce) ? jn(pt) : c.add(Ce, pt);
        const He = ie(pt);
        if (He && He.resolvedFileName) {
          const Ze = e.toPath(He.resolvedFileName);
          let Xe = y.get(Ze);
          Xe || y.set(Ze, Xe = /* @__PURE__ */ new Set()), Xe.add(pt);
        }
      }
      ((j = pt.files) != null ? j : pt.files = /* @__PURE__ */ new Set()).add(_e);
    }
    function jn(Ce) {
      D.assert(!!Ce.refCount);
      const { failedLookupLocations: pt, affectingLocations: _e } = Ce;
      if (!(pt != null && pt.length) && !(_e != null && _e.length))
        return;
      pt != null && pt.length && f.add(Ce);
      let ie = !1;
      if (pt) {
        for (const he of pt) {
          const j = e.toPath(he), He = at(he, j);
          if (He) {
            const { dir: Ze, dirPath: Xe, nonRecursive: Ut } = He;
            if (!Qt(j)) {
              const cn = de.get(j) || 0;
              de.set(j, cn + 1);
            }
            Xe === W ? (D.assert(!Ut), ie = !0) : Ii(Ze, Xe, Ut);
          }
        }
        ie && Ii(ae, W, !0);
      }
      In(Ce, !(pt != null && pt.length));
    }
    function In(Ce, pt) {
      D.assert(!!Ce.refCount);
      const { affectingLocations: _e } = Ce;
      if (_e != null && _e.length) {
        pt && d.add(Ce);
        for (const ie of _e)
          Zt(ie, !0);
      }
    }
    function Zt(Ce, pt) {
      const _e = ye.get(Ce);
      if (_e) {
        pt ? _e.resolutions++ : _e.files++;
        return;
      }
      let ie = Ce;
      if (e.realpath && (ie = e.realpath(Ce), Ce !== ie)) {
        const Ze = ye.get(ie);
        if (Ze) {
          pt ? Ze.resolutions++ : Ze.files++, Ze.paths.add(Ce), ye.set(Ce, Ze);
          return;
        }
      }
      const he = /* @__PURE__ */ new Set();
      he.add(ie);
      let j = G8(e.toPath(ie)) ? e.watchAffectingFileLocation(ie, (Ze, Xe) => {
        V == null || V.addOrDeleteFile(Ze, e.toPath(ie), Xe);
        const Ut = te.getPackageJsonInfoCache().getInternalMap();
        he.forEach((cn) => {
          He.resolutions && (L ?? (L = /* @__PURE__ */ new Set())).add(cn), He.files && (A ?? (A = /* @__PURE__ */ new Set())).add(cn), Ut == null || Ut.delete(e.toPath(cn));
        }), e.scheduleInvalidateResolutionsOfFailedLookupLocations();
      }) : jC;
      const He = {
        watcher: j !== jC ? {
          close: () => {
            j.close(), j = jC;
          }
        } : j,
        resolutions: pt ? 1 : 0,
        files: pt ? 0 : 1,
        paths: he
      };
      ye.set(ie, He), Ce !== ie && (ye.set(Ce, He), he.add(Ce));
    }
    function _r(Ce, pt) {
      const _e = e.getCurrentProgram();
      !_e || !_e.getTypeChecker().tryFindAmbientModuleWithoutAugmentations(pt) ? Ce.forEach(jn) : Ce.forEach((ie) => In(ie, !0));
    }
    function Ii(Ce, pt, _e) {
      const ie = re.get(pt);
      ie ? (D.assert(!!_e == !!ie.nonRecursive), ie.refCount++) : re.set(pt, { watcher: Or(Ce, pt, _e), refCount: 1, nonRecursive: _e });
    }
    function $i(Ce, pt, _e) {
      if (D.checkDefined(Ce.files).delete(pt), Ce.refCount--, Ce.refCount)
        return;
      const ie = _e(Ce);
      if (ie && ie.resolvedFileName) {
        const He = e.toPath(ie.resolvedFileName), Ze = y.get(He);
        Ze != null && Ze.delete(Ce) && !Ze.size && y.delete(He);
      }
      const { failedLookupLocations: he, affectingLocations: j } = Ce;
      if (f.delete(Ce)) {
        let He = !1;
        for (const Ze of he) {
          const Xe = e.toPath(Ze), Ut = at(Ze, Xe);
          if (Ut) {
            const { dirPath: cn } = Ut, Sn = de.get(Xe);
            Sn && (Sn === 1 ? de.delete(Xe) : (D.assert(Sn > 1), de.set(Xe, Sn - 1))), cn === W ? He = !0 : Qi(cn);
          }
        }
        He && Qi(W);
      } else
        j != null && j.length && d.delete(Ce);
      if (j)
        for (const He of j) {
          const Ze = ye.get(He);
          Ze.resolutions--;
        }
    }
    function Qi(Ce) {
      const pt = re.get(Ce);
      pt.refCount--;
    }
    function Or(Ce, pt, _e) {
      return e.watchDirectoryOfFailedLookupLocation(Ce, (ie) => {
        const he = e.toPath(ie);
        V && V.addOrDeleteFileOrDirectory(ie, he), Pi(he, pt === he);
      }, _e ? 0 : 1);
    }
    function At(Ce, pt, _e) {
      const ie = Ce.get(pt);
      ie && (ie.forEach((he) => $i(he, pt, _e)), Ce.delete(pt));
    }
    function vn(Ce) {
      if (!cc(Ce, ".json"))
        return;
      const pt = e.getCurrentProgram();
      if (!pt)
        return;
      const _e = pt.getResolvedProjectReferenceByPath(Ce);
      _e && _e.commandLine.fileNames.forEach((ie) => Wt(e.toPath(ie)));
    }
    function Wt(Ce) {
      At(H, Ce, ve), At(X, Ce, Te);
    }
    function fn(Ce, pt) {
      if (!Ce)
        return !1;
      let _e = !1;
      return Ce.forEach((ie) => {
        if (!(ie.isInvalidated || !pt(ie))) {
          ie.isInvalidated = _e = !0;
          for (const he of D.checkDefined(ie.files))
            (o ?? (o = /* @__PURE__ */ new Set())).add(he), E = E || ic(he, gF);
        }
      }), _e;
    }
    function rr(Ce) {
      Wt(Ce);
      const pt = E;
      fn(y.get(Ce), n1) && E && !pt && e.onChangedAutomaticTypeDirectiveNames();
    }
    function cr(Ce) {
      D.assert(s === Ce || s === void 0), s = Ce;
    }
    function Pi(Ce, pt) {
      if (pt)
        (k || (k = /* @__PURE__ */ new Set())).add(Ce);
      else {
        const _e = pY(Ce);
        if (!_e || (Ce = _e, e.fileIsOpen(Ce)))
          return !1;
        const ie = mi(Ce);
        if (tt(Ce) || vM(Ce) || tt(ie) || vM(ie))
          (I || (I = /* @__PURE__ */ new Set())).add(Ce), (O || (O = /* @__PURE__ */ new Set())).add(Ce);
        else {
          if (!Qt(Ce) && !de.has(Ce) || Yhe(e.getCurrentProgram(), Ce))
            return !1;
          (I || (I = /* @__PURE__ */ new Set())).add(Ce);
          const he = NK(Ce);
          he && (O || (O = /* @__PURE__ */ new Set())).add(he);
        }
      }
      e.scheduleInvalidateResolutionsOfFailedLookupLocations();
    }
    function hi() {
      var Ce;
      let pt = !1;
      if (A && ((Ce = e.getCurrentProgram()) == null || Ce.getSourceFiles().forEach((ie) => {
        kt(ie.packageJsonLocations, (he) => A.has(he)) && ((o ?? (o = /* @__PURE__ */ new Set())).add(ie.path), pt = !0);
      }), A = void 0), !I && !O && !k && !L)
        return pt;
      pt = fn(f, Rn) || pt;
      const _e = te.getPackageJsonInfoCache().getInternalMap();
      return _e && (I || O || k) && _e.forEach((ie, he) => an(he) ? _e.delete(he) : void 0), I = void 0, O = void 0, k = void 0, pt = fn(d, Pn) || pt, L = void 0, pt;
    }
    function Rn(Ce) {
      var pt;
      return Pn(Ce) ? !0 : !I && !O && !k ? !1 : (pt = Ce.failedLookupLocations) == null ? void 0 : pt.some((_e) => an(e.toPath(_e)));
    }
    function an(Ce) {
      return (I == null ? void 0 : I.has(Ce)) || dn((O == null ? void 0 : O.keys()) || [], (pt) => xa(Ce, pt) ? !0 : void 0) || dn((k == null ? void 0 : k.keys()) || [], (pt) => ee(pt, Ce) ? !0 : void 0);
    }
    function Pn(Ce) {
      var pt;
      return !!L && ((pt = Ce.affectingLocations) == null ? void 0 : pt.some((_e) => L.has(_e)));
    }
    function Ar() {
      Zf(me, Um);
    }
    function Hr(Ce, pt) {
      if (ee(W, pt))
        return W;
      const _e = sn(Ce, pt);
      return _e && re.has(_e.dirPath) ? _e.dirPath : void 0;
    }
    function we(Ce, pt) {
      return e.watchTypeRootsDirectory(pt, (_e) => {
        const ie = e.toPath(_e);
        V && V.addOrDeleteFileOrDirectory(_e, ie), E = !0, e.onChangedAutomaticTypeDirectiveNames();
        const he = Hr(pt, Ce);
        he && Pi(ie, he === ie);
      }, 1);
    }
    function yt() {
      const Ce = e.getCompilationSettings();
      if (Ce.types) {
        Ar();
        return;
      }
      const pt = m8(Ce, { directoryExists: Nt, getCurrentDirectory: G });
      pt ? rC(me, e1(pt, (_e) => e.toPath(_e)), {
        createNewValue: we,
        onDeleteValue: Um
      }) : Ar();
    }
    function Nt(Ce) {
      const pt = mi(mi(Ce)), _e = e.toPath(pt);
      return _e === W || G8(_e);
    }
  }
  function T7e(e) {
    var t, r;
    return !!((t = e.resolvedModule) != null && t.originalPath || (r = e.resolvedTypeReferenceDirective) != null && r.originalPath);
  }
  var S7e = C({
    "src/compiler/resolutionCache.ts"() {
      Oa(), Oa();
    }
  });
  function U8(e, t) {
    const r = e === $c && AY ? AY : {
      getCurrentDirectory: () => e.getCurrentDirectory(),
      getNewLine: () => e.newLine,
      getCanonicalFileName: ru(e.useCaseSensitiveFileNames)
    };
    if (!t)
      return (o) => e.write(VX(o, r));
    const i = new Array(1);
    return (o) => {
      i[0] = o, e.write(rge(i, r) + r.getNewLine()), i[0] = void 0;
    };
  }
  function xge(e, t, r) {
    return e.clearScreen && !r.preserveWatchOutput && !r.extendedDiagnostics && !r.diagnostics && jr(LF, t.code) ? (e.clearScreen(), !0) : !1;
  }
  function x7e(e, t) {
    return jr(LF, e.code) ? t + t : t;
  }
  function V8(e) {
    return e.now ? e.now().toLocaleTimeString("en-US", { timeZone: "UTC" }).replace(" ", " ") : (/* @__PURE__ */ new Date()).toLocaleTimeString();
  }
  function Age(e, t) {
    return t ? (r, i, o) => {
      xge(e, r, o);
      let s = `[${W1(V8(e), "\x1B[90m")}] `;
      s += `${Wv(r.messageText, e.newLine)}${i + i}`, e.write(s);
    } : (r, i, o) => {
      let s = "";
      xge(e, r, o) || (s += i), s += `${V8(e)} - `, s += `${Wv(r.messageText, e.newLine)}${x7e(r, i)}`, e.write(s);
    };
  }
  function A7e(e, t, r, i, o, s) {
    const c = o;
    c.onUnRecoverableConfigFileDiagnostic = (d) => Rge(o, s, d);
    const f = QO(e, t, c, r, i);
    return c.onUnRecoverableConfigFileDiagnostic = void 0, f;
  }
  function TF(e) {
    return Bc(e, (t) => t.category === 1);
  }
  function SF(e) {
    return lr(e, (r) => r.category === 1).map((r) => {
      if (r.file !== void 0)
        return `${r.file.fileName}`;
    }).map((r) => {
      if (r === void 0)
        return;
      const i = nn(e, (o) => o.file !== void 0 && o.file.fileName === r);
      if (i !== void 0) {
        const { line: o } = ol(i.file, i.start);
        return {
          fileName: r,
          line: o + 1
        };
      }
    });
  }
  function mY(e) {
    return e === 1 ? _.Found_1_error_Watching_for_file_changes : _.Found_0_errors_Watching_for_file_changes;
  }
  function Cge(e, t) {
    const r = W1(":" + e.line, "\x1B[90m");
    return fI(e.fileName) && fI(t) ? wm(t, e.fileName, !1) + r : e.fileName + r;
  }
  function Lge(e, t, r, i) {
    if (e === 0)
      return "";
    const o = t.filter((y) => y !== void 0), s = o.map((y) => `${y.fileName}:${y.line}`).filter((y, h, E) => E.indexOf(y) === h), c = o[0] && Cge(o[0], i.getCurrentDirectory()), f = e === 1 ? Fs(t[0] !== void 0 ? _.Found_1_error_in_1 : _.Found_1_error, e, c) : Fs(s.length === 0 ? _.Found_0_errors : s.length === 1 ? _.Found_0_errors_in_the_same_file_starting_at_Colon_1 : _.Found_0_errors_in_1_files, e, s.length === 1 ? c : s.length), d = s.length > 1 ? C7e(o, i) : "";
    return `${r}${Wv(f.messageText, r)}${r}${r}${d}`;
  }
  function C7e(e, t) {
    const r = e.filter((E, A, L) => A === L.findIndex((I) => (I == null ? void 0 : I.fileName) === (E == null ? void 0 : E.fileName)));
    if (r.length === 0)
      return "";
    const i = (E) => Math.log(E) * Math.LOG10E + 1, o = r.map((E) => [E, Bc(e, (A) => A.fileName === E.fileName)]), s = o.reduce((E, A) => Math.max(E, A[1] || 0), 0), c = _.Errors_Files.message, f = c.split(" ")[0].length, d = Math.max(f, i(s)), y = Math.max(i(s) - f, 0);
    let h = "";
    return h += " ".repeat(y) + c + `
`, o.forEach((E) => {
      const [A, L] = E, I = Math.log(L) * Math.LOG10E + 1 | 0, O = I < d ? " ".repeat(d - I) : "", k = Cge(A, t.getCurrentDirectory());
      h += `${O}${L}  ${k}
`;
    }), h;
  }
  function Ige(e) {
    return !!e.getState;
  }
  function hY(e, t) {
    const r = e.getCompilerOptions();
    r.explainFiles ? kge(Ige(e) ? e.getProgram() : e, t) : (r.listFiles || r.listFilesOnly) && ze(e.getSourceFiles(), (i) => {
      t(i.fileName);
    });
  }
  function kge(e, t) {
    var r, i;
    const o = e.getFileIncludeReasons(), s = (c) => _I(c, e.getCurrentDirectory(), e.getCanonicalFileName);
    for (const c of e.getSourceFiles())
      t(`${jx(c, s)}`), (r = o.get(c.path)) == null || r.forEach((f) => t(`  ${bY(e, f, s).messageText}`)), (i = gY(c, s)) == null || i.forEach((f) => t(`  ${f.messageText}`));
  }
  function gY(e, t) {
    var r;
    let i;
    if (e.path !== e.resolvedPath && (i ?? (i = [])).push(Na(void 0, _.File_is_output_of_project_reference_source_0, jx(e.originalFileName, t))), e.redirectInfo && (i ?? (i = [])).push(Na(void 0, _.File_redirects_to_file_0, jx(e.redirectInfo.redirectTarget, t))), sf(e))
      switch (e.impliedNodeFormat) {
        case 99:
          e.packageJsonScope && (i ?? (i = [])).push(Na(void 0, _.File_is_ECMAScript_module_because_0_has_field_type_with_value_module, jx(qo(e.packageJsonLocations), t)));
          break;
        case 1:
          e.packageJsonScope ? (i ?? (i = [])).push(Na(void 0, e.packageJsonScope.contents.packageJsonContent.type ? _.File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module : _.File_is_CommonJS_module_because_0_does_not_have_field_type, jx(qo(e.packageJsonLocations), t))) : (r = e.packageJsonLocations) != null && r.length && (i ?? (i = [])).push(Na(void 0, _.File_is_CommonJS_module_because_package_json_was_not_found));
          break;
      }
    return i;
  }
  function yY(e, t) {
    var r;
    const i = e.getCompilerOptions().configFile;
    if (!((r = i == null ? void 0 : i.configFileSpecs) != null && r.validatedFilesSpec))
      return;
    const o = e.getCanonicalFileName(t), s = mi(Pa(i.fileName, e.getCurrentDirectory()));
    return nn(i.configFileSpecs.validatedFilesSpec, (c) => e.getCanonicalFileName(Pa(c, s)) === o);
  }
  function vY(e, t) {
    var r, i;
    const o = e.getCompilerOptions().configFile;
    if (!((r = o == null ? void 0 : o.configFileSpecs) != null && r.validatedIncludeSpecs))
      return;
    if (o.configFileSpecs.isDefaultIncludeSpec)
      return !0;
    const s = cc(t, ".json"), c = mi(Pa(o.fileName, e.getCurrentDirectory())), f = e.useCaseSensitiveFileNames();
    return nn((i = o == null ? void 0 : o.configFileSpecs) == null ? void 0 : i.validatedIncludeSpecs, (d) => {
      if (s && !ic(d, ".json"))
        return !1;
      const y = _q(d, c, "files");
      return !!y && Pv(`(${y})$`, f).test(t);
    });
  }
  function bY(e, t, r) {
    var i, o;
    const s = e.getCompilerOptions();
    if (rb(t)) {
      const c = ow((y) => e.getSourceFileByPath(y), t), f = UC(c) ? c.file.text.substring(c.pos, c.end) : `"${c.text}"`;
      let d;
      switch (D.assert(UC(c) || t.kind === 3, "Only synthetic references are imports"), t.kind) {
        case 3:
          UC(c) ? d = c.packageId ? _.Imported_via_0_from_file_1_with_packageId_2 : _.Imported_via_0_from_file_1 : c.text === $0 ? d = c.packageId ? _.Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions : _.Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions : d = c.packageId ? _.Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions : _.Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions;
          break;
        case 4:
          D.assert(!c.packageId), d = _.Referenced_via_0_from_file_1;
          break;
        case 5:
          d = c.packageId ? _.Type_library_referenced_via_0_from_file_1_with_packageId_2 : _.Type_library_referenced_via_0_from_file_1;
          break;
        case 7:
          D.assert(!c.packageId), d = _.Library_referenced_via_0_from_file_1;
          break;
        default:
          D.assertNever(t);
      }
      return Na(void 0, d, f, jx(c.file, r), c.packageId && oT(c.packageId));
    }
    switch (t.kind) {
      case 0:
        if (!((i = s.configFile) != null && i.configFileSpecs))
          return Na(void 0, _.Root_file_specified_for_compilation);
        const c = Pa(e.getRootFileNames()[t.index], e.getCurrentDirectory());
        if (yY(e, c))
          return Na(void 0, _.Part_of_files_list_in_tsconfig_json);
        const d = vY(e, c);
        return Ha(d) ? Na(void 0, _.Matched_by_include_pattern_0_in_1, d, jx(s.configFile, r)) : Na(void 0, d ? _.Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk : _.Root_file_specified_for_compilation);
      case 1:
      case 2:
        const y = t.kind === 2, h = D.checkDefined((o = e.getResolvedProjectReferences()) == null ? void 0 : o[t.index]);
        return Na(void 0, qs(s) ? y ? _.Output_from_referenced_project_0_included_because_1_specified : _.Source_from_referenced_project_0_included_because_1_specified : y ? _.Output_from_referenced_project_0_included_because_module_is_specified_as_none : _.Source_from_referenced_project_0_included_because_module_is_specified_as_none, jx(h.sourceFile.fileName, r), s.outFile ? "--outFile" : "--out");
      case 8:
        return Na(void 0, s.types ? t.packageId ? _.Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1 : _.Entry_point_of_type_library_0_specified_in_compilerOptions : t.packageId ? _.Entry_point_for_implicit_type_library_0_with_packageId_1 : _.Entry_point_for_implicit_type_library_0, t.typeReference, t.packageId && oT(t.packageId));
      case 6:
        if (t.index !== void 0)
          return Na(void 0, _.Library_0_specified_in_compilerOptions, s.lib[t.index]);
        const E = of(d8.type, (A, L) => A === ts(s) ? L : void 0);
        return Na(void 0, E ? _.Default_library_for_target_0 : _.Default_library, E);
      default:
        D.assertNever(t);
    }
  }
  function jx(e, t) {
    const r = Ha(e) ? e : e.fileName;
    return t ? t(r) : r;
  }
  function xF(e, t, r, i, o, s, c, f) {
    const d = !!e.getCompilerOptions().listFilesOnly, y = e.getConfigFileParsingDiagnostics().slice(), h = y.length;
    Ti(y, e.getSyntacticDiagnostics(void 0, s)), y.length === h && (Ti(y, e.getOptionsDiagnostics(s)), d || (Ti(y, e.getGlobalDiagnostics(s)), y.length === h && Ti(y, e.getSemanticDiagnostics(void 0, s))));
    const E = d ? { emitSkipped: !0, diagnostics: rt } : e.emit(void 0, o, s, c, f), { emittedFiles: A, diagnostics: L } = E;
    Ti(y, L);
    const I = TA(y);
    if (I.forEach(t), r) {
      const O = e.getCurrentDirectory();
      ze(A, (k) => {
        const G = Pa(k, O);
        r(`TSFILE: ${G}`);
      }), hY(e, r);
    }
    return i && i(TF(I), SF(I)), {
      emitResult: E,
      diagnostics: I
    };
  }
  function wge(e, t, r, i, o, s, c, f) {
    const { emitResult: d, diagnostics: y } = xF(e, t, r, i, o, s, c, f);
    return d.emitSkipped && y.length > 0 ? 1 : y.length > 0 ? 2 : 0;
  }
  function EY(e = $c, t) {
    return {
      onWatchStatusChange: t || Age(e),
      watchFile: Uo(e, e.watchFile) || j8,
      watchDirectory: Uo(e, e.watchDirectory) || j8,
      setTimeout: Uo(e, e.setTimeout) || so,
      clearTimeout: Uo(e, e.clearTimeout) || so
    };
  }
  function TY(e, t) {
    const r = e.trace ? t.extendedDiagnostics ? 2 : t.diagnostics ? 1 : 0 : 0, i = r !== 0 ? (s) => e.trace(s) : so, o = $he(e, r, i);
    return o.writeLog = i, o;
  }
  function SY(e, t, r = e) {
    const i = e.useCaseSensitiveFileNames(), o = {
      getSourceFile: BX((s, c) => c ? e.readFile(s, c) : o.readFile(s), t, void 0),
      getDefaultLibLocation: Uo(e, e.getDefaultLibLocation),
      getDefaultLibFileName: (s) => e.getDefaultLibFileName(s),
      writeFile: GX((s, c, f) => e.writeFile(s, c, f), (s) => e.createDirectory(s), (s) => e.directoryExists(s)),
      getCurrentDirectory: Ed(() => e.getCurrentDirectory()),
      useCaseSensitiveFileNames: () => i,
      getCanonicalFileName: ru(i),
      getNewLine: () => X0(t()),
      fileExists: (s) => e.fileExists(s),
      readFile: (s) => e.readFile(s),
      trace: Uo(e, e.trace),
      directoryExists: Uo(r, r.directoryExists),
      getDirectories: Uo(r, r.getDirectories),
      realpath: Uo(e, e.realpath),
      getEnvironmentVariable: Uo(e, e.getEnvironmentVariable) || (() => ""),
      createHash: Uo(e, e.createHash),
      readDirectory: Uo(e, e.readDirectory),
      storeFilesChangingSignatureDuringEmit: e.storeFilesChangingSignatureDuringEmit
    };
    return o;
  }
  function AF(e, t) {
    if (t.match(oX)) {
      let r = t.length, i = r;
      for (let o = r - 1; o >= 0; o--) {
        const s = t.charCodeAt(o);
        switch (s) {
          case 10:
            o && t.charCodeAt(o - 1) === 13 && o--;
          case 13:
            break;
          default:
            if (s < 127 || !hu(s)) {
              i = o;
              continue;
            }
            break;
        }
        const c = t.substring(i, r);
        if (c.match(q5)) {
          t = t.substring(0, i);
          break;
        } else if (!c.match(J5))
          break;
        r = i;
      }
    }
    return (e.createHash || AR)(t);
  }
  function CF(e) {
    const t = e.getSourceFile;
    e.getSourceFile = (...r) => {
      const i = t.call(e, ...r);
      return i && (i.version = AF(e, i.text)), i;
    };
  }
  function xY(e, t) {
    const r = Ed(() => mi(Jo(e.getExecutingFilePath())));
    return {
      useCaseSensitiveFileNames: () => e.useCaseSensitiveFileNames,
      getNewLine: () => e.newLine,
      getCurrentDirectory: Ed(() => e.getCurrentDirectory()),
      getDefaultLibLocation: r,
      getDefaultLibFileName: (i) => Bi(r(), AM(i)),
      fileExists: (i) => e.fileExists(i),
      readFile: (i, o) => e.readFile(i, o),
      directoryExists: (i) => e.directoryExists(i),
      getDirectories: (i) => e.getDirectories(i),
      readDirectory: (i, o, s, c, f) => e.readDirectory(i, o, s, c, f),
      realpath: Uo(e, e.realpath),
      getEnvironmentVariable: Uo(e, e.getEnvironmentVariable),
      trace: (i) => e.write(i + e.newLine),
      createDirectory: (i) => e.createDirectory(i),
      writeFile: (i, o, s) => e.writeFile(i, o, s),
      createHash: Uo(e, e.createHash),
      createProgram: t || _Y,
      storeFilesChangingSignatureDuringEmit: e.storeFilesChangingSignatureDuringEmit,
      now: Uo(e, e.now)
    };
  }
  function Dge(e = $c, t, r, i) {
    const o = (c) => e.write(c + e.newLine), s = xY(e, t);
    return Cj(s, EY(e, i)), s.afterProgramCreate = (c) => {
      const f = c.getCompilerOptions(), d = X0(f);
      xF(c, r, o, (y) => s.onWatchStatusChange(Fs(mY(y), y), d, f, y));
    }, s;
  }
  function Rge(e, t, r) {
    t(r), e.exit(1);
  }
  function Nge({
    configFileName: e,
    optionsToExtend: t,
    watchOptionsToExtend: r,
    extraFileExtensions: i,
    system: o,
    createProgram: s,
    reportDiagnostic: c,
    reportWatchStatus: f
  }) {
    const d = c || U8(o), y = Dge(o, s, d, f);
    return y.onUnRecoverableConfigFileDiagnostic = (h) => Rge(o, d, h), y.configFileName = e, y.optionsToExtend = t, y.watchOptionsToExtend = r, y.extraFileExtensions = i, y;
  }
  function Oge({
    rootFiles: e,
    options: t,
    watchOptions: r,
    projectReferences: i,
    system: o,
    createProgram: s,
    reportDiagnostic: c,
    reportWatchStatus: f
  }) {
    const d = Dge(o, s, c || U8(o), f);
    return d.rootFiles = e, d.options = t, d.watchOptions = r, d.projectReferences = i, d;
  }
  function L7e(e) {
    const t = e.system || $c, r = e.host || (e.host = CY(e.options, t)), i = Pge(e), o = wge(i, e.reportDiagnostic || U8(t), (s) => r.trace && r.trace(s), e.reportErrorSummary || e.options.pretty ? (s, c) => t.write(Lge(s, c, t.newLine, r)) : void 0);
    return e.afterProgramEmitAndDiagnostics && e.afterProgramEmitAndDiagnostics(i), o;
  }
  var AY, LF, jC, j8, E_, I7e = C({
    "src/compiler/watch.ts"() {
      Oa(), AY = $c ? {
        getCurrentDirectory: () => $c.getCurrentDirectory(),
        getNewLine: () => $c.newLine,
        getCanonicalFileName: ru($c.useCaseSensitiveFileNames)
      } : void 0, LF = [
        _.Starting_compilation_in_watch_mode.code,
        _.File_change_detected_Starting_incremental_compilation.code
      ], jC = { close: so }, j8 = () => jC, E_ = {
        ConfigFile: "Config file",
        ExtendedConfigFile: "Extended config file",
        SourceFile: "Source file",
        MissingFile: "Missing file",
        WildcardDirectory: "Wild card directory",
        FailedLookupLocations: "Failed Lookup Locations",
        AffectingFileLocation: "File location affecting resolution",
        TypeRoots: "Type roots",
        ConfigFileOfReferencedProject: "Config file of referened project",
        ExtendedConfigOfReferencedProject: "Extended config file of referenced project",
        WildcardDirectoryOfReferencedProject: "Wild card directory of referenced project",
        PackageJson: "package.json file",
        ClosedScriptInfo: "Closed Script info",
        ConfigFileForInferredRoot: "Config file for the inferred project root",
        NodeModules: "node_modules for closed script infos and package.jsons affecting module specifier cache",
        MissingSourceMapFile: "Missing source map file",
        NoopConfigFileForInferredRoot: "Noop Config file for the inferred project root",
        MissingGeneratedFile: "Missing generated file",
        NodeModulesForModuleSpecifierCache: "node_modules for module specifier cache invalidation"
      };
    }
  });
  function IF(e, t) {
    const r = Iy(e);
    if (!r)
      return;
    let i;
    if (t.getBuildInfo)
      i = t.getBuildInfo(r, e.configFilePath);
    else {
      const o = t.readFile(r);
      if (!o)
        return;
      i = rF(r, o);
    }
    if (!(!i || i.version !== Se || !i.program))
      return Tge(i, r, t);
  }
  function CY(e, t = $c) {
    const r = UX(e, void 0, t);
    return r.createHash = Uo(t, t.createHash), r.storeFilesChangingSignatureDuringEmit = t.storeFilesChangingSignatureDuringEmit, CF(r), O8(r, (i) => zs(i, r.getCurrentDirectory(), r.getCanonicalFileName)), r;
  }
  function Pge({
    rootNames: e,
    options: t,
    configFileParsingDiagnostics: r,
    projectReferences: i,
    host: o,
    createProgram: s
  }) {
    o = o || CY(t), s = s || _Y;
    const c = IF(t, o);
    return s(e, t, o, c, r, i);
  }
  function k7e(e, t, r, i, o, s, c, f) {
    return Va(e) ? Oge({
      rootFiles: e,
      options: t,
      watchOptions: f,
      projectReferences: c,
      system: r,
      createProgram: i,
      reportDiagnostic: o,
      reportWatchStatus: s
    }) : Nge({
      configFileName: e,
      optionsToExtend: t,
      watchOptionsToExtend: c,
      extraFileExtensions: f,
      system: r,
      createProgram: i,
      reportDiagnostic: o,
      reportWatchStatus: s
    });
  }
  function w7e(e) {
    let t, r, i, o, s, c, f, d, y = e.extendedConfigCache, h = !1;
    const E = /* @__PURE__ */ new Map();
    let A, L = !1;
    const I = e.useCaseSensitiveFileNames(), O = e.getCurrentDirectory(), { configFileName: k, optionsToExtend: G = {}, watchOptionsToExtend: V, extraFileExtensions: H, createProgram: te } = e;
    let { rootFiles: X, options: Y, watchOptions: P, projectReferences: de } = e, re, ye, ae = !1, W = !1;
    const ce = k === void 0 ? void 0 : Jhe(e, O, I), me = ce || e, ve = _F(e, me);
    let Te = sn();
    k && e.configFileParsingResult && (Pn(e.configFileParsingResult), Te = sn()), Qi(_.Starting_compilation_in_watch_mode), k && !e.configFileParsingResult && (Te = X0(G), D.assert(!X), an(), Te = sn()), D.assert(Y), D.assert(X);
    const { watchFile: ee, watchDirectory: Qe, writeLog: Ve } = TY(e, Y), Be = ru(I);
    Ve(`Current directory: ${O} CaseSensitiveFileNames: ${I}`);
    let qe;
    k && (qe = ee(k, rr, 2e3, P, E_.ConfigFile));
    const Oe = SY(e, () => Y, me);
    CF(Oe);
    const Me = Oe.getSourceFile;
    Oe.getSourceFile = (Ze, ...Xe) => Zt(Ze, Qt(Ze), ...Xe), Oe.getSourceFileByPath = Zt, Oe.getNewLine = () => Te, Oe.fileExists = In, Oe.onReleaseOldSourceFile = $i, Oe.onReleaseParsedCommandLine = we, Oe.toPath = Qt, Oe.getCompilationSettings = () => Y, Oe.useSourceOfProjectReferenceRedirect = Uo(e, e.useSourceOfProjectReferenceRedirect), Oe.watchDirectoryOfFailedLookupLocation = (Ze, Xe, Ut) => Qe(Ze, Xe, Ut, P, E_.FailedLookupLocations), Oe.watchAffectingFileLocation = (Ze, Xe) => ee(Ze, Xe, 2e3, P, E_.AffectingFileLocation), Oe.watchTypeRootsDirectory = (Ze, Xe, Ut) => Qe(Ze, Xe, Ut, P, E_.TypeRoots), Oe.getCachedDirectoryStructureHost = () => ce, Oe.scheduleInvalidateResolutionsOfFailedLookupLocations = vn, Oe.onInvalidatedResolution = fn, Oe.onChangedAutomaticTypeDirectiveNames = fn, Oe.fileIsOpen = t1, Oe.getCurrentProgram = Et, Oe.writeLog = Ve, Oe.getParsedCommandLine = Ar;
    const Ye = Sge(Oe, k ? mi(Pa(k, O)) : O, !1);
    Oe.resolveModuleNameLiterals = Uo(e, e.resolveModuleNameLiterals), Oe.resolveModuleNames = Uo(e, e.resolveModuleNames), !Oe.resolveModuleNameLiterals && !Oe.resolveModuleNames && (Oe.resolveModuleNameLiterals = Ye.resolveModuleNameLiterals.bind(Ye)), Oe.resolveTypeReferenceDirectiveReferences = Uo(e, e.resolveTypeReferenceDirectiveReferences), Oe.resolveTypeReferenceDirectives = Uo(e, e.resolveTypeReferenceDirectives), !Oe.resolveTypeReferenceDirectiveReferences && !Oe.resolveTypeReferenceDirectives && (Oe.resolveTypeReferenceDirectiveReferences = Ye.resolveTypeReferenceDirectiveReferences.bind(Ye)), Oe.getModuleResolutionCache = e.resolveModuleNameLiterals || e.resolveModuleNames ? Uo(e, e.getModuleResolutionCache) : () => Ye.getModuleResolutionCache();
    const Fe = !!e.resolveModuleNameLiterals || !!e.resolveTypeReferenceDirectiveReferences || !!e.resolveModuleNames || !!e.resolveTypeReferenceDirectives ? Uo(e, e.hasInvalidatedResolutions) || n1 : t1;
    return t = IF(Y, Oe), Vt(), ie(), k && j(Qt(k), Y, P, E_.ExtendedConfigFile), k ? { getCurrentProgram: Ct, getProgram: Pi, close: st } : { getCurrentProgram: Ct, getProgram: Pi, updateRootFileNames: at, close: st };
    function st() {
      At(), Ye.clear(), Zf(E, (Ze) => {
        Ze && Ze.fileWatcher && (Ze.fileWatcher.close(), Ze.fileWatcher = void 0);
      }), qe && (qe.close(), qe = void 0), y == null || y.clear(), y = void 0, d && (Zf(d, Km), d = void 0), o && (Zf(o, Km), o = void 0), i && (Zf(i, Um), i = void 0), f && (Zf(f, (Ze) => {
        var Xe;
        (Xe = Ze.watcher) == null || Xe.close(), Ze.watcher = void 0, Ze.watchedDirectories && Zf(Ze.watchedDirectories, Km), Ze.watchedDirectories = void 0;
      }), f = void 0);
    }
    function Ct() {
      return t;
    }
    function Et() {
      return t && t.getProgramOrUndefined();
    }
    function Vt() {
      Ve("Synchronizing program"), D.assert(Y), D.assert(X), At();
      const Ze = Ct();
      L && (Te = sn(), Ze && BW(Ze.getCompilerOptions(), Y) && Ye.clear());
      const Xe = Ye.createHasInvalidatedResolutions(Fe), {
        originalReadFile: Ut,
        originalFileExists: cn,
        originalDirectoryExists: Sn,
        originalCreateDirectory: Er,
        originalWriteFile: ue,
        readFileWithCache: mt
      } = O8(Oe, Qt);
      return JX(Et(), X, Y, (zt) => Ii(zt, mt), (zt) => Oe.fileExists(zt), Xe, Or, Ar, de) ? W && (h && Qi(_.File_change_detected_Starting_incremental_compilation), t = te(void 0, void 0, Oe, t, ye, de), W = !1) : (h && Qi(_.File_change_detected_Starting_incremental_compilation), tt(Xe)), h = !1, e.afterProgramCreate && Ze !== t && e.afterProgramCreate(t), Oe.readFile = Ut, Oe.fileExists = cn, Oe.directoryExists = Sn, Oe.createDirectory = Er, Oe.writeFile = ue, t;
    }
    function tt(Ze) {
      Ve("CreatingProgramWith::"), Ve(`  roots: ${JSON.stringify(X)}`), Ve(`  options: ${JSON.stringify(Y)}`), de && Ve(`  projectReferences: ${JSON.stringify(de)}`);
      const Xe = L || !Et();
      L = !1, W = !1, Ye.startCachingPerDirectoryResolution(), Oe.hasInvalidatedResolutions = Ze, Oe.hasChangedAutomaticTypeDirectiveNames = Or;
      const Ut = Et();
      if (t = te(X, Y, Oe, t, ye, de), Ye.finishCachingPerDirectoryResolution(t.getProgram(), Ut), Xhe(t.getProgram(), i || (i = /* @__PURE__ */ new Map()), pt), Xe && Ye.updateTypeRootsWatch(), A) {
        for (const cn of A)
          i.has(cn) || E.delete(cn);
        A = void 0;
      }
    }
    function at(Ze) {
      D.assert(!k, "Cannot update root file names with config file watch mode"), X = Ze, fn();
    }
    function sn() {
      return X0(Y || G);
    }
    function Qt(Ze) {
      return zs(Ze, O, Be);
    }
    function On(Ze) {
      return typeof Ze == "boolean";
    }
    function jn(Ze) {
      return typeof Ze.version == "boolean";
    }
    function In(Ze) {
      const Xe = Qt(Ze);
      return On(E.get(Xe)) ? !1 : me.fileExists(Ze);
    }
    function Zt(Ze, Xe, Ut, cn, Sn) {
      const Er = E.get(Xe);
      if (!On(Er)) {
        if (Er === void 0 || Sn || jn(Er)) {
          const ue = Me(Ze, Ut, cn);
          if (Er)
            ue ? (Er.sourceFile = ue, Er.version = ue.version, Er.fileWatcher || (Er.fileWatcher = yt(Xe, Ze, Nt, 250, P, E_.SourceFile))) : (Er.fileWatcher && Er.fileWatcher.close(), E.set(Xe, !1));
          else if (ue) {
            const mt = yt(Xe, Ze, Nt, 250, P, E_.SourceFile);
            E.set(Xe, { sourceFile: ue, version: ue.version, fileWatcher: mt });
          } else
            E.set(Xe, !1);
          return ue;
        }
        return Er.sourceFile;
      }
    }
    function _r(Ze) {
      const Xe = E.get(Ze);
      Xe !== void 0 && (On(Xe) ? E.set(Ze, { version: !1 }) : Xe.version = !1);
    }
    function Ii(Ze, Xe) {
      const Ut = E.get(Ze);
      if (!Ut)
        return;
      if (Ut.version)
        return Ut.version;
      const cn = Xe(Ze);
      return cn !== void 0 ? AF(Oe, cn) : void 0;
    }
    function $i(Ze, Xe, Ut) {
      const cn = E.get(Ze.resolvedPath);
      cn !== void 0 && (On(cn) ? (A || (A = [])).push(Ze.path) : cn.sourceFile === Ze && (cn.fileWatcher && cn.fileWatcher.close(), E.delete(Ze.resolvedPath), Ut || Ye.removeResolutionsOfFile(Ze.path)));
    }
    function Qi(Ze) {
      e.onWatchStatusChange && e.onWatchStatusChange(Fs(Ze), Te, Y || G);
    }
    function Or() {
      return Ye.hasChangedAutomaticTypeDirectiveNames();
    }
    function At() {
      return c ? (e.clearTimeout(c), c = void 0, !0) : !1;
    }
    function vn() {
      if (!e.setTimeout || !e.clearTimeout)
        return Ye.invalidateResolutionsOfFailedLookupLocations();
      const Ze = At();
      Ve(`Scheduling invalidateFailedLookup${Ze ? ", Cancelled earlier one" : ""}`), c = e.setTimeout(Wt, 250);
    }
    function Wt() {
      c = void 0, Ye.invalidateResolutionsOfFailedLookupLocations() && fn();
    }
    function fn() {
      !e.setTimeout || !e.clearTimeout || (s && e.clearTimeout(s), Ve("Scheduling update"), s = e.setTimeout(cr, 250));
    }
    function rr() {
      D.assert(!!k), r = 2, fn();
    }
    function cr() {
      s = void 0, h = !0, Pi();
    }
    function Pi() {
      switch (r) {
        case 1:
          zp.logStartUpdateProgram("PartialConfigReload"), hi();
          break;
        case 2:
          zp.logStartUpdateProgram("FullConfigReload"), Rn();
          break;
        default:
          zp.logStartUpdateProgram("SynchronizeProgram"), Vt();
          break;
      }
      return zp.logStopUpdateProgram("Done"), Ct();
    }
    function hi() {
      Ve("Reloading new file names and options"), D.assert(Y), D.assert(k), r = 0, X = a8(Y.configFile.configFileSpecs, Pa(mi(k), O), Y, ve, H), uK(X, Pa(k, O), Y.configFile.configFileSpecs, ye, ae) && (W = !0), Vt();
    }
    function Rn() {
      D.assert(k), Ve(`Reloading config file: ${k}`), r = 0, ce && ce.clearCache(), an(), L = !0, Vt(), ie(), j(Qt(k), Y, P, E_.ExtendedConfigFile);
    }
    function an() {
      D.assert(k), Pn(QO(k, G, ve, y || (y = /* @__PURE__ */ new Map()), V, H));
    }
    function Pn(Ze) {
      X = Ze.fileNames, Y = Ze.options, P = Ze.watchOptions, de = Ze.projectReferences, re = Ze.wildcardDirectories, ye = GT(Ze).slice(), ae = r8(Ze.raw), W = !0;
    }
    function Ar(Ze) {
      const Xe = Qt(Ze);
      let Ut = f == null ? void 0 : f.get(Xe);
      if (Ut) {
        if (!Ut.reloadLevel)
          return Ut.parsedCommandLine;
        if (Ut.parsedCommandLine && Ut.reloadLevel === 1 && !e.getParsedCommandLine) {
          Ve("Reloading new file names and options"), D.assert(Y);
          const Sn = a8(Ut.parsedCommandLine.options.configFile.configFileSpecs, Pa(mi(Ze), O), Y, ve);
          return Ut.parsedCommandLine = { ...Ut.parsedCommandLine, fileNames: Sn }, Ut.reloadLevel = void 0, Ut.parsedCommandLine;
        }
      }
      Ve(`Loading config file: ${Ze}`);
      const cn = e.getParsedCommandLine ? e.getParsedCommandLine(Ze) : Hr(Ze);
      return Ut ? (Ut.parsedCommandLine = cn, Ut.reloadLevel = void 0) : (f || (f = /* @__PURE__ */ new Map())).set(Xe, Ut = { parsedCommandLine: cn }), He(Ze, Xe, Ut), cn;
    }
    function Hr(Ze) {
      const Xe = ve.onUnRecoverableConfigFileDiagnostic;
      ve.onUnRecoverableConfigFileDiagnostic = so;
      const Ut = QO(Ze, void 0, ve, y || (y = /* @__PURE__ */ new Map()), V);
      return ve.onUnRecoverableConfigFileDiagnostic = Xe, Ut;
    }
    function we(Ze) {
      var Xe;
      const Ut = Qt(Ze), cn = f == null ? void 0 : f.get(Ut);
      cn && (f.delete(Ut), cn.watchedDirectories && Zf(cn.watchedDirectories, Km), (Xe = cn.watcher) == null || Xe.close(), Khe(Ut, d));
    }
    function yt(Ze, Xe, Ut, cn, Sn, Er) {
      return ee(Xe, (ue, mt) => Ut(ue, mt, Ze), cn, Sn, Er);
    }
    function Nt(Ze, Xe, Ut) {
      Ce(Ze, Ut, Xe), Xe === 2 && E.has(Ut) && Ye.invalidateResolutionOfFile(Ut), _r(Ut), fn();
    }
    function Ce(Ze, Xe, Ut) {
      ce && ce.addOrDeleteFile(Ze, Xe, Ut);
    }
    function pt(Ze) {
      return f != null && f.has(Ze) ? jC : yt(Ze, Ze, _e, 500, P, E_.MissingFile);
    }
    function _e(Ze, Xe, Ut) {
      Ce(Ze, Ut, Xe), Xe === 0 && i.has(Ut) && (i.get(Ut).close(), i.delete(Ut), _r(Ut), fn());
    }
    function ie() {
      re ? aF(o || (o = /* @__PURE__ */ new Map()), new Map(Object.entries(re)), he) : o && Zf(o, Km);
    }
    function he(Ze, Xe) {
      return Qe(Ze, (Ut) => {
        D.assert(k), D.assert(Y);
        const cn = Qt(Ut);
        ce && ce.addOrDeleteFileOrDirectory(Ut, cn), _r(cn), !oF({
          watchedDirPath: Qt(Ze),
          fileOrDirectory: Ut,
          fileOrDirectoryPath: cn,
          configFileName: k,
          extraFileExtensions: H,
          options: Y,
          program: Ct() || X,
          currentDirectory: O,
          useCaseSensitiveFileNames: I,
          writeLog: Ve,
          toPath: Qt
        }) && r !== 2 && (r = 1, fn());
      }, Xe, P, E_.WildcardDirectory);
    }
    function j(Ze, Xe, Ut, cn) {
      D.assert(k), OX(Ze, Xe, d || (d = /* @__PURE__ */ new Map()), (Sn, Er) => ee(Sn, (ue, mt) => {
        var zt;
        Ce(Sn, Er, mt), y && PX(y, Er, Qt);
        const it = (zt = d.get(Er)) == null ? void 0 : zt.projects;
        it != null && it.size && it.forEach((K) => {
          if (Qt(k) === K)
            r = 2;
          else {
            const Pe = f == null ? void 0 : f.get(K);
            Pe && (Pe.reloadLevel = 2), Ye.removeResolutionsFromProjectReferenceRedirects(K);
          }
          fn();
        });
      }, 2e3, Ut, cn), Qt);
    }
    function He(Ze, Xe, Ut) {
      var cn, Sn, Er, ue, mt;
      Ut.watcher || (Ut.watcher = ee(Ze, (zt, it) => {
        Ce(Ze, Xe, it);
        const K = f == null ? void 0 : f.get(Xe);
        K && (K.reloadLevel = 2), Ye.removeResolutionsFromProjectReferenceRedirects(Xe), fn();
      }, 2e3, ((cn = Ut.parsedCommandLine) == null ? void 0 : cn.watchOptions) || P, E_.ConfigFileOfReferencedProject)), (Sn = Ut.parsedCommandLine) != null && Sn.wildcardDirectories ? aF(Ut.watchedDirectories || (Ut.watchedDirectories = /* @__PURE__ */ new Map()), new Map(Object.entries((Er = Ut.parsedCommandLine) == null ? void 0 : Er.wildcardDirectories)), (zt, it) => {
        var K;
        return Qe(zt, (Pe) => {
          const Z = Qt(Pe);
          ce && ce.addOrDeleteFileOrDirectory(Pe, Z), _r(Z);
          const Re = f == null ? void 0 : f.get(Xe);
          Re != null && Re.parsedCommandLine && (oF({
            watchedDirPath: Qt(zt),
            fileOrDirectory: Pe,
            fileOrDirectoryPath: Z,
            configFileName: Ze,
            options: Re.parsedCommandLine.options,
            program: Re.parsedCommandLine.fileNames,
            currentDirectory: O,
            useCaseSensitiveFileNames: I,
            writeLog: Ve,
            toPath: Qt
          }) || Re.reloadLevel !== 2 && (Re.reloadLevel = 1, fn()));
        }, it, ((K = Ut.parsedCommandLine) == null ? void 0 : K.watchOptions) || P, E_.WildcardDirectoryOfReferencedProject);
      }) : Ut.watchedDirectories && (Zf(Ut.watchedDirectories, Km), Ut.watchedDirectories = void 0), j(Xe, (ue = Ut.parsedCommandLine) == null ? void 0 : ue.options, ((mt = Ut.parsedCommandLine) == null ? void 0 : mt.watchOptions) || P, E_.ExtendedConfigOfReferencedProject);
    }
  }
  var D7e = C({
    "src/compiler/watchPublic.ts"() {
      Oa(), Oa();
    }
  });
  function LY(e) {
    return cc(e, ".json") ? e : Bi(e, "tsconfig.json");
  }
  var IY, R7e = C({
    "src/compiler/tsbuild.ts"() {
      Oa(), IY = /* @__PURE__ */ ((e) => (e[e.Unbuildable = 0] = "Unbuildable", e[e.UpToDate = 1] = "UpToDate", e[e.UpToDateWithUpstreamTypes = 2] = "UpToDateWithUpstreamTypes", e[e.OutOfDateWithPrepend = 3] = "OutOfDateWithPrepend", e[e.OutputMissing = 4] = "OutputMissing", e[e.ErrorReadingFile = 5] = "ErrorReadingFile", e[e.OutOfDateWithSelf = 6] = "OutOfDateWithSelf", e[e.OutOfDateWithUpstream = 7] = "OutOfDateWithUpstream", e[e.OutOfDateBuildInfo = 8] = "OutOfDateBuildInfo", e[e.OutOfDateOptions = 9] = "OutOfDateOptions", e[e.OutOfDateRoots = 10] = "OutOfDateRoots", e[e.UpstreamOutOfDate = 11] = "UpstreamOutOfDate", e[e.UpstreamBlocked = 12] = "UpstreamBlocked", e[e.ComputingUpstream = 13] = "ComputingUpstream", e[e.TsVersionOutputOfDate = 14] = "TsVersionOutputOfDate", e[e.UpToDateWithInputFileText = 15] = "UpToDateWithInputFileText", e[e.ContainerOnly = 16] = "ContainerOnly", e[e.ForceBuild = 17] = "ForceBuild", e))(IY || {});
    }
  });
  function N7e(e, t, r) {
    const i = e.get(t);
    let o;
    return i || (o = r(), e.set(t, o)), i || o;
  }
  function kY(e, t) {
    return N7e(e, t, () => /* @__PURE__ */ new Map());
  }
  function H8(e) {
    return e.now ? e.now() : /* @__PURE__ */ new Date();
  }
  function Hx(e) {
    return !!e && !!e.buildOrder;
  }
  function kF(e) {
    return Hx(e) ? e.buildOrder : e;
  }
  function Mge(e, t) {
    return (r) => {
      let i = t ? `[${W1(V8(e), "\x1B[90m")}] ` : `${V8(e)} - `;
      i += `${Wv(r.messageText, e.newLine)}${e.newLine + e.newLine}`, e.write(i);
    };
  }
  function Fge(e, t, r, i) {
    const o = xY(e, t);
    return o.getModifiedTime = e.getModifiedTime ? (s) => e.getModifiedTime(s) : M0, o.setModifiedTime = e.setModifiedTime ? (s, c) => e.setModifiedTime(s, c) : so, o.deleteFile = e.deleteFile ? (s) => e.deleteFile(s) : so, o.reportDiagnostic = r || U8(e), o.reportSolutionBuilderStatus = i || Mge(e), o.now = Uo(e, e.now), o;
  }
  function O7e(e = $c, t, r, i, o) {
    const s = Fge(e, t, r, i);
    return s.reportErrorSummary = o, s;
  }
  function P7e(e = $c, t, r, i, o) {
    const s = Fge(e, t, r, i), c = EY(e, o);
    return Cj(s, c), s;
  }
  function M7e(e) {
    const t = {};
    return u8.forEach((r) => {
      Ps(e, r.name) && (t[r.name] = e[r.name]);
    }), t;
  }
  function F7e(e, t, r) {
    return oye(!1, e, t, r);
  }
  function B7e(e, t, r, i) {
    return oye(!0, e, t, r, i);
  }
  function G7e(e, t, r, i, o) {
    const s = t, c = t, f = M7e(i), d = SY(s, () => I.projectCompilerOptions);
    CF(d), d.getParsedCommandLine = (O) => VT(I, O, Sp(I, O)), d.resolveModuleNameLiterals = Uo(s, s.resolveModuleNameLiterals), d.resolveTypeReferenceDirectiveReferences = Uo(s, s.resolveTypeReferenceDirectiveReferences), d.resolveModuleNames = Uo(s, s.resolveModuleNames), d.resolveTypeReferenceDirectives = Uo(s, s.resolveTypeReferenceDirectives), d.getModuleResolutionCache = Uo(s, s.getModuleResolutionCache);
    let y, h;
    !d.resolveModuleNameLiterals && !d.resolveModuleNames && (y = C5(d.getCurrentDirectory(), d.getCanonicalFileName), d.resolveModuleNameLiterals = (O, k, G, V, H) => M8(O, k, G, V, H, s, y, qX), d.getModuleResolutionCache = () => y), !d.resolveTypeReferenceDirectiveReferences && !d.resolveTypeReferenceDirectives && (h = L5(d.getCurrentDirectory(), d.getCanonicalFileName, void 0, y == null ? void 0 : y.getPackageJsonInfoCache()), d.resolveTypeReferenceDirectiveReferences = (O, k, G, V, H) => M8(O, k, G, V, H, s, h, cF)), d.getBuildInfo = (O, k) => $ge(I, O, Sp(I, k), void 0);
    const { watchFile: E, watchDirectory: A, writeLog: L } = TY(c, i), I = {
      host: s,
      hostWithWatch: c,
      parseConfigFileHost: _F(s),
      write: Uo(s, s.trace),
      options: i,
      baseCompilerOptions: f,
      rootNames: r,
      baseWatchOptions: o,
      resolvedConfigFilePaths: /* @__PURE__ */ new Map(),
      configFileCache: /* @__PURE__ */ new Map(),
      projectStatus: /* @__PURE__ */ new Map(),
      extendedConfigCache: /* @__PURE__ */ new Map(),
      buildInfoCache: /* @__PURE__ */ new Map(),
      outputTimeStamps: /* @__PURE__ */ new Map(),
      builderPrograms: /* @__PURE__ */ new Map(),
      diagnostics: /* @__PURE__ */ new Map(),
      projectPendingBuild: /* @__PURE__ */ new Map(),
      projectErrorsReported: /* @__PURE__ */ new Map(),
      compilerHost: d,
      moduleResolutionCache: y,
      typeReferenceDirectiveResolutionCache: h,
      buildOrder: void 0,
      readFileWithCache: (O) => s.readFile(O),
      projectCompilerOptions: f,
      cache: void 0,
      allProjectBuildPending: !0,
      needsSummary: !0,
      watchAllProjectsPending: e,
      watch: e,
      allWatchedWildcardDirectories: /* @__PURE__ */ new Map(),
      allWatchedInputFiles: /* @__PURE__ */ new Map(),
      allWatchedConfigFiles: /* @__PURE__ */ new Map(),
      allWatchedExtendedConfigFiles: /* @__PURE__ */ new Map(),
      allWatchedPackageJsonFiles: /* @__PURE__ */ new Map(),
      filesWatched: /* @__PURE__ */ new Map(),
      lastCachedPackageJsonLookups: /* @__PURE__ */ new Map(),
      timerToBuildInvalidatedProject: void 0,
      reportFileChangeDetected: !1,
      watchFile: E,
      watchDirectory: A,
      writeLog: L
    };
    return I;
  }
  function Hd(e, t) {
    return zs(t, e.compilerHost.getCurrentDirectory(), e.compilerHost.getCanonicalFileName);
  }
  function Sp(e, t) {
    const { resolvedConfigFilePaths: r } = e, i = r.get(t);
    if (i !== void 0)
      return i;
    const o = Hd(e, t);
    return r.set(t, o), o;
  }
  function Bge(e) {
    return !!e.options;
  }
  function U7e(e, t) {
    const r = e.configFileCache.get(t);
    return r && Bge(r) ? r : void 0;
  }
  function VT(e, t, r) {
    const { configFileCache: i } = e, o = i.get(r);
    if (o)
      return Bge(o) ? o : void 0;
    al("SolutionBuilder::beforeConfigFileParsing");
    let s;
    const { parseConfigFileHost: c, baseCompilerOptions: f, baseWatchOptions: d, extendedConfigCache: y, host: h } = e;
    let E;
    return h.getParsedCommandLine ? (E = h.getParsedCommandLine(t), E || (s = Fs(_.File_0_not_found, t))) : (c.onUnRecoverableConfigFileDiagnostic = (A) => s = A, E = QO(t, f, c, y, d), c.onUnRecoverableConfigFileDiagnostic = so), i.set(r, E || s), al("SolutionBuilder::afterConfigFileParsing"), Jf("SolutionBuilder::Config file parsing", "SolutionBuilder::beforeConfigFileParsing", "SolutionBuilder::afterConfigFileParsing"), E;
  }
  function HC(e, t) {
    return LY(bv(e.compilerHost.getCurrentDirectory(), t));
  }
  function Gge(e, t) {
    const r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), o = [];
    let s, c;
    for (const d of t)
      f(d);
    return c ? { buildOrder: s || rt, circularDiagnostics: c } : s || rt;
    function f(d, y) {
      const h = Sp(e, d);
      if (i.has(h))
        return;
      if (r.has(h)) {
        y || (c || (c = [])).push(Fs(_.Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0, o.join(`\r
`)));
        return;
      }
      r.set(h, !0), o.push(d);
      const E = VT(e, d, h);
      if (E && E.projectReferences)
        for (const A of E.projectReferences) {
          const L = HC(e, A.path);
          f(L, y || A.circular);
        }
      o.pop(), i.set(h, !0), (s || (s = [])).push(d);
    }
  }
  function W8(e) {
    return e.buildOrder || V7e(e);
  }
  function V7e(e) {
    const t = Gge(e, e.rootNames.map((o) => HC(e, o)));
    e.resolvedConfigFilePaths.clear();
    const r = new Map(kF(t).map((o) => [Sp(e, o), !0])), i = { onDeleteValue: so };
    return pg(e.configFileCache, r, i), pg(e.projectStatus, r, i), pg(e.builderPrograms, r, i), pg(e.diagnostics, r, i), pg(e.projectPendingBuild, r, i), pg(e.projectErrorsReported, r, i), pg(e.buildInfoCache, r, i), pg(e.outputTimeStamps, r, i), e.watch && (pg(e.allWatchedConfigFiles, r, { onDeleteValue: Um }), e.allWatchedExtendedConfigFiles.forEach((o) => {
      o.projects.forEach((s) => {
        r.has(s) || o.projects.delete(s);
      }), o.close();
    }), pg(e.allWatchedWildcardDirectories, r, { onDeleteValue: (o) => o.forEach(Km) }), pg(e.allWatchedInputFiles, r, { onDeleteValue: (o) => o.forEach(Um) }), pg(e.allWatchedPackageJsonFiles, r, { onDeleteValue: (o) => o.forEach(Um) })), e.buildOrder = t;
  }
  function Uge(e, t, r) {
    const i = t && HC(e, t), o = W8(e);
    if (Hx(o))
      return o;
    if (i) {
      const c = Sp(e, i);
      if (vi(o, (d) => Sp(e, d) === c) === -1)
        return;
    }
    const s = i ? Gge(e, [i]) : o;
    return D.assert(!Hx(s)), D.assert(!r || i !== void 0), D.assert(!r || s[s.length - 1] === i), r ? s.slice(0, s.length - 1) : s;
  }
  function Vge(e) {
    e.cache && wY(e);
    const { compilerHost: t, host: r } = e, i = e.readFileWithCache, o = t.getSourceFile, {
      originalReadFile: s,
      originalFileExists: c,
      originalDirectoryExists: f,
      originalCreateDirectory: d,
      originalWriteFile: y,
      getSourceFileWithCache: h,
      readFileWithCache: E
    } = O8(r, (A) => Hd(e, A), (...A) => o.call(t, ...A));
    e.readFileWithCache = E, t.getSourceFile = h, e.cache = {
      originalReadFile: s,
      originalFileExists: c,
      originalDirectoryExists: f,
      originalCreateDirectory: d,
      originalWriteFile: y,
      originalReadFileWithCache: i,
      originalGetSourceFile: o
    };
  }
  function wY(e) {
    if (!e.cache)
      return;
    const { cache: t, host: r, compilerHost: i, extendedConfigCache: o, moduleResolutionCache: s, typeReferenceDirectiveResolutionCache: c } = e;
    r.readFile = t.originalReadFile, r.fileExists = t.originalFileExists, r.directoryExists = t.originalDirectoryExists, r.createDirectory = t.originalCreateDirectory, r.writeFile = t.originalWriteFile, i.getSourceFile = t.originalGetSourceFile, e.readFileWithCache = t.originalReadFileWithCache, o.clear(), s == null || s.clear(), c == null || c.clear(), e.cache = void 0;
  }
  function jge(e, t) {
    e.projectStatus.delete(t), e.diagnostics.delete(t);
  }
  function Hge({ projectPendingBuild: e }, t, r) {
    const i = e.get(t);
    (i === void 0 || i < r) && e.set(t, r);
  }
  function Wge(e, t) {
    if (!e.allProjectBuildPending)
      return;
    e.allProjectBuildPending = !1, e.options.watch && jY(e, _.Starting_compilation_in_watch_mode), Vge(e), kF(W8(e)).forEach((i) => e.projectPendingBuild.set(Sp(e, i), 0)), t && t.throwIfCancellationRequested();
  }
  function zge(e, t) {
    return e.projectPendingBuild.delete(t), e.diagnostics.has(t) ? 1 : 0;
  }
  function j7e(e, t, r, i, o) {
    let s = !0;
    return {
      kind: 2,
      project: t,
      projectPath: r,
      buildOrder: o,
      getCompilerOptions: () => i.options,
      getCurrentDirectory: () => e.compilerHost.getCurrentDirectory(),
      updateOutputFileStatmps: () => {
        Zge(e, i, r), s = !1;
      },
      done: () => (s && Zge(e, i, r), al("SolutionBuilder::Timestamps only updates"), zge(e, r))
    };
  }
  function qge(e, t, r, i, o, s, c) {
    let f = e === 0 ? 0 : 4, d, y, h;
    return e === 0 ? {
      kind: e,
      project: r,
      projectPath: i,
      buildOrder: c,
      getCompilerOptions: () => s.options,
      getCurrentDirectory: () => t.compilerHost.getCurrentDirectory(),
      getBuilderProgram: () => A(ml),
      getProgram: () => A((P) => P.getProgramOrUndefined()),
      getSourceFile: (P) => A((de) => de.getSourceFile(P)),
      getSourceFiles: () => L((P) => P.getSourceFiles()),
      getOptionsDiagnostics: (P) => L((de) => de.getOptionsDiagnostics(P)),
      getGlobalDiagnostics: (P) => L((de) => de.getGlobalDiagnostics(P)),
      getConfigFileParsingDiagnostics: () => L((P) => P.getConfigFileParsingDiagnostics()),
      getSyntacticDiagnostics: (P, de) => L((re) => re.getSyntacticDiagnostics(P, de)),
      getAllDependencies: (P) => L((de) => de.getAllDependencies(P)),
      getSemanticDiagnostics: (P, de) => L((re) => re.getSemanticDiagnostics(P, de)),
      getSemanticDiagnosticsOfNextAffectedFile: (P, de) => A((re) => re.getSemanticDiagnosticsOfNextAffectedFile && re.getSemanticDiagnosticsOfNextAffectedFile(P, de)),
      emit: (P, de, re, ye, ae) => {
        if (P || ye)
          return A((W) => {
            var ce, me;
            return W.emit(P, de, re, ye, ae || ((me = (ce = t.host).getCustomTransformers) == null ? void 0 : me.call(ce, r)));
          });
        if (Y(2, re), f === 5)
          return H(de, re);
        if (f === 3)
          return V(de, re, ae);
      },
      done: E
    } : {
      kind: e,
      project: r,
      projectPath: i,
      buildOrder: c,
      getCompilerOptions: () => s.options,
      getCurrentDirectory: () => t.compilerHost.getCurrentDirectory(),
      emit: (P, de) => f !== 4 ? h : X(P, de),
      done: E
    };
    function E(P, de, re) {
      return Y(8, P, de, re), al(e === 0 ? "SolutionBuilder::Projects built" : "SolutionBuilder::Bundles updated"), zge(t, i);
    }
    function A(P) {
      return Y(0), d && P(d);
    }
    function L(P) {
      return A(P) || rt;
    }
    function I() {
      var P, de;
      if (D.assert(d === void 0), t.options.dry) {
        ju(t, _.A_non_dry_build_would_build_project_0, r), y = 1, f = 7;
        return;
      }
      if (t.options.verbose && ju(t, _.Building_project_0, r), s.fileNames.length === 0) {
        WC(t, i, GT(s)), y = 0, f = 7;
        return;
      }
      const { host: re, compilerHost: ye } = t;
      t.projectCompilerOptions = s.options, (P = t.moduleResolutionCache) == null || P.update(s.options), (de = t.typeReferenceDirectiveResolutionCache) == null || de.update(s.options), d = re.createProgram(s.fileNames, s.options, ye, W7e(t, i, s), GT(s), s.projectReferences), t.watch && (t.lastCachedPackageJsonLookups.set(i, t.moduleResolutionCache && jt(t.moduleResolutionCache.getPackageJsonInfoCache().entries(), ([ae, W]) => [t.host.realpath && W ? Hd(t, t.host.realpath(ae)) : ae, W])), t.builderPrograms.set(i, d)), f++;
    }
    function O(P, de, re) {
      P.length ? { buildResult: y, step: f } = NY(t, i, d, s, P, de, re) : f++;
    }
    function k(P) {
      D.assertIsDefined(d), O([
        ...d.getConfigFileParsingDiagnostics(),
        ...d.getOptionsDiagnostics(P),
        ...d.getGlobalDiagnostics(P),
        ...d.getSyntacticDiagnostics(void 0, P)
      ], 8, "Syntactic");
    }
    function G(P) {
      O(D.checkDefined(d).getSemanticDiagnostics(void 0, P), 16, "Semantic");
    }
    function V(P, de, re) {
      var ye, ae, W;
      D.assertIsDefined(d), D.assert(f === 3);
      const ce = d.saveEmitState();
      let me;
      const ve = (st) => (me || (me = [])).push(st), Te = [], { emitResult: ee } = xF(d, ve, void 0, void 0, (st, Ct, Et, Vt, tt, at) => Te.push({ name: st, text: Ct, writeByteOrderMark: Et, data: at }), de, !1, re || ((ae = (ye = t.host).getCustomTransformers) == null ? void 0 : ae.call(ye, r)));
      if (me)
        return d.restoreEmitState(ce), { buildResult: y, step: f } = NY(t, i, d, s, me, 32, "Declaration file"), {
          emitSkipped: !0,
          diagnostics: ee.diagnostics
        };
      const { host: Qe, compilerHost: Ve } = t, Be = (W = d.hasChangedEmitSignature) != null && W.call(d) ? 0 : 2, qe = QA(), Oe = /* @__PURE__ */ new Map(), Me = d.getCompilerOptions(), Ye = eO(Me);
      let We, Fe;
      return Te.forEach(({ name: st, text: Ct, writeByteOrderMark: Et, data: Vt }) => {
        const tt = Hd(t, st);
        Oe.set(Hd(t, st), st), Vt != null && Vt.buildInfo && PY(t, Vt.buildInfo, i, Me, Be);
        const at = Vt != null && Vt.differsOnlyInMap ? WS(t.host, st) : void 0;
        XI(P ? { writeFile: P } : Ve, qe, st, Ct, Et), Vt != null && Vt.differsOnlyInMap ? t.host.setModifiedTime(st, at) : !Ye && t.watch && (We || (We = OY(t, i))).set(tt, Fe || (Fe = H8(t.host)));
      }), te(qe, Oe, Te.length ? Te[0].name : wX(s, !Qe.useCaseSensitiveFileNames()), Be), ee;
    }
    function H(P, de) {
      D.assertIsDefined(d), D.assert(f === 5);
      const re = d.emitBuildInfo((ye, ae, W, ce, me, ve) => {
        ve != null && ve.buildInfo && PY(t, ve.buildInfo, i, d.getCompilerOptions(), 2), P ? P(ye, ae, W, ce, me, ve) : t.compilerHost.writeFile(ye, ae, W, ce, me, ve);
      }, de);
      return re.diagnostics.length && (q8(t, re.diagnostics), t.diagnostics.set(i, [...t.diagnostics.get(i), ...re.diagnostics]), y = 64 & y), re.emittedFiles && t.write && re.emittedFiles.forEach((ye) => Xge(t, s, ye)), RY(t, d, s), f = 7, re;
    }
    function te(P, de, re, ye) {
      const ae = P.getDiagnostics();
      return ae.length ? ({ buildResult: y, step: f } = NY(t, i, d, s, ae, 64, "Emit"), ae) : (t.write && de.forEach((W) => Xge(t, s, W)), Qge(t, s, i, _.Updating_unchanged_output_timestamps_of_project_0, de), t.diagnostics.delete(i), t.projectStatus.set(i, {
        type: 1,
        oldestOutputFileName: re
      }), RY(t, d, s), f = 7, y = ye, ae);
    }
    function X(P, de) {
      var re, ye, ae, W;
      if (D.assert(e === 1), t.options.dry) {
        ju(t, _.A_non_dry_build_would_update_output_of_project_0, r), y = 1, f = 7;
        return;
      }
      t.options.verbose && ju(t, _.Updating_output_of_project_0, r);
      const { compilerHost: ce } = t;
      t.projectCompilerOptions = s.options, (ye = (re = t.host).beforeEmitBundle) == null || ye.call(re, s);
      const me = qhe(s, ce, (Be) => {
        const qe = HC(t, Be.path);
        return VT(t, qe, Sp(t, qe));
      }, de || ((W = (ae = t.host).getCustomTransformers) == null ? void 0 : W.call(ae, r)));
      if (Ha(me))
        return ju(t, _.Cannot_update_output_of_project_0_because_there_was_error_reading_file_1, r, Oc(t, me)), f = 6, h = qge(0, t, r, i, o, s, c);
      D.assert(!!me.length);
      const ve = QA(), Te = /* @__PURE__ */ new Map();
      let ee = 2;
      const Qe = t.buildInfoCache.get(i).buildInfo || void 0;
      return me.forEach(({ name: Be, text: qe, writeByteOrderMark: Oe, data: Me }) => {
        var Ye, We;
        Te.set(Hd(t, Be), Be), Me != null && Me.buildInfo && (((Ye = Me.buildInfo.program) == null ? void 0 : Ye.outSignature) !== ((We = Qe == null ? void 0 : Qe.program) == null ? void 0 : We.outSignature) && (ee &= -3), PY(t, Me.buildInfo, i, s.options, ee)), XI(P ? { writeFile: P } : ce, ve, Be, qe, Oe);
      }), { emitSkipped: !1, diagnostics: te(ve, Te, me[0].name, ee) };
    }
    function Y(P, de, re, ye) {
      for (; f <= P && f < 8; ) {
        const ae = f;
        switch (f) {
          case 0:
            I();
            break;
          case 1:
            k(de);
            break;
          case 2:
            G(de);
            break;
          case 3:
            V(re, de, ye);
            break;
          case 5:
            H(re, de);
            break;
          case 4:
            X(re, ye);
            break;
          case 6:
            D.checkDefined(h).done(de, re, ye), f = 8;
            break;
          case 7:
            K7e(t, r, i, o, s, c, D.checkDefined(y)), f++;
            break;
        }
        D.assert(f > ae);
      }
    }
  }
  function H7e({ options: e }, t, r) {
    return t.type !== 3 || e.force ? !0 : r.fileNames.length === 0 || !!GT(r).length || !eO(r.options);
  }
  function Jge(e, t, r) {
    if (!e.projectPendingBuild.size || Hx(t))
      return;
    const { options: i, projectPendingBuild: o } = e;
    for (let s = 0; s < t.length; s++) {
      const c = t[s], f = Sp(e, c), d = e.projectPendingBuild.get(f);
      if (d === void 0)
        continue;
      r && (r = !1, cye(e, t));
      const y = VT(e, c, f);
      if (!y) {
        sye(e, f), o.delete(f);
        continue;
      }
      d === 2 ? (rye(e, c, f, y), iye(e, f, y), aye(e, c, f, y), UY(e, c, f, y), VY(e, c, f, y)) : d === 1 && (y.fileNames = a8(y.options.configFile.configFileSpecs, mi(c), y.options, e.parseConfigFileHost), uK(y.fileNames, c, y.options.configFile.configFileSpecs, y.errors, r8(y.raw)), UY(e, c, f, y), VY(e, c, f, y));
      const h = BY(e, y, f);
      if (!i.force) {
        if (h.type === 1) {
          RF(e, c, h), WC(e, f, GT(y)), o.delete(f), i.dry && ju(e, _.Project_0_is_up_to_date, c);
          continue;
        }
        if (h.type === 2 || h.type === 15)
          return WC(e, f, GT(y)), {
            kind: 2,
            status: h,
            project: c,
            projectPath: f,
            projectIndex: s,
            config: y
          };
      }
      if (h.type === 12) {
        RF(e, c, h), WC(e, f, GT(y)), o.delete(f), i.verbose && ju(e, h.upstreamProjectBlocked ? _.Skipping_build_of_project_0_because_its_dependency_1_was_not_built : _.Skipping_build_of_project_0_because_its_dependency_1_has_errors, c, h.upstreamProjectName);
        continue;
      }
      if (h.type === 16) {
        RF(e, c, h), WC(e, f, GT(y)), o.delete(f);
        continue;
      }
      return {
        kind: H7e(e, h, y) ? 0 : 1,
        status: h,
        project: c,
        projectPath: f,
        projectIndex: s,
        config: y
      };
    }
  }
  function Kge(e, t, r) {
    return RF(e, t.project, t.status), t.kind !== 2 ? qge(t.kind, e, t.project, t.projectPath, t.projectIndex, t.config, r) : j7e(e, t.project, t.projectPath, t.config, r);
  }
  function DY(e, t, r) {
    const i = Jge(e, t, r);
    return i && Kge(e, i, t);
  }
  function Xge({ write: e }, t, r) {
    e && t.options.listEmittedFiles && e(`TSFILE: ${r}`);
  }
  function W7e({ options: e, builderPrograms: t, compilerHost: r }, i, o) {
    if (e.force)
      return;
    const s = t.get(i);
    return s || IF(o.options, r);
  }
  function RY(e, t, r) {
    t ? (e.write && hY(t, e.write), e.host.afterProgramEmitAndDiagnostics && e.host.afterProgramEmitAndDiagnostics(t), t.releaseProgram()) : e.host.afterEmitBundle && e.host.afterEmitBundle(r), e.projectCompilerOptions = e.baseCompilerOptions;
  }
  function NY(e, t, r, i, o, s, c) {
    const f = r && !qs(r.getCompilerOptions());
    return WC(e, t, o), e.projectStatus.set(t, { type: 0, reason: `${c} errors` }), f ? { buildResult: s, step: 5 } : (RY(e, r, i), { buildResult: s, step: 7 });
  }
  function wF(e) {
    return !!e.watcher;
  }
  function Yge(e, t) {
    const r = Hd(e, t), i = e.filesWatched.get(r);
    if (e.watch && i) {
      if (!wF(i))
        return i;
      if (i.modifiedTime)
        return i.modifiedTime;
    }
    const o = WS(e.host, t);
    return e.watch && (i ? i.modifiedTime = o : e.filesWatched.set(r, o)), o;
  }
  function DF(e, t, r, i, o, s, c) {
    const f = Hd(e, t), d = e.filesWatched.get(f);
    if (d && wF(d))
      d.callbacks.push(r);
    else {
      const y = e.watchFile(t, (h, E, A) => {
        const L = D.checkDefined(e.filesWatched.get(f));
        D.assert(wF(L)), L.modifiedTime = A, L.callbacks.forEach((I) => I(h, E, A));
      }, i, o, s, c);
      e.filesWatched.set(f, { callbacks: [r], watcher: y, modifiedTime: d });
    }
    return {
      close: () => {
        const y = D.checkDefined(e.filesWatched.get(f));
        D.assert(wF(y)), y.callbacks.length === 1 ? (e.filesWatched.delete(f), Km(y)) : hR(y.callbacks, r);
      }
    };
  }
  function OY(e, t) {
    if (!e.watch)
      return;
    let r = e.outputTimeStamps.get(t);
    return r || e.outputTimeStamps.set(t, r = /* @__PURE__ */ new Map()), r;
  }
  function PY(e, t, r, i, o) {
    const s = Iy(i), c = MY(e, s, r), f = H8(e.host);
    c ? (c.buildInfo = t, c.modifiedTime = f, o & 2 || (c.latestChangedDtsTime = f)) : e.buildInfoCache.set(r, {
      path: Hd(e, s),
      buildInfo: t,
      modifiedTime: f,
      latestChangedDtsTime: o & 2 ? void 0 : f
    });
  }
  function MY(e, t, r) {
    const i = Hd(e, t), o = e.buildInfoCache.get(r);
    return (o == null ? void 0 : o.path) === i ? o : void 0;
  }
  function $ge(e, t, r, i) {
    const o = Hd(e, t), s = e.buildInfoCache.get(r);
    if (s !== void 0 && s.path === o)
      return s.buildInfo || void 0;
    const c = e.readFileWithCache(t), f = c ? rF(t, c) : void 0;
    return e.buildInfoCache.set(r, { path: o, buildInfo: f || !1, modifiedTime: i || ng }), f;
  }
  function FY(e, t, r, i) {
    const o = Yge(e, t);
    if (r < o)
      return {
        type: 6,
        outOfDateOutputFileName: i,
        newerInputFileName: t
      };
  }
  function z7e(e, t, r) {
    var i, o;
    if (!t.fileNames.length && !r8(t.raw))
      return {
        type: 16
      };
    let s;
    const c = !!e.options.force;
    if (t.projectReferences) {
      e.projectStatus.set(r, { type: 13 });
      for (const re of t.projectReferences) {
        const ye = sw(re), ae = Sp(e, ye), W = VT(e, ye, ae), ce = BY(e, W, ae);
        if (!(ce.type === 13 || ce.type === 16)) {
          if (ce.type === 0 || ce.type === 12)
            return {
              type: 12,
              upstreamProjectName: re.path,
              upstreamProjectBlocked: ce.type === 12
            };
          if (ce.type !== 1)
            return {
              type: 11,
              upstreamProjectName: re.path
            };
          c || (s || (s = [])).push({ ref: re, refStatus: ce, resolvedRefPath: ae, resolvedConfig: W });
        }
      }
    }
    if (c)
      return { type: 17 };
    const { host: f } = e, d = Iy(t.options);
    let y, h = dye, E, A, L;
    if (d) {
      const re = MY(e, d, r);
      if (E = (re == null ? void 0 : re.modifiedTime) || WS(f, d), E === ng)
        return re || e.buildInfoCache.set(r, {
          path: Hd(e, d),
          buildInfo: !1,
          modifiedTime: E
        }), {
          type: 4,
          missingOutputFileName: d
        };
      const ye = $ge(e, d, r, E);
      if (!ye)
        return {
          type: 5,
          fileName: d
        };
      if ((ye.bundle || ye.program) && ye.version !== Se)
        return {
          type: 14,
          version: ye.version
        };
      if (ye.program) {
        if ((i = ye.program.changeFileSet) != null && i.length || (t.options.noEmit ? kt(ye.program.semanticDiagnosticsPerFile, Va) : (o = ye.program.affectedFilesPendingEmit) != null && o.length))
          return {
            type: 8,
            buildInfoFile: d
          };
        if (!t.options.noEmit && VC(t.options, ye.program.options || {}))
          return {
            type: 9,
            buildInfoFile: d
          };
        A = ye.program;
      }
      h = E, y = d;
    }
    let I, O = uye, k = !1;
    const G = /* @__PURE__ */ new Set();
    for (const re of t.fileNames) {
      const ye = Yge(e, re);
      if (ye === ng)
        return {
          type: 0,
          reason: `${re} does not exist`
        };
      if (E && E < ye) {
        let ae, W;
        if (A) {
          L || (L = cY(A, d, f)), ae = L.fileInfos.get(Hd(e, re));
          const ce = ae ? e.readFileWithCache(re) : void 0;
          W = ce !== void 0 ? AF(f, ce) : void 0, ae && ae === W && (k = !0);
        }
        if (!ae || ae !== W)
          return {
            type: 6,
            outOfDateOutputFileName: d,
            newerInputFileName: re
          };
      }
      ye > O && (I = re, O = ye), A && G.add(Hd(e, re));
    }
    if (A) {
      L || (L = cY(A, d, f));
      for (const re of L.roots)
        if (!G.has(re))
          return {
            type: 10,
            buildInfoFile: d,
            inputFile: re
          };
    }
    if (!d) {
      const re = tF(t, !f.useCaseSensitiveFileNames()), ye = OY(e, r);
      for (const ae of re) {
        const W = Hd(e, ae);
        let ce = ye == null ? void 0 : ye.get(W);
        if (ce || (ce = WS(e.host, ae), ye == null || ye.set(W, ce)), ce === ng)
          return {
            type: 4,
            missingOutputFileName: ae
          };
        if (ce < O)
          return {
            type: 6,
            outOfDateOutputFileName: ae,
            newerInputFileName: I
          };
        ce < h && (h = ce, y = ae);
      }
    }
    const V = e.buildInfoCache.get(r);
    let H = !1, te = !1, X;
    if (s)
      for (const { ref: re, refStatus: ye, resolvedConfig: ae, resolvedRefPath: W } of s) {
        if (te = te || !!re.prepend, ye.newestInputFileTime && ye.newestInputFileTime <= h)
          continue;
        if (V && q7e(e, V, W))
          return {
            type: 7,
            outOfDateOutputFileName: d,
            newerProjectName: re.path
          };
        const ce = J7e(e, ae.options, W);
        if (ce && ce <= h) {
          H = !0, X = re.path;
          continue;
        }
        return D.assert(y !== void 0, "Should have an oldest output filename here"), {
          type: 7,
          outOfDateOutputFileName: y,
          newerProjectName: re.path
        };
      }
    const Y = FY(e, t.options.configFilePath, h, y);
    if (Y)
      return Y;
    const P = ze(t.options.configFile.extendedSourceFiles || rt, (re) => FY(e, re, h, y));
    if (P)
      return P;
    const de = ze(e.lastCachedPackageJsonLookups.get(r) || rt, ([re]) => FY(e, re, h, y));
    return de || (te && H ? {
      type: 3,
      outOfDateOutputFileName: y,
      newerProjectName: X
    } : {
      type: H ? 2 : k ? 15 : 1,
      newestInputFileTime: O,
      newestInputFileName: I,
      oldestOutputFileName: y
    });
  }
  function q7e(e, t, r) {
    return e.buildInfoCache.get(r).path === t.path;
  }
  function BY(e, t, r) {
    if (t === void 0)
      return { type: 0, reason: "File deleted mid-build" };
    const i = e.projectStatus.get(r);
    if (i !== void 0)
      return i;
    al("SolutionBuilder::beforeUpToDateCheck");
    const o = z7e(e, t, r);
    return al("SolutionBuilder::afterUpToDateCheck"), Jf("SolutionBuilder::Up-to-date check", "SolutionBuilder::beforeUpToDateCheck", "SolutionBuilder::afterUpToDateCheck"), e.projectStatus.set(r, o), o;
  }
  function Qge(e, t, r, i, o) {
    if (t.options.noEmit)
      return;
    let s;
    const c = Iy(t.options);
    if (c) {
      o != null && o.has(Hd(e, c)) || (e.options.verbose && ju(e, i, t.options.configFilePath), e.host.setModifiedTime(c, s = H8(e.host)), MY(e, c, r).modifiedTime = s), e.outputTimeStamps.delete(r);
      return;
    }
    const { host: f } = e, d = tF(t, !f.useCaseSensitiveFileNames()), y = OY(e, r), h = y ? /* @__PURE__ */ new Set() : void 0;
    if (!o || d.length !== o.size) {
      let E = !!e.options.verbose;
      for (const A of d) {
        const L = Hd(e, A);
        o != null && o.has(L) || (E && (E = !1, ju(e, i, t.options.configFilePath)), f.setModifiedTime(A, s || (s = H8(e.host))), y && (y.set(L, s), h.add(L)));
      }
    }
    y == null || y.forEach((E, A) => {
      !(o != null && o.has(A)) && !h.has(A) && y.delete(A);
    });
  }
  function J7e(e, t, r) {
    if (!t.composite)
      return;
    const i = D.checkDefined(e.buildInfoCache.get(r));
    if (i.latestChangedDtsTime !== void 0)
      return i.latestChangedDtsTime || void 0;
    const o = i.buildInfo && i.buildInfo.program && i.buildInfo.program.latestChangedDtsFile ? e.host.getModifiedTime(Pa(i.buildInfo.program.latestChangedDtsFile, mi(i.path))) : void 0;
    return i.latestChangedDtsTime = o || !1, o;
  }
  function Zge(e, t, r) {
    if (e.options.dry)
      return ju(e, _.A_non_dry_build_would_update_timestamps_for_output_of_project_0, t.options.configFilePath);
    Qge(e, t, r, _.Updating_output_timestamps_of_project_0), e.projectStatus.set(r, {
      type: 1,
      oldestOutputFileName: wX(t, !e.host.useCaseSensitiveFileNames())
    });
  }
  function K7e(e, t, r, i, o, s, c) {
    if (!(c & 124) && o.options.composite)
      for (let f = i + 1; f < s.length; f++) {
        const d = s[f], y = Sp(e, d);
        if (e.projectPendingBuild.has(y))
          continue;
        const h = VT(e, d, y);
        if (!(!h || !h.projectReferences))
          for (const E of h.projectReferences) {
            const A = HC(e, E.path);
            if (Sp(e, A) !== r)
              continue;
            const L = e.projectStatus.get(y);
            if (L)
              switch (L.type) {
                case 1:
                  if (c & 2) {
                    E.prepend ? e.projectStatus.set(y, {
                      type: 3,
                      outOfDateOutputFileName: L.oldestOutputFileName,
                      newerProjectName: t
                    }) : L.type = 2;
                    break;
                  }
                case 15:
                case 2:
                case 3:
                  c & 2 || e.projectStatus.set(y, {
                    type: 7,
                    outOfDateOutputFileName: L.type === 3 ? L.outOfDateOutputFileName : L.oldestOutputFileName,
                    newerProjectName: t
                  });
                  break;
                case 12:
                  Sp(e, HC(e, L.upstreamProjectName)) === r && jge(e, y);
                  break;
              }
            Hge(e, y, 0);
            break;
          }
      }
  }
  function eye(e, t, r, i, o, s) {
    al("SolutionBuilder::beforeBuild");
    const c = X7e(e, t, r, i, o, s);
    return al("SolutionBuilder::afterBuild"), Jf("SolutionBuilder::Build", "SolutionBuilder::beforeBuild", "SolutionBuilder::afterBuild"), c;
  }
  function X7e(e, t, r, i, o, s) {
    const c = Uge(e, t, s);
    if (!c)
      return 3;
    Wge(e, r);
    let f = !0, d = 0;
    for (; ; ) {
      const y = DY(e, c, f);
      if (!y)
        break;
      f = !1, y.done(r, i, o == null ? void 0 : o(y.project)), e.diagnostics.has(y.projectPath) || d++;
    }
    return wY(e), lye(e, c), Z7e(e, c), Hx(c) ? 4 : c.some((y) => e.diagnostics.has(Sp(e, y))) ? d ? 2 : 1 : 0;
  }
  function tye(e, t, r) {
    al("SolutionBuilder::beforeClean");
    const i = Y7e(e, t, r);
    return al("SolutionBuilder::afterClean"), Jf("SolutionBuilder::Clean", "SolutionBuilder::beforeClean", "SolutionBuilder::afterClean"), i;
  }
  function Y7e(e, t, r) {
    const i = Uge(e, t, r);
    if (!i)
      return 3;
    if (Hx(i))
      return q8(e, i.circularDiagnostics), 4;
    const { options: o, host: s } = e, c = o.dry ? [] : void 0;
    for (const f of i) {
      const d = Sp(e, f), y = VT(e, f, d);
      if (y === void 0) {
        sye(e, d);
        continue;
      }
      const h = tF(y, !s.useCaseSensitiveFileNames());
      if (!h.length)
        continue;
      const E = new Set(y.fileNames.map((A) => Hd(e, A)));
      for (const A of h)
        E.has(Hd(e, A)) || s.fileExists(A) && (c ? c.push(A) : (s.deleteFile(A), GY(e, d, 0)));
    }
    return c && ju(e, _.A_non_dry_build_would_delete_the_following_files_Colon_0, c.map((f) => `\r
 * ${f}`).join("")), 0;
  }
  function GY(e, t, r) {
    e.host.getParsedCommandLine && r === 1 && (r = 2), r === 2 && (e.configFileCache.delete(t), e.buildOrder = void 0), e.needsSummary = !0, jge(e, t), Hge(e, t, r), Vge(e);
  }
  function z8(e, t, r) {
    e.reportFileChangeDetected = !0, GY(e, t, r), nye(e, 250, !0);
  }
  function nye(e, t, r) {
    const { hostWithWatch: i } = e;
    !i.setTimeout || !i.clearTimeout || (e.timerToBuildInvalidatedProject && i.clearTimeout(e.timerToBuildInvalidatedProject), e.timerToBuildInvalidatedProject = i.setTimeout($7e, t, e, r));
  }
  function $7e(e, t) {
    al("SolutionBuilder::beforeBuild");
    const r = Q7e(e, t);
    al("SolutionBuilder::afterBuild"), Jf("SolutionBuilder::Build", "SolutionBuilder::beforeBuild", "SolutionBuilder::afterBuild"), r && lye(e, r);
  }
  function Q7e(e, t) {
    e.timerToBuildInvalidatedProject = void 0, e.reportFileChangeDetected && (e.reportFileChangeDetected = !1, e.projectErrorsReported.clear(), jY(e, _.File_change_detected_Starting_incremental_compilation));
    let r = 0;
    const i = W8(e), o = DY(e, i, !1);
    if (o)
      for (o.done(), r++; e.projectPendingBuild.size; ) {
        if (e.timerToBuildInvalidatedProject)
          return;
        const s = Jge(e, i, !1);
        if (!s)
          break;
        if (s.kind !== 2 && (t || r === 5)) {
          nye(e, 100, !1);
          return;
        }
        Kge(e, s, i).done(), s.kind !== 2 && r++;
      }
    return wY(e), i;
  }
  function rye(e, t, r, i) {
    !e.watch || e.allWatchedConfigFiles.has(r) || e.allWatchedConfigFiles.set(r, DF(e, t, () => z8(e, r, 2), 2e3, i == null ? void 0 : i.watchOptions, E_.ConfigFile, t));
  }
  function iye(e, t, r) {
    OX(t, r == null ? void 0 : r.options, e.allWatchedExtendedConfigFiles, (i, o) => DF(e, i, () => {
      var s;
      return (s = e.allWatchedExtendedConfigFiles.get(o)) == null ? void 0 : s.projects.forEach((c) => z8(e, c, 2));
    }, 2e3, r == null ? void 0 : r.watchOptions, E_.ExtendedConfigFile), (i) => Hd(e, i));
  }
  function aye(e, t, r, i) {
    e.watch && aF(kY(e.allWatchedWildcardDirectories, r), new Map(Object.entries(i.wildcardDirectories)), (o, s) => e.watchDirectory(o, (c) => {
      var f;
      oF({
        watchedDirPath: Hd(e, o),
        fileOrDirectory: c,
        fileOrDirectoryPath: Hd(e, c),
        configFileName: t,
        currentDirectory: e.compilerHost.getCurrentDirectory(),
        options: i.options,
        program: e.builderPrograms.get(r) || ((f = U7e(e, r)) == null ? void 0 : f.fileNames),
        useCaseSensitiveFileNames: e.parseConfigFileHost.useCaseSensitiveFileNames,
        writeLog: (d) => e.writeLog(d),
        toPath: (d) => Hd(e, d)
      }) || z8(e, r, 1);
    }, s, i == null ? void 0 : i.watchOptions, E_.WildcardDirectory, t));
  }
  function UY(e, t, r, i) {
    e.watch && rC(kY(e.allWatchedInputFiles, r), e1(i.fileNames, (o) => Hd(e, o)), {
      createNewValue: (o, s) => DF(e, s, () => z8(e, r, 0), 250, i == null ? void 0 : i.watchOptions, E_.SourceFile, t),
      onDeleteValue: Um
    });
  }
  function VY(e, t, r, i) {
    !e.watch || !e.lastCachedPackageJsonLookups || rC(kY(e.allWatchedPackageJsonFiles, r), new Map(e.lastCachedPackageJsonLookups.get(r)), {
      createNewValue: (o, s) => DF(e, o, () => z8(e, r, 0), 2e3, i == null ? void 0 : i.watchOptions, E_.PackageJson, t),
      onDeleteValue: Um
    });
  }
  function Z7e(e, t) {
    if (e.watchAllProjectsPending) {
      al("SolutionBuilder::beforeWatcherCreation"), e.watchAllProjectsPending = !1;
      for (const r of kF(t)) {
        const i = Sp(e, r), o = VT(e, r, i);
        rye(e, r, i, o), iye(e, i, o), o && (aye(e, r, i, o), UY(e, r, i, o), VY(e, r, i, o));
      }
      al("SolutionBuilder::afterWatcherCreation"), Jf("SolutionBuilder::Watcher creation", "SolutionBuilder::beforeWatcherCreation", "SolutionBuilder::afterWatcherCreation");
    }
  }
  function e5e(e) {
    Zf(e.allWatchedConfigFiles, Um), Zf(e.allWatchedExtendedConfigFiles, Km), Zf(e.allWatchedWildcardDirectories, (t) => Zf(t, Km)), Zf(e.allWatchedInputFiles, (t) => Zf(t, Um)), Zf(e.allWatchedPackageJsonFiles, (t) => Zf(t, Um));
  }
  function oye(e, t, r, i, o) {
    const s = G7e(e, t, r, i, o);
    return {
      build: (c, f, d, y) => eye(s, c, f, d, y),
      clean: (c) => tye(s, c),
      buildReferences: (c, f, d, y) => eye(s, c, f, d, y, !0),
      cleanReferences: (c) => tye(s, c, !0),
      getNextInvalidatedProject: (c) => (Wge(s, c), DY(s, W8(s), !1)),
      getBuildOrder: () => W8(s),
      getUpToDateStatusOfProject: (c) => {
        const f = HC(s, c), d = Sp(s, f);
        return BY(s, VT(s, f, d), d);
      },
      invalidateProject: (c, f) => GY(s, c, f || 0),
      close: () => e5e(s)
    };
  }
  function Oc(e, t) {
    return _I(t, e.compilerHost.getCurrentDirectory(), e.compilerHost.getCanonicalFileName);
  }
  function ju(e, t, ...r) {
    e.host.reportSolutionBuilderStatus(Fs(t, ...r));
  }
  function jY(e, t, ...r) {
    var i, o;
    (o = (i = e.hostWithWatch).onWatchStatusChange) == null || o.call(i, Fs(t, ...r), e.host.getNewLine(), e.baseCompilerOptions);
  }
  function q8({ host: e }, t) {
    t.forEach((r) => e.reportDiagnostic(r));
  }
  function WC(e, t, r) {
    q8(e, r), e.projectErrorsReported.set(t, !0), r.length && e.diagnostics.set(t, r);
  }
  function sye(e, t) {
    WC(e, t, [e.configFileCache.get(t)]);
  }
  function lye(e, t) {
    if (!e.needsSummary)
      return;
    e.needsSummary = !1;
    const r = e.watch || !!e.host.reportErrorSummary, { diagnostics: i } = e;
    let o = 0, s = [];
    Hx(t) ? (cye(e, t.buildOrder), q8(e, t.circularDiagnostics), r && (o += TF(t.circularDiagnostics)), r && (s = [...s, ...SF(t.circularDiagnostics)])) : (t.forEach((c) => {
      const f = Sp(e, c);
      e.projectErrorsReported.has(f) || q8(e, i.get(f) || rt);
    }), r && i.forEach((c) => o += TF(c)), r && i.forEach((c) => [...s, ...SF(c)])), e.watch ? jY(e, mY(o), o) : e.host.reportErrorSummary && e.host.reportErrorSummary(o, s);
  }
  function cye(e, t) {
    e.options.verbose && ju(e, _.Projects_in_this_build_Colon_0, t.map((r) => `\r
    * ` + Oc(e, r)).join(""));
  }
  function t5e(e, t, r) {
    switch (r.type) {
      case 6:
        return ju(e, _.Project_0_is_out_of_date_because_output_1_is_older_than_input_2, Oc(e, t), Oc(e, r.outOfDateOutputFileName), Oc(e, r.newerInputFileName));
      case 7:
        return ju(e, _.Project_0_is_out_of_date_because_output_1_is_older_than_input_2, Oc(e, t), Oc(e, r.outOfDateOutputFileName), Oc(e, r.newerProjectName));
      case 4:
        return ju(e, _.Project_0_is_out_of_date_because_output_file_1_does_not_exist, Oc(e, t), Oc(e, r.missingOutputFileName));
      case 5:
        return ju(e, _.Project_0_is_out_of_date_because_there_was_error_reading_file_1, Oc(e, t), Oc(e, r.fileName));
      case 8:
        return ju(e, _.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted, Oc(e, t), Oc(e, r.buildInfoFile));
      case 9:
        return ju(e, _.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions, Oc(e, t), Oc(e, r.buildInfoFile));
      case 10:
        return ju(e, _.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more, Oc(e, t), Oc(e, r.buildInfoFile), Oc(e, r.inputFile));
      case 1:
        if (r.newestInputFileTime !== void 0)
          return ju(e, _.Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2, Oc(e, t), Oc(e, r.newestInputFileName || ""), Oc(e, r.oldestOutputFileName || ""));
        break;
      case 3:
        return ju(e, _.Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed, Oc(e, t), Oc(e, r.newerProjectName));
      case 2:
        return ju(e, _.Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies, Oc(e, t));
      case 15:
        return ju(e, _.Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files, Oc(e, t));
      case 11:
        return ju(e, _.Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date, Oc(e, t), Oc(e, r.upstreamProjectName));
      case 12:
        return ju(e, r.upstreamProjectBlocked ? _.Project_0_can_t_be_built_because_its_dependency_1_was_not_built : _.Project_0_can_t_be_built_because_its_dependency_1_has_errors, Oc(e, t), Oc(e, r.upstreamProjectName));
      case 0:
        return ju(e, _.Failed_to_parse_file_0_Colon_1, Oc(e, t), r.reason);
      case 14:
        return ju(e, _.Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2, Oc(e, t), r.version, Se);
      case 17:
        return ju(e, _.Project_0_is_being_forcibly_rebuilt, Oc(e, t));
    }
  }
  function RF(e, t, r) {
    e.options.verbose && t5e(e, t, r);
  }
  var uye, dye, HY, n5e = C({
    "src/compiler/tsbuildPublic.ts"() {
      Oa(), Oa(), s1(), uye = /* @__PURE__ */ new Date(-864e13), dye = /* @__PURE__ */ new Date(864e13), HY = /* @__PURE__ */ ((e) => (e[e.Build = 0] = "Build", e[e.UpdateBundle = 1] = "UpdateBundle", e[e.UpdateOutputFileStamps = 2] = "UpdateOutputFileStamps", e))(HY || {});
    }
  }), Oa = C({
    "src/compiler/_namespaces/ts.ts"() {
      ct(), PNe(), MNe(), qNe(), XNe(), YNe(), sOe(), _le(), yOe(), COe(), LOe(), ROe(), ZOe(), y6e(), v6e(), b6e(), E6e(), N6e(), F6e(), B6e(), nPe(), PPe(), MPe(), JPe(), b4e(), Y4e(), nMe(), rMe(), pMe(), bMe(), kMe(), MMe(), XMe(), YMe(), $Me(), r3e(), i3e(), a3e(), o3e(), s3e(), l3e(), c3e(), u3e(), d3e(), f3e(), _3e(), p3e(), m3e(), h3e(), y3e(), v3e(), b3e(), E3e(), T3e(), S3e(), k3e(), P3e(), q3e(), X3e(), t7e(), n7e(), r7e(), y7e(), E7e(), S7e(), I7e(), D7e(), R7e(), n5e(), XK(), s1();
    }
  });
  function fye(e, t) {
    return new O_(dR(t, `ts${pe}`) || dR(t, "latest")).compareTo(e.version) <= 0;
  }
  function _ye(e) {
    return KY.has(e) ? "node" : e;
  }
  function r5e(e, t) {
    const r = ZO(t, (i) => e.readFile(i));
    return new Map(Object.entries(r.config));
  }
  function i5e(e, t) {
    var r;
    const i = ZO(t, (o) => e.readFile(o));
    if ((r = i.config) != null && r.simpleMap)
      return new Map(Object.entries(i.config.simpleMap));
  }
  function a5e(e, t, r, i, o, s, c, f, d, y) {
    if (!c || !c.enable)
      return { cachedTypingPaths: [], newTypingNames: [], filesToWatch: [] };
    const h = /* @__PURE__ */ new Map();
    r = ia(r, (te) => {
      const X = Jo(te);
      if (px(X))
        return X;
    });
    const E = [];
    c.include && G(c.include, "Explicitly included types");
    const A = c.exclude || [];
    if (!y.types) {
      const te = new Set(r.map(mi));
      te.add(i), te.forEach((X) => {
        V(X, "bower.json", "bower_components", E), V(X, "package.json", "node_modules", E);
      });
    }
    if (c.disableFilenameBasedTypeAcquisition || H(r), f) {
      const te = mA(f.map(_ye), BS, Nu);
      G(te, "Inferred typings from unresolved imports");
    }
    s.forEach((te, X) => {
      const Y = d.get(X);
      h.has(X) && h.get(X) === void 0 && Y !== void 0 && fye(te, Y) && h.set(X, te.typingLocation);
    });
    for (const te of A)
      h.delete(te) && t && t(`Typing for ${te} is in exclude list, will be ignored.`);
    const L = [], I = [];
    h.forEach((te, X) => {
      te !== void 0 ? I.push(te) : L.push(X);
    });
    const O = { cachedTypingPaths: I, newTypingNames: L, filesToWatch: E };
    return t && t(`Result: ${JSON.stringify(O)}`), O;
    function k(te) {
      h.has(te) || h.set(te, void 0);
    }
    function G(te, X) {
      t && t(`${X}: ${JSON.stringify(te)}`), ze(te, k);
    }
    function V(te, X, Y, P) {
      const de = Bi(te, X);
      let re, ye;
      e.fileExists(de) && (P.push(de), re = ZO(de, (me) => e.readFile(me)).config, ye = ca([re.dependencies, re.devDependencies, re.optionalDependencies, re.peerDependencies], tg), G(ye, `Typing names in '${de}' dependencies`));
      const ae = Bi(te, Y);
      if (P.push(ae), !e.directoryExists(ae))
        return;
      const W = [], ce = ye ? ye.map((me) => Bi(ae, me, X)) : e.readDirectory(ae, [".json"], void 0, void 0, 3).filter((me) => {
        if (mu(me) !== X)
          return !1;
        const ve = ld(Jo(me)), Te = ve[ve.length - 3][0] === "@";
        return Te && N_(ve[ve.length - 4]) === Y || !Te && N_(ve[ve.length - 3]) === Y;
      });
      t && t(`Searching for typing names in ${ae}; all files: ${JSON.stringify(ce)}`);
      for (const me of ce) {
        const ve = Jo(me), ee = ZO(ve, (Ve) => e.readFile(Ve)).config;
        if (!ee.name)
          continue;
        const Qe = ee.types || ee.typings;
        if (Qe) {
          const Ve = Pa(Qe, mi(ve));
          e.fileExists(Ve) ? (t && t(`    Package '${ee.name}' provides its own types.`), h.set(ee.name, Ve)) : t && t(`    Package '${ee.name}' provides its own types but they are missing.`);
        } else
          W.push(ee.name);
      }
      G(W, "    Found package names");
    }
    function H(te) {
      const X = ia(te, (P) => {
        if (!px(P))
          return;
        const de = Ud(N_(mu(P))), re = Gse(de);
        return o.get(re);
      });
      X.length && G(X, "Inferred typings from file names"), kt(te, (P) => cc(P, ".jsx")) && (t && t("Inferred 'react' typings due to presence of '.jsx' extension"), k("react"));
    }
  }
  function o5e(e) {
    return WY(e, !0);
  }
  function WY(e, t) {
    if (!e)
      return 1;
    if (e.length > YY)
      return 2;
    if (e.charCodeAt(0) === 46)
      return 3;
    if (e.charCodeAt(0) === 95)
      return 4;
    if (t) {
      const r = /^@([^/]+)\/([^/]+)$/.exec(e);
      if (r) {
        const i = WY(r[1], !1);
        if (i !== 0)
          return { name: r[1], isScopeName: !0, result: i };
        const o = WY(r[2], !1);
        return o !== 0 ? { name: r[2], isScopeName: !1, result: o } : 0;
      }
    }
    return encodeURIComponent(e) !== e ? 5 : 0;
  }
  function s5e(e, t) {
    return typeof e == "object" ? pye(t, e.result, e.name, e.isScopeName) : pye(t, e, t, !1);
  }
  function pye(e, t, r, i) {
    const o = i ? "Scope" : "Package";
    switch (t) {
      case 1:
        return `'${e}':: ${o} name '${r}' cannot be empty`;
      case 2:
        return `'${e}':: ${o} name '${r}' should be less than ${YY} characters`;
      case 3:
        return `'${e}':: ${o} name '${r}' cannot start with '.'`;
      case 4:
        return `'${e}':: ${o} name '${r}' cannot start with '_'`;
      case 5:
        return `'${e}':: ${o} name '${r}' contains non URI safe characters`;
      case 0:
        return D.fail();
      default:
        throw D.assertNever(t);
    }
  }
  var zY, qY, JY, KY, XY, YY, l5e = C({
    "src/jsTyping/jsTyping.ts"() {
      NF(), zY = [
        "assert",
        "assert/strict",
        "async_hooks",
        "buffer",
        "child_process",
        "cluster",
        "console",
        "constants",
        "crypto",
        "dgram",
        "diagnostics_channel",
        "dns",
        "dns/promises",
        "domain",
        "events",
        "fs",
        "fs/promises",
        "http",
        "https",
        "http2",
        "inspector",
        "module",
        "net",
        "os",
        "path",
        "perf_hooks",
        "process",
        "punycode",
        "querystring",
        "readline",
        "repl",
        "stream",
        "stream/promises",
        "string_decoder",
        "timers",
        "timers/promises",
        "tls",
        "trace_events",
        "tty",
        "url",
        "util",
        "util/types",
        "v8",
        "vm",
        "wasi",
        "worker_threads",
        "zlib"
      ], qY = zY.map((e) => `node:${e}`), JY = [...zY, ...qY], KY = new Set(JY), XY = /* @__PURE__ */ ((e) => (e[e.Ok = 0] = "Ok", e[e.EmptyName = 1] = "EmptyName", e[e.NameTooLong = 2] = "NameTooLong", e[e.NameStartsWithDot = 3] = "NameStartsWithDot", e[e.NameStartsWithUnderscore = 4] = "NameStartsWithUnderscore", e[e.NameContainsNonURISafeCharacters = 5] = "NameContainsNonURISafeCharacters", e))(XY || {}), YY = 214;
    }
  }), jT = {};
  ne(jT, {
    NameValidationResult: () => XY,
    discoverTypings: () => a5e,
    isTypingUpToDate: () => fye,
    loadSafeList: () => r5e,
    loadTypesMap: () => i5e,
    nodeCoreModuleList: () => JY,
    nodeCoreModules: () => KY,
    nonRelativeModuleNameForTypingCache: () => _ye,
    prefixedNodeCoreModuleList: () => qY,
    renderPackageNameValidationFailure: () => s5e,
    validatePackageName: () => o5e
  });
  var c5e = C({
    "src/jsTyping/_namespaces/ts.JsTyping.ts"() {
      l5e();
    }
  });
  function u5e(e) {
    return $c.args.indexOf(e) >= 0;
  }
  function d5e(e) {
    const t = $c.args.indexOf(e);
    return t >= 0 && t < $c.args.length - 1 ? $c.args[t + 1] : void 0;
  }
  function f5e() {
    const e = /* @__PURE__ */ new Date();
    return `${GS(e.getHours().toString(), 2, "0")}:${GS(e.getMinutes().toString(), 2, "0")}:${GS(e.getSeconds().toString(), 2, "0")}.${GS(e.getMilliseconds().toString(), 3, "0")}`;
  }
  var mye, hye, gye, yye, vye, bye, Eye, $Y, _5e = C({
    "src/jsTyping/shared.ts"() {
      NF(), mye = "action::set", hye = "action::invalidate", gye = "action::packageInstalled", yye = "event::typesRegistry", vye = "event::beginInstallTypes", bye = "event::endInstallTypes", Eye = "event::initializationFailed", ((e) => {
        e.GlobalCacheLocation = "--globalTypingsCacheLocation", e.LogFile = "--logFile", e.EnableTelemetry = "--enableTelemetry", e.TypingSafeListLocation = "--typingSafeListLocation", e.TypesMapLocation = "--typesMapLocation", e.NpmLocation = "--npmLocation", e.ValidateDefaultNpmLocation = "--validateDefaultNpmLocation";
      })($Y || ($Y = {}));
    }
  }), p5e = C({
    "src/jsTyping/types.ts"() {
    }
  }), Tye = {};
  ne(Tye, {
    ActionInvalidate: () => hye,
    ActionPackageInstalled: () => gye,
    ActionSet: () => mye,
    Arguments: () => $Y,
    EventBeginInstallTypes: () => vye,
    EventEndInstallTypes: () => bye,
    EventInitializationFailed: () => Eye,
    EventTypesRegistry: () => yye,
    findArgument: () => d5e,
    hasArgument: () => u5e,
    nowString: () => f5e
  });
  var m5e = C({
    "src/jsTyping/_namespaces/ts.server.ts"() {
      _5e(), p5e();
    }
  }), NF = C({
    "src/jsTyping/_namespaces/ts.ts"() {
      Oa(), c5e(), m5e();
    }
  });
  function Sye(e) {
    return {
      indentSize: 4,
      tabSize: 4,
      newLineCharacter: e || `
`,
      convertTabsToSpaces: !0,
      indentStyle: 2,
      insertSpaceAfterConstructor: !1,
      insertSpaceAfterCommaDelimiter: !0,
      insertSpaceAfterSemicolonInForStatements: !0,
      insertSpaceBeforeAndAfterBinaryOperators: !0,
      insertSpaceAfterKeywordsInControlFlowStatements: !0,
      insertSpaceAfterFunctionKeywordForAnonymousFunctions: !1,
      insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: !1,
      insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: !1,
      insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: !0,
      insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: !1,
      insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces: !1,
      insertSpaceBeforeFunctionParenthesis: !1,
      placeOpenBraceOnNewLineForFunctions: !1,
      placeOpenBraceOnNewLineForControlBlocks: !1,
      semicolons: "ignore",
      trimTrailingWhitespace: !0
    };
  }
  var QY, ZY, e$, t$, am, n$, r$, i$, a$, o$, s$, l$, xye, J8, c$, u$, d$, f$, _$, p$, m$, h$, g$, h5e = C({
    "src/services/types.ts"() {
      ((e) => {
        class t {
          constructor(o) {
            this.text = o;
          }
          getText(o, s) {
            return o === 0 && s === this.text.length ? this.text : this.text.substring(o, s);
          }
          getLength() {
            return this.text.length;
          }
          getChangeRange() {
          }
        }
        function r(i) {
          return new t(i);
        }
        e.fromString = r;
      })(QY || (QY = {})), ZY = /* @__PURE__ */ ((e) => (e[e.Dependencies = 1] = "Dependencies", e[e.DevDependencies = 2] = "DevDependencies", e[e.PeerDependencies = 4] = "PeerDependencies", e[e.OptionalDependencies = 8] = "OptionalDependencies", e[e.All = 15] = "All", e))(ZY || {}), e$ = /* @__PURE__ */ ((e) => (e[e.Off = 0] = "Off", e[e.On = 1] = "On", e[e.Auto = 2] = "Auto", e))(e$ || {}), t$ = /* @__PURE__ */ ((e) => (e[e.Semantic = 0] = "Semantic", e[e.PartialSemantic = 1] = "PartialSemantic", e[e.Syntactic = 2] = "Syntactic", e))(t$ || {}), am = {}, n$ = /* @__PURE__ */ ((e) => (e.Original = "original", e.TwentyTwenty = "2020", e))(n$ || {}), r$ = /* @__PURE__ */ ((e) => (e.All = "All", e.SortAndCombine = "SortAndCombine", e.RemoveUnused = "RemoveUnused", e))(r$ || {}), i$ = /* @__PURE__ */ ((e) => (e[e.Invoked = 1] = "Invoked", e[e.TriggerCharacter = 2] = "TriggerCharacter", e[e.TriggerForIncompleteCompletions = 3] = "TriggerForIncompleteCompletions", e))(i$ || {}), a$ = /* @__PURE__ */ ((e) => (e.Type = "Type", e.Parameter = "Parameter", e.Enum = "Enum", e))(a$ || {}), o$ = /* @__PURE__ */ ((e) => (e.none = "none", e.definition = "definition", e.reference = "reference", e.writtenReference = "writtenReference", e))(o$ || {}), s$ = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Block = 1] = "Block", e[e.Smart = 2] = "Smart", e))(s$ || {}), l$ = /* @__PURE__ */ ((e) => (e.Ignore = "ignore", e.Insert = "insert", e.Remove = "remove", e))(l$ || {}), xye = Sye(`
`), J8 = /* @__PURE__ */ ((e) => (e[e.aliasName = 0] = "aliasName", e[e.className = 1] = "className", e[e.enumName = 2] = "enumName", e[e.fieldName = 3] = "fieldName", e[e.interfaceName = 4] = "interfaceName", e[e.keyword = 5] = "keyword", e[e.lineBreak = 6] = "lineBreak", e[e.numericLiteral = 7] = "numericLiteral", e[e.stringLiteral = 8] = "stringLiteral", e[e.localName = 9] = "localName", e[e.methodName = 10] = "methodName", e[e.moduleName = 11] = "moduleName", e[e.operator = 12] = "operator", e[e.parameterName = 13] = "parameterName", e[e.propertyName = 14] = "propertyName", e[e.punctuation = 15] = "punctuation", e[e.space = 16] = "space", e[e.text = 17] = "text", e[e.typeParameterName = 18] = "typeParameterName", e[e.enumMemberName = 19] = "enumMemberName", e[e.functionName = 20] = "functionName", e[e.regularExpressionLiteral = 21] = "regularExpressionLiteral", e[e.link = 22] = "link", e[e.linkName = 23] = "linkName", e[e.linkText = 24] = "linkText", e))(J8 || {}), c$ = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.MayIncludeAutoImports = 1] = "MayIncludeAutoImports", e[e.IsImportStatementCompletion = 2] = "IsImportStatementCompletion", e[e.IsContinuation = 4] = "IsContinuation", e[e.ResolvedModuleSpecifiers = 8] = "ResolvedModuleSpecifiers", e[e.ResolvedModuleSpecifiersBeyondLimit = 16] = "ResolvedModuleSpecifiersBeyondLimit", e[e.MayIncludeMethodSnippets = 32] = "MayIncludeMethodSnippets", e))(c$ || {}), u$ = /* @__PURE__ */ ((e) => (e.Comment = "comment", e.Region = "region", e.Code = "code", e.Imports = "imports", e))(u$ || {}), d$ = /* @__PURE__ */ ((e) => (e[e.JavaScript = 0] = "JavaScript", e[e.SourceMap = 1] = "SourceMap", e[e.Declaration = 2] = "Declaration", e))(d$ || {}), f$ = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.InMultiLineCommentTrivia = 1] = "InMultiLineCommentTrivia", e[e.InSingleQuoteStringLiteral = 2] = "InSingleQuoteStringLiteral", e[e.InDoubleQuoteStringLiteral = 3] = "InDoubleQuoteStringLiteral", e[e.InTemplateHeadOrNoSubstitutionTemplate = 4] = "InTemplateHeadOrNoSubstitutionTemplate", e[e.InTemplateMiddleOrTail = 5] = "InTemplateMiddleOrTail", e[e.InTemplateSubstitutionPosition = 6] = "InTemplateSubstitutionPosition", e))(f$ || {}), _$ = /* @__PURE__ */ ((e) => (e[e.Punctuation = 0] = "Punctuation", e[e.Keyword = 1] = "Keyword", e[e.Operator = 2] = "Operator", e[e.Comment = 3] = "Comment", e[e.Whitespace = 4] = "Whitespace", e[e.Identifier = 5] = "Identifier", e[e.NumberLiteral = 6] = "NumberLiteral", e[e.BigIntLiteral = 7] = "BigIntLiteral", e[e.StringLiteral = 8] = "StringLiteral", e[e.RegExpLiteral = 9] = "RegExpLiteral", e))(_$ || {}), p$ = /* @__PURE__ */ ((e) => (e.unknown = "", e.warning = "warning", e.keyword = "keyword", e.scriptElement = "script", e.moduleElement = "module", e.classElement = "class", e.localClassElement = "local class", e.interfaceElement = "interface", e.typeElement = "type", e.enumElement = "enum", e.enumMemberElement = "enum member", e.variableElement = "var", e.localVariableElement = "local var", e.functionElement = "function", e.localFunctionElement = "local function", e.memberFunctionElement = "method", e.memberGetAccessorElement = "getter", e.memberSetAccessorElement = "setter", e.memberVariableElement = "property", e.memberAccessorVariableElement = "accessor", e.constructorImplementationElement = "constructor", e.callSignatureElement = "call", e.indexSignatureElement = "index", e.constructSignatureElement = "construct", e.parameterElement = "parameter", e.typeParameterElement = "type parameter", e.primitiveType = "primitive type", e.label = "label", e.alias = "alias", e.constElement = "const", e.letElement = "let", e.directory = "directory", e.externalModuleName = "external module name", e.jsxAttribute = "JSX attribute", e.string = "string", e.link = "link", e.linkName = "link name", e.linkText = "link text", e))(p$ || {}), m$ = /* @__PURE__ */ ((e) => (e.none = "", e.publicMemberModifier = "public", e.privateMemberModifier = "private", e.protectedMemberModifier = "protected", e.exportedModifier = "export", e.ambientModifier = "declare", e.staticModifier = "static", e.abstractModifier = "abstract", e.optionalModifier = "optional", e.deprecatedModifier = "deprecated", e.dtsModifier = ".d.ts", e.tsModifier = ".ts", e.tsxModifier = ".tsx", e.jsModifier = ".js", e.jsxModifier = ".jsx", e.jsonModifier = ".json", e.dmtsModifier = ".d.mts", e.mtsModifier = ".mts", e.mjsModifier = ".mjs", e.dctsModifier = ".d.cts", e.ctsModifier = ".cts", e.cjsModifier = ".cjs", e))(m$ || {}), h$ = /* @__PURE__ */ ((e) => (e.comment = "comment", e.identifier = "identifier", e.keyword = "keyword", e.numericLiteral = "number", e.bigintLiteral = "bigint", e.operator = "operator", e.stringLiteral = "string", e.whiteSpace = "whitespace", e.text = "text", e.punctuation = "punctuation", e.className = "class name", e.enumName = "enum name", e.interfaceName = "interface name", e.moduleName = "module name", e.typeParameterName = "type parameter name", e.typeAliasName = "type alias name", e.parameterName = "parameter name", e.docCommentTagName = "doc comment tag name", e.jsxOpenTagName = "jsx open tag name", e.jsxCloseTagName = "jsx close tag name", e.jsxSelfClosingTagName = "jsx self closing tag name", e.jsxAttribute = "jsx attribute", e.jsxText = "jsx text", e.jsxAttributeStringLiteralValue = "jsx attribute string literal value", e))(h$ || {}), g$ = /* @__PURE__ */ ((e) => (e[e.comment = 1] = "comment", e[e.identifier = 2] = "identifier", e[e.keyword = 3] = "keyword", e[e.numericLiteral = 4] = "numericLiteral", e[e.operator = 5] = "operator", e[e.stringLiteral = 6] = "stringLiteral", e[e.regularExpressionLiteral = 7] = "regularExpressionLiteral", e[e.whiteSpace = 8] = "whiteSpace", e[e.text = 9] = "text", e[e.punctuation = 10] = "punctuation", e[e.className = 11] = "className", e[e.enumName = 12] = "enumName", e[e.interfaceName = 13] = "interfaceName", e[e.moduleName = 14] = "moduleName", e[e.typeParameterName = 15] = "typeParameterName", e[e.typeAliasName = 16] = "typeAliasName", e[e.parameterName = 17] = "parameterName", e[e.docCommentTagName = 18] = "docCommentTagName", e[e.jsxOpenTagName = 19] = "jsxOpenTagName", e[e.jsxCloseTagName = 20] = "jsxCloseTagName", e[e.jsxSelfClosingTagName = 21] = "jsxSelfClosingTagName", e[e.jsxAttribute = 22] = "jsxAttribute", e[e.jsxText = 23] = "jsxText", e[e.jsxAttributeStringLiteralValue = 24] = "jsxAttributeStringLiteralValue", e[e.bigintLiteral = 25] = "bigintLiteral", e))(g$ || {});
    }
  });
  function K8(e) {
    switch (e.kind) {
      case 257:
        return fr(e) && dW(e) ? 7 : 1;
      case 166:
      case 205:
      case 169:
      case 168:
      case 299:
      case 300:
      case 171:
      case 170:
      case 173:
      case 174:
      case 175:
      case 259:
      case 215:
      case 216:
      case 295:
      case 288:
        return 1;
      case 165:
      case 261:
      case 262:
      case 184:
        return 2;
      case 349:
        return e.name === void 0 ? 3 : 2;
      case 302:
      case 260:
        return 3;
      case 264:
        return Pu(e) || vg(e) === 1 ? 5 : 4;
      case 263:
      case 272:
      case 273:
      case 268:
      case 269:
      case 274:
      case 275:
        return 7;
      case 308:
        return 5;
    }
    return 7;
  }
  function HT(e) {
    e = k$(e);
    const t = e.parent;
    return e.kind === 308 ? 1 : Bl(t) || dd(t) || zm(t) || Ld(t) || Wm(t) || su(t) && e === t.name ? 7 : OF(e) ? g5e(e) : _g(e) ? K8(t) : rf(e) && nr(e, Im(Fk, $S, tb)) ? 7 : E5e(e) ? 2 : y5e(e) ? 4 : Fl(t) ? (D.assert(Ep(t.parent)), 2) : Z0(t) ? 3 : 1;
  }
  function g5e(e) {
    const t = e.kind === 163 ? e : Cd(e.parent) && e.parent.right === e ? e.parent : void 0;
    return t && t.parent.kind === 268 ? 7 : 4;
  }
  function OF(e) {
    for (; e.parent.kind === 163; )
      e = e.parent;
    return VA(e.parent) && e.parent.moduleReference === e;
  }
  function y5e(e) {
    return v5e(e) || b5e(e);
  }
  function v5e(e) {
    let t = e, r = !0;
    if (t.parent.kind === 163) {
      for (; t.parent && t.parent.kind === 163; )
        t = t.parent;
      r = t.right === e;
    }
    return t.parent.kind === 180 && !r;
  }
  function b5e(e) {
    let t = e, r = !0;
    if (t.parent.kind === 208) {
      for (; t.parent && t.parent.kind === 208; )
        t = t.parent;
      r = t.name === e;
    }
    if (!r && t.parent.kind === 230 && t.parent.parent.kind === 294) {
      const i = t.parent.parent.parent;
      return i.kind === 260 && t.parent.parent.token === 117 || i.kind === 261 && t.parent.parent.token === 94;
    }
    return !1;
  }
  function E5e(e) {
    switch (tk(e) && (e = e.parent), e.kind) {
      case 108:
        return !dg(e);
      case 194:
        return !0;
    }
    switch (e.parent.kind) {
      case 180:
        return !0;
      case 202:
        return !e.parent.isTypeOf;
      case 230:
        return yh(e.parent);
    }
    return !1;
  }
  function y$(e, t = !1, r = !1) {
    return uw(e, no, PF, t, r);
  }
  function cw(e, t = !1, r = !1) {
    return uw(e, D1, PF, t, r);
  }
  function v$(e, t = !1, r = !1) {
    return uw(e, lg, PF, t, r);
  }
  function Aye(e, t = !1, r = !1) {
    return uw(e, AT, T5e, t, r);
  }
  function Cye(e, t = !1, r = !1) {
    return uw(e, Fu, PF, t, r);
  }
  function Lye(e, t = !1, r = !1) {
    return uw(e, Qu, S5e, t, r);
  }
  function PF(e) {
    return e.expression;
  }
  function T5e(e) {
    return e.tag;
  }
  function S5e(e) {
    return e.tagName;
  }
  function uw(e, t, r, i, o) {
    let s = i ? Iye(e) : MF(e);
    return o && (s = bu(s)), !!s && !!s.parent && t(s.parent) && r(s.parent) === s;
  }
  function MF(e) {
    return zC(e) ? e.parent : e;
  }
  function Iye(e) {
    return zC(e) || S$(e) ? e.parent : e;
  }
  function FF(e, t) {
    for (; e; ) {
      if (e.kind === 253 && e.label.escapedText === t)
        return e.label;
      e = e.parent;
    }
  }
  function X8(e, t) {
    return Fr(e.expression) ? e.expression.name.text === t : !1;
  }
  function Y8(e) {
    var t;
    return je(e) && ((t = ai(e.parent, CI)) == null ? void 0 : t.label) === e;
  }
  function b$(e) {
    var t;
    return je(e) && ((t = ai(e.parent, R1)) == null ? void 0 : t.label) === e;
  }
  function E$(e) {
    return b$(e) || Y8(e);
  }
  function T$(e) {
    var t;
    return ((t = ai(e.parent, DI)) == null ? void 0 : t.tagName) === e;
  }
  function kye(e) {
    var t;
    return ((t = ai(e.parent, Cd)) == null ? void 0 : t.right) === e;
  }
  function zC(e) {
    var t;
    return ((t = ai(e.parent, Fr)) == null ? void 0 : t.name) === e;
  }
  function S$(e) {
    var t;
    return ((t = ai(e.parent, cl)) == null ? void 0 : t.argumentExpression) === e;
  }
  function x$(e) {
    var t;
    return ((t = ai(e.parent, Jl)) == null ? void 0 : t.name) === e;
  }
  function A$(e) {
    var t;
    return je(e) && ((t = ai(e.parent, Ka)) == null ? void 0 : t.name) === e;
  }
  function BF(e) {
    switch (e.parent.kind) {
      case 169:
      case 168:
      case 299:
      case 302:
      case 171:
      case 170:
      case 174:
      case 175:
      case 264:
        return ka(e.parent) === e;
      case 209:
        return e.parent.argumentExpression === e;
      case 164:
        return !0;
      case 198:
        return e.parent.parent.kind === 196;
      default:
        return !1;
    }
  }
  function wye(e) {
    return H0(e.parent.parent) && VI(e.parent.parent) === e;
  }
  function WT(e) {
    for (m_(e) && (e = e.parent.parent); ; ) {
      if (e = e.parent, !e)
        return;
      switch (e.kind) {
        case 308:
        case 171:
        case 170:
        case 259:
        case 215:
        case 174:
        case 175:
        case 260:
        case 261:
        case 263:
        case 264:
          return e;
      }
    }
  }
  function z1(e) {
    switch (e.kind) {
      case 308:
        return Zl(e) ? "module" : "script";
      case 264:
        return "module";
      case 260:
      case 228:
        return "class";
      case 261:
        return "interface";
      case 262:
      case 341:
      case 349:
        return "type";
      case 263:
        return "enum";
      case 257:
        return t(e);
      case 205:
        return t(Fm(e));
      case 216:
      case 259:
      case 215:
        return "function";
      case 174:
        return "getter";
      case 175:
        return "setter";
      case 171:
      case 170:
        return "method";
      case 299:
        const { initializer: r } = e;
        return Ka(r) ? "method" : "property";
      case 169:
      case 168:
      case 300:
      case 301:
        return "property";
      case 178:
        return "index";
      case 177:
        return "construct";
      case 176:
        return "call";
      case 173:
      case 172:
        return "constructor";
      case 165:
        return "type parameter";
      case 302:
        return "enum member";
      case 166:
        return Yr(e, 16476) ? "property" : "parameter";
      case 268:
      case 273:
      case 278:
      case 271:
      case 277:
        return "alias";
      case 223:
        const i = Cl(e), { right: o } = e;
        switch (i) {
          case 7:
          case 8:
          case 9:
          case 0:
            return "";
          case 1:
          case 2:
            const c = z1(o);
            return c === "" ? "const" : c;
          case 3:
            return Bs(o) ? "method" : "property";
          case 4:
            return "property";
          case 5:
            return Bs(o) ? "method" : "property";
          case 6:
            return "local class";
          default:
            return "";
        }
      case 79:
        return Wm(e.parent) ? "alias" : "";
      case 274:
        const s = z1(e.expression);
        return s === "" ? "const" : s;
      default:
        return "";
    }
    function t(r) {
      return ug(r) ? "const" : FI(r) ? "let" : "var";
    }
  }
  function qC(e) {
    switch (e.kind) {
      case 108:
        return !0;
      case 79:
        return Vz(e) && e.parent.kind === 166;
      default:
        return !1;
    }
  }
  function T_(e, t) {
    const r = ig(t), i = t.getLineAndCharacterOfPosition(e).line;
    return r[i];
  }
  function df(e, t) {
    return C$(e.pos, e.end, t);
  }
  function Dye(e, t) {
    return Q8(e, t.pos) && Q8(e, t.end);
  }
  function $8(e, t) {
    return e.pos <= t && t <= e.end;
  }
  function Q8(e, t) {
    return e.pos < t && t < e.end;
  }
  function C$(e, t, r) {
    return e <= r.pos && t >= r.end;
  }
  function Z8(e, t, r) {
    return e.pos <= t && e.end >= r;
  }
  function dw(e, t, r) {
    return GF(e.pos, e.end, t, r);
  }
  function L$(e, t, r, i) {
    return GF(e.getStart(t), e.end, r, i);
  }
  function GF(e, t, r, i) {
    const o = Math.max(e, r), s = Math.min(t, i);
    return o < s;
  }
  function I$(e, t, r) {
    return D.assert(e.pos <= t), t < e.end || !Y_(e, r);
  }
  function Y_(e, t) {
    if (e === void 0 || Al(e))
      return !1;
    switch (e.kind) {
      case 260:
      case 261:
      case 263:
      case 207:
      case 203:
      case 184:
      case 238:
      case 265:
      case 266:
      case 272:
      case 276:
        return UF(e, 19, t);
      case 295:
        return Y_(e.block, t);
      case 211:
        if (!e.arguments)
          return !0;
      case 210:
      case 214:
      case 193:
        return UF(e, 21, t);
      case 181:
      case 182:
        return Y_(e.type, t);
      case 173:
      case 174:
      case 175:
      case 259:
      case 215:
      case 171:
      case 170:
      case 177:
      case 176:
      case 216:
        return e.body ? Y_(e.body, t) : e.type ? Y_(e.type, t) : e6(e, 21, t);
      case 264:
        return !!e.body && Y_(e.body, t);
      case 242:
        return e.elseStatement ? Y_(e.elseStatement, t) : Y_(e.thenStatement, t);
      case 241:
        return Y_(e.expression, t) || e6(e, 26, t);
      case 206:
      case 204:
      case 209:
      case 164:
      case 186:
        return UF(e, 23, t);
      case 178:
        return e.type ? Y_(e.type, t) : e6(e, 23, t);
      case 292:
      case 293:
        return !1;
      case 245:
      case 246:
      case 247:
      case 244:
        return Y_(e.statement, t);
      case 243:
        return e6(e, 115, t) ? UF(e, 21, t) : Y_(e.statement, t);
      case 183:
        return Y_(e.exprName, t);
      case 218:
      case 217:
      case 219:
      case 226:
      case 227:
        return Y_(e.expression, t);
      case 212:
        return Y_(e.template, t);
      case 225:
        const i = tl(e.templateSpans);
        return Y_(i, t);
      case 236:
        return __(e.literal);
      case 275:
      case 269:
        return __(e.moduleSpecifier);
      case 221:
        return Y_(e.operand, t);
      case 223:
        return Y_(e.right, t);
      case 224:
        return Y_(e.whenFalse, t);
      default:
        return !0;
    }
  }
  function UF(e, t, r) {
    const i = e.getChildren(r);
    if (i.length) {
      const o = qo(i);
      if (o.kind === t)
        return !0;
      if (o.kind === 26 && i.length !== 1)
        return i[i.length - 2].kind === t;
    }
    return !1;
  }
  function Rye(e) {
    const t = VF(e);
    if (!t)
      return;
    const r = t.getChildren();
    return {
      listItemIndex: NA(r, e),
      list: t
    };
  }
  function e6(e, t, r) {
    return !!bs(e, t, r);
  }
  function bs(e, t, r) {
    return nn(e.getChildren(r), (i) => i.kind === t);
  }
  function VF(e) {
    const t = nn(e.parent.getChildren(), (r) => IC(r) && df(r, e));
    return D.assert(!t || jr(t.getChildren(), e)), t;
  }
  function Nye(e) {
    return e.kind === 88;
  }
  function x5e(e) {
    return e.kind === 84;
  }
  function A5e(e) {
    return e.kind === 98;
  }
  function C5e(e) {
    if (gu(e))
      return e.name;
    if (Nc(e)) {
      const t = e.modifiers && nn(e.modifiers, Nye);
      if (t)
        return t;
    }
    if (Gu(e)) {
      const t = nn(e.getChildren(), x5e);
      if (t)
        return t;
    }
  }
  function L5e(e) {
    if (gu(e))
      return e.name;
    if (yc(e)) {
      const t = nn(e.modifiers, Nye);
      if (t)
        return t;
    }
    if (Bs(e)) {
      const t = nn(e.getChildren(), A5e);
      if (t)
        return t;
    }
  }
  function I5e(e) {
    let t;
    return nr(e, (r) => (Gi(r) && (t = r), !Cd(r.parent) && !Gi(r.parent) && !rT(r.parent))), t;
  }
  function jF(e, t) {
    if (e.flags & 8388608)
      return;
    const r = s9(e, t);
    if (r)
      return r;
    const i = I5e(e);
    return i && t.getTypeAtLocation(i);
  }
  function k5e(e, t) {
    if (!t)
      switch (e.kind) {
        case 260:
        case 228:
          return C5e(e);
        case 259:
        case 215:
          return L5e(e);
        case 173:
          return e;
      }
    if (gu(e))
      return e.name;
  }
  function Oye(e, t) {
    if (e.importClause) {
      if (e.importClause.name && e.importClause.namedBindings)
        return;
      if (e.importClause.name)
        return e.importClause.name;
      if (e.importClause.namedBindings) {
        if (xy(e.importClause.namedBindings)) {
          const r = Am(e.importClause.namedBindings.elements);
          return r ? r.name : void 0;
        } else if (Gv(e.importClause.namedBindings))
          return e.importClause.namedBindings.name;
      }
    }
    if (!t)
      return e.moduleSpecifier;
  }
  function Pye(e, t) {
    if (e.exportClause) {
      if (J_(e.exportClause))
        return Am(e.exportClause.elements) ? e.exportClause.elements[0].name : void 0;
      if (Ih(e.exportClause))
        return e.exportClause.name;
    }
    if (!t)
      return e.moduleSpecifier;
  }
  function w5e(e) {
    if (e.types.length === 1)
      return e.types[0].expression;
  }
  function Mye(e, t) {
    const { parent: r } = e;
    if (fo(e) && (t || e.kind !== 88) ? K_(r) && jr(r.modifiers, e) : e.kind === 84 ? Nc(r) || Gu(e) : e.kind === 98 ? yc(r) || Bs(e) : e.kind === 118 ? nd(r) : e.kind === 92 ? eb(r) : e.kind === 154 ? em(r) : e.kind === 143 || e.kind === 142 ? Jl(r) : e.kind === 100 ? su(r) : e.kind === 137 ? z_(r) : e.kind === 151 && e_(r)) {
      const i = k5e(r, t);
      if (i)
        return i;
    }
    if ((e.kind === 113 || e.kind === 85 || e.kind === 119) && Uu(r) && r.declarations.length === 1) {
      const i = r.declarations[0];
      if (je(i.name))
        return i.name;
    }
    if (e.kind === 154) {
      if (Wm(r) && r.isTypeOnly) {
        const i = Oye(r.parent, t);
        if (i)
          return i;
      }
      if (eu(r) && r.isTypeOnly) {
        const i = Pye(r, t);
        if (i)
          return i;
      }
    }
    if (e.kind === 128) {
      if (Ld(r) && r.propertyName || dd(r) && r.propertyName || Gv(r) || Ih(r))
        return r.name;
      if (eu(r) && r.exportClause && Ih(r.exportClause))
        return r.exportClause.name;
    }
    if (e.kind === 100 && Wc(r)) {
      const i = Oye(r, t);
      if (i)
        return i;
    }
    if (e.kind === 93) {
      if (eu(r)) {
        const i = Pye(r, t);
        if (i)
          return i;
      }
      if (Bl(r))
        return bu(r.expression);
    }
    if (e.kind === 147 && zm(r))
      return r.expression;
    if (e.kind === 158 && (Wc(r) || eu(r)) && r.moduleSpecifier)
      return r.moduleSpecifier;
    if ((e.kind === 94 || e.kind === 117) && jd(r) && r.token === e.kind) {
      const i = w5e(r);
      if (i)
        return i;
    }
    if (e.kind === 94) {
      if (Fl(r) && r.constraint && q_(r.constraint))
        return r.constraint.typeName;
      if (yC(r) && q_(r.extendsType))
        return r.extendsType.typeName;
    }
    if (e.kind === 138 && vC(r))
      return r.typeParameter.name;
    if (e.kind === 101 && Fl(r) && Dk(r.parent))
      return r.name;
    if (e.kind === 141 && Ax(r) && r.operator === 141 && q_(r.type))
      return r.type.typeName;
    if (e.kind === 146 && Ax(r) && r.operator === 146 && mJ(r.type) && q_(r.type.elementType))
      return r.type.elementType.typeName;
    if (!t) {
      if ((e.kind === 103 && D1(r) || e.kind === 114 && Lx(r) || e.kind === 112 && EC(r) || e.kind === 133 && TC(r) || e.kind === 125 && j7(r) || e.kind === 89 && Xfe(r)) && r.expression)
        return bu(r.expression);
      if ((e.kind === 101 || e.kind === 102) && br(r) && r.operatorToken === e)
        return bu(r.right);
      if (e.kind === 128 && RO(r) && q_(r.type))
        return r.type.typeName;
      if (e.kind === 101 && bJ(r) || e.kind === 162 && NO(r))
        return bu(r.expression);
    }
    return e;
  }
  function k$(e) {
    return Mye(e, !1);
  }
  function HF(e) {
    return Mye(e, !0);
  }
  function Df(e, t) {
    return fw(e, t, (r) => G_(r) || Ad(r.kind) || Ni(r));
  }
  function fw(e, t, r) {
    return Fye(e, t, !1, r, !1);
  }
  function aa(e, t) {
    return Fye(e, t, !0, void 0, !1);
  }
  function Fye(e, t, r, i, o) {
    let s = e, c;
    e:
      for (; ; ) {
        const d = s.getChildren(e), y = PS(d, t, (h, E) => E, (h, E) => {
          const A = d[h].getEnd();
          if (A < t)
            return -1;
          const L = r ? d[h].getFullStart() : d[h].getStart(e, !0);
          return L > t ? 1 : f(d[h], L, A) ? d[h - 1] && f(d[h - 1]) ? 1 : 0 : i && L === t && d[h - 1] && d[h - 1].getEnd() === t && f(d[h - 1]) ? 1 : -1;
        });
        if (c)
          return c;
        if (y >= 0 && d[y]) {
          s = d[y];
          continue e;
        }
        return s;
      }
    function f(d, y, h) {
      if (h ?? (h = d.getEnd()), h < t || (y ?? (y = r ? d.getFullStart() : d.getStart(e, !0)), y > t))
        return !1;
      if (t < h || t === h && (d.kind === 1 || o))
        return !0;
      if (i && h === t) {
        const E = Ac(t, e, d);
        if (E && i(E))
          return c = E, !0;
      }
      return !1;
    }
  }
  function Bye(e, t) {
    let r = aa(e, t);
    for (; t6(r); ) {
      const i = zT(r, r.parent, e);
      if (!i)
        return;
      r = i;
    }
    return r;
  }
  function WF(e, t) {
    const r = aa(e, t);
    return qS(r) && t > r.getStart(e) && t < r.getEnd() ? r : Ac(t, e);
  }
  function zT(e, t, r) {
    return i(t);
    function i(o) {
      return qS(o) && o.pos === e.end ? o : Jt(o.getChildren(r), (s) => (s.pos <= e.pos && s.end > e.end || s.pos === e.end) && P$(s, r) ? i(s) : void 0);
    }
  }
  function Ac(e, t, r, i) {
    const o = s(r || t);
    return D.assert(!(o && t6(o))), o;
    function s(c) {
      if (Gye(c) && c.kind !== 1)
        return c;
      const f = c.getChildren(t), d = PS(f, e, (h, E) => E, (h, E) => e < f[h].end ? !f[h - 1] || e >= f[h - 1].end ? 0 : 1 : -1);
      if (d >= 0 && f[d]) {
        const h = f[d];
        if (e < h.end)
          if (h.getStart(t, !i) >= e || !P$(h, t) || t6(h)) {
            const L = D$(f, d, t, c.kind);
            return L && w$(L, t);
          } else
            return s(h);
      }
      D.assert(r !== void 0 || c.kind === 308 || c.kind === 1 || RW(c));
      const y = D$(f, f.length, t, c.kind);
      return y && w$(y, t);
    }
  }
  function Gye(e) {
    return qS(e) && !t6(e);
  }
  function w$(e, t) {
    if (Gye(e))
      return e;
    const r = e.getChildren(t);
    if (r.length === 0)
      return e;
    const i = D$(r, r.length, t, e.kind);
    return i && w$(i, t);
  }
  function D$(e, t, r, i) {
    for (let o = t - 1; o >= 0; o--) {
      const s = e[o];
      if (t6(s))
        o === 0 && (i === 11 || i === 282) && D.fail("`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`");
      else if (P$(e[o], r))
        return e[o];
    }
  }
  function qT(e, t, r = Ac(t, e)) {
    if (r && EW(r)) {
      const i = r.getStart(e), o = r.getEnd();
      if (i < t && t < o)
        return !0;
      if (t === o)
        return !!r.isUnterminated;
    }
    return !1;
  }
  function Uye(e, t) {
    const r = aa(e, t);
    return r ? !!(r.kind === 11 || r.kind === 29 && r.parent.kind === 11 || r.kind === 29 && r.parent.kind === 291 || r && r.kind === 19 && r.parent.kind === 291 || r.kind === 29 && r.parent.kind === 284) : !1;
  }
  function t6(e) {
    return vx(e) && e.containsOnlyTriviaWhiteSpaces;
  }
  function R$(e, t) {
    const r = aa(e, t);
    return Cv(r.kind) && t > r.getStart(e);
  }
  function Vye(e, t) {
    const r = aa(e, t);
    return !!(vx(r) || r.kind === 18 && Pk(r.parent) && Ay(r.parent.parent) || r.kind === 29 && Qu(r.parent) && Ay(r.parent.parent));
  }
  function zF(e, t) {
    function r(i) {
      for (; i; )
        if (i.kind >= 282 && i.kind <= 291 || i.kind === 11 || i.kind === 29 || i.kind === 31 || i.kind === 79 || i.kind === 19 || i.kind === 18 || i.kind === 43)
          i = i.parent;
        else if (i.kind === 281) {
          if (t > i.getStart(e))
            return !0;
          i = i.parent;
        } else
          return !1;
      return !1;
    }
    return r(aa(e, t));
  }
  function qF(e, t, r) {
    const i = yo(e.kind), o = yo(t), s = e.getFullStart(), c = r.text.lastIndexOf(o, s);
    if (c === -1)
      return;
    if (r.text.lastIndexOf(i, s - 1) < c) {
      const y = Ac(c + 1, r);
      if (y && y.kind === t)
        return y;
    }
    const f = e.kind;
    let d = 0;
    for (; ; ) {
      const y = Ac(e.getFullStart(), r);
      if (!y)
        return;
      if (e = y, e.kind === t) {
        if (d === 0)
          return e;
        d--;
      } else
        e.kind === f && d++;
    }
  }
  function jye(e, t, r) {
    return t ? e.getNonNullableType() : r ? e.getNonOptionalType() : e;
  }
  function n6(e, t, r) {
    const i = O$(e, t);
    return i !== void 0 && (yh(i.called) || N$(i.called, i.nTypeArguments, r).length !== 0 || n6(i.called, t, r));
  }
  function N$(e, t, r) {
    let i = r.getTypeAtLocation(e);
    return yu(e.parent) && (i = jye(i, xI(e.parent), !0)), (D1(e.parent) ? i.getConstructSignatures() : i.getCallSignatures()).filter((s) => !!s.typeParameters && s.typeParameters.length >= t);
  }
  function O$(e, t) {
    if (t.text.lastIndexOf("<", e ? e.pos : t.text.length) === -1)
      return;
    let r = e, i = 0, o = 0;
    for (; r; ) {
      switch (r.kind) {
        case 29:
          if (r = Ac(r.getFullStart(), t), r && r.kind === 28 && (r = Ac(r.getFullStart(), t)), !r || !je(r))
            return;
          if (!i)
            return _g(r) ? void 0 : { called: r, nTypeArguments: o };
          i--;
          break;
        case 49:
          i = 3;
          break;
        case 48:
          i = 2;
          break;
        case 31:
          i++;
          break;
        case 19:
          if (r = qF(r, 18, t), !r)
            return;
          break;
        case 21:
          if (r = qF(r, 20, t), !r)
            return;
          break;
        case 23:
          if (r = qF(r, 22, t), !r)
            return;
          break;
        case 27:
          o++;
          break;
        case 38:
        case 79:
        case 10:
        case 8:
        case 9:
        case 110:
        case 95:
        case 112:
        case 94:
        case 141:
        case 24:
        case 51:
        case 57:
        case 58:
          break;
        default:
          if (Gi(r))
            break;
          return;
      }
      r = Ac(r.getFullStart(), t);
    }
  }
  function ky(e, t, r) {
    return Cc.getRangeOfEnclosingComment(e, t, void 0, r);
  }
  function Hye(e, t) {
    const r = aa(e, t);
    return !!nr(r, qm);
  }
  function P$(e, t) {
    return e.kind === 1 ? !!e.jsDoc : e.getWidth(t) !== 0;
  }
  function _w(e, t = 0) {
    const r = [], i = vu(e) ? oW(e) & ~t : 0;
    return i & 8 && r.push("private"), i & 16 && r.push("protected"), i & 4 && r.push("public"), (i & 32 || Il(e)) && r.push("static"), i & 256 && r.push("abstract"), i & 1 && r.push("export"), i & 8192 && r.push("deprecated"), e.flags & 16777216 && r.push("declare"), e.kind === 274 && r.push("export"), r.length > 0 ? r.join(",") : "";
  }
  function Wye(e) {
    if (e.kind === 180 || e.kind === 210)
      return e.typeArguments;
    if (Ka(e) || e.kind === 260 || e.kind === 261)
      return e.typeParameters;
  }
  function JF(e) {
    return e === 2 || e === 3;
  }
  function M$(e) {
    return !!(e === 10 || e === 13 || Cv(e));
  }
  function zye(e) {
    if (!e.isIntersection())
      return !1;
    const { types: t, checker: r } = e;
    return t.length === 2 && t[0].flags & 4 && r.isEmptyAnonymousObjectType(t[1]);
  }
  function qye(e) {
    return 18 <= e && e <= 78;
  }
  function r6(e, t, r) {
    return Cv(e.kind) && e.getStart(r) < t && t < e.end || !!e.isUnterminated && t === e.end;
  }
  function F$(e) {
    switch (e) {
      case 123:
      case 121:
      case 122:
        return !0;
    }
    return !1;
  }
  function Jye(e) {
    const t = Aj(e);
    return lK(t, e && e.configFile), t;
  }
  function wy(e) {
    return !!((e.kind === 206 || e.kind === 207) && (e.parent.kind === 223 && e.parent.left === e && e.parent.operatorToken.kind === 63 || e.parent.kind === 247 && e.parent.initializer === e || wy(e.parent.kind === 299 ? e.parent.parent : e.parent)));
  }
  function Kye(e, t) {
    return Yye(e, t, !0);
  }
  function Xye(e, t) {
    return Yye(e, t, !1);
  }
  function Yye(e, t, r) {
    const i = ky(e, t, void 0);
    return !!i && r === Dve.test(e.text.substring(i.pos, i.end));
  }
  function B$(e) {
    if (e)
      switch (e.kind) {
        case 10:
        case 14:
          return G$(e);
        default:
          return rd(e);
      }
  }
  function rd(e, t, r) {
    return hc(e.getStart(t), (r || e).getEnd());
  }
  function G$(e) {
    if (!e.isUnterminated)
      return hc(e.getStart() + 1, e.getEnd() - 1);
  }
  function U$(e, t) {
    return h_(e.getStart(t), e.end);
  }
  function qv(e) {
    return hc(e.pos, e.end);
  }
  function KF(e) {
    return h_(e.start, e.start + e.length);
  }
  function XF(e, t, r) {
    return i6(wc(e, t), r);
  }
  function i6(e, t) {
    return { span: e, newText: t };
  }
  function pw(e) {
    return jr(S9, e);
  }
  function V$(e) {
    return e.kind === 154;
  }
  function YF(e) {
    return V$(e) || je(e) && e.text === "type";
  }
  function a6(e) {
    return !!(e.flags & 1536) && e.name.charCodeAt(0) === 34;
  }
  function JC() {
    const e = [];
    return (t) => {
      const r = ps(t);
      return !e[r] && (e[r] = !0);
    };
  }
  function $F(e) {
    return e.getText(0, e.getLength());
  }
  function o6(e, t) {
    let r = "";
    for (let i = 0; i < t; i++)
      r += e;
    return r;
  }
  function j$(e) {
    return e.isTypeParameter() && e.getConstraint() || e;
  }
  function s6(e) {
    return e.kind === 164 ? Xf(e.expression) ? e.expression.text : void 0 : Ni(e) ? Mr(e) : U_(e);
  }
  function $ye(e) {
    return e.getSourceFiles().some((t) => !t.isDeclarationFile && !e.isSourceFileFromExternalLibrary(t) && !!(t.externalModuleIndicator || t.commonJsModuleIndicator));
  }
  function Qye(e) {
    return e.getSourceFiles().some((t) => !t.isDeclarationFile && !e.isSourceFileFromExternalLibrary(t) && !!t.externalModuleIndicator);
  }
  function H$(e) {
    return !!e.module || ts(e) >= 2 || !!e.noEmit;
  }
  function Wx(e, t) {
    return {
      fileExists: (r) => e.fileExists(r),
      getCurrentDirectory: () => t.getCurrentDirectory(),
      readFile: Uo(t, t.readFile),
      useCaseSensitiveFileNames: Uo(t, t.useCaseSensitiveFileNames),
      getSymlinkCache: Uo(t, t.getSymlinkCache) || e.getSymlinkCache,
      getModuleSpecifierCache: Uo(t, t.getModuleSpecifierCache),
      getPackageJsonInfoCache: () => {
        var r;
        return (r = e.getModuleResolutionCache()) == null ? void 0 : r.getPackageJsonInfoCache();
      },
      getGlobalTypingsCacheLocation: Uo(t, t.getGlobalTypingsCacheLocation),
      redirectTargetsMap: e.redirectTargetsMap,
      getProjectReferenceRedirect: (r) => e.getProjectReferenceRedirect(r),
      isSourceOfProjectReferenceRedirect: (r) => e.isSourceOfProjectReferenceRedirect(r),
      getNearestAncestorDirectoryWithPackageJson: Uo(t, t.getNearestAncestorDirectoryWithPackageJson),
      getFileIncludeReasons: () => e.getFileIncludeReasons()
    };
  }
  function W$(e, t) {
    return {
      ...Wx(e, t),
      getCommonSourceDirectory: () => e.getCommonSourceDirectory()
    };
  }
  function QF(e) {
    return e === 2 || e >= 3 && e <= 99 || e === 100;
  }
  function Zye(e, t, r, i) {
    return e || t && t.length ? Dy(e, t, r, i) : void 0;
  }
  function Dy(e, t, r, i, o) {
    return N.createImportDeclaration(void 0, e || t ? N.createImportClause(!!o, e, t && t.length ? N.createNamedImports(t) : void 0) : void 0, typeof r == "string" ? ZF(r, i) : r, void 0);
  }
  function ZF(e, t) {
    return N.createStringLiteral(e, t === 0);
  }
  function z$(e, t) {
    return g3(e, t) ? 1 : 0;
  }
  function xp(e, t) {
    if (t.quotePreference && t.quotePreference !== "auto")
      return t.quotePreference === "single" ? 0 : 1;
    {
      const r = e.imports && nn(e.imports, (i) => jo(i) && !Zs(i.parent));
      return r ? z$(r, e) : 1;
    }
  }
  function eve(e) {
    switch (e) {
      case 0:
        return "'";
      case 1:
        return '"';
      default:
        return D.assertNever(e);
    }
  }
  function e9(e) {
    const t = t9(e);
    return t === void 0 ? void 0 : ta(t);
  }
  function t9(e) {
    return e.escapedName !== "default" ? e.escapedName : Jt(e.declarations, (t) => {
      const r = ka(t);
      return r && r.kind === 79 ? r.escapedText : void 0;
    });
  }
  function n9(e) {
    return xs(e) && (zm(e.parent) || Wc(e.parent) || xd(e.parent, !1) && e.parent.arguments[0] === e || lf(e.parent) && e.parent.arguments[0] === e);
  }
  function l6(e) {
    return _s(e) && Hm(e.parent) && je(e.name) && !e.propertyName;
  }
  function r9(e, t) {
    const r = e.getTypeAtLocation(t.parent);
    return r && e.getPropertyOfType(r, t.name.text);
  }
  function c6(e, t, r) {
    if (e)
      for (; e.parent; ) {
        if (qi(e.parent) || !D5e(r, e.parent, t))
          return e;
        e = e.parent;
      }
  }
  function D5e(e, t, r) {
    return iW(e, t.getStart(r)) && t.getEnd() <= iu(e);
  }
  function KC(e, t) {
    return K_(e) ? nn(e.modifiers, (r) => r.kind === t) : void 0;
  }
  function i9(e, t, r, i, o) {
    const c = (Va(r) ? r[0] : r).kind === 240 ? pz : lT, f = lr(t.statements, c);
    let d = Va(r) ? $_.detectImportDeclarationSorting(r, o) : 3;
    const y = $_.getOrganizeImportsComparer(o, d === 2), h = Va(r) ? sy(r, (E, A) => $_.compareImportsOrRequireStatements(E, A, y)) : [r];
    if (!f.length)
      e.insertNodesAtTopOfFile(t, h, i);
    else if (f && (d = $_.detectImportDeclarationSorting(f, o))) {
      const E = $_.getOrganizeImportsComparer(o, d === 2);
      for (const A of h) {
        const L = $_.getImportDeclarationInsertionIndex(f, A, E);
        if (L === 0) {
          const I = f[0] === t.statements[0] ? { leadingTriviaOption: gr.LeadingTriviaOption.Exclude } : {};
          e.insertNodeBefore(t, f[0], A, !1, I);
        } else {
          const I = f[L - 1];
          e.insertNodeAfter(t, I, A);
        }
      }
    } else {
      const E = tl(f);
      E ? e.insertNodesAfter(t, E, h) : e.insertNodesAtTopOfFile(t, h, i);
    }
  }
  function q$(e, t) {
    return D.assert(e.isTypeOnly), oo(e.getChildAt(0, t), V$);
  }
  function XC(e, t) {
    return !!e && !!t && e.start === t.start && e.length === t.length;
  }
  function R5e(e, t) {
    return e.fileName === t.fileName && XC(e.textSpan, t.textSpan);
  }
  function J$(e, t) {
    if (e) {
      for (let r = 0; r < e.length; r++)
        if (e.indexOf(e[r]) === r) {
          const i = t(e[r], r);
          if (i)
            return i;
        }
    }
  }
  function tve(e, t, r) {
    for (let i = t; i < r; i++)
      if (!ag(e.charCodeAt(i)))
        return !1;
    return !0;
  }
  function u6(e, t, r) {
    const i = t.tryGetSourcePosition(e);
    return i && (!r || r(Jo(i.fileName)) ? i : void 0);
  }
  function K$(e, t, r) {
    const { fileName: i, textSpan: o } = e, s = u6({ fileName: i, pos: o.start }, t, r);
    if (!s)
      return;
    const c = u6({ fileName: i, pos: o.start + o.length }, t, r), f = c ? c.pos - s.pos : o.length;
    return {
      fileName: s.fileName,
      textSpan: {
        start: s.pos,
        length: f
      },
      originalFileName: e.fileName,
      originalTextSpan: e.textSpan,
      contextSpan: nve(e, t, r),
      originalContextSpan: e.contextSpan
    };
  }
  function nve(e, t, r) {
    const i = e.contextSpan && u6({ fileName: e.fileName, pos: e.contextSpan.start }, t, r), o = e.contextSpan && u6({ fileName: e.fileName, pos: e.contextSpan.start + e.contextSpan.length }, t, r);
    return i && o ? { start: i.pos, length: o.pos - i.pos } : void 0;
  }
  function X$(e) {
    const t = e.declarations ? Yc(e.declarations) : void 0;
    return !!nr(t, (r) => Ba(r) ? !0 : _s(r) || Hm(r) || bC(r) ? !1 : "quit");
  }
  function N5e() {
    const e = _O * 10;
    let t, r, i, o;
    h();
    const s = (E) => f(E, 17);
    return {
      displayParts: () => {
        const E = t.length && t[t.length - 1].text;
        return o > e && E && E !== "..." && (ag(E.charCodeAt(E.length - 1)) || t.push(Id(" ", 16)), t.push(Id("...", 15))), t;
      },
      writeKeyword: (E) => f(E, 5),
      writeOperator: (E) => f(E, 12),
      writePunctuation: (E) => f(E, 15),
      writeTrailingSemicolon: (E) => f(E, 15),
      writeSpace: (E) => f(E, 16),
      writeStringLiteral: (E) => f(E, 8),
      writeParameter: (E) => f(E, 13),
      writeProperty: (E) => f(E, 14),
      writeLiteral: (E) => f(E, 8),
      writeSymbol: d,
      writeLine: y,
      write: s,
      writeComment: s,
      getText: () => "",
      getTextPos: () => 0,
      getColumn: () => 0,
      getLine: () => 0,
      isAtStartOfLine: () => !1,
      hasTrailingWhitespace: () => !1,
      hasTrailingComment: () => !1,
      rawWrite: Wa,
      getIndent: () => i,
      increaseIndent: () => {
        i++;
      },
      decreaseIndent: () => {
        i--;
      },
      clear: h
    };
    function c() {
      if (!(o > e) && r) {
        const E = I3(i);
        E && (o += E.length, t.push(Id(E, 16))), r = !1;
      }
    }
    function f(E, A) {
      o > e || (c(), o += E.length, t.push(Id(E, A)));
    }
    function d(E, A) {
      o > e || (c(), o += E.length, t.push(rve(E, A)));
    }
    function y() {
      o > e || (o += 1, t.push(YC()), r = !0);
    }
    function h() {
      t = [], r = !0, i = 0, o = 0;
    }
  }
  function rve(e, t) {
    return Id(e, r(t));
    function r(i) {
      const o = i.flags;
      return o & 3 ? X$(i) ? 13 : 9 : o & 4 || o & 32768 || o & 65536 ? 14 : o & 8 ? 19 : o & 16 ? 20 : o & 32 ? 1 : o & 64 ? 4 : o & 384 ? 2 : o & 1536 ? 11 : o & 8192 ? 10 : o & 262144 ? 18 : o & 524288 || o & 2097152 ? 0 : 17;
    }
  }
  function Id(e, t) {
    return { text: e, kind: J8[t] };
  }
  function bl() {
    return Id(" ", 16);
  }
  function Wd(e) {
    return Id(yo(e), 5);
  }
  function Tu(e) {
    return Id(yo(e), 15);
  }
  function mw(e) {
    return Id(yo(e), 12);
  }
  function ive(e) {
    return Id(e, 13);
  }
  function ave(e) {
    return Id(e, 14);
  }
  function Y$(e) {
    const t = ZE(e);
    return t === void 0 ? Rf(e) : Wd(t);
  }
  function Rf(e) {
    return Id(e, 17);
  }
  function ove(e) {
    return Id(e, 0);
  }
  function sve(e) {
    return Id(e, 18);
  }
  function a9(e) {
    return Id(e, 24);
  }
  function lve(e, t) {
    return {
      text: e,
      kind: J8[23],
      target: {
        fileName: Zn(t).fileName,
        textSpan: rd(t)
      }
    };
  }
  function $$(e) {
    return Id(e, 22);
  }
  function cve(e, t) {
    var r;
    const i = n_e(e) ? "link" : r_e(e) ? "linkcode" : "linkplain", o = [$$(`{@${i} `)];
    if (!e.name)
      e.text && o.push(a9(e.text));
    else {
      const s = t == null ? void 0 : t.getSymbolAtLocation(e.name), c = P5e(e.text), f = Sc(e.name) + e.text.slice(0, c), d = O5e(e.text.slice(c)), y = (s == null ? void 0 : s.valueDeclaration) || ((r = s == null ? void 0 : s.declarations) == null ? void 0 : r[0]);
      y ? (o.push(lve(f, y)), d && o.push(a9(d))) : o.push(a9(f + (c ? "" : " ") + d));
    }
    return o.push($$("}")), o;
  }
  function O5e(e) {
    let t = 0;
    if (e.charCodeAt(t++) === 124) {
      for (; t < e.length && e.charCodeAt(t) === 32; )
        t++;
      return e.slice(t);
    }
    return e;
  }
  function P5e(e) {
    let t = e.indexOf("://");
    if (t === 0) {
      for (; t < e.length && e.charCodeAt(t) !== 124; )
        t++;
      return t;
    }
    if (e.indexOf("()") === 0)
      return 2;
    if (e.charAt(0) === "<") {
      let r = 0, i = 0;
      for (; i < e.length; )
        if (e[i] === "<" && r++, e[i] === ">" && r--, i++, !r)
          return i;
    }
    return 0;
  }
  function ib(e, t) {
    var r;
    return (t == null ? void 0 : t.newLineCharacter) || ((r = e.getNewLine) == null ? void 0 : r.call(e)) || Rve;
  }
  function YC() {
    return Id(`
`, 6);
  }
  function Jv(e) {
    try {
      return e(x9), x9.displayParts();
    } finally {
      x9.clear();
    }
  }
  function d6(e, t, r, i = 0) {
    return Jv((o) => {
      e.writeType(t, r, i | 1024 | 16384, o);
    });
  }
  function hw(e, t, r, i, o = 0) {
    return Jv((s) => {
      e.writeSymbol(t, r, i, o | 8, s);
    });
  }
  function Q$(e, t, r, i = 0) {
    return i |= 25632, Jv((o) => {
      e.writeSignature(t, r, i, void 0, o);
    });
  }
  function M5e(e, t) {
    const r = t.getSourceFile();
    return Jv((i) => {
      R8().writeNode(4, e, r, i);
    });
  }
  function uve(e) {
    return !!e.parent && JS(e.parent) && e.parent.propertyName === e;
  }
  function Z$(e, t) {
    return q3(e, t.getScriptKind && t.getScriptKind(e));
  }
  function dve(e, t) {
    let r = e;
    for (; F5e(r) || Om(r) && r.links.target; )
      Om(r) && r.links.target ? r = r.links.target : r = cf(r, t);
    return r;
  }
  function F5e(e) {
    return (e.flags & 2097152) !== 0;
  }
  function fve(e, t) {
    return bo(cf(e, t));
  }
  function _ve(e, t) {
    for (; ag(e.charCodeAt(t)); )
      t += 1;
    return t;
  }
  function eQ(e, t) {
    for (; t > -1 && Dm(e.charCodeAt(t)); )
      t -= 1;
    return t + 1;
  }
  function wl(e, t = !0) {
    const r = e && pve(e);
    return r && !t && zd(r), r;
  }
  function f6(e, t, r) {
    let i = r(e);
    return i ? Wr(i, e) : i = pve(e, r), i && !t && zd(i), i;
  }
  function pve(e, t) {
    const r = t ? (s) => f6(s, !0, t) : wl, o = Bn(e, r, bg, t ? (s) => s && tQ(s, !0, t) : (s) => s && q1(s), r);
    if (o === e) {
      const s = jo(e) ? Wr(N.createStringLiteralFromNode(e), e) : v_(e) ? Wr(N.createNumericLiteral(e.text, e.numericLiteralFlags), e) : N.cloneNode(e);
      return ht(s, e);
    }
    return o.parent = void 0, o;
  }
  function q1(e, t = !0) {
    return e && N.createNodeArray(e.map((r) => wl(r, t)), e.hasTrailingComma);
  }
  function tQ(e, t, r) {
    return N.createNodeArray(e.map((i) => f6(i, t, r)), e.hasTrailingComma);
  }
  function zd(e) {
    o9(e), mve(e);
  }
  function o9(e) {
    nQ(e, 1024, G5e);
  }
  function mve(e) {
    nQ(e, 2048, nq);
  }
  function JT(e, t) {
    const r = e.getSourceFile(), i = r.text;
    B5e(e, i) ? $C(e, t, r) : p6(e, t, r), gw(e, t, r);
  }
  function B5e(e, t) {
    const r = e.getFullStart(), i = e.getStart();
    for (let o = r; o < i; o++)
      if (t.charCodeAt(o) === 10)
        return !0;
    return !1;
  }
  function nQ(e, t, r) {
    Zp(e, t);
    const i = r(e);
    i && nQ(i, t, r);
  }
  function G5e(e) {
    return e.forEachChild((t) => t);
  }
  function KT(e, t) {
    let r = e;
    for (let i = 1; !JM(t, r); i++)
      r = `${e}_${i}`;
    return r;
  }
  function _6(e, t, r, i) {
    let o = 0, s = -1;
    for (const { fileName: c, textChanges: f } of e) {
      D.assert(c === t);
      for (const d of f) {
        const { span: y, newText: h } = d, E = U5e(h, ox(r));
        if (E !== -1 && (s = y.start + o + E, !i))
          return s;
        o += h.length - y.length;
      }
    }
    return D.assert(i), D.assert(s >= 0), s;
  }
  function $C(e, t, r, i, o) {
    GR(r.text, e.pos, rQ(t, r, i, o, TO));
  }
  function gw(e, t, r, i, o) {
    UR(r.text, e.end, rQ(t, r, i, o, l7));
  }
  function p6(e, t, r, i, o) {
    UR(r.text, e.pos, rQ(t, r, i, o, TO));
  }
  function rQ(e, t, r, i, o) {
    return (s, c, f, d) => {
      f === 3 ? (s += 2, c -= 2) : s += 2, o(e, r || f, t.text.slice(s, c), i !== void 0 ? i : d);
    };
  }
  function U5e(e, t) {
    if (xa(e, t))
      return 0;
    let r = e.indexOf(" " + t);
    return r === -1 && (r = e.indexOf("." + t)), r === -1 && (r = e.indexOf('"' + t)), r === -1 ? -1 : r + 1;
  }
  function iQ(e) {
    return br(e) && e.operatorToken.kind === 27 || Ls(e) || RO(e) && Ls(e.expression);
  }
  function s9(e, t, r) {
    const i = Dv(e.parent);
    switch (i.kind) {
      case 211:
        return t.getContextualType(i, r);
      case 223: {
        const { left: o, operatorToken: s, right: c } = i;
        return l9(s.kind) ? t.getTypeAtLocation(e === c ? o : c) : t.getContextualType(e, r);
      }
      case 292:
        return oQ(i, t);
      default:
        return t.getContextualType(e, r);
    }
  }
  function yw(e, t, r) {
    const i = xp(e, t), o = JSON.stringify(r);
    return i === 0 ? `'${V_(o).replace(/'/g, "\\'").replace(/\\"/g, '"')}'` : o;
  }
  function l9(e) {
    switch (e) {
      case 36:
      case 34:
      case 37:
      case 35:
        return !0;
      default:
        return !1;
    }
  }
  function hve(e) {
    switch (e.kind) {
      case 10:
      case 14:
      case 225:
      case 212:
        return !0;
      default:
        return !1;
    }
  }
  function aQ(e) {
    return !!e.getStringIndexType() || !!e.getNumberIndexType();
  }
  function oQ(e, t) {
    return t.getTypeAtLocation(e.parent.parent.expression);
  }
  function vw(e, t, r, i) {
    const o = r.getTypeChecker();
    let s = !0;
    const c = () => s = !1, f = o.typeToTypeNode(e, t, 1, {
      trackSymbol: (d, y, h) => (s = s && o.isSymbolAccessible(d, y, h, !1).accessibility === 0, !s),
      reportInaccessibleThisError: c,
      reportPrivateInBaseOfClassExpression: c,
      reportInaccessibleUniqueSymbolError: c,
      moduleResolverHost: W$(r, i)
    });
    return s ? f : void 0;
  }
  function sQ(e) {
    return e === 176 || e === 177 || e === 178 || e === 168 || e === 170;
  }
  function gve(e) {
    return e === 259 || e === 173 || e === 171 || e === 174 || e === 175;
  }
  function yve(e) {
    return e === 264;
  }
  function c9(e) {
    return e === 240 || e === 241 || e === 243 || e === 248 || e === 249 || e === 250 || e === 254 || e === 256 || e === 169 || e === 262 || e === 269 || e === 268 || e === 275 || e === 267 || e === 274;
  }
  function V5e(e, t) {
    const r = e.getLastToken(t);
    if (r && r.kind === 26)
      return !1;
    if (sQ(e.kind)) {
      if (r && r.kind === 27)
        return !1;
    } else if (yve(e.kind)) {
      const f = qo(e.getChildren(t));
      if (f && tm(f))
        return !1;
    } else if (gve(e.kind)) {
      const f = qo(e.getChildren(t));
      if (f && uT(f))
        return !1;
    } else if (!c9(e.kind))
      return !1;
    if (e.kind === 243)
      return !0;
    const i = nr(e, (f) => !f.parent), o = zT(e, i, t);
    if (!o || o.kind === 19)
      return !0;
    const s = t.getLineAndCharacterOfPosition(e.getEnd()).line, c = t.getLineAndCharacterOfPosition(o.getStart(t)).line;
    return s !== c;
  }
  function u9(e, t, r) {
    const i = nr(t, (o) => o.end !== e ? "quit" : yQ(o.kind));
    return !!i && V5e(i, r);
  }
  function d9(e) {
    let t = 0, r = 0;
    const i = 5;
    return Ma(e, function o(s) {
      if (c9(s.kind)) {
        const c = s.getLastToken(e);
        (c == null ? void 0 : c.kind) === 26 ? t++ : r++;
      } else if (sQ(s.kind)) {
        const c = s.getLastToken(e);
        if ((c == null ? void 0 : c.kind) === 26)
          t++;
        else if (c && c.kind !== 27) {
          const f = ol(e, c.getStart(e)).line, d = ol(e, gy(e, c.end).start).line;
          f !== d && r++;
        }
      }
      return t + r >= i ? !0 : Ma(s, o);
    }), t === 0 && r <= 1 ? !0 : t / r > 1 / i;
  }
  function f9(e, t) {
    return h9(e, e.getDirectories, t) || [];
  }
  function lQ(e, t, r, i, o) {
    return h9(e, e.readDirectory, t, r, i, o) || rt;
  }
  function _9(e, t) {
    return h9(e, e.fileExists, t);
  }
  function p9(e, t) {
    return m9(() => Yp(t, e)) || !1;
  }
  function m9(e) {
    try {
      return e();
    } catch {
      return;
    }
  }
  function h9(e, t, ...r) {
    return m9(() => t && t.apply(e, r));
  }
  function cQ(e, t, r) {
    const i = [];
    return rg(e, (o) => {
      if (o === r)
        return !0;
      const s = Bi(o, "package.json");
      _9(t, s) && i.push(s);
    }), i;
  }
  function vve(e, t) {
    let r;
    return rg(e, (i) => {
      if (i === "node_modules" || (r = Qhe(i, (o) => _9(t, o), "package.json"), r))
        return !0;
    }), r;
  }
  function bve(e, t) {
    if (!t.fileExists)
      return [];
    const r = [];
    return rg(mi(e), (i) => {
      const o = Bi(i, "package.json");
      if (t.fileExists(o)) {
        const s = Eve(o, t);
        s && r.push(s);
      }
    }), r;
  }
  function Eve(e, t) {
    if (!t.readFile)
      return;
    const r = ["dependencies", "devDependencies", "optionalDependencies", "peerDependencies"], i = t.readFile(e) || "", o = j5e(i), s = {};
    if (o)
      for (const d of r) {
        const y = o[d];
        if (!y)
          continue;
        const h = /* @__PURE__ */ new Map();
        for (const E in y)
          h.set(E, y[E]);
        s[d] = h;
      }
    const c = [
      [1, s.dependencies],
      [2, s.devDependencies],
      [8, s.optionalDependencies],
      [4, s.peerDependencies]
    ];
    return {
      ...s,
      parseable: !!o,
      fileName: e,
      get: f,
      has(d, y) {
        return !!f(d, y);
      }
    };
    function f(d, y = 15) {
      for (const [h, E] of c)
        if (E && y & h) {
          const A = E.get(d);
          if (A !== void 0)
            return A;
        }
    }
  }
  function bw(e, t, r) {
    const i = (r.getPackageJsonsVisibleToFile && r.getPackageJsonsVisibleToFile(e.fileName) || bve(e.fileName, r)).filter((I) => I.parseable);
    let o, s, c;
    return {
      allowsImportingAmbientModule: d,
      allowsImportingSourceFile: y,
      allowsImportingSpecifier: h
    };
    function f(I) {
      const O = L(I);
      for (const k of i)
        if (k.has(O) || k.has(N5(O)))
          return !0;
      return !1;
    }
    function d(I, O) {
      if (!i.length || !I.valueDeclaration)
        return !0;
      if (!s)
        s = /* @__PURE__ */ new Map();
      else {
        const te = s.get(I);
        if (te !== void 0)
          return te;
      }
      const k = V_(I.getName());
      if (E(k))
        return s.set(I, !0), !0;
      const G = I.valueDeclaration.getSourceFile(), V = A(G.fileName, O);
      if (typeof V > "u")
        return s.set(I, !0), !0;
      const H = f(V) || f(k);
      return s.set(I, H), H;
    }
    function y(I, O) {
      if (!i.length)
        return !0;
      if (!c)
        c = /* @__PURE__ */ new Map();
      else {
        const V = c.get(I);
        if (V !== void 0)
          return V;
      }
      const k = A(I.fileName, O);
      if (!k)
        return c.set(I, !0), !0;
      const G = f(k);
      return c.set(I, G), G;
    }
    function h(I) {
      return !i.length || E(I) || Sf(I) || km(I) ? !0 : f(I);
    }
    function E(I) {
      return !!(Zu(e) && jT.nodeCoreModules.has(I) && (o === void 0 && (o = g9(e)), o));
    }
    function A(I, O) {
      if (!pu(I, "node_modules"))
        return;
      const k = B1.getNodeModulesPackageName(r.getCompilationSettings(), e, I, O, t);
      if (k && !Sf(k) && !km(k))
        return L(k);
    }
    function L(I) {
      const O = ld(v8(I)).slice(1);
      return xa(O[0], "@") ? `${O[0]}/${O[1]}` : O[0];
    }
  }
  function j5e(e) {
    try {
      return JSON.parse(e);
    } catch {
      return;
    }
  }
  function g9(e) {
    return kt(e.imports, ({ text: t }) => jT.nodeCoreModules.has(t));
  }
  function Tve(e) {
    return jr(ld(e), "node_modules");
  }
  function uQ(e) {
    return e.file !== void 0 && e.start !== void 0 && e.length !== void 0;
  }
  function Sve(e, t) {
    const r = rd(e), i = PS(t, r, ml, j4);
    if (i >= 0) {
      const o = t[i];
      return D.assertEqual(o.file, e.getSourceFile(), "Diagnostics proided to 'findDiagnosticForNode' must be from a single SourceFile"), oo(o, uQ);
    }
  }
  function xve(e, t) {
    var r;
    let i = PS(t, e.start, (c) => c.start, Ws);
    for (i < 0 && (i = ~i); ((r = t[i - 1]) == null ? void 0 : r.start) === e.start; )
      i--;
    const o = [], s = iu(e);
    for (; ; ) {
      const c = ai(t[i], uQ);
      if (!c || c.start > s)
        break;
      Hle(e, c) && o.push(c), i++;
    }
    return o;
  }
  function zx({ startPosition: e, endPosition: t }) {
    return hc(e, t === void 0 ? e : t);
  }
  function dQ(e, t) {
    const r = aa(e, t.start);
    return nr(r, (o) => o.getStart(e) < t.start || o.getEnd() > iu(t) ? "quit" : vt(o) && XC(t, rd(o, e)));
  }
  function Ave(e, t, r = ml) {
    return e ? Va(e) ? r(jt(e, t)) : t(e, 0) : void 0;
  }
  function fQ(e) {
    return Va(e) ? us(e) : e;
  }
  function Cve(e, t) {
    if (Lve(e)) {
      const r = Ive(e);
      if (r)
        return r;
      const i = Hu.moduleSymbolToValidIdentifier(_Q(e), t, !1), o = Hu.moduleSymbolToValidIdentifier(_Q(e), t, !0);
      return i === o ? i : [i, o];
    }
    return e.name;
  }
  function y9(e, t, r) {
    return Lve(e) ? Ive(e) || Hu.moduleSymbolToValidIdentifier(_Q(e), t, !!r) : e.name;
  }
  function Lve(e) {
    return !(e.flags & 33554432) && (e.escapedName === "export=" || e.escapedName === "default");
  }
  function Ive(e) {
    return Jt(e.declarations, (t) => {
      var r, i;
      return Bl(t) ? (r = ai(bu(t.expression), je)) == null ? void 0 : r.text : (i = ai(ka(t), je)) == null ? void 0 : i.text;
    });
  }
  function _Q(e) {
    var t;
    return D.checkDefined(e.parent, `Symbol parent was undefined. Flags: ${D.formatSymbolFlags(e.flags)}. Declarations: ${(t = e.declarations) == null ? void 0 : t.map((r) => {
      const i = D.formatSyntaxKind(r.kind), o = fr(r), { expression: s } = r;
      return (o ? "[JS]" : "") + i + (s ? ` (expression: ${D.formatSyntaxKind(s.kind)})` : "");
    }).join(", ")}.`);
  }
  function kve(e, t, r) {
    const i = t.length;
    if (i + r > e.length)
      return !1;
    for (let o = 0; o < i; o++)
      if (t.charCodeAt(o) !== e.charCodeAt(o + r))
        return !1;
    return !0;
  }
  function pQ(e) {
    return e.charCodeAt(0) === 95;
  }
  function H5e(e) {
    return !wve(e);
  }
  function wve(e) {
    const t = e.getSourceFile();
    return !t.externalModuleIndicator && !t.commonJsModuleIndicator ? !1 : fr(e) || !nr(e, (r) => Jl(r) && Kp(r));
  }
  function v9(e) {
    return !!(oW(e) & 8192);
  }
  function b9(e, t) {
    const r = Jt(e.imports, (i) => {
      if (jT.nodeCoreModules.has(i.text))
        return xa(i.text, "node:");
    });
    return r ?? t.usesUriStyleNodeCoreModules;
  }
  function m6(e) {
    return e === `
` ? 1 : 0;
  }
  function qx(e) {
    return Va(e) ? Th(Oo(e[0]), e.slice(1)) : Oo(e);
  }
  function E9({ options: e }, t) {
    const r = !e.semicolons || e.semicolons === "ignore", i = e.semicolons === "remove" || r && !d9(t);
    return {
      ...e,
      semicolons: i ? "remove" : "ignore"
    };
  }
  function mQ(e) {
    return e === 2 || e === 3;
  }
  function Ew(e, t) {
    return e.isSourceFileFromExternalLibrary(t) || e.isSourceFileDefaultLibrary(t);
  }
  function T9(e, t) {
    const r = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Set();
    for (const f of t)
      if (!BO(f)) {
        const d = js(f.expression);
        if (nT(d))
          switch (d.kind) {
            case 14:
            case 10:
              r.add(d.text);
              break;
            case 8:
              i.add(parseInt(d.text));
              break;
            case 9:
              const y = qde(ic(d.text, "n") ? d.text.slice(0, -1) : d.text);
              y && o.add(I1(y));
              break;
          }
        else {
          const y = e.getSymbolAtLocation(f.expression);
          if (y && y.valueDeclaration && O1(y.valueDeclaration)) {
            const h = e.getConstantValue(y.valueDeclaration);
            h !== void 0 && s(h);
          }
        }
      }
    return {
      addValue: s,
      hasValue: c
    };
    function s(f) {
      switch (typeof f) {
        case "string":
          r.add(f);
          break;
        case "number":
          i.add(f);
      }
    }
    function c(f) {
      switch (typeof f) {
        case "string":
          return r.has(f);
        case "number":
          return i.has(f);
        case "object":
          return o.has(I1(f));
      }
    }
  }
  var Su, hQ, Dve, S9, gQ, x9, Rve, A9, yQ, W5e = C({
    "src/services/utilities.ts"() {
      $r(), Su = dy(99, !0), hQ = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Value = 1] = "Value", e[e.Type = 2] = "Type", e[e.Namespace = 4] = "Namespace", e[e.All = 7] = "All", e))(hQ || {}), Dve = /^\/\/\/\s*</, S9 = [
        131,
        129,
        160,
        134,
        95,
        138,
        141,
        144,
        104,
        148,
        149,
        146,
        152,
        153,
        110,
        114,
        155,
        156,
        157
      ], gQ = /* @__PURE__ */ ((e) => (e[e.Single = 0] = "Single", e[e.Double = 1] = "Double", e))(gQ || {}), x9 = N5e(), Rve = `
`, A9 = "anonymous function", yQ = Im(sQ, gve, yve, c9);
    }
  });
  function Nve(e) {
    let t = 1;
    const r = f_(), i = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
    let s;
    const c = {
      isUsableByFile: (L) => L === s,
      isEmpty: () => !r.size,
      clear: () => {
        r.clear(), i.clear(), s = void 0;
      },
      add: (L, I, O, k, G, V, H, te) => {
        L !== s && (c.clear(), s = L);
        let X;
        if (G) {
          const Te = Cq(G.fileName);
          if (Te) {
            const { topLevelNodeModulesIndex: ee, topLevelPackageNameIndex: Qe, packageRootIndex: Ve } = Te;
            if (X = O5(v8(G.fileName.substring(Qe + 1, Ve))), xa(L, G.path.substring(0, ee))) {
              const Be = o.get(X), qe = G.fileName.substring(0, Qe + 1);
              if (Be) {
                const Oe = Be.indexOf(Cy);
                ee > Oe && o.set(X, qe);
              } else
                o.set(X, qe);
            }
          }
        }
        const P = V === 1 && tC(I) || I, de = V === 0 || a6(P) ? ta(O) : Cve(P, void 0), re = typeof de == "string" ? de : de[0], ye = typeof de == "string" ? void 0 : de[1], ae = V_(k.name), W = t++, ce = cf(I, te), me = I.flags & 33554432 ? void 0 : I, ve = k.flags & 33554432 ? void 0 : k;
        (!me || !ve) && i.set(W, [I, k]), r.add(d(re, I, Gc(ae) ? void 0 : ae, te), {
          id: W,
          symbolTableKey: O,
          symbolName: re,
          capitalizedSymbolName: ye,
          moduleName: ae,
          moduleFile: G,
          moduleFileName: G == null ? void 0 : G.fileName,
          packageName: X,
          exportKind: V,
          targetFlags: ce.flags,
          isFromPackageJson: H,
          symbol: me,
          moduleSymbol: ve
        });
      },
      get: (L, I) => {
        if (L !== s)
          return;
        const O = r.get(I);
        return O == null ? void 0 : O.map(f);
      },
      search: (L, I, O, k) => {
        if (L === s)
          return of(r, (G, V) => {
            const { symbolName: H, ambientModuleName: te } = y(V), X = I && G[0].capitalizedSymbolName || H;
            if (O(X, G[0].targetFlags)) {
              const P = G.map(f).filter((de, re) => A(de, G[re].packageName));
              if (P.length) {
                const de = k(P, X, !!te, V);
                if (de !== void 0)
                  return de;
              }
            }
          });
      },
      releaseSymbols: () => {
        i.clear();
      },
      onFileChanged: (L, I, O) => h(L) && h(I) ? !1 : s && s !== I.path || O && g9(L) !== g9(I) || !Hp(L.moduleAugmentations, I.moduleAugmentations) || !E(L, I) ? (c.clear(), !0) : (s = I.path, !1)
    };
    return D.isDebugging && Object.defineProperty(c, "__cache", { get: () => r }), c;
    function f(L) {
      if (L.symbol && L.moduleSymbol)
        return L;
      const { id: I, exportKind: O, targetFlags: k, isFromPackageJson: G, moduleFileName: V } = L, [H, te] = i.get(I) || rt;
      if (H && te)
        return {
          symbol: H,
          moduleSymbol: te,
          moduleFileName: V,
          exportKind: O,
          targetFlags: k,
          isFromPackageJson: G
        };
      const X = (G ? e.getPackageJsonAutoImportProvider() : e.getCurrentProgram()).getTypeChecker(), Y = L.moduleSymbol || te || D.checkDefined(L.moduleFile ? X.getMergedSymbol(L.moduleFile.symbol) : X.tryFindAmbientModule(L.moduleName)), P = L.symbol || H || D.checkDefined(O === 2 ? X.resolveExternalModuleSymbol(Y) : X.tryGetMemberInModuleExportsAndProperties(ta(L.symbolTableKey), Y), `Could not find symbol '${L.symbolName}' by key '${L.symbolTableKey}' in module ${Y.name}`);
      return i.set(I, [P, Y]), {
        symbol: P,
        moduleSymbol: Y,
        moduleFileName: V,
        exportKind: O,
        targetFlags: k,
        isFromPackageJson: G
      };
    }
    function d(L, I, O, k) {
      const G = O || "";
      return `${L}|${bo(cf(I, k))}|${G}`;
    }
    function y(L) {
      const I = L.substring(0, L.indexOf("|")), O = L.substring(L.lastIndexOf("|") + 1);
      return { symbolName: I, ambientModuleName: O === "" ? void 0 : O };
    }
    function h(L) {
      return !L.commonJsModuleIndicator && !L.externalModuleIndicator && !L.moduleAugmentations && !L.ambientModuleNames;
    }
    function E(L, I) {
      if (!Hp(L.ambientModuleNames, I.ambientModuleNames))
        return !1;
      let O = -1, k = -1;
      for (const G of I.ambientModuleNames) {
        const V = (H) => JW(H) && H.name.text === G;
        if (O = vi(L.statements, V, O + 1), k = vi(I.statements, V, k + 1), L.statements[O] !== I.statements[k])
          return !1;
      }
      return !0;
    }
    function A(L, I) {
      if (!I || !L.moduleFileName)
        return !0;
      const O = e.getGlobalTypingsCacheLocation();
      if (O && xa(L.moduleFileName, O))
        return !0;
      const k = o.get(I);
      return !k || xa(L.moduleFileName, k);
    }
  }
  function vQ(e, t, r, i, o, s, c) {
    var f;
    if (t === r)
      return !1;
    const d = c == null ? void 0 : c.get(t.path, r.path, i, {});
    if ((d == null ? void 0 : d.isBlockedByPackageJsonDependencies) !== void 0)
      return !d.isBlockedByPackageJsonDependencies;
    const y = J0(s), h = (f = s.getGlobalTypingsCacheLocation) == null ? void 0 : f.call(s), E = !!B1.forEachFileNameOfModule(t.fileName, r.fileName, s, !1, (A) => {
      const L = e.getSourceFile(A);
      return (L === r || !L) && z5e(t.fileName, A, y, h);
    });
    if (o) {
      const A = E && o.allowsImportingSourceFile(r, s);
      return c == null || c.setBlockedByPackageJsonDependencies(t.path, r.path, i, {}, !A), A;
    }
    return E;
  }
  function z5e(e, t, r, i) {
    const o = rg(t, (c) => mu(c) === "node_modules" ? c : void 0), s = o && mi(r(o));
    return s === void 0 || xa(r(e), s) || !!i && xa(r(i), s);
  }
  function bQ(e, t, r, i, o) {
    var s, c;
    const f = WN(t), d = r.autoImportFileExcludePatterns && ia(r.autoImportFileExcludePatterns, (h) => {
      const E = _q(h, "", "exclude");
      return E ? Pv(E, f) : void 0;
    });
    Ove(e.getTypeChecker(), e.getSourceFiles(), d, (h, E) => o(h, E, e, !1));
    const y = i && ((s = t.getPackageJsonAutoImportProvider) == null ? void 0 : s.call(t));
    if (y) {
      const h = il(), E = e.getTypeChecker();
      Ove(y.getTypeChecker(), y.getSourceFiles(), d, (A, L) => {
        (L && !e.getSourceFile(L.fileName) || !L && !E.resolveName(A.name, void 0, 1536, !1)) && o(A, L, y, !0);
      }), (c = t.log) == null || c.call(t, `forEachExternalModuleToImportFrom autoImportProvider: ${il() - h}`);
    }
  }
  function Ove(e, t, r, i) {
    var o;
    const s = r && ((c) => r.some((f) => f.test(c)));
    for (const c of e.getAmbientModules())
      !pu(c.name, "*") && !(r && ((o = c.declarations) != null && o.every((f) => s(f.getSourceFile().fileName)))) && i(c, void 0);
    for (const c of t)
      sf(c) && !(s != null && s(c.fileName)) && i(e.getMergedSymbol(c.symbol), c);
  }
  function h6(e, t, r, i, o) {
    var s, c, f, d, y;
    const h = il();
    (s = t.getPackageJsonAutoImportProvider) == null || s.call(t);
    const E = ((c = t.getCachedExportInfoMap) == null ? void 0 : c.call(t)) || Nve({
      getCurrentProgram: () => r,
      getPackageJsonAutoImportProvider: () => {
        var I;
        return (I = t.getPackageJsonAutoImportProvider) == null ? void 0 : I.call(t);
      },
      getGlobalTypingsCacheLocation: () => {
        var I;
        return (I = t.getGlobalTypingsCacheLocation) == null ? void 0 : I.call(t);
      }
    });
    if (E.isUsableByFile(e.path))
      return (f = t.log) == null || f.call(t, "getExportInfoMap: cache hit"), E;
    (d = t.log) == null || d.call(t, "getExportInfoMap: cache miss or empty; calculating new results");
    const A = r.getCompilerOptions();
    let L = 0;
    try {
      bQ(r, t, i, !0, (I, O, k, G) => {
        ++L % 100 === 0 && (o == null || o.throwIfCancellationRequested());
        const V = /* @__PURE__ */ new Map(), H = k.getTypeChecker(), te = C9(I, H, A);
        te && Pve(te.symbol, H) && E.add(e.path, te.symbol, te.exportKind === 1 ? "default" : "export=", I, O, te.exportKind, G, H), H.forEachExportAndPropertyOfModule(I, (X, Y) => {
          X !== (te == null ? void 0 : te.symbol) && Pve(X, H) && vp(V, Y) && E.add(e.path, X, Y, I, O, 0, G, H);
        });
      });
    } catch (I) {
      throw E.clear(), I;
    }
    return (y = t.log) == null || y.call(t, `getExportInfoMap: done in ${il() - h} ms`), E;
  }
  function C9(e, t, r) {
    const i = q5e(e, t);
    if (!i)
      return;
    const { symbol: o, exportKind: s } = i, c = L9(o, t, r);
    return c && { symbol: o, exportKind: s, ...c };
  }
  function Pve(e, t) {
    return !t.isUndefinedSymbol(e) && !t.isUnknownSymbol(e) && !FN(e) && !Fue(e);
  }
  function q5e(e, t) {
    const r = t.resolveExternalModuleSymbol(e);
    if (r !== e)
      return { symbol: r, exportKind: 2 };
    const i = t.tryGetMemberInModuleExports("default", e);
    if (i)
      return { symbol: i, exportKind: 1 };
  }
  function L9(e, t, r) {
    const i = tC(e);
    if (i)
      return { resolvedSymbol: i, name: i.name };
    const o = J5e(e);
    if (o !== void 0)
      return { resolvedSymbol: e, name: o };
    if (e.flags & 2097152) {
      const s = t.getImmediateAliasedSymbol(e);
      if (s && s.parent)
        return L9(s, t, r);
    }
    return e.escapedName !== "default" && e.escapedName !== "export=" ? { resolvedSymbol: e, name: e.getName() } : { resolvedSymbol: e, name: y9(e, r.target) };
  }
  function J5e(e) {
    return e.declarations && Jt(e.declarations, (t) => {
      var r;
      if (Bl(t))
        return (r = ai(bu(t.expression), je)) == null ? void 0 : r.text;
      if (dd(t))
        return D.assert(t.name.text === "default", "Expected the specifier to be a default export"), t.propertyName && t.propertyName.text;
    });
  }
  var EQ, TQ, K5e = C({
    "src/services/exportInfoMap.ts"() {
      $r(), EQ = /* @__PURE__ */ ((e) => (e[e.Named = 0] = "Named", e[e.Default = 1] = "Default", e[e.Namespace = 2] = "Namespace", e[e.CommonJS = 3] = "CommonJS", e))(EQ || {}), TQ = /* @__PURE__ */ ((e) => (e[e.Named = 0] = "Named", e[e.Default = 1] = "Default", e[e.ExportEquals = 2] = "ExportEquals", e[e.UMD = 3] = "UMD", e))(TQ || {});
    }
  });
  function Mve() {
    const e = dy(99, !1);
    function t(i, o, s) {
      return $5e(r(i, o, s), i);
    }
    function r(i, o, s) {
      let c = 0, f = 0;
      const d = [], { prefix: y, pushTemplate: h } = eFe(o);
      i = y + i;
      const E = y.length;
      h && d.push(15), e.setText(i);
      let A = 0;
      const L = [];
      let I = 0;
      do {
        c = e.scan(), YA(c) || (O(), f = c);
        const k = e.getTextPos();
        if (Y5e(e.getTokenPos(), k, E, rFe(c), L), k >= i.length) {
          const G = X5e(e, c, tl(d));
          G !== void 0 && (A = G);
        }
      } while (c !== 1);
      function O() {
        switch (c) {
          case 43:
          case 68:
            !jve[f] && e.reScanSlashToken() === 13 && (c = 13);
            break;
          case 29:
            f === 79 && I++;
            break;
          case 31:
            I > 0 && I--;
            break;
          case 131:
          case 152:
          case 148:
          case 134:
          case 153:
            I > 0 && !s && (c = 79);
            break;
          case 15:
            d.push(c);
            break;
          case 18:
            d.length > 0 && d.push(c);
            break;
          case 19:
            if (d.length > 0) {
              const k = tl(d);
              k === 15 ? (c = e.reScanTemplateToken(!1), c === 17 ? d.pop() : D.assertEqual(c, 16, "Should have been a template middle.")) : (D.assertEqual(k, 18, "Should have been an open brace"), d.pop());
            }
            break;
          default:
            if (!Ad(c))
              break;
            (f === 24 || Ad(f) && Ad(c) && !Z5e(f, c)) && (c = 79);
        }
      }
      return { endOfLineState: A, spans: L };
    }
    return { getClassificationsForLine: t, getEncodedLexicalClassifications: r };
  }
  function X5e(e, t, r) {
    switch (t) {
      case 10: {
        if (!e.isUnterminated())
          return;
        const i = e.getTokenText(), o = i.length - 1;
        let s = 0;
        for (; i.charCodeAt(o - s) === 92; )
          s++;
        return s & 1 ? i.charCodeAt(0) === 34 ? 3 : 2 : void 0;
      }
      case 3:
        return e.isUnterminated() ? 1 : void 0;
      default:
        if (Cv(t)) {
          if (!e.isUnterminated())
            return;
          switch (t) {
            case 17:
              return 5;
            case 14:
              return 4;
            default:
              return D.fail("Only 'NoSubstitutionTemplateLiteral's and 'TemplateTail's can be unterminated; got SyntaxKind #" + t);
          }
        }
        return r === 15 ? 6 : void 0;
    }
  }
  function Y5e(e, t, r, i, o) {
    if (i === 8)
      return;
    e === 0 && r > 0 && (e += r);
    const s = t - e;
    s > 0 && o.push(e - r, s, i);
  }
  function $5e(e, t) {
    const r = [], i = e.spans;
    let o = 0;
    for (let c = 0; c < i.length; c += 3) {
      const f = i[c], d = i[c + 1], y = i[c + 2];
      if (o >= 0) {
        const h = f - o;
        h > 0 && r.push({ length: h, classification: 4 });
      }
      r.push({ length: d, classification: Q5e(y) }), o = f + d;
    }
    const s = t.length - o;
    return s > 0 && r.push({ length: s, classification: 4 }), { entries: r, finalLexState: e.endOfLineState };
  }
  function Q5e(e) {
    switch (e) {
      case 1:
        return 3;
      case 3:
        return 1;
      case 4:
        return 6;
      case 25:
        return 7;
      case 5:
        return 2;
      case 6:
        return 8;
      case 8:
        return 4;
      case 10:
        return 0;
      case 2:
      case 11:
      case 12:
      case 13:
      case 14:
      case 15:
      case 16:
      case 9:
      case 17:
        return 5;
      default:
        return;
    }
  }
  function Z5e(e, t) {
    if (!F$(e))
      return !0;
    switch (t) {
      case 137:
      case 151:
      case 135:
      case 124:
      case 127:
        return !0;
      default:
        return !1;
    }
  }
  function eFe(e) {
    switch (e) {
      case 3:
        return { prefix: `"\\
` };
      case 2:
        return { prefix: `'\\
` };
      case 1:
        return { prefix: `/*
` };
      case 4:
        return { prefix: "`\n" };
      case 5:
        return { prefix: `}
`, pushTemplate: !0 };
      case 6:
        return { prefix: "", pushTemplate: !0 };
      case 0:
        return { prefix: "" };
      default:
        return D.assertNever(e);
    }
  }
  function tFe(e) {
    switch (e) {
      case 41:
      case 43:
      case 44:
      case 39:
      case 40:
      case 47:
      case 48:
      case 49:
      case 29:
      case 31:
      case 32:
      case 33:
      case 102:
      case 101:
      case 128:
      case 150:
      case 34:
      case 35:
      case 36:
      case 37:
      case 50:
      case 52:
      case 51:
      case 55:
      case 56:
      case 74:
      case 73:
      case 78:
      case 70:
      case 71:
      case 72:
      case 64:
      case 65:
      case 66:
      case 68:
      case 69:
      case 63:
      case 27:
      case 60:
      case 75:
      case 76:
      case 77:
        return !0;
      default:
        return !1;
    }
  }
  function nFe(e) {
    switch (e) {
      case 39:
      case 40:
      case 54:
      case 53:
      case 45:
      case 46:
        return !0;
      default:
        return !1;
    }
  }
  function rFe(e) {
    if (Ad(e))
      return 3;
    if (tFe(e) || nFe(e))
      return 5;
    if (e >= 18 && e <= 78)
      return 10;
    switch (e) {
      case 8:
        return 4;
      case 9:
        return 25;
      case 10:
        return 6;
      case 13:
        return 7;
      case 7:
      case 3:
      case 2:
        return 1;
      case 5:
      case 4:
        return 8;
      case 79:
      default:
        return Cv(e) ? 6 : 2;
    }
  }
  function Fve(e, t, r, i, o) {
    return Uve(SQ(e, t, r, i, o));
  }
  function Bve(e, t) {
    switch (t) {
      case 264:
      case 260:
      case 261:
      case 259:
      case 228:
      case 215:
      case 216:
        e.throwIfCancellationRequested();
    }
  }
  function SQ(e, t, r, i, o) {
    const s = [];
    return r.forEachChild(function f(d) {
      if (!(!d || !LM(o, d.pos, d.getFullWidth()))) {
        if (Bve(t, d.kind), je(d) && !Al(d) && i.has(d.escapedText)) {
          const y = e.getSymbolAtLocation(d), h = y && Gve(y, HT(d), e);
          h && c(d.getStart(r), d.getEnd(), h);
        }
        d.forEachChild(f);
      }
    }), { spans: s, endOfLineState: 0 };
    function c(f, d, y) {
      const h = d - f;
      D.assert(h > 0, `Classification had non-positive length of ${h}`), s.push(f), s.push(h), s.push(y);
    }
  }
  function Gve(e, t, r) {
    const i = e.getFlags();
    if (i & 2885600)
      return i & 32 ? 11 : i & 384 ? 12 : i & 524288 ? 16 : i & 1536 ? t & 4 || t & 1 && iFe(e) ? 14 : void 0 : i & 2097152 ? Gve(r.getAliasedSymbol(e), t, r) : t & 2 ? i & 64 ? 13 : i & 262144 ? 15 : void 0 : void 0;
  }
  function iFe(e) {
    return kt(e.declarations, (t) => Jl(t) && vg(t) === 1);
  }
  function aFe(e) {
    switch (e) {
      case 1:
        return "comment";
      case 2:
        return "identifier";
      case 3:
        return "keyword";
      case 4:
        return "number";
      case 25:
        return "bigint";
      case 5:
        return "operator";
      case 6:
        return "string";
      case 8:
        return "whitespace";
      case 9:
        return "text";
      case 10:
        return "punctuation";
      case 11:
        return "class name";
      case 12:
        return "enum name";
      case 13:
        return "interface name";
      case 14:
        return "module name";
      case 15:
        return "type parameter name";
      case 16:
        return "type alias name";
      case 17:
        return "parameter name";
      case 18:
        return "doc comment tag name";
      case 19:
        return "jsx open tag name";
      case 20:
        return "jsx close tag name";
      case 21:
        return "jsx self closing tag name";
      case 22:
        return "jsx attribute";
      case 23:
        return "jsx text";
      case 24:
        return "jsx attribute string literal value";
      default:
        return;
    }
  }
  function Uve(e) {
    D.assert(e.spans.length % 3 === 0);
    const t = e.spans, r = [];
    for (let i = 0; i < t.length; i += 3)
      r.push({
        textSpan: wc(t[i], t[i + 1]),
        classificationType: aFe(t[i + 2])
      });
    return r;
  }
  function Vve(e, t, r) {
    return Uve(xQ(e, t, r));
  }
  function xQ(e, t, r) {
    const i = r.start, o = r.length, s = dy(99, !1, t.languageVariant, t.text), c = dy(99, !1, t.languageVariant, t.text), f = [];
    return te(t), { spans: f, endOfLineState: 0 };
    function d(X, Y, P) {
      f.push(X), f.push(Y), f.push(P);
    }
    function y(X) {
      for (s.setTextPos(X.pos); ; ) {
        const Y = s.getTextPos();
        if (!Lle(t.text, Y))
          return Y;
        const P = s.scan(), de = s.getTextPos(), re = de - Y;
        if (!YA(P))
          return Y;
        switch (P) {
          case 4:
          case 5:
            continue;
          case 2:
          case 3:
            h(X, P, Y, re), s.setTextPos(de);
            continue;
          case 7:
            const ye = t.text, ae = ye.charCodeAt(Y);
            if (ae === 60 || ae === 62) {
              d(Y, re, 1);
              continue;
            }
            D.assert(ae === 124 || ae === 61), O(ye, Y, de);
            break;
          case 6:
            break;
          default:
            D.assertNever(P);
        }
      }
    }
    function h(X, Y, P, de) {
      if (Y === 3) {
        const re = J_e(t.text, P, de);
        if (re && re.jsDoc) {
          Vo(re.jsDoc, X), A(re.jsDoc);
          return;
        }
      } else if (Y === 2 && L(P, de))
        return;
      E(P, de);
    }
    function E(X, Y) {
      d(X, Y, 1);
    }
    function A(X) {
      var Y, P, de, re, ye, ae, W, ce;
      let me = X.pos;
      if (X.tags)
        for (const Te of X.tags) {
          Te.pos !== me && E(me, Te.pos - me), d(Te.pos, 1, 10), d(Te.tagName.pos, Te.tagName.end - Te.tagName.pos, 18), me = Te.tagName.end;
          let ee = Te.tagName.end;
          switch (Te.kind) {
            case 344:
              const Qe = Te;
              ve(Qe), ee = Qe.isNameFirst && ((Y = Qe.typeExpression) == null ? void 0 : Y.end) || Qe.name.end;
              break;
            case 351:
              const Ve = Te;
              ee = Ve.isNameFirst && ((P = Ve.typeExpression) == null ? void 0 : P.end) || Ve.name.end;
              break;
            case 348:
              I(Te), me = Te.end, ee = Te.typeParameters.end;
              break;
            case 349:
              const Be = Te;
              ee = ((de = Be.typeExpression) == null ? void 0 : de.kind) === 312 && ((re = Be.fullName) == null ? void 0 : re.end) || ((ye = Be.typeExpression) == null ? void 0 : ye.end) || ee;
              break;
            case 341:
              ee = Te.typeExpression.end;
              break;
            case 347:
              te(Te.typeExpression), me = Te.end, ee = Te.typeExpression.end;
              break;
            case 346:
            case 343:
              ee = Te.typeExpression.end;
              break;
            case 345:
              te(Te.typeExpression), me = Te.end, ee = ((ae = Te.typeExpression) == null ? void 0 : ae.end) || ee;
              break;
            case 350:
              ee = ((W = Te.name) == null ? void 0 : W.end) || ee;
              break;
            case 331:
            case 332:
              ee = Te.class.end;
              break;
            case 352:
              te(Te.typeExpression), me = Te.end, ee = ((ce = Te.typeExpression) == null ? void 0 : ce.end) || ee;
              break;
          }
          typeof Te.comment == "object" ? E(Te.comment.pos, Te.comment.end - Te.comment.pos) : typeof Te.comment == "string" && E(ee, Te.end - ee);
        }
      me !== X.end && E(me, X.end - me);
      return;
      function ve(Te) {
        Te.isNameFirst && (E(me, Te.name.pos - me), d(Te.name.pos, Te.name.end - Te.name.pos, 17), me = Te.name.end), Te.typeExpression && (E(me, Te.typeExpression.pos - me), te(Te.typeExpression), me = Te.typeExpression.end), Te.isNameFirst || (E(me, Te.name.pos - me), d(Te.name.pos, Te.name.end - Te.name.pos, 17), me = Te.name.end);
      }
    }
    function L(X, Y) {
      const P = /^(\/\/\/\s*)(<)(?:(\S+)((?:[^/]|\/[^>])*)(\/>)?)?/im, de = /(\s)(\S+)(\s*)(=)(\s*)('[^']+'|"[^"]+")/img, re = t.text.substr(X, Y), ye = P.exec(re);
      if (!ye || !ye[3] || !(ye[3] in xR))
        return !1;
      let ae = X;
      E(ae, ye[1].length), ae += ye[1].length, d(ae, ye[2].length, 10), ae += ye[2].length, d(ae, ye[3].length, 21), ae += ye[3].length;
      const W = ye[4];
      let ce = ae;
      for (; ; ) {
        const ve = de.exec(W);
        if (!ve)
          break;
        const Te = ae + ve.index + ve[1].length;
        Te > ce && (E(ce, Te - ce), ce = Te), d(ce, ve[2].length, 22), ce += ve[2].length, ve[3].length && (E(ce, ve[3].length), ce += ve[3].length), d(ce, ve[4].length, 5), ce += ve[4].length, ve[5].length && (E(ce, ve[5].length), ce += ve[5].length), d(ce, ve[6].length, 24), ce += ve[6].length;
      }
      ae += ye[4].length, ae > ce && E(ce, ae - ce), ye[5] && (d(ae, ye[5].length, 10), ae += ye[5].length);
      const me = X + Y;
      return ae < me && E(ae, me - ae), !0;
    }
    function I(X) {
      for (const Y of X.getChildren())
        te(Y);
    }
    function O(X, Y, P) {
      let de;
      for (de = Y; de < P && !hu(X.charCodeAt(de)); de++)
        ;
      for (d(Y, de - Y, 1), c.setTextPos(de); c.getTextPos() < P; )
        k();
    }
    function k() {
      const X = c.getTextPos(), Y = c.scan(), P = c.getTextPos(), de = H(Y);
      de && d(X, P - X, de);
    }
    function G(X) {
      if (qm(X) || Al(X))
        return !0;
      const Y = V(X);
      if (!qS(X) && X.kind !== 11 && Y === void 0)
        return !1;
      const P = X.kind === 11 ? X.pos : y(X), de = X.end - P;
      if (D.assert(de >= 0), de > 0) {
        const re = Y || H(X.kind, X);
        re && d(P, de, re);
      }
      return !0;
    }
    function V(X) {
      switch (X.parent && X.parent.kind) {
        case 283:
          if (X.parent.tagName === X)
            return 19;
          break;
        case 284:
          if (X.parent.tagName === X)
            return 20;
          break;
        case 282:
          if (X.parent.tagName === X)
            return 21;
          break;
        case 288:
          if (X.parent.name === X)
            return 22;
          break;
      }
    }
    function H(X, Y) {
      if (Ad(X))
        return 3;
      if ((X === 29 || X === 31) && Y && Wye(Y.parent))
        return 10;
      if (qye(X)) {
        if (Y) {
          const P = Y.parent;
          if (X === 63 && (P.kind === 257 || P.kind === 169 || P.kind === 166 || P.kind === 288) || P.kind === 223 || P.kind === 221 || P.kind === 222 || P.kind === 224)
            return 5;
        }
        return 10;
      } else {
        if (X === 8)
          return 4;
        if (X === 9)
          return 25;
        if (X === 10)
          return Y && Y.parent.kind === 288 ? 24 : 6;
        if (X === 13)
          return 6;
        if (Cv(X))
          return 6;
        if (X === 11)
          return 23;
        if (X === 79) {
          if (Y) {
            switch (Y.parent.kind) {
              case 260:
                return Y.parent.name === Y ? 11 : void 0;
              case 165:
                return Y.parent.name === Y ? 15 : void 0;
              case 261:
                return Y.parent.name === Y ? 13 : void 0;
              case 263:
                return Y.parent.name === Y ? 12 : void 0;
              case 264:
                return Y.parent.name === Y ? 14 : void 0;
              case 166:
                return Y.parent.name === Y ? yT(Y) ? 3 : 17 : void 0;
            }
            if (sg(Y.parent))
              return 3;
          }
          return 2;
        }
      }
    }
    function te(X) {
      if (X && IM(i, o, X.pos, X.getFullWidth())) {
        Bve(e, X.kind);
        for (const Y of X.getChildren(t))
          G(Y) || te(Y);
      }
    }
  }
  var jve, oFe = C({
    "src/services/classifier.ts"() {
      $r(), jve = Ise([
        79,
        10,
        8,
        9,
        13,
        108,
        45,
        46,
        21,
        23,
        19,
        110,
        95
      ], (e) => e, () => !0);
    }
  }), I9, sFe = C({
    "src/services/documentHighlights.ts"() {
      $r(), ((e) => {
        function t(ae, W, ce, me, ve) {
          const Te = Df(ce, me);
          if (Te.parent && (kh(Te.parent) && Te.parent.tagName === Te || Dx(Te.parent))) {
            const { openingElement: ee, closingElement: Qe } = Te.parent.parent, Ve = [ee, Qe].map(({ tagName: Be }) => r(Be, ce));
            return [{ fileName: ce.fileName, highlightSpans: Ve }];
          }
          return i(me, Te, ae, W, ve) || o(Te, ce);
        }
        e.getDocumentHighlights = t;
        function r(ae, W) {
          return {
            fileName: W.fileName,
            textSpan: rd(ae, W),
            kind: "none"
          };
        }
        function i(ae, W, ce, me, ve) {
          const Te = new Set(ve.map((Be) => Be.fileName)), ee = ul.getReferenceEntriesForNode(ae, W, ce, ve, me, void 0, Te);
          if (!ee)
            return;
          const Qe = _R(ee.map(ul.toHighlightSpan), (Be) => Be.fileName, (Be) => Be.span), Ve = ru(ce.useCaseSensitiveFileNames());
          return Ro(_A(Qe.entries(), ([Be, qe]) => {
            if (!Te.has(Be)) {
              if (!ce.redirectTargetsMap.has(zs(Be, ce.getCurrentDirectory(), Ve)))
                return;
              const Oe = ce.getSourceFile(Be);
              Be = nn(ve, (Ye) => !!Ye.redirectInfo && Ye.redirectInfo.redirectTarget === Oe).fileName, D.assert(Te.has(Be));
            }
            return { fileName: Be, highlightSpans: qe };
          }));
        }
        function o(ae, W) {
          const ce = s(ae, W);
          return ce && [{ fileName: W.fileName, highlightSpans: ce }];
        }
        function s(ae, W) {
          switch (ae.kind) {
            case 99:
            case 91:
              return CT(ae.parent) ? de(ae.parent, W) : void 0;
            case 105:
              return me(ae.parent, bp, te);
            case 109:
              return me(ae.parent, EJ, H);
            case 111:
            case 83:
            case 96:
              const Te = ae.kind === 83 ? ae.parent.parent : ae.parent;
              return me(Te, PO, V);
            case 107:
              return me(ae.parent, OO, G);
            case 82:
            case 88:
              return BO(ae.parent) || Mk(ae.parent) ? me(ae.parent.parent.parent, OO, G) : void 0;
            case 81:
            case 86:
              return me(ae.parent, CI, k);
            case 97:
            case 115:
            case 90:
              return me(ae.parent, (ee) => Lv(ee, !0), O);
            case 135:
              return ce(ql, [135]);
            case 137:
            case 151:
              return ce(V0, [137, 151]);
            case 133:
              return me(ae.parent, TC, X);
            case 132:
              return ve(X(ae));
            case 125:
              return ve(Y(ae));
            case 101:
              return;
            default:
              return py(ae.kind) && (vu(ae.parent) || uc(ae.parent)) ? ve(A(ae.kind, ae.parent)) : void 0;
          }
          function ce(Te, ee) {
            return me(ae.parent, Te, (Qe) => {
              var Ve;
              return ia((Ve = ai(Qe, Rm)) == null ? void 0 : Ve.symbol.declarations, (Be) => Te(Be) ? nn(Be.getChildren(W), (qe) => jr(ee, qe.kind)) : void 0);
            });
          }
          function me(Te, ee, Qe) {
            return ee(Te) ? ve(Qe(Te, W)) : void 0;
          }
          function ve(Te) {
            return Te && Te.map((ee) => r(ee, W));
          }
        }
        function c(ae) {
          return EJ(ae) ? [ae] : PO(ae) ? va(ae.catchClause ? c(ae.catchClause) : ae.tryBlock && c(ae.tryBlock), ae.finallyBlock && c(ae.finallyBlock)) : Ka(ae) ? void 0 : y(ae, c);
        }
        function f(ae) {
          let W = ae;
          for (; W.parent; ) {
            const ce = W.parent;
            if (uT(ce) || ce.kind === 308)
              return ce;
            if (PO(ce) && ce.tryBlock === W && ce.catchClause)
              return W;
            W = ce;
          }
        }
        function d(ae) {
          return CI(ae) ? [ae] : Ka(ae) ? void 0 : y(ae, d);
        }
        function y(ae, W) {
          const ce = [];
          return ae.forEachChild((me) => {
            const ve = W(me);
            ve !== void 0 && ce.push(...pR(ve));
          }), ce;
        }
        function h(ae, W) {
          const ce = E(W);
          return !!ce && ce === ae;
        }
        function E(ae) {
          return nr(ae, (W) => {
            switch (W.kind) {
              case 252:
                if (ae.kind === 248)
                  return !1;
              case 245:
              case 246:
              case 247:
              case 244:
              case 243:
                return !ae.label || ye(W, ae.label.escapedText);
              default:
                return Ka(W) && "quit";
            }
          });
        }
        function A(ae, W) {
          return ia(L(W, ux(ae)), (ce) => KC(ce, ae));
        }
        function L(ae, W) {
          const ce = ae.parent;
          switch (ce.kind) {
            case 265:
            case 308:
            case 238:
            case 292:
            case 293:
              return W & 256 && Nc(ae) ? [...ae.members, ae] : ce.statements;
            case 173:
            case 171:
            case 259:
              return [...ce.parameters, ...di(ce.parent) ? ce.parent.members : []];
            case 260:
            case 228:
            case 261:
            case 184:
              const me = ce.members;
              if (W & 92) {
                const ve = nn(ce.members, ql);
                if (ve)
                  return [...me, ...ve.parameters];
              } else if (W & 256)
                return [...me, ce];
              return me;
            case 207:
              return;
            default:
              D.assertNever(ce, "Invalid container kind.");
          }
        }
        function I(ae, W, ...ce) {
          return W && jr(ce, W.kind) ? (ae.push(W), !0) : !1;
        }
        function O(ae) {
          const W = [];
          if (I(W, ae.getFirstToken(), 97, 115, 90) && ae.kind === 243) {
            const ce = ae.getChildren();
            for (let me = ce.length - 1; me >= 0 && !I(W, ce[me], 115); me--)
              ;
          }
          return ze(d(ae.statement), (ce) => {
            h(ae, ce) && I(W, ce.getFirstToken(), 81, 86);
          }), W;
        }
        function k(ae) {
          const W = E(ae);
          if (W)
            switch (W.kind) {
              case 245:
              case 246:
              case 247:
              case 243:
              case 244:
                return O(W);
              case 252:
                return G(W);
            }
        }
        function G(ae) {
          const W = [];
          return I(W, ae.getFirstToken(), 107), ze(ae.caseBlock.clauses, (ce) => {
            I(W, ce.getFirstToken(), 82, 88), ze(d(ce), (me) => {
              h(ae, me) && I(W, me.getFirstToken(), 81);
            });
          }), W;
        }
        function V(ae, W) {
          const ce = [];
          if (I(ce, ae.getFirstToken(), 111), ae.catchClause && I(ce, ae.catchClause.getFirstToken(), 83), ae.finallyBlock) {
            const me = bs(ae, 96, W);
            I(ce, me, 96);
          }
          return ce;
        }
        function H(ae, W) {
          const ce = f(ae);
          if (!ce)
            return;
          const me = [];
          return ze(c(ce), (ve) => {
            me.push(bs(ve, 109, W));
          }), uT(ce) && cT(ce, (ve) => {
            me.push(bs(ve, 105, W));
          }), me;
        }
        function te(ae, W) {
          const ce = Cf(ae);
          if (!ce)
            return;
          const me = [];
          return cT(oo(ce.body, co), (ve) => {
            me.push(bs(ve, 105, W));
          }), ze(c(ce.body), (ve) => {
            me.push(bs(ve, 109, W));
          }), me;
        }
        function X(ae) {
          const W = Cf(ae);
          if (!W)
            return;
          const ce = [];
          return W.modifiers && W.modifiers.forEach((me) => {
            I(ce, me, 132);
          }), Ma(W, (me) => {
            P(me, (ve) => {
              TC(ve) && I(ce, ve.getFirstToken(), 133);
            });
          }), ce;
        }
        function Y(ae) {
          const W = Cf(ae);
          if (!W)
            return;
          const ce = [];
          return Ma(W, (me) => {
            P(me, (ve) => {
              j7(ve) && I(ce, ve.getFirstToken(), 125);
            });
          }), ce;
        }
        function P(ae, W) {
          W(ae), !Ka(ae) && !di(ae) && !nd(ae) && !Jl(ae) && !em(ae) && !Gi(ae) && Ma(ae, (ce) => P(ce, W));
        }
        function de(ae, W) {
          const ce = re(ae, W), me = [];
          for (let ve = 0; ve < ce.length; ve++) {
            if (ce[ve].kind === 91 && ve < ce.length - 1) {
              const Te = ce[ve], ee = ce[ve + 1];
              let Qe = !0;
              for (let Ve = ee.getStart(W) - 1; Ve >= Te.end; Ve--)
                if (!Dm(W.text.charCodeAt(Ve))) {
                  Qe = !1;
                  break;
                }
              if (Qe) {
                me.push({
                  fileName: W.fileName,
                  textSpan: hc(Te.getStart(), ee.end),
                  kind: "reference"
                }), ve++;
                continue;
              }
            }
            me.push(r(ce[ve], W));
          }
          return me;
        }
        function re(ae, W) {
          const ce = [];
          for (; CT(ae.parent) && ae.parent.elseStatement === ae; )
            ae = ae.parent;
          for (; ; ) {
            const me = ae.getChildren(W);
            I(ce, me[0], 99);
            for (let ve = me.length - 1; ve >= 0 && !I(ce, me[ve], 91); ve--)
              ;
            if (!ae.elseStatement || !CT(ae.elseStatement))
              break;
            ae = ae.elseStatement;
          }
          return ce;
        }
        function ye(ae, W) {
          return !!nr(ae.parent, (ce) => R1(ce) ? ce.label.escapedText === W : "quit");
        }
      })(I9 || (I9 = {}));
    }
  });
  function k9(e) {
    return !!e.sourceFile;
  }
  function AQ(e, t) {
    return Hve(e, t);
  }
  function Hve(e, t = "", r) {
    const i = /* @__PURE__ */ new Map(), o = ru(!!e);
    function s() {
      const k = Ro(i.keys()).filter((G) => G && G.charAt(0) === "_").map((G) => {
        const V = i.get(G), H = [];
        return V.forEach((te, X) => {
          k9(te) ? H.push({
            name: X,
            scriptKind: te.sourceFile.scriptKind,
            refCount: te.languageServiceRefCount
          }) : te.forEach((Y, P) => H.push({ name: X, scriptKind: P, refCount: Y.languageServiceRefCount }));
        }), H.sort((te, X) => X.refCount - te.refCount), {
          bucket: G,
          sourceFiles: H
        };
      });
      return JSON.stringify(k, void 0, 2);
    }
    function c(k) {
      return typeof k.getCompilationSettings == "function" ? k.getCompilationSettings() : k;
    }
    function f(k, G, V, H, te, X) {
      const Y = zs(k, t, o), P = w9(c(G));
      return d(k, Y, G, P, V, H, te, X);
    }
    function d(k, G, V, H, te, X, Y, P) {
      return A(k, G, V, H, te, X, !0, Y, P);
    }
    function y(k, G, V, H, te, X) {
      const Y = zs(k, t, o), P = w9(c(G));
      return h(k, Y, G, P, V, H, te, X);
    }
    function h(k, G, V, H, te, X, Y, P) {
      return A(k, G, c(V), H, te, X, !1, Y, P);
    }
    function E(k, G) {
      const V = k9(k) ? k : k.get(D.checkDefined(G, "If there are more than one scriptKind's for same document the scriptKind should be provided"));
      return D.assert(G === void 0 || !V || V.sourceFile.scriptKind === G, `Script kind should match provided ScriptKind:${G} and sourceFile.scriptKind: ${V == null ? void 0 : V.sourceFile.scriptKind}, !entry: ${!V}`), V;
    }
    function A(k, G, V, H, te, X, Y, P, de) {
      var re, ye, ae, W;
      P = q3(k, P);
      const ce = c(V), me = V === ce ? void 0 : V, ve = P === 6 ? 100 : ts(ce), Te = typeof de == "object" ? de : {
        languageVersion: ve,
        impliedNodeFormat: me && uF(G, (W = (ae = (ye = (re = me.getCompilerHost) == null ? void 0 : re.call(me)) == null ? void 0 : ye.getModuleResolutionCache) == null ? void 0 : ae.call(ye)) == null ? void 0 : W.getPackageJsonInfoCache(), me, ce),
        setExternalModuleIndicator: ZN(ce)
      };
      Te.languageVersion = ve;
      const ee = i.size, Qe = Wve(H, Te.impliedNodeFormat), Ve = pA(i, Qe, () => /* @__PURE__ */ new Map());
      if (bi) {
        i.size > ee && bi.instant(bi.Phase.Session, "createdDocumentRegistryBucket", { configFilePath: ce.configFilePath, key: Qe });
        const Me = !fd(G) && of(i, (Ye, We) => We !== Qe && Ye.has(G) && We);
        Me && bi.instant(bi.Phase.Session, "documentRegistryBucketOverlap", { path: G, key1: Me, key2: Qe });
      }
      const Be = Ve.get(G);
      let qe = Be && E(Be, P);
      if (!qe && r) {
        const Me = r.getDocument(Qe, G);
        Me && (D.assert(Y), qe = {
          sourceFile: Me,
          languageServiceRefCount: 0
        }, Oe());
      }
      if (qe)
        qe.sourceFile.version !== X && (qe.sourceFile = $Q(qe.sourceFile, te, X, te.getChangeRange(qe.sourceFile.scriptSnapshot)), r && r.setDocument(Qe, G, qe.sourceFile)), Y && qe.languageServiceRefCount++;
      else {
        const Me = j9(k, te, Te, X, !1, P);
        r && r.setDocument(Qe, G, Me), qe = {
          sourceFile: Me,
          languageServiceRefCount: 1
        }, Oe();
      }
      return D.assert(qe.languageServiceRefCount !== 0), qe.sourceFile;
      function Oe() {
        if (!Be)
          Ve.set(G, qe);
        else if (k9(Be)) {
          const Me = /* @__PURE__ */ new Map();
          Me.set(Be.sourceFile.scriptKind, Be), Me.set(P, qe), Ve.set(G, Me);
        } else
          Be.set(P, qe);
      }
    }
    function L(k, G, V, H) {
      const te = zs(k, t, o), X = w9(G);
      return I(te, X, V, H);
    }
    function I(k, G, V, H) {
      const te = D.checkDefined(i.get(Wve(G, H))), X = te.get(k), Y = E(X, V);
      Y.languageServiceRefCount--, D.assert(Y.languageServiceRefCount >= 0), Y.languageServiceRefCount === 0 && (k9(X) ? te.delete(k) : (X.delete(V), X.size === 1 && te.set(k, dn(X.values(), ml))));
    }
    function O(k, G) {
      return Ro(i.entries(), ([V, H]) => {
        const te = H.get(k), X = te && E(te, G);
        return [V, X && X.languageServiceRefCount];
      });
    }
    return {
      acquireDocument: f,
      acquireDocumentWithKey: d,
      updateDocument: y,
      updateDocumentWithKey: h,
      releaseDocument: L,
      releaseDocumentWithKey: I,
      getLanguageServiceRefCounts: O,
      reportStats: s,
      getKeyForCompilationSettings: w9
    };
  }
  function w9(e) {
    return wK(e, g5);
  }
  function Wve(e, t) {
    return t ? `${e}|${t}` : e;
  }
  var lFe = C({
    "src/services/documentRegistry.ts"() {
      $r();
    }
  });
  function zve(e, t, r, i, o, s, c) {
    const f = WN(i), d = ru(f), y = CQ(t, r, d, c), h = CQ(r, t, d, c);
    return gr.ChangeTracker.with({ host: i, formatContext: o, preferences: s }, (E) => {
      uFe(e, E, y, t, r, i.getCurrentDirectory(), f), dFe(e, E, y, h, i, d);
    });
  }
  function CQ(e, t, r, i) {
    const o = r(e);
    return (c) => {
      const f = i && i.tryGetSourcePosition({ fileName: c, pos: 0 }), d = s(f ? f.fileName : c);
      return f ? d === void 0 ? void 0 : cFe(f.fileName, d, c, r) : d;
    };
    function s(c) {
      if (r(c) === o)
        return t;
      const f = dq(c, o, r);
      return f === void 0 ? void 0 : t + "/" + f;
    }
  }
  function cFe(e, t, r, i) {
    const o = NR(e, t, i);
    return LQ(mi(r), o);
  }
  function uFe(e, t, r, i, o, s, c) {
    const { configFile: f } = e.getCompilerOptions();
    if (!f)
      return;
    const d = mi(f.fileName), y = BI(f);
    if (!y)
      return;
    IQ(y, (L, I) => {
      switch (I) {
        case "files":
        case "include":
        case "exclude": {
          if (h(L) || I !== "include" || !Bu(L.initializer))
            return;
          const k = ia(L.initializer.elements, (V) => jo(V) ? V.text : void 0);
          if (k.length === 0)
            return;
          const G = dk(d, [], k, c, s);
          Pv(D.checkDefined(G.includeFilePattern), c).test(i) && !Pv(D.checkDefined(G.includeFilePattern), c).test(o) && t.insertNodeAfter(f, qo(L.initializer.elements), N.createStringLiteral(A(o)));
          return;
        }
        case "compilerOptions":
          IQ(L.initializer, (O, k) => {
            const G = tK(k);
            D.assert((G == null ? void 0 : G.type) !== "listOrElement"), G && (G.isFilePath || G.type === "list" && G.element.isFilePath) ? h(O) : k === "paths" && IQ(O.initializer, (V) => {
              if (Bu(V.initializer))
                for (const H of V.initializer.elements)
                  E(H);
            });
          });
          return;
      }
    });
    function h(L) {
      const I = Bu(L.initializer) ? L.initializer.elements : [L.initializer];
      let O = !1;
      for (const k of I)
        O = E(k) || O;
      return O;
    }
    function E(L) {
      if (!jo(L))
        return !1;
      const I = LQ(d, L.text), O = r(I);
      return O !== void 0 ? (t.replaceRangeWithText(f, Jve(L, f), A(O)), !0) : !1;
    }
    function A(L) {
      return wm(d, L, !c);
    }
  }
  function dFe(e, t, r, i, o, s) {
    const c = e.getSourceFiles();
    for (const f of c) {
      const d = r(f.fileName), y = d ?? f.fileName, h = mi(y), E = i(f.fileName), A = E || f.fileName, L = mi(A), I = d !== void 0 || E !== void 0;
      pFe(f, t, (O) => {
        if (!Sf(O))
          return;
        const k = LQ(L, O), G = r(k);
        return G === void 0 ? void 0 : c1(wm(h, G, s));
      }, (O) => {
        const k = e.getTypeChecker().getSymbolAtLocation(O);
        if (k != null && k.declarations && k.declarations.some((V) => Pu(V)))
          return;
        const G = E !== void 0 ? qve(O, Jk(O.text, A, e.getCompilerOptions(), o), r, c) : _Fe(k, O, f, e, o, r);
        return G !== void 0 && (G.updated || I && Sf(O.text)) ? B1.updateModuleSpecifier(e.getCompilerOptions(), f, s(y), G.newFileName, Wx(e, o), O.text) : void 0;
      });
    }
  }
  function fFe(e, t) {
    return Jo(Bi(e, t));
  }
  function LQ(e, t) {
    return c1(fFe(e, t));
  }
  function _Fe(e, t, r, i, o, s) {
    var c;
    if (e) {
      const f = nn(e.declarations, qi).fileName, d = s(f);
      return d === void 0 ? { newFileName: f, updated: !1 } : { newFileName: d, updated: !0 };
    } else {
      const f = Tp(r, t), d = o.resolveModuleNameLiterals || !o.resolveModuleNames ? (c = r.resolvedModules) == null ? void 0 : c.get(t.text, f) : o.getResolvedModuleWithFailedLookupLocationsFromCache && o.getResolvedModuleWithFailedLookupLocationsFromCache(t.text, r.fileName, f);
      return qve(t, d, s, i.getSourceFiles());
    }
  }
  function qve(e, t, r, i) {
    if (!t)
      return;
    if (t.resolvedModule) {
      const d = f(t.resolvedModule.resolvedFileName);
      if (d)
        return d;
    }
    const o = ze(t.failedLookupLocations, s) || Sf(e.text) && ze(t.failedLookupLocations, c);
    if (o)
      return o;
    return t.resolvedModule && { newFileName: t.resolvedModule.resolvedFileName, updated: !1 };
    function s(d) {
      const y = r(d);
      return y && nn(i, (h) => h.fileName === y) ? c(d) : void 0;
    }
    function c(d) {
      return ic(d, "/package.json") ? void 0 : f(d);
    }
    function f(d) {
      const y = r(d);
      return y && { newFileName: y, updated: !0 };
    }
  }
  function pFe(e, t, r, i) {
    for (const o of e.referencedFiles || rt) {
      const s = r(o.fileName);
      s !== void 0 && s !== e.text.slice(o.pos, o.end) && t.replaceRangeWithText(e, o, s);
    }
    for (const o of e.imports) {
      const s = i(o);
      s !== void 0 && s !== o.text && t.replaceRangeWithText(e, Jve(o, e), s);
    }
  }
  function Jve(e, t) {
    return h_(e.getStart(t) + 1, e.end - 1);
  }
  function IQ(e, t) {
    if (Ls(e))
      for (const r of e.properties)
        zc(r) && jo(r.name) && t(r, r.name.text);
  }
  var mFe = C({
    "src/services/getEditsForFileRename.ts"() {
      $r();
    }
  });
  function g6(e, t) {
    return {
      kind: e,
      isCaseSensitive: t
    };
  }
  function Kve(e) {
    const t = /* @__PURE__ */ new Map(), r = e.trim().split(".").map((i) => vFe(i.trim()));
    if (!r.some((i) => !i.subWordTextChunks.length))
      return {
        getFullMatch: (i, o) => hFe(i, o, r, t),
        getMatchForLastSegmentOfPattern: (i) => kQ(i, qo(r), t),
        patternContainsDots: r.length > 1
      };
  }
  function hFe(e, t, r, i) {
    if (!kQ(t, qo(r), i) || r.length - 1 > e.length)
      return;
    let s;
    for (let c = r.length - 2, f = e.length - 1; c >= 0; c -= 1, f -= 1)
      s = $ve(s, kQ(e[f], r[c], i));
    return s;
  }
  function Xve(e, t) {
    let r = t.get(e);
    return r || t.set(e, r = t0e(e)), r;
  }
  function Yve(e, t, r) {
    const i = bFe(e, t.textLowerCase);
    if (i === 0)
      return g6(t.text.length === e.length ? 0 : 1, xa(e, t.text));
    if (t.isLowerCase) {
      if (i === -1)
        return;
      const o = Xve(e, r);
      for (const s of o)
        if (wQ(e, s, t.text, !0))
          return g6(2, wQ(e, s, t.text, !1));
      if (t.text.length < e.length && Jx(e.charCodeAt(i)))
        return g6(2, !1);
    } else {
      if (e.indexOf(t.text) > 0)
        return g6(2, !0);
      if (t.characterSpans.length > 0) {
        const o = Xve(e, r), s = Qve(e, o, t, !1) ? !0 : Qve(e, o, t, !0) ? !1 : void 0;
        if (s !== void 0)
          return g6(3, s);
      }
    }
  }
  function kQ(e, t, r) {
    if (D9(t.totalTextChunk.text, (s) => s !== 32 && s !== 42)) {
      const s = Yve(e, t.totalTextChunk, r);
      if (s)
        return s;
    }
    const i = t.subWordTextChunks;
    let o;
    for (const s of i)
      o = $ve(o, Yve(e, s, r));
    return o;
  }
  function $ve(e, t) {
    return Ij([e, t], gFe);
  }
  function gFe(e, t) {
    return e === void 0 ? 1 : t === void 0 ? -1 : Ws(e.kind, t.kind) || r1(!e.isCaseSensitive, !t.isCaseSensitive);
  }
  function wQ(e, t, r, i, o = { start: 0, length: r.length }) {
    return o.length <= t.length && i0e(0, o.length, (s) => yFe(r.charCodeAt(o.start + s), e.charCodeAt(t.start + s), i));
  }
  function yFe(e, t, r) {
    return r ? DQ(e) === DQ(t) : e === t;
  }
  function Qve(e, t, r, i) {
    const o = r.characterSpans;
    let s = 0, c = 0;
    for (; ; ) {
      if (c === o.length)
        return !0;
      if (s === t.length)
        return !1;
      let f = t[s], d = !1;
      for (; c < o.length; c++) {
        const y = o[c];
        if (d && (!Jx(r.text.charCodeAt(o[c - 1].start)) || !Jx(r.text.charCodeAt(o[c].start))) || !wQ(e, f, r.text, i, y))
          break;
        d = !0, f = wc(f.start + y.length, f.length - y.length);
      }
      s++;
    }
  }
  function vFe(e) {
    return {
      totalTextChunk: NQ(e),
      subWordTextChunks: TFe(e)
    };
  }
  function Jx(e) {
    if (e >= 65 && e <= 90)
      return !0;
    if (e < 127 || !bM(e, 99))
      return !1;
    const t = String.fromCharCode(e);
    return t === t.toUpperCase();
  }
  function Zve(e) {
    if (e >= 97 && e <= 122)
      return !0;
    if (e < 127 || !bM(e, 99))
      return !1;
    const t = String.fromCharCode(e);
    return t === t.toLowerCase();
  }
  function bFe(e, t) {
    const r = e.length - t.length;
    for (let i = 0; i <= r; i++)
      if (D9(t, (o, s) => DQ(e.charCodeAt(s + i)) === o))
        return i;
    return -1;
  }
  function DQ(e) {
    return e >= 65 && e <= 90 ? 97 + (e - 65) : e < 127 ? e : String.fromCharCode(e).toLowerCase().charCodeAt(0);
  }
  function RQ(e) {
    return e >= 48 && e <= 57;
  }
  function EFe(e) {
    return Jx(e) || Zve(e) || RQ(e) || e === 95 || e === 36;
  }
  function TFe(e) {
    const t = [];
    let r = 0, i = 0;
    for (let o = 0; o < e.length; o++) {
      const s = e.charCodeAt(o);
      EFe(s) ? (i === 0 && (r = o), i++) : i > 0 && (t.push(NQ(e.substr(r, i))), i = 0);
    }
    return i > 0 && t.push(NQ(e.substr(r, i))), t;
  }
  function NQ(e) {
    const t = e.toLowerCase();
    return {
      text: e,
      textLowerCase: t,
      isLowerCase: e === t,
      characterSpans: e0e(e)
    };
  }
  function e0e(e) {
    return n0e(e, !1);
  }
  function t0e(e) {
    return n0e(e, !0);
  }
  function n0e(e, t) {
    const r = [];
    let i = 0;
    for (let o = 1; o < e.length; o++) {
      const s = RQ(e.charCodeAt(o - 1)), c = RQ(e.charCodeAt(o)), f = xFe(e, t, o), d = t && SFe(e, o, i);
      (OQ(e.charCodeAt(o - 1)) || OQ(e.charCodeAt(o)) || s !== c || f || d) && (r0e(e, i, o) || r.push(wc(i, o - i)), i = o);
    }
    return r0e(e, i, e.length) || r.push(wc(i, e.length - i)), r;
  }
  function OQ(e) {
    switch (e) {
      case 33:
      case 34:
      case 35:
      case 37:
      case 38:
      case 39:
      case 40:
      case 41:
      case 42:
      case 44:
      case 45:
      case 46:
      case 47:
      case 58:
      case 59:
      case 63:
      case 64:
      case 91:
      case 92:
      case 93:
      case 95:
      case 123:
      case 125:
        return !0;
    }
    return !1;
  }
  function r0e(e, t, r) {
    return D9(e, (i) => OQ(i) && i !== 95, t, r);
  }
  function SFe(e, t, r) {
    return t !== r && t + 1 < e.length && Jx(e.charCodeAt(t)) && Zve(e.charCodeAt(t + 1)) && D9(e, Jx, r, t);
  }
  function xFe(e, t, r) {
    const i = Jx(e.charCodeAt(r - 1));
    return Jx(e.charCodeAt(r)) && (!t || !i);
  }
  function i0e(e, t, r) {
    for (let i = e; i < t; i++)
      if (!r(i))
        return !1;
    return !0;
  }
  function D9(e, t, r = 0, i = e.length) {
    return i0e(r, i, (o) => t(e.charCodeAt(o), o));
  }
  var R9, AFe = C({
    "src/services/patternMatcher.ts"() {
      $r(), R9 = /* @__PURE__ */ ((e) => (e[e.exact = 0] = "exact", e[e.prefix = 1] = "prefix", e[e.substring = 2] = "substring", e[e.camelCase = 3] = "camelCase", e))(R9 || {});
    }
  });
  function a0e(e, t = !0, r = !1) {
    const i = {
      languageVersion: 1,
      pragmas: void 0,
      checkJsDirective: void 0,
      referencedFiles: [],
      typeReferenceDirectives: [],
      libReferenceDirectives: [],
      amdDependencies: [],
      hasNoDefaultLib: void 0,
      moduleName: void 0
    }, o = [];
    let s, c, f, d = 0, y = !1;
    function h() {
      return c = f, f = Su.scan(), f === 18 ? d++ : f === 19 && d--, f;
    }
    function E() {
      const X = Su.getTokenValue(), Y = Su.getTokenPos();
      return { fileName: X, pos: Y, end: Y + X.length };
    }
    function A() {
      s || (s = []), s.push({ ref: E(), depth: d });
    }
    function L() {
      o.push(E()), I();
    }
    function I() {
      d === 0 && (y = !0);
    }
    function O() {
      let X = Su.getToken();
      return X === 136 ? (X = h(), X === 142 && (X = h(), X === 10 && A()), !0) : !1;
    }
    function k() {
      if (c === 24)
        return !1;
      let X = Su.getToken();
      if (X === 100) {
        if (X = h(), X === 20) {
          if (X = h(), X === 10 || X === 14)
            return L(), !0;
        } else {
          if (X === 10)
            return L(), !0;
          if (X === 154 && Su.lookAhead(() => {
            const P = Su.scan();
            return P !== 158 && (P === 41 || P === 18 || P === 79 || Ad(P));
          }) && (X = h()), X === 79 || Ad(X))
            if (X = h(), X === 158) {
              if (X = h(), X === 10)
                return L(), !0;
            } else if (X === 63) {
              if (V(!0))
                return !0;
            } else if (X === 27)
              X = h();
            else
              return !0;
          if (X === 18) {
            for (X = h(); X !== 19 && X !== 1; )
              X = h();
            X === 19 && (X = h(), X === 158 && (X = h(), X === 10 && L()));
          } else
            X === 41 && (X = h(), X === 128 && (X = h(), (X === 79 || Ad(X)) && (X = h(), X === 158 && (X = h(), X === 10 && L()))));
        }
        return !0;
      }
      return !1;
    }
    function G() {
      let X = Su.getToken();
      if (X === 93) {
        if (I(), X = h(), X === 154 && Su.lookAhead(() => {
          const P = Su.scan();
          return P === 41 || P === 18;
        }) && (X = h()), X === 18) {
          for (X = h(); X !== 19 && X !== 1; )
            X = h();
          X === 19 && (X = h(), X === 158 && (X = h(), X === 10 && L()));
        } else if (X === 41)
          X = h(), X === 158 && (X = h(), X === 10 && L());
        else if (X === 100 && (X = h(), X === 154 && Su.lookAhead(() => {
          const P = Su.scan();
          return P === 79 || Ad(P);
        }) && (X = h()), (X === 79 || Ad(X)) && (X = h(), X === 63 && V(!0))))
          return !0;
        return !0;
      }
      return !1;
    }
    function V(X, Y = !1) {
      let P = X ? h() : Su.getToken();
      return P === 147 ? (P = h(), P === 20 && (P = h(), (P === 10 || Y && P === 14) && L()), !0) : !1;
    }
    function H() {
      let X = Su.getToken();
      if (X === 79 && Su.getTokenValue() === "define") {
        if (X = h(), X !== 20)
          return !0;
        if (X = h(), X === 10 || X === 14)
          if (X = h(), X === 27)
            X = h();
          else
            return !0;
        if (X !== 22)
          return !0;
        for (X = h(); X !== 23 && X !== 1; )
          (X === 10 || X === 14) && L(), X = h();
        return !0;
      }
      return !1;
    }
    function te() {
      for (Su.setText(e), h(); Su.getToken() !== 1; ) {
        if (Su.getToken() === 15) {
          const X = [Su.getToken()];
          e:
            for (; Le(X); ) {
              const Y = Su.scan();
              switch (Y) {
                case 1:
                  break e;
                case 100:
                  k();
                  break;
                case 15:
                  X.push(Y);
                  break;
                case 18:
                  Le(X) && X.push(Y);
                  break;
                case 19:
                  Le(X) && (tl(X) === 15 ? Su.reScanTemplateToken(!1) === 17 && X.pop() : X.pop());
                  break;
              }
            }
          h();
        }
        O() || k() || G() || r && (V(!1, !0) || H()) || h();
      }
      Su.setText(void 0);
    }
    if (t && te(), XJ(i, e), YJ(i, so), y) {
      if (s)
        for (const X of s)
          o.push(X.ref);
      return { referencedFiles: i.referencedFiles, typeReferenceDirectives: i.typeReferenceDirectives, libReferenceDirectives: i.libReferenceDirectives, importedFiles: o, isLibFile: !!i.hasNoDefaultLib, ambientExternalModules: void 0 };
    } else {
      let X;
      if (s)
        for (const Y of s)
          Y.depth === 0 ? (X || (X = []), X.push(Y.ref.fileName)) : o.push(Y.ref);
      return { referencedFiles: i.referencedFiles, typeReferenceDirectives: i.typeReferenceDirectives, libReferenceDirectives: i.libReferenceDirectives, importedFiles: o, isLibFile: !!i.hasNoDefaultLib, ambientExternalModules: X };
    }
  }
  var CFe = C({
    "src/services/preProcess.ts"() {
      $r();
    }
  });
  function o0e(e) {
    const t = ru(e.useCaseSensitiveFileNames()), r = e.getCurrentDirectory(), i = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
    return { tryGetSourcePosition: f, tryGetGeneratedPosition: d, toLineColumnOffset: A, clearCache: L };
    function s(I) {
      return zs(I, r, t);
    }
    function c(I, O) {
      const k = s(I), G = o.get(k);
      if (G)
        return G;
      let V;
      if (e.getDocumentPositionMapper)
        V = e.getDocumentPositionMapper(I, O);
      else if (e.readFile) {
        const H = E(I);
        V = H && s0e({ getSourceFileLike: E, getCanonicalFileName: t, log: (te) => e.log(te) }, I, Kme(H.text, ig(H)), (te) => !e.fileExists || e.fileExists(te) ? e.readFile(te) : void 0);
      }
      return o.set(k, V || K5), V || K5;
    }
    function f(I) {
      if (!fd(I.fileName) || !y(I.fileName))
        return;
      const k = c(I.fileName).getSourcePosition(I);
      return !k || k === I ? void 0 : f(k) || k;
    }
    function d(I) {
      if (fd(I.fileName))
        return;
      const O = y(I.fileName);
      if (!O)
        return;
      const k = e.getProgram();
      if (k.isSourceOfProjectReferenceRedirect(O.fileName))
        return;
      const G = k.getCompilerOptions(), V = qs(G), H = V ? Ud(V) + ".d.ts" : Pz(I.fileName, k.getCompilerOptions(), r, k.getCommonSourceDirectory(), t);
      if (H === void 0)
        return;
      const te = c(H, I.fileName).getGeneratedPosition(I);
      return te === I ? void 0 : te;
    }
    function y(I) {
      const O = e.getProgram();
      if (!O)
        return;
      const k = s(I), G = O.getSourceFileByPath(k);
      return G && G.resolvedPath === k ? G : void 0;
    }
    function h(I) {
      const O = s(I), k = i.get(O);
      if (k !== void 0)
        return k || void 0;
      if (!e.readFile || e.fileExists && !e.fileExists(O)) {
        i.set(O, !1);
        return;
      }
      const G = e.readFile(O), V = G ? LFe(G) : !1;
      return i.set(O, V), V || void 0;
    }
    function E(I) {
      return e.getSourceFileLike ? e.getSourceFileLike(I) : y(I) || h(I);
    }
    function A(I, O) {
      return E(I).getLineAndCharacterOfPosition(O);
    }
    function L() {
      i.clear(), o.clear();
    }
  }
  function s0e(e, t, r, i) {
    let o = Xme(r);
    if (o) {
      const f = c0e.exec(o);
      if (f) {
        if (f[1]) {
          const d = f[1];
          return l0e(e, _de($c, d), t);
        }
        o = void 0;
      }
    }
    const s = [];
    o && s.push(o), s.push(t + ".map");
    const c = o && Pa(o, mi(t));
    for (const f of s) {
      const d = Pa(f, mi(t)), y = i(d, c);
      if (Ha(y))
        return l0e(e, y, d);
      if (y !== void 0)
        return y || void 0;
    }
  }
  function l0e(e, t, r) {
    const i = iX(t);
    if (!(!i || !i.sources || !i.file || !i.mappings) && !(i.sourcesContent && i.sourcesContent.some(Ha)))
      return ehe(e, i, r);
  }
  function LFe(e, t) {
    return {
      text: e,
      lineMap: t,
      getLineAndCharacterOfPosition(r) {
        return BR(ig(this), r);
      }
    };
  }
  var c0e, IFe = C({
    "src/services/sourcemaps.ts"() {
      $r(), $r(), c0e = /^data:(?:application\/json(?:;charset=[uU][tT][fF]-8);base64,([A-Za-z0-9+\/=]+)$)?/;
    }
  });
  function PQ(e, t, r) {
    t.getSemanticDiagnostics(e, r);
    const i = [], o = t.getTypeChecker();
    !(e.impliedNodeFormat === 1 || Tc(e.fileName, [".cts", ".cjs"])) && e.commonJsModuleIndicator && (Qye(t) || H$(t.getCompilerOptions())) && kFe(e) && i.push(Nr(NFe(e.commonJsModuleIndicator), _.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module));
    const c = Zu(e);
    if (O9.clear(), f(e), ET(t.getCompilerOptions()))
      for (const d of e.imports) {
        const y = AN(d), h = wFe(y);
        if (!h)
          continue;
        const E = RA(e, d.text, Tp(e, d)), A = E && t.getSourceFile(E.resolvedFileName);
        A && A.externalModuleIndicator && A.externalModuleIndicator !== !0 && Bl(A.externalModuleIndicator) && A.externalModuleIndicator.isExportEquals && i.push(Nr(h, _.Import_may_be_converted_to_a_default_import));
      }
    return Ti(i, e.bindSuggestionDiagnostics), Ti(i, t.getSuggestionDiagnostics(e, r)), i.sort((d, y) => d.start - y.start);
    function f(d) {
      if (c)
        PFe(d, o) && i.push(Nr(Ki(d.parent) ? d.parent.name : d, _.This_constructor_function_may_be_converted_to_a_class_declaration));
      else {
        if (uc(d) && d.parent === e && d.declarationList.flags & 2 && d.declarationList.declarations.length === 1) {
          const y = d.declarationList.declarations[0].initializer;
          y && xd(y, !0) && i.push(Nr(y, _.require_call_may_be_converted_to_an_import));
        }
        Hu.parameterShouldGetTypeFromJSDoc(d) && i.push(Nr(d.name || d, _.JSDoc_types_may_be_moved_to_TypeScript_types));
      }
      BQ(d) && DFe(d, o, i), d.forEachChild(f);
    }
  }
  function kFe(e) {
    return e.statements.some((t) => {
      switch (t.kind) {
        case 240:
          return t.declarationList.declarations.some((r) => !!r.initializer && xd(u0e(r.initializer), !0));
        case 241: {
          const { expression: r } = t;
          if (!br(r))
            return xd(r, !0);
          const i = Cl(r);
          return i === 1 || i === 2;
        }
        default:
          return !1;
      }
    });
  }
  function u0e(e) {
    return Fr(e) ? u0e(e.expression) : e;
  }
  function wFe(e) {
    switch (e.kind) {
      case 269:
        const { importClause: t, moduleSpecifier: r } = e;
        return t && !t.name && t.namedBindings && t.namedBindings.kind === 271 && jo(r) ? t.namedBindings.name : void 0;
      case 268:
        return e.name;
      default:
        return;
    }
  }
  function DFe(e, t, r) {
    RFe(e, t) && !O9.has(p0e(e)) && r.push(Nr(!e.name && Ki(e.parent) && je(e.parent.name) ? e.parent.name : e, _.This_may_be_converted_to_an_async_function));
  }
  function RFe(e, t) {
    return !$A(e) && e.body && co(e.body) && OFe(e.body, t) && MQ(e, t);
  }
  function MQ(e, t) {
    const r = t.getSignatureFromDeclaration(e), i = r ? t.getReturnTypeOfSignature(r) : void 0;
    return !!i && !!t.getPromisedTypeOfPromise(i);
  }
  function NFe(e) {
    return br(e) ? e.left : e;
  }
  function OFe(e, t) {
    return !!cT(e, (r) => N9(r, t));
  }
  function N9(e, t) {
    return bp(e) && !!e.expression && FQ(e.expression, t);
  }
  function FQ(e, t) {
    if (!d0e(e) || !f0e(e) || !e.arguments.every((i) => _0e(i, t)))
      return !1;
    let r = e.expression.expression;
    for (; d0e(r) || Fr(r); )
      if (no(r)) {
        if (!f0e(r) || !r.arguments.every((i) => _0e(i, t)))
          return !1;
        r = r.expression.expression;
      } else
        r = r.expression;
    return !0;
  }
  function d0e(e) {
    return no(e) && (X8(e, "then") || X8(e, "catch") || X8(e, "finally"));
  }
  function f0e(e) {
    const t = e.expression.name.text, r = t === "then" ? 2 : t === "catch" || t === "finally" ? 1 : 0;
    return e.arguments.length > r ? !1 : e.arguments.length < r ? !0 : r === 1 || kt(e.arguments, (i) => i.kind === 104 || je(i) && i.text === "undefined");
  }
  function _0e(e, t) {
    switch (e.kind) {
      case 259:
      case 215:
        if (Vc(e) & 1)
          return !1;
      case 216:
        O9.set(p0e(e), !0);
      case 104:
        return !0;
      case 79:
      case 208: {
        const i = t.getSymbolAtLocation(e);
        return i ? t.isUndefinedSymbol(i) || kt(cf(i, t).declarations, (o) => Ka(o) || kv(o) && !!o.initializer && Ka(o.initializer)) : !1;
      }
      default:
        return !1;
    }
  }
  function p0e(e) {
    return `${e.pos.toString()}:${e.end.toString()}`;
  }
  function PFe(e, t) {
    var r, i, o, s;
    if (Bs(e)) {
      if (Ki(e.parent) && ((r = e.symbol.members) != null && r.size))
        return !0;
      const c = t.getSymbolOfExpando(e, !1);
      return !!(c && ((i = c.exports) != null && i.size || (o = c.members) != null && o.size));
    }
    return yc(e) ? !!((s = e.symbol.members) != null && s.size) : !1;
  }
  function BQ(e) {
    switch (e.kind) {
      case 259:
      case 171:
      case 215:
      case 216:
        return !0;
      default:
        return !1;
    }
  }
  var O9, MFe = C({
    "src/services/suggestionDiagnostics.ts"() {
      $r(), O9 = /* @__PURE__ */ new Map();
    }
  });
  function m0e(e, t) {
    const r = [], i = t.compilerOptions ? GQ(t.compilerOptions, r) : {}, o = V9();
    for (const A in o)
      Ps(o, A) && i[A] === void 0 && (i[A] = o[A]);
    for (const A of SK)
      i.verbatimModuleSyntax && h0e.has(A.name) || (i[A.name] = A.transpileOptionValue);
    i.suppressOutputPathCheck = !0, i.allowNonTsExtensions = !0;
    const s = X0(i), c = {
      getSourceFile: (A) => A === Jo(f) ? d : void 0,
      writeFile: (A, L) => {
        cc(A, ".map") ? (D.assertEqual(h, void 0, "Unexpected multiple source map outputs, file:", A), h = L) : (D.assertEqual(y, void 0, "Unexpected multiple outputs, file:", A), y = L);
      },
      getDefaultLibFileName: () => "lib.d.ts",
      useCaseSensitiveFileNames: () => !1,
      getCanonicalFileName: (A) => A,
      getCurrentDirectory: () => "",
      getNewLine: () => s,
      fileExists: (A) => A === f,
      readFile: () => "",
      directoryExists: () => !0,
      getDirectories: () => []
    }, f = t.fileName || (t.compilerOptions && t.compilerOptions.jsx ? "module.tsx" : "module.ts"), d = YO(f, e, {
      languageVersion: ts(i),
      impliedNodeFormat: uF(zs(f, "", c.getCanonicalFileName), void 0, c, i),
      setExternalModuleIndicator: ZN(i)
    });
    t.moduleName && (d.moduleName = t.moduleName), t.renamedDependencies && (d.renamedDependencies = new Map(Object.entries(t.renamedDependencies)));
    let y, h;
    const E = dF([f], i, c);
    return t.reportDiagnostics && (Ti(r, E.getSyntacticDiagnostics(d)), Ti(r, E.getOptionsDiagnostics())), E.emit(void 0, void 0, void 0, void 0, t.transformers), y === void 0 ? D.fail("Output generation failed") : { outputText: y, diagnostics: r, sourceMapText: h };
  }
  function FFe(e, t, r, i, o) {
    const s = m0e(e, { compilerOptions: t, fileName: r, reportDiagnostics: !!i, moduleName: o });
    return Ti(i, s.diagnostics), s.outputText;
  }
  function GQ(e, t) {
    UQ = UQ || lr(yg, (r) => typeof r.type == "object" && !of(r.type, (i) => typeof i != "number")), e = Jye(e);
    for (const r of UQ) {
      if (!Ps(e, r.name))
        continue;
      const i = e[r.name];
      Ha(i) ? e[r.name] = c5(r, i, t) : of(r.type, (o) => o === i) || t.push(QJ(r));
    }
    return e;
  }
  var h0e, UQ, BFe = C({
    "src/services/transpile.ts"() {
      $r(), h0e = /* @__PURE__ */ new Set([
        "isolatedModules",
        "preserveValueImports",
        "importsNotUsedAsValues"
      ]);
    }
  });
  function g0e(e, t, r, i, o, s) {
    const c = Kve(i);
    if (!c)
      return rt;
    const f = [];
    for (const d of e)
      r.throwIfCancellationRequested(), !(s && d.isDeclarationFile) && d.getNamedDeclarations().forEach((y, h) => {
        GFe(c, h, y, t, d.fileName, f);
      });
    return f.sort(HFe), (o === void 0 ? f : f.slice(0, o)).map(WFe);
  }
  function GFe(e, t, r, i, o, s) {
    const c = e.getMatchForLastSegmentOfPattern(t);
    if (c) {
      for (const f of r)
        if (UFe(f, i))
          if (e.patternContainsDots) {
            const d = e.getFullMatch(jFe(f), t);
            d && s.push({ name: t, fileName: o, matchKind: d.kind, isCaseSensitive: d.isCaseSensitive, declaration: f });
          } else
            s.push({ name: t, fileName: o, matchKind: c.kind, isCaseSensitive: c.isCaseSensitive, declaration: f });
    }
  }
  function UFe(e, t) {
    switch (e.kind) {
      case 270:
      case 273:
      case 268:
        const r = t.getSymbolAtLocation(e.name), i = t.getAliasedSymbol(r);
        return r.escapedName !== i.escapedName;
      default:
        return !0;
    }
  }
  function VFe(e, t) {
    const r = ka(e);
    return !!r && (y0e(r, t) || r.kind === 164 && VQ(r.expression, t));
  }
  function VQ(e, t) {
    return y0e(e, t) || Fr(e) && (t.push(e.name.text), !0) && VQ(e.expression, t);
  }
  function y0e(e, t) {
    return G_(e) && (t.push(U_(e)), !0);
  }
  function jFe(e) {
    const t = [], r = ka(e);
    if (r && r.kind === 164 && !VQ(r.expression, t))
      return rt;
    t.shift();
    let i = WT(e);
    for (; i; ) {
      if (!VFe(i, t))
        return rt;
      i = WT(i);
    }
    return t.reverse();
  }
  function HFe(e, t) {
    return Ws(e.matchKind, t.matchKind) || mR(e.name, t.name);
  }
  function WFe(e) {
    const t = e.declaration, r = WT(t), i = r && ka(r);
    return {
      name: e.name,
      kind: z1(t),
      kindModifiers: _w(t),
      matchKind: R9[e.matchKind],
      isCaseSensitive: e.isCaseSensitive,
      fileName: e.fileName,
      textSpan: rd(t),
      containerName: i ? i.text : "",
      containerKind: i ? z1(r) : ""
    };
  }
  var zFe = C({
    "src/services/navigateTo.ts"() {
      $r();
    }
  }), v0e = {};
  ne(v0e, {
    getNavigateToItems: () => g0e
  });
  var b0e = C({
    "src/services/_namespaces/ts.NavigateTo.ts"() {
      zFe();
    }
  });
  function E0e(e, t) {
    B9 = t, Tw = e;
    try {
      return jt(YFe(A0e(e)), $Fe);
    } finally {
      S0e();
    }
  }
  function T0e(e, t) {
    B9 = t, Tw = e;
    try {
      return O0e(A0e(e));
    } finally {
      S0e();
    }
  }
  function S0e() {
    Tw = void 0, B9 = void 0, Sw = [], Eg = void 0, G9 = [];
  }
  function y6(e) {
    return QC(e.getText(Tw));
  }
  function P9(e) {
    return e.node.kind;
  }
  function x0e(e, t) {
    e.children ? e.children.push(t) : e.children = [t];
  }
  function A0e(e) {
    D.assert(!Sw.length);
    const t = { node: e, name: void 0, additionalNodes: void 0, parent: void 0, children: void 0, indent: 0 };
    Eg = t;
    for (const r of e.statements)
      XT(r);
    return Kv(), D.assert(!Eg && !Sw.length), t;
  }
  function ab(e, t) {
    x0e(Eg, jQ(e, t));
  }
  function jQ(e, t) {
    return {
      node: e,
      name: t || (vu(e) || vt(e) ? ka(e) : void 0),
      additionalNodes: void 0,
      parent: Eg,
      children: void 0,
      indent: Eg.indent + 1
    };
  }
  function C0e(e) {
    Kx || (Kx = /* @__PURE__ */ new Map()), Kx.set(e, !0);
  }
  function L0e(e) {
    for (let t = 0; t < e; t++)
      Kv();
  }
  function I0e(e, t) {
    const r = [];
    for (; !G_(t); ) {
      const i = bN(t), o = fg(t);
      t = t.expression, !(o === "prototype" || Ni(i)) && r.push(i);
    }
    r.push(t);
    for (let i = r.length - 1; i > 0; i--) {
      const o = r[i];
      ob(e, o);
    }
    return [r.length - 1, r[0]];
  }
  function ob(e, t) {
    const r = jQ(e, t);
    x0e(Eg, r), Sw.push(Eg), YQ.push(Kx), Kx = void 0, Eg = r;
  }
  function Kv() {
    Eg.children && (M9(Eg.children, Eg), zQ(Eg.children)), Eg = Sw.pop(), Kx = YQ.pop();
  }
  function Xv(e, t, r) {
    ob(e, r), XT(t), Kv();
  }
  function k0e(e) {
    e.initializer && ZFe(e.initializer) ? (ob(e), Ma(e.initializer, XT), Kv()) : Xv(e, e.initializer);
  }
  function HQ(e) {
    return !Rv(e) || e.kind !== 223 && Fr(e.name.expression) && je(e.name.expression.expression) && Mr(e.name.expression.expression) === "Symbol";
  }
  function XT(e) {
    if (B9.throwIfCancellationRequested(), !(!e || qS(e)))
      switch (e.kind) {
        case 173:
          const t = e;
          Xv(t, t.body);
          for (const c of t.parameters)
            nf(c, t) && ab(c);
          break;
        case 171:
        case 174:
        case 175:
        case 170:
          HQ(e) && Xv(e, e.body);
          break;
        case 169:
          HQ(e) && k0e(e);
          break;
        case 168:
          HQ(e) && ab(e);
          break;
        case 270:
          const r = e;
          r.name && ab(r.name);
          const { namedBindings: i } = r;
          if (i)
            if (i.kind === 271)
              ab(i);
            else
              for (const c of i.elements)
                ab(c);
          break;
        case 300:
          Xv(e, e.name);
          break;
        case 301:
          const { expression: o } = e;
          je(o) ? ab(e, o) : ab(e);
          break;
        case 205:
        case 299:
        case 257: {
          const c = e;
          Xa(c.name) ? XT(c.name) : k0e(c);
          break;
        }
        case 259:
          const s = e.name;
          s && je(s) && C0e(s.text), Xv(e, e.body);
          break;
        case 216:
        case 215:
          Xv(e, e.body);
          break;
        case 263:
          ob(e);
          for (const c of e.members)
            QFe(c) || ab(c);
          Kv();
          break;
        case 260:
        case 228:
        case 261:
          ob(e);
          for (const c of e.members)
            XT(c);
          Kv();
          break;
        case 264:
          Xv(e, M0e(e).body);
          break;
        case 274: {
          const c = e.expression, f = Ls(c) || no(c) ? c : Js(c) || Bs(c) ? c.body : void 0;
          f ? (ob(e), XT(f), Kv()) : ab(e);
          break;
        }
        case 278:
        case 268:
        case 178:
        case 176:
        case 177:
        case 262:
          ab(e);
          break;
        case 210:
        case 223: {
          const c = Cl(e);
          switch (c) {
            case 1:
            case 2:
              Xv(e, e.right);
              return;
            case 6:
            case 3: {
              const f = e, d = f.left, y = c === 3 ? d.expression : d;
              let h = 0, E;
              je(y.expression) ? (C0e(y.expression.text), E = y.expression) : [h, E] = I0e(f, y.expression), c === 6 ? Ls(f.right) && f.right.properties.length > 0 && (ob(f, E), Ma(f.right, XT), Kv()) : Bs(f.right) || Js(f.right) ? Xv(e, f.right, E) : (ob(f, E), Xv(e, f.right, d.name), Kv()), L0e(h);
              return;
            }
            case 7:
            case 9: {
              const f = e, d = c === 7 ? f.arguments[0] : f.arguments[0].expression, y = f.arguments[1], [h, E] = I0e(e, d);
              ob(e, E), ob(e, ht(N.createIdentifier(y.text), y)), XT(e.arguments[2]), Kv(), Kv(), L0e(h);
              return;
            }
            case 5: {
              const f = e, d = f.left, y = d.expression;
              if (je(y) && fg(d) !== "prototype" && Kx && Kx.has(y.text)) {
                Bs(f.right) || Js(f.right) ? Xv(e, f.right, y) : _T(d) && (ob(f, y), Xv(f.left, f.right, bN(d)), Kv());
                return;
              }
              break;
            }
            case 4:
            case 0:
            case 8:
              break;
            default:
              D.assertNever(c);
          }
        }
        default:
          xf(e) && ze(e.jsDoc, (c) => {
            ze(c.tags, (f) => {
              m_(f) && ab(f);
            });
          }), Ma(e, XT);
      }
  }
  function M9(e, t) {
    const r = /* @__PURE__ */ new Map();
    Ri(e, (i, o) => {
      const s = i.name || ka(i.node), c = s && y6(s);
      if (!c)
        return !0;
      const f = r.get(c);
      if (!f)
        return r.set(c, i), !0;
      if (f instanceof Array) {
        for (const d of f)
          if (w0e(d, i, o, t))
            return !1;
        return f.push(i), !0;
      } else {
        const d = f;
        return w0e(d, i, o, t) ? !1 : (r.set(c, [d, i]), !0);
      }
    });
  }
  function qFe(e, t, r, i) {
    function o(f) {
      return Bs(f) || yc(f) || Ki(f);
    }
    const s = br(t.node) || no(t.node) ? Cl(t.node) : 0, c = br(e.node) || no(e.node) ? Cl(e.node) : 0;
    if (ZC[s] && ZC[c] || o(e.node) && ZC[s] || o(t.node) && ZC[c] || Nc(e.node) && WQ(e.node) && ZC[s] || Nc(t.node) && ZC[c] || Nc(e.node) && WQ(e.node) && o(t.node) || Nc(t.node) && o(e.node) && WQ(e.node)) {
      let f = e.additionalNodes && tl(e.additionalNodes) || e.node;
      if (!Nc(e.node) && !Nc(t.node) || o(e.node) || o(t.node)) {
        const y = o(e.node) ? e.node : o(t.node) ? t.node : void 0;
        if (y !== void 0) {
          const h = ht(N.createConstructorDeclaration(void 0, [], void 0), y), E = jQ(h);
          E.indent = e.indent + 1, E.children = e.node === y ? e.children : t.children, e.children = e.node === y ? va([E], t.children || [t]) : va(e.children || [{ ...e }], [E]);
        } else
          (e.children || t.children) && (e.children = va(e.children || [{ ...e }], t.children || [t]), e.children && (M9(e.children, e), zQ(e.children)));
        f = e.node = ht(N.createClassDeclaration(void 0, e.name || N.createIdentifier("__class__"), void 0, void 0, []), e.node);
      } else
        e.children = va(e.children, t.children), e.children && M9(e.children, e);
      const d = t.node;
      return i.children[r - 1].node.end === f.end ? ht(f, { pos: f.pos, end: d.end }) : (e.additionalNodes || (e.additionalNodes = []), e.additionalNodes.push(ht(N.createClassDeclaration(void 0, e.name || N.createIdentifier("__class__"), void 0, void 0, []), t.node))), !0;
    }
    return s !== 0;
  }
  function w0e(e, t, r, i) {
    return qFe(e, t, r, i) ? !0 : JFe(e.node, t.node, i) ? (KFe(e, t), !0) : !1;
  }
  function JFe(e, t, r) {
    if (e.kind !== t.kind || e.parent !== t.parent && !(D0e(e, r) && D0e(t, r)))
      return !1;
    switch (e.kind) {
      case 169:
      case 171:
      case 174:
      case 175:
        return Ja(e) === Ja(t);
      case 264:
        return R0e(e, t) && KQ(e) === KQ(t);
      default:
        return !0;
    }
  }
  function WQ(e) {
    return !!(e.flags & 8);
  }
  function D0e(e, t) {
    const r = tm(e.parent) ? e.parent.parent : e.parent;
    return r === t.node || jr(t.additionalNodes, r);
  }
  function R0e(e, t) {
    return !e.body || !t.body ? e.body === t.body : e.body.kind === t.body.kind && (e.body.kind !== 264 || R0e(e.body, t.body));
  }
  function KFe(e, t) {
    e.additionalNodes = e.additionalNodes || [], e.additionalNodes.push(t.node), t.additionalNodes && e.additionalNodes.push(...t.additionalNodes), e.children = va(e.children, t.children), e.children && (M9(e.children, e), zQ(e.children));
  }
  function zQ(e) {
    e.sort(XFe);
  }
  function XFe(e, t) {
    return mR(N0e(e.node), N0e(t.node)) || Ws(P9(e), P9(t));
  }
  function N0e(e) {
    if (e.kind === 264)
      return P0e(e);
    const t = ka(e);
    if (t && yl(t)) {
      const r = T1(t);
      return r && ta(r);
    }
    switch (e.kind) {
      case 215:
      case 216:
      case 228:
        return B0e(e);
      default:
        return;
    }
  }
  function qQ(e, t) {
    if (e.kind === 264)
      return QC(P0e(e));
    if (t) {
      const r = je(t) ? t.text : cl(t) ? `[${y6(t.argumentExpression)}]` : y6(t);
      if (r.length > 0)
        return QC(r);
    }
    switch (e.kind) {
      case 308:
        const r = e;
        return Zl(r) ? `"${ox(mu(Ud(Jo(r.fileName))))}"` : "<global>";
      case 274:
        return Bl(e) && e.isExportEquals ? "export=" : "default";
      case 216:
      case 259:
      case 215:
      case 260:
      case 228:
        return Nv(e) & 1024 ? "default" : B0e(e);
      case 173:
        return "constructor";
      case 177:
        return "new()";
      case 176:
        return "()";
      case 178:
        return "[]";
      default:
        return "<unknown>";
    }
  }
  function YFe(e) {
    const t = [];
    function r(o) {
      if (i(o) && (t.push(o), o.children))
        for (const s of o.children)
          r(s);
    }
    return r(e), t;
    function i(o) {
      if (o.children)
        return !0;
      switch (P9(o)) {
        case 260:
        case 228:
        case 263:
        case 261:
        case 264:
        case 308:
        case 262:
        case 349:
        case 341:
          return !0;
        case 216:
        case 259:
        case 215:
          return s(o);
        default:
          return !1;
      }
      function s(c) {
        if (!c.node.body)
          return !1;
        switch (P9(c.parent)) {
          case 265:
          case 308:
          case 171:
          case 173:
            return !0;
          default:
            return !1;
        }
      }
    }
  }
  function O0e(e) {
    return {
      text: qQ(e.node, e.name),
      kind: z1(e.node),
      kindModifiers: F0e(e.node),
      spans: JQ(e),
      nameSpan: e.name && XQ(e.name),
      childItems: jt(e.children, O0e)
    };
  }
  function $Fe(e) {
    return {
      text: qQ(e.node, e.name),
      kind: z1(e.node),
      kindModifiers: F0e(e.node),
      spans: JQ(e),
      childItems: jt(e.children, t) || G9,
      indent: e.indent,
      bolded: !1,
      grayed: !1
    };
    function t(r) {
      return {
        text: qQ(r.node, r.name),
        kind: z1(r.node),
        kindModifiers: _w(r.node),
        spans: JQ(r),
        childItems: G9,
        indent: 0,
        bolded: !1,
        grayed: !1
      };
    }
  }
  function JQ(e) {
    const t = [XQ(e.node)];
    if (e.additionalNodes)
      for (const r of e.additionalNodes)
        t.push(XQ(r));
    return t;
  }
  function P0e(e) {
    return Pu(e) ? Sc(e.name) : KQ(e);
  }
  function KQ(e) {
    const t = [U_(e.name)];
    for (; e.body && e.body.kind === 264; )
      e = e.body, t.push(U_(e.name));
    return t.join(".");
  }
  function M0e(e) {
    return e.body && Jl(e.body) ? M0e(e.body) : e;
  }
  function QFe(e) {
    return !e.name || e.name.kind === 164;
  }
  function XQ(e) {
    return e.kind === 308 ? qv(e) : rd(e, Tw);
  }
  function F0e(e) {
    return e.parent && e.parent.kind === 257 && (e = e.parent), _w(e);
  }
  function B0e(e) {
    const { parent: t } = e;
    if (e.name && rN(e.name) > 0)
      return QC(ws(e.name));
    if (Ki(t))
      return QC(ws(t.name));
    if (br(t) && t.operatorToken.kind === 63)
      return y6(t.left).replace(U0e, "");
    if (zc(t))
      return y6(t.name);
    if (Nv(e) & 1024)
      return "default";
    if (di(e))
      return "<class>";
    if (no(t)) {
      let r = G0e(t.expression);
      if (r !== void 0) {
        if (r = QC(r), r.length > F9)
          return `${r} callback`;
        const i = QC(ia(t.arguments, (o) => xs(o) ? o.getText(Tw) : void 0).join(", "));
        return `${r}(${i}) callback`;
      }
    }
    return "<function>";
  }
  function G0e(e) {
    if (je(e))
      return e.text;
    if (Fr(e)) {
      const t = G0e(e.expression), r = e.name.text;
      return t === void 0 ? r : `${t}.${r}`;
    } else
      return;
  }
  function ZFe(e) {
    switch (e.kind) {
      case 216:
      case 215:
      case 228:
        return !0;
      default:
        return !1;
    }
  }
  function QC(e) {
    return e = e.length > F9 ? e.substring(0, F9) + "..." : e, e.replace(/\\?(\r?\n|\r|\u2028|\u2029)/g, "");
  }
  var U0e, F9, B9, Tw, Sw, Eg, YQ, Kx, G9, ZC, e9e = C({
    "src/services/navigationBar.ts"() {
      $r(), U0e = /\s+/g, F9 = 150, Sw = [], YQ = [], G9 = [], ZC = {
        5: !0,
        3: !0,
        7: !0,
        9: !0,
        0: !1,
        1: !1,
        2: !1,
        8: !1,
        6: !0,
        4: !1
      };
    }
  }), V0e = {};
  ne(V0e, {
    getNavigationBarItems: () => E0e,
    getNavigationTree: () => T0e
  });
  var j0e = C({
    "src/services/_namespaces/ts.NavigationBar.ts"() {
      e9e();
    }
  });
  function H0e(e, t, r, i) {
    const o = JR(e) ? new W9(e, t, r) : e === 79 ? new q9(79, t, r) : e === 80 ? new J9(80, t, r) : new eZ(e, t, r);
    return o.parent = i, o.flags = i.flags & 50720768, o;
  }
  function t9e(e, t) {
    if (!JR(e.kind))
      return rt;
    const r = [];
    if (RW(e))
      return e.forEachChild((c) => {
        r.push(c);
      }), r;
    Su.setText((t || e.getSourceFile()).text);
    let i = e.pos;
    const o = (c) => {
      v6(r, i, c.pos, e), r.push(c), i = c.end;
    }, s = (c) => {
      v6(r, i, c.pos, e), r.push(n9e(c, e)), i = c.end;
    };
    return ze(e.jsDoc, o), i = e.pos, e.forEachChild(o, s), v6(r, i, e.end, e), Su.setText(void 0), r;
  }
  function v6(e, t, r, i) {
    for (Su.setTextPos(t); t < r; ) {
      const o = Su.scan(), s = Su.getTextPos();
      if (s <= r) {
        if (o === 79) {
          if (Zde(i))
            continue;
          D.fail(`Did not expect ${D.formatSyntaxKind(i.kind)} to have an Identifier in its trivia`);
        }
        e.push(H0e(o, t, s, i));
      }
      if (t = s, o === 1)
        break;
    }
  }
  function n9e(e, t) {
    const r = H0e(354, e.pos, e.end, t);
    r._children = [];
    let i = e.pos;
    for (const o of e)
      v6(r._children, i, o.pos, t), r._children.push(o), i = o.end;
    return v6(r._children, i, e.end, t), r;
  }
  function W0e(e) {
    return d1(e).some((t) => t.tagName.text === "inheritDoc" || t.tagName.text === "inheritdoc");
  }
  function U9(e, t) {
    if (!e)
      return rt;
    let r = lb.getJsDocTagsFromDeclarations(e, t);
    if (t && (r.length === 0 || e.some(W0e))) {
      const i = /* @__PURE__ */ new Set();
      for (const o of e) {
        const s = z0e(t, o, (c) => {
          var f;
          if (!i.has(c))
            return i.add(c), o.kind === 174 || o.kind === 175 ? c.getContextualJsDocTags(o, t) : ((f = c.declarations) == null ? void 0 : f.length) === 1 ? c.getJsDocTags() : void 0;
        });
        s && (r = [...s, ...r]);
      }
    }
    return r;
  }
  function b6(e, t) {
    if (!e)
      return rt;
    let r = lb.getJsDocCommentsFromDeclarations(e, t);
    if (t && (r.length === 0 || e.some(W0e))) {
      const i = /* @__PURE__ */ new Set();
      for (const o of e) {
        const s = z0e(t, o, (c) => {
          if (!i.has(c))
            return i.add(c), o.kind === 174 || o.kind === 175 ? c.getContextualDocumentationComment(o, t) : c.getDocumentationComment(t);
        });
        s && (r = r.length === 0 ? s.slice() : s.concat(YC(), r));
      }
    }
    return r;
  }
  function z0e(e, t, r) {
    var i;
    const o = ((i = t.parent) == null ? void 0 : i.kind) === 173 ? t.parent.parent : t.parent;
    if (!o)
      return;
    const s = gc(t);
    return Jt(WI(o), (c) => {
      const f = e.getTypeAtLocation(c), d = s && f.symbol ? e.getTypeOfSymbol(f.symbol) : f, y = e.getPropertyOfType(d, t.symbol.name);
      return y ? r(y) : void 0;
    });
  }
  function r9e() {
    return {
      getNodeConstructor: () => W9,
      getTokenConstructor: () => eZ,
      getIdentifierConstructor: () => q9,
      getPrivateIdentifierConstructor: () => J9,
      getSourceFileConstructor: () => ebe,
      getSymbolConstructor: () => $0e,
      getTypeConstructor: () => Q0e,
      getSignatureConstructor: () => Z0e,
      getSourceMapSourceConstructor: () => tbe
    };
  }
  function E6(e) {
    let t = !0;
    for (const i in e)
      if (Ps(e, i) && !q0e(i)) {
        t = !1;
        break;
      }
    if (t)
      return e;
    const r = {};
    for (const i in e)
      if (Ps(e, i)) {
        const o = q0e(i) ? i : i.charAt(0).toLowerCase() + i.substr(1);
        r[o] = e[i];
      }
    return r;
  }
  function q0e(e) {
    return !e.length || e.charAt(0) === e.charAt(0).toLowerCase();
  }
  function J0e(e) {
    return e ? jt(e, (t) => t.text).join("") : "";
  }
  function V9() {
    return {
      target: 1,
      jsx: 1
    };
  }
  function K0e() {
    return Hu.getSupportedErrorCodes();
  }
  function X0e(e, t, r) {
    e.version = r, e.scriptSnapshot = t;
  }
  function j9(e, t, r, i, o, s) {
    const c = YO(e, $F(t), r, o, s);
    return X0e(c, t, i), c;
  }
  function $Q(e, t, r, i, o) {
    if (i && r !== e.version) {
      let c;
      const f = i.span.start !== 0 ? e.text.substr(0, i.span.start) : "", d = iu(i.span) !== e.text.length ? e.text.substr(iu(i.span)) : "";
      if (i.newLength === 0)
        c = f && d ? f + d : f || d;
      else {
        const h = t.getText(i.span.start, i.span.start + i.newLength);
        c = f && d ? f + h + d : f ? f + h : h + d;
      }
      const y = KJ(e, c, i, o);
      return X0e(y, t, r), y.nameTable = void 0, e !== y && e.scriptSnapshot && (e.scriptSnapshot.dispose && e.scriptSnapshot.dispose(), e.scriptSnapshot = void 0), y;
    }
    const s = {
      languageVersion: e.languageVersion,
      impliedNodeFormat: e.impliedNodeFormat,
      setExternalModuleIndicator: e.setExternalModuleIndicator
    };
    return j9(e.fileName, t, s, r, !0, e.scriptKind);
  }
  function Y0e(e, t = AQ(e.useCaseSensitiveFileNames && e.useCaseSensitiveFileNames(), e.getCurrentDirectory()), r) {
    var i;
    let o;
    r === void 0 ? o = 0 : typeof r == "boolean" ? o = r ? 2 : 0 : o = r;
    const s = new nbe(e);
    let c, f, d = 0;
    const y = e.getCancellationToken ? new ibe(e.getCancellationToken()) : rbe, h = e.getCurrentDirectory();
    Cde((i = e.getLocalizedDiagnosticMessages) == null ? void 0 : i.bind(e));
    function E(it) {
      e.log && e.log(it);
    }
    const A = WN(e), L = ru(A), I = o0e({
      useCaseSensitiveFileNames: () => A,
      getCurrentDirectory: () => h,
      getProgram: G,
      fileExists: Uo(e, e.fileExists),
      readFile: Uo(e, e.readFile),
      getDocumentPositionMapper: Uo(e, e.getDocumentPositionMapper),
      getSourceFileLike: Uo(e, e.getSourceFileLike),
      log: E
    });
    function O(it) {
      const K = c.getSourceFile(it);
      if (!K) {
        const Pe = new Error(`Could not find source file: '${it}'.`);
        throw Pe.ProgramFiles = c.getSourceFiles().map((Z) => Z.fileName), Pe;
      }
      return K;
    }
    function k() {
      var it, K, Pe;
      if (D.assert(o !== 2), e.getProjectVersion) {
        const _i = e.getProjectVersion();
        if (_i) {
          if (f === _i && !((it = e.hasChangedAutomaticTypeDirectiveNames) != null && it.call(e)))
            return;
          f = _i;
        }
      }
      const Z = e.getTypeRootsVersion ? e.getTypeRootsVersion() : 0;
      d !== Z && (E("TypeRoots version has changed; provide new program"), c = void 0, d = Z);
      const Re = e.getScriptFileNames().slice(), q = e.getCompilationSettings() || V9(), Rt = e.hasInvalidatedResolutions || t1, gt = Uo(e, e.hasChangedAutomaticTypeDirectiveNames), ft = (K = e.getProjectReferences) == null ? void 0 : K.call(e);
      let _n, $n = {
        getSourceFile: Xr,
        getSourceFileByPath: ss,
        getCancellationToken: () => y,
        getCanonicalFileName: L,
        useCaseSensitiveFileNames: () => A,
        getNewLine: () => X0(q),
        getDefaultLibFileName: (_i) => e.getDefaultLibFileName(_i),
        writeFile: so,
        getCurrentDirectory: () => h,
        fileExists: (_i) => e.fileExists(_i),
        readFile: (_i) => e.readFile && e.readFile(_i),
        getSymlinkCache: Uo(e, e.getSymlinkCache),
        realpath: Uo(e, e.realpath),
        directoryExists: (_i) => Yp(_i, e),
        getDirectories: (_i) => e.getDirectories ? e.getDirectories(_i) : [],
        readDirectory: (_i, da, wn, pa, ec) => (D.checkDefined(e.readDirectory, "'LanguageServiceHost.readDirectory' must be implemented to correctly process 'projectReferences'"), e.readDirectory(_i, da, wn, pa, ec)),
        onReleaseOldSourceFile: Hi,
        onReleaseParsedCommandLine: ua,
        hasInvalidatedResolutions: Rt,
        hasChangedAutomaticTypeDirectiveNames: gt,
        trace: Uo(e, e.trace),
        resolveModuleNames: Uo(e, e.resolveModuleNames),
        getModuleResolutionCache: Uo(e, e.getModuleResolutionCache),
        createHash: Uo(e, e.createHash),
        resolveTypeReferenceDirectives: Uo(e, e.resolveTypeReferenceDirectives),
        resolveModuleNameLiterals: Uo(e, e.resolveModuleNameLiterals),
        resolveTypeReferenceDirectiveReferences: Uo(e, e.resolveTypeReferenceDirectiveReferences),
        useSourceOfProjectReferenceRedirect: Uo(e, e.useSourceOfProjectReferenceRedirect),
        getParsedCommandLine: To
      };
      const oi = $n.getSourceFile, { getSourceFileWithCache: Ai } = O8($n, (_i) => zs(_i, h, L), (..._i) => oi.call($n, ..._i));
      $n.getSourceFile = Ai, (Pe = e.setCompilerHost) == null || Pe.call(e, $n);
      const Ci = {
        useCaseSensitiveFileNames: A,
        fileExists: (_i) => $n.fileExists(_i),
        readFile: (_i) => $n.readFile(_i),
        readDirectory: (..._i) => $n.readDirectory(..._i),
        trace: $n.trace,
        getCurrentDirectory: $n.getCurrentDirectory,
        onUnRecoverableConfigFileDiagnostic: so
      }, ji = t.getKeyForCompilationSettings(q);
      if (JX(c, Re, q, (_i, da) => e.getScriptVersion(da), (_i) => $n.fileExists(_i), Rt, gt, To, ft))
        return;
      c = dF({
        rootNames: Re,
        options: q,
        host: $n,
        oldProgram: c,
        projectReferences: ft
      }), $n = void 0, _n = void 0, I.clearCache(), c.getTypeChecker();
      return;
      function To(_i) {
        const da = zs(_i, h, L), wn = _n == null ? void 0 : _n.get(da);
        if (wn !== void 0)
          return wn || void 0;
        const pa = e.getParsedCommandLine ? e.getParsedCommandLine(_i) : io(_i);
        return (_n || (_n = /* @__PURE__ */ new Map())).set(da, pa || !1), pa;
      }
      function io(_i) {
        const da = Xr(_i, 100);
        if (da)
          return da.path = zs(_i, h, L), da.resolvedPath = da.path, da.originalFileName = da.fileName, n8(da, Ci, Pa(mi(_i), h), void 0, Pa(_i, h));
      }
      function ua(_i, da, wn) {
        var pa;
        e.getParsedCommandLine ? (pa = e.onReleaseParsedCommandLine) == null || pa.call(e, _i, da, wn) : da && Hi(da.sourceFile, wn);
      }
      function Hi(_i, da) {
        const wn = t.getKeyForCompilationSettings(da);
        t.releaseDocumentWithKey(_i.resolvedPath, wn, _i.scriptKind, _i.impliedNodeFormat);
      }
      function Xr(_i, da, wn, pa) {
        return ss(_i, zs(_i, h, L), da, wn, pa);
      }
      function ss(_i, da, wn, pa, ec) {
        D.assert($n, "getOrCreateSourceFileByPath called after typical CompilerHost lifetime, check the callstack something with a reference to an old host.");
        const rl = e.getScriptSnapshot(_i);
        if (!rl)
          return;
        const Gl = Z$(_i, e), Xl = e.getScriptVersion(_i);
        if (!ec) {
          const Ul = c && c.getSourceFileByPath(da);
          if (Ul) {
            if (Gl === Ul.scriptKind)
              return t.updateDocumentWithKey(_i, da, e, ji, rl, Xl, Gl, wn);
            t.releaseDocumentWithKey(Ul.resolvedPath, t.getKeyForCompilationSettings(c.getCompilerOptions()), Ul.scriptKind, Ul.impliedNodeFormat);
          }
        }
        return t.acquireDocumentWithKey(_i, da, e, ji, rl, Xl, Gl, wn);
      }
    }
    function G() {
      if (o === 2) {
        D.assert(c === void 0);
        return;
      }
      return k(), c;
    }
    function V() {
      var it;
      return (it = e.getPackageJsonAutoImportProvider) == null ? void 0 : it.call(e);
    }
    function H(it, K) {
      const Pe = c.getTypeChecker(), Z = Re();
      if (!Z)
        return !1;
      for (const Rt of it)
        for (const gt of Rt.references) {
          const ft = q(gt);
          if (D.assertIsDefined(ft), K.has(gt) || ul.isDeclarationOfSymbol(ft, Z)) {
            K.add(gt), gt.isDefinition = !0;
            const _n = K$(gt, I, Uo(e, e.fileExists));
            _n && K.add(_n);
          } else
            gt.isDefinition = !1;
        }
      return !0;
      function Re() {
        for (const Rt of it)
          for (const gt of Rt.references) {
            if (K.has(gt)) {
              const _n = q(gt);
              return D.assertIsDefined(_n), Pe.getSymbolAtLocation(_n);
            }
            const ft = K$(gt, I, Uo(e, e.fileExists));
            if (ft && K.has(ft)) {
              const _n = q(ft);
              if (_n)
                return Pe.getSymbolAtLocation(_n);
            }
          }
      }
      function q(Rt) {
        const gt = c.getSourceFile(Rt.fileName);
        if (!gt)
          return;
        const ft = Df(gt, Rt.textSpan.start);
        return ul.Core.getAdjustedNode(ft, { use: ul.FindReferencesUse.References });
      }
    }
    function te() {
      c = void 0;
    }
    function X() {
      if (c) {
        const it = t.getKeyForCompilationSettings(c.getCompilerOptions());
        ze(c.getSourceFiles(), (K) => t.releaseDocumentWithKey(K.resolvedPath, it, K.scriptKind, K.impliedNodeFormat)), c = void 0;
      }
      e = void 0;
    }
    function Y(it) {
      return k(), c.getSyntacticDiagnostics(O(it), y).slice();
    }
    function P(it) {
      k();
      const K = O(it), Pe = c.getSemanticDiagnostics(K, y);
      if (!W_(c.getCompilerOptions()))
        return Pe.slice();
      const Z = c.getDeclarationDiagnostics(K, y);
      return [...Pe, ...Z];
    }
    function de(it) {
      return k(), PQ(O(it), c, y);
    }
    function re() {
      return k(), [...c.getOptionsDiagnostics(y), ...c.getGlobalDiagnostics(y)];
    }
    function ye(it, K, Pe = am, Z) {
      const Re = {
        ...Pe,
        includeCompletionsForModuleExports: Pe.includeCompletionsForModuleExports || Pe.includeExternalModuleExports,
        includeCompletionsWithInsertText: Pe.includeCompletionsWithInsertText || Pe.includeInsertTextCompletions
      };
      return k(), n2.getCompletionsAtPosition(e, c, E, O(it), K, Re, Pe.triggerCharacter, Pe.triggerKind, y, Z && Cc.getFormatContext(Z, e), Pe.includeSymbol);
    }
    function ae(it, K, Pe, Z, Re, q = am, Rt) {
      return k(), n2.getCompletionEntryDetails(c, E, O(it), K, { name: Pe, source: Re, data: Rt }, e, Z && Cc.getFormatContext(Z, e), q, y);
    }
    function W(it, K, Pe, Z, Re = am) {
      return k(), n2.getCompletionEntrySymbol(c, E, O(it), K, { name: Pe, source: Z }, e, Re);
    }
    function ce(it, K) {
      k();
      const Pe = O(it), Z = Df(Pe, K);
      if (Z === Pe)
        return;
      const Re = c.getTypeChecker(), q = me(Z), Rt = s9e(q, Re);
      if (!Rt || Re.isUnknownSymbol(Rt)) {
        const oi = ve(Pe, q, K) ? Re.getTypeAtLocation(q) : void 0;
        return oi && {
          kind: "",
          kindModifiers: "",
          textSpan: rd(q, Pe),
          displayParts: Re.runWithCancellationToken(y, (Ai) => d6(Ai, oi, WT(q))),
          documentation: oi.symbol ? oi.symbol.getDocumentationComment(Re) : void 0,
          tags: oi.symbol ? oi.symbol.getJsDocTags(Re) : void 0
        };
      }
      const { symbolKind: gt, displayParts: ft, documentation: _n, tags: $n } = Re.runWithCancellationToken(y, (oi) => Ny.getSymbolDisplayPartsDocumentationAndSymbolKind(oi, Rt, Pe, WT(q), q));
      return {
        kind: gt,
        kindModifiers: Ny.getSymbolModifiers(Re, Rt),
        textSpan: rd(q, Pe),
        displayParts: ft,
        documentation: _n,
        tags: $n
      };
    }
    function me(it) {
      return D1(it.parent) && it.pos === it.parent.pos ? it.parent.expression : wk(it.parent) && it.pos === it.parent.pos || FA(it.parent) && it.parent.name === it ? it.parent : it;
    }
    function ve(it, K, Pe) {
      switch (K.kind) {
        case 79:
          return !E$(K) && !T$(K) && !sg(K.parent);
        case 208:
        case 163:
          return !ky(it, Pe);
        case 108:
        case 194:
        case 106:
        case 199:
          return !0;
        case 233:
          return FA(K);
        default:
          return !1;
      }
    }
    function Te(it, K, Pe, Z) {
      return k(), Ow.getDefinitionAtPosition(c, O(it), K, Pe, Z);
    }
    function ee(it, K) {
      return k(), Ow.getDefinitionAndBoundSpan(c, O(it), K);
    }
    function Qe(it, K) {
      return k(), Ow.getTypeDefinitionAtPosition(c.getTypeChecker(), O(it), K);
    }
    function Ve(it, K) {
      return k(), ul.getImplementationsAtPosition(c, y, c.getSourceFiles(), O(it), K);
    }
    function Be(it, K) {
      return ca(qe(it, K, [it]), (Pe) => Pe.highlightSpans.map((Z) => ({
        fileName: Pe.fileName,
        textSpan: Z.textSpan,
        isWriteAccess: Z.kind === "writtenReference",
        ...Z.isInString && { isInString: !0 },
        ...Z.contextSpan && { contextSpan: Z.contextSpan }
      })));
    }
    function qe(it, K, Pe) {
      const Z = Jo(it);
      D.assert(Pe.some((Rt) => Jo(Rt) === Z)), k();
      const Re = ia(Pe, (Rt) => c.getSourceFile(Rt)), q = O(it);
      return I9.getDocumentHighlights(c, y, q, K, Re);
    }
    function Oe(it, K, Pe, Z, Re) {
      k();
      const q = O(it), Rt = HF(Df(q, K));
      if (lU.nodeIsEligibleForRename(Rt))
        if (je(Rt) && (kh(Rt.parent) || Dx(Rt.parent)) && KI(Rt.escapedText)) {
          const { openingElement: gt, closingElement: ft } = Rt.parent.parent;
          return [gt, ft].map((_n) => {
            const $n = rd(_n.tagName, q);
            return {
              fileName: q.fileName,
              textSpan: $n,
              ...ul.toContextSpan($n, q, _n.parent)
            };
          });
        } else
          return Ye(Rt, K, { findInStrings: Pe, findInComments: Z, providePrefixAndSuffixTextForRename: Re, use: ul.FindReferencesUse.Rename }, (gt, ft, _n) => ul.toRenameLocation(gt, ft, _n, Re || !1));
    }
    function Me(it, K) {
      return k(), Ye(Df(O(it), K), K, { use: ul.FindReferencesUse.References }, ul.toReferenceEntry);
    }
    function Ye(it, K, Pe, Z) {
      k();
      const Re = Pe && Pe.use === ul.FindReferencesUse.Rename ? c.getSourceFiles().filter((q) => !c.isSourceFileDefaultLibrary(q)) : c.getSourceFiles();
      return ul.findReferenceOrRenameEntries(c, y, Re, it, K, Pe, Z);
    }
    function We(it, K) {
      return k(), ul.findReferencedSymbols(c, y, c.getSourceFiles(), O(it), K);
    }
    function Fe(it) {
      return k(), ul.Core.getReferencesForFileName(it, c, c.getSourceFiles()).map(ul.toReferenceEntry);
    }
    function st(it, K, Pe, Z = !1) {
      k();
      const Re = Pe ? [O(Pe)] : c.getSourceFiles();
      return g0e(Re, c.getTypeChecker(), y, it, K, Z);
    }
    function Ct(it, K, Pe) {
      k();
      const Z = O(it), Re = e.getCustomTransformers && e.getCustomTransformers();
      return sge(c, Z, !!K, y, Re, Pe);
    }
    function Et(it, K, { triggerReason: Pe } = am) {
      k();
      const Z = O(it);
      return aP.getSignatureHelpItems(c, Z, K, Pe, y);
    }
    function Vt(it) {
      return s.getCurrentSourceFile(it);
    }
    function tt(it, K, Pe) {
      const Z = s.getCurrentSourceFile(it), Re = Df(Z, K);
      if (Re === Z)
        return;
      switch (Re.kind) {
        case 208:
        case 163:
        case 10:
        case 95:
        case 110:
        case 104:
        case 106:
        case 108:
        case 194:
        case 79:
          break;
        default:
          return;
      }
      let q = Re;
      for (; ; )
        if (zC(q) || kye(q))
          q = q.parent;
        else if (x$(q))
          if (q.parent.parent.kind === 264 && q.parent.parent.body === q.parent)
            q = q.parent.parent.name;
          else
            break;
        else
          break;
      return hc(q.getStart(), Re.getEnd());
    }
    function at(it, K) {
      const Pe = s.getCurrentSourceFile(it);
      return lZ.spanInSourceFileAtLocation(Pe, K);
    }
    function sn(it) {
      return E0e(s.getCurrentSourceFile(it), y);
    }
    function Qt(it) {
      return T0e(s.getCurrentSourceFile(it), y);
    }
    function On(it, K, Pe) {
      return k(), (Pe || "original") === "2020" ? Q9.v2020.getSemanticClassifications(c, y, O(it), K) : Fve(c.getTypeChecker(), y, O(it), c.getClassifiableNames(), K);
    }
    function jn(it, K, Pe) {
      return k(), (Pe || "original") === "original" ? SQ(c.getTypeChecker(), y, O(it), c.getClassifiableNames(), K) : Q9.v2020.getEncodedSemanticClassifications(c, y, O(it), K);
    }
    function In(it, K) {
      return Vve(y, s.getCurrentSourceFile(it), K);
    }
    function Zt(it, K) {
      return xQ(y, s.getCurrentSourceFile(it), K);
    }
    function _r(it) {
      const K = s.getCurrentSourceFile(it);
      return sne.collectElements(K, y);
    }
    const Ii = new Map(Object.entries({
      18: 19,
      20: 21,
      22: 23,
      31: 29
    }));
    Ii.forEach((it, K) => Ii.set(it.toString(), Number(K)));
    function $i(it, K) {
      const Pe = s.getCurrentSourceFile(it), Z = fw(Pe, K), Re = Z.getStart(Pe) === K ? Ii.get(Z.kind.toString()) : void 0, q = Re && bs(Z.parent, Re, Pe);
      return q ? [rd(Z, Pe), rd(q, Pe)].sort((Rt, gt) => Rt.start - gt.start) : rt;
    }
    function Qi(it, K, Pe) {
      let Z = il();
      const Re = E6(Pe), q = s.getCurrentSourceFile(it);
      E("getIndentationAtPosition: getCurrentSourceFile: " + (il() - Z)), Z = il();
      const Rt = Cc.SmartIndenter.getIndentation(K, q, Re);
      return E("getIndentationAtPosition: computeIndentation  : " + (il() - Z)), Rt;
    }
    function Or(it, K, Pe, Z) {
      const Re = s.getCurrentSourceFile(it);
      return Cc.formatSelection(K, Pe, Re, Cc.getFormatContext(E6(Z), e));
    }
    function At(it, K) {
      return Cc.formatDocument(s.getCurrentSourceFile(it), Cc.getFormatContext(E6(K), e));
    }
    function vn(it, K, Pe, Z) {
      const Re = s.getCurrentSourceFile(it), q = Cc.getFormatContext(E6(Z), e);
      if (!ky(Re, K))
        switch (Pe) {
          case "{":
            return Cc.formatOnOpeningCurly(K, Re, q);
          case "}":
            return Cc.formatOnClosingCurly(K, Re, q);
          case ";":
            return Cc.formatOnSemicolon(K, Re, q);
          case `
`:
            return Cc.formatOnEnter(K, Re, q);
        }
      return [];
    }
    function Wt(it, K, Pe, Z, Re, q = am) {
      k();
      const Rt = O(it), gt = hc(K, Pe), ft = Cc.getFormatContext(Re, e);
      return ca(mA(Z, F0, Ws), (_n) => (y.throwIfCancellationRequested(), Hu.getFixes({ errorCode: _n, sourceFile: Rt, span: gt, program: c, host: e, cancellationToken: y, formatContext: ft, preferences: q })));
    }
    function fn(it, K, Pe, Z = am) {
      k(), D.assert(it.type === "file");
      const Re = O(it.fileName), q = Cc.getFormatContext(Pe, e);
      return Hu.getAllFixes({ fixId: K, sourceFile: Re, program: c, host: e, cancellationToken: y, formatContext: q, preferences: Z });
    }
    function rr(it, K, Pe = am) {
      var Z;
      k(), D.assert(it.type === "file");
      const Re = O(it.fileName), q = Cc.getFormatContext(K, e), Rt = (Z = it.mode) != null ? Z : it.skipDestructiveCodeActions ? "SortAndCombine" : "All";
      return $_.organizeImports(Re, q, e, c, Pe, Rt);
    }
    function cr(it, K, Pe, Z = am) {
      return zve(G(), it, K, e, Cc.getFormatContext(Pe, e), Z, I);
    }
    function Pi(it, K) {
      const Pe = typeof it == "string" ? K : it;
      return Va(Pe) ? Promise.all(Pe.map((Z) => hi(Z))) : hi(Pe);
    }
    function hi(it) {
      const K = (Pe) => zs(Pe, h, L);
      return D.assertEqual(it.type, "install package"), e.installPackage ? e.installPackage({ fileName: K(it.file), packageName: it.packageName }) : Promise.reject("Host does not implement `installPackage`");
    }
    function Rn(it, K, Pe, Z) {
      const Re = Z ? Cc.getFormatContext(Z, e).options : void 0;
      return lb.getDocCommentTemplateAtPosition(ib(e, Re), s.getCurrentSourceFile(it), K, Pe);
    }
    function an(it, K, Pe) {
      if (Pe === 60)
        return !1;
      const Z = s.getCurrentSourceFile(it);
      if (qT(Z, K))
        return !1;
      if (Uye(Z, K))
        return Pe === 123;
      if (R$(Z, K))
        return !1;
      switch (Pe) {
        case 39:
        case 34:
        case 96:
          return !ky(Z, K);
      }
      return !0;
    }
    function Pn(it, K) {
      const Pe = s.getCurrentSourceFile(it), Z = Ac(K, Pe);
      if (!Z)
        return;
      const Re = Z.kind === 31 && kh(Z.parent) ? Z.parent.parent : vx(Z) && Ay(Z.parent) ? Z.parent : void 0;
      if (Re && Ce(Re))
        return { newText: `</${Re.openingElement.tagName.getText(Pe)}>` };
      const q = Z.kind === 31 && Nx(Z.parent) ? Z.parent.parent : vx(Z) && Rx(Z.parent) ? Z.parent : void 0;
      if (q && pt(q))
        return { newText: "</>" };
    }
    function Ar(it, K) {
      return {
        lineStarts: it.getLineStarts(),
        firstLine: it.getLineAndCharacterOfPosition(K.pos).line,
        lastLine: it.getLineAndCharacterOfPosition(K.end).line
      };
    }
    function Hr(it, K, Pe) {
      const Z = s.getCurrentSourceFile(it), Re = [], { lineStarts: q, firstLine: Rt, lastLine: gt } = Ar(Z, K);
      let ft = Pe || !1, _n = Number.MAX_VALUE;
      const $n = /* @__PURE__ */ new Map(), oi = new RegExp(/\S/), Ai = zF(Z, q[Rt]), Ci = Ai ? "{/*" : "//";
      for (let ji = Rt; ji <= gt; ji++) {
        const mo = Z.text.substring(q[ji], Z.getLineEndOfPosition(q[ji])), To = oi.exec(mo);
        To && (_n = Math.min(_n, To.index), $n.set(ji.toString(), To.index), mo.substr(To.index, Ci.length) !== Ci && (ft = Pe === void 0 || Pe));
      }
      for (let ji = Rt; ji <= gt; ji++) {
        if (Rt !== gt && q[ji] === K.end)
          continue;
        const mo = $n.get(ji.toString());
        mo !== void 0 && (Ai ? Re.push.apply(Re, we(it, { pos: q[ji] + _n, end: Z.getLineEndOfPosition(q[ji]) }, ft, Ai)) : ft ? Re.push({
          newText: Ci,
          span: {
            length: 0,
            start: q[ji] + _n
          }
        }) : Z.text.substr(q[ji] + mo, Ci.length) === Ci && Re.push({
          newText: "",
          span: {
            length: Ci.length,
            start: q[ji] + mo
          }
        }));
      }
      return Re;
    }
    function we(it, K, Pe, Z) {
      var Re;
      const q = s.getCurrentSourceFile(it), Rt = [], { text: gt } = q;
      let ft = !1, _n = Pe || !1;
      const $n = [];
      let { pos: oi } = K;
      const Ai = Z !== void 0 ? Z : zF(q, oi), Ci = Ai ? "{/*" : "/*", ji = Ai ? "*/}" : "*/", mo = Ai ? "\\{\\/\\*" : "\\/\\*", To = Ai ? "\\*\\/\\}" : "\\*\\/";
      for (; oi <= K.end; ) {
        const io = gt.substr(oi, Ci.length) === Ci ? Ci.length : 0, ua = ky(q, oi + io);
        if (ua)
          Ai && (ua.pos--, ua.end++), $n.push(ua.pos), ua.kind === 3 && $n.push(ua.end), ft = !0, oi = ua.end + 1;
        else {
          const Hi = gt.substring(oi, K.end).search(`(${mo})|(${To})`);
          _n = Pe !== void 0 ? Pe : _n || !tve(gt, oi, Hi === -1 ? K.end : oi + Hi), oi = Hi === -1 ? K.end + 1 : oi + Hi + ji.length;
        }
      }
      if (_n || !ft) {
        ((Re = ky(q, K.pos)) == null ? void 0 : Re.kind) !== 2 && gv($n, K.pos, Ws), gv($n, K.end, Ws);
        const io = $n[0];
        gt.substr(io, Ci.length) !== Ci && Rt.push({
          newText: Ci,
          span: {
            length: 0,
            start: io
          }
        });
        for (let ua = 1; ua < $n.length - 1; ua++)
          gt.substr($n[ua] - ji.length, ji.length) !== ji && Rt.push({
            newText: ji,
            span: {
              length: 0,
              start: $n[ua]
            }
          }), gt.substr($n[ua], Ci.length) !== Ci && Rt.push({
            newText: Ci,
            span: {
              length: 0,
              start: $n[ua]
            }
          });
        Rt.length % 2 !== 0 && Rt.push({
          newText: ji,
          span: {
            length: 0,
            start: $n[$n.length - 1]
          }
        });
      } else
        for (const io of $n) {
          const ua = io - ji.length > 0 ? io - ji.length : 0, Hi = gt.substr(ua, ji.length) === ji ? ji.length : 0;
          Rt.push({
            newText: "",
            span: {
              length: Ci.length,
              start: io - Hi
            }
          });
        }
      return Rt;
    }
    function yt(it, K) {
      const Pe = s.getCurrentSourceFile(it), { firstLine: Z, lastLine: Re } = Ar(Pe, K);
      return Z === Re && K.pos !== K.end ? we(it, K, !0) : Hr(it, K, !0);
    }
    function Nt(it, K) {
      const Pe = s.getCurrentSourceFile(it), Z = [], { pos: Re } = K;
      let { end: q } = K;
      Re === q && (q += zF(Pe, Re) ? 2 : 1);
      for (let Rt = Re; Rt <= q; Rt++) {
        const gt = ky(Pe, Rt);
        if (gt) {
          switch (gt.kind) {
            case 2:
              Z.push.apply(Z, Hr(it, { end: gt.end, pos: gt.pos + 1 }, !1));
              break;
            case 3:
              Z.push.apply(Z, we(it, { end: gt.end, pos: gt.pos + 1 }, !1));
          }
          Rt = gt.end + 1;
        }
      }
      return Z;
    }
    function Ce({ openingElement: it, closingElement: K, parent: Pe }) {
      return !nb(it.tagName, K.tagName) || Ay(Pe) && nb(it.tagName, Pe.openingElement.tagName) && Ce(Pe);
    }
    function pt({ closingFragment: it, parent: K }) {
      return !!(it.flags & 131072) || Rx(K) && pt(K);
    }
    function _e(it, K, Pe) {
      const Z = s.getCurrentSourceFile(it), Re = Cc.getRangeOfEnclosingComment(Z, K);
      return Re && (!Pe || Re.kind === 3) ? qv(Re) : void 0;
    }
    function ie(it, K) {
      k();
      const Pe = O(it);
      y.throwIfCancellationRequested();
      const Z = Pe.text, Re = [];
      if (K.length > 0 && !ft(Pe.fileName)) {
        const _n = Rt();
        let $n;
        for (; $n = _n.exec(Z); ) {
          y.throwIfCancellationRequested();
          const oi = 3;
          D.assert($n.length === K.length + oi);
          const Ai = $n[1], Ci = $n.index + Ai.length;
          if (!ky(Pe, Ci))
            continue;
          let ji;
          for (let To = 0; To < K.length; To++)
            $n[To + oi] && (ji = K[To]);
          if (ji === void 0)
            return D.fail();
          if (gt(Z.charCodeAt(Ci + ji.text.length)))
            continue;
          const mo = $n[2];
          Re.push({ descriptor: ji, message: mo, position: Ci });
        }
      }
      return Re;
      function q(_n) {
        return _n.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
      }
      function Rt() {
        const _n = /(?:\/\/+\s*)/.source, $n = /(?:\/\*+\s*)/.source, Ai = "(" + /(?:^(?:\s|\*)*)/.source + "|" + _n + "|" + $n + ")", Ci = "(?:" + jt(K, (ua) => "(" + q(ua.text) + ")").join("|") + ")", ji = /(?:$|\*\/)/.source, mo = /(?:.*?)/.source, To = "(" + Ci + mo + ")", io = Ai + To + ji;
        return new RegExp(io, "gim");
      }
      function gt(_n) {
        return _n >= 97 && _n <= 122 || _n >= 65 && _n <= 90 || _n >= 48 && _n <= 57;
      }
      function ft(_n) {
        return pu(_n, "/node_modules/");
      }
    }
    function he(it, K, Pe) {
      return k(), lU.getRenameInfo(c, O(it), K, Pe || {});
    }
    function j(it, K, Pe, Z, Re, q) {
      const [Rt, gt] = typeof K == "number" ? [K, void 0] : [K.pos, K.end];
      return {
        file: it,
        startPosition: Rt,
        endPosition: gt,
        program: G(),
        host: e,
        formatContext: Cc.getFormatContext(Z, e),
        cancellationToken: y,
        preferences: Pe,
        triggerReason: Re,
        kind: q
      };
    }
    function He(it, K, Pe) {
      return {
        file: it,
        program: G(),
        host: e,
        span: K,
        preferences: Pe,
        cancellationToken: y
      };
    }
    function Ze(it, K) {
      return Bne.getSmartSelectionRange(K, s.getCurrentSourceFile(it));
    }
    function Xe(it, K, Pe = am, Z, Re) {
      k();
      const q = O(it);
      return Hw.getApplicableRefactors(j(q, K, Pe, am, Z, Re));
    }
    function Ut(it, K, Pe, Z, Re, q = am) {
      k();
      const Rt = O(it);
      return Hw.getEditsForRefactor(j(Rt, Pe, q, K), Z, Re);
    }
    function cn(it, K) {
      return K === 0 ? { line: 0, character: 0 } : I.toLineColumnOffset(it, K);
    }
    function Sn(it, K) {
      k();
      const Pe = Yx.resolveCallHierarchyDeclaration(c, Df(O(it), K));
      return Pe && Ave(Pe, (Z) => Yx.createCallHierarchyItem(c, Z));
    }
    function Er(it, K) {
      k();
      const Pe = O(it), Z = fQ(Yx.resolveCallHierarchyDeclaration(c, K === 0 ? Pe : Df(Pe, K)));
      return Z ? Yx.getIncomingCalls(c, Z, y) : [];
    }
    function ue(it, K) {
      k();
      const Pe = O(it), Z = fQ(Yx.resolveCallHierarchyDeclaration(c, K === 0 ? Pe : Df(Pe, K)));
      return Z ? Yx.getOutgoingCalls(c, Z) : [];
    }
    function mt(it, K, Pe = am) {
      k();
      const Z = O(it);
      return Yte.provideInlayHints(He(Z, K, Pe));
    }
    const zt = {
      dispose: X,
      cleanupSemanticCache: te,
      getSyntacticDiagnostics: Y,
      getSemanticDiagnostics: P,
      getSuggestionDiagnostics: de,
      getCompilerOptionsDiagnostics: re,
      getSyntacticClassifications: In,
      getSemanticClassifications: On,
      getEncodedSyntacticClassifications: Zt,
      getEncodedSemanticClassifications: jn,
      getCompletionsAtPosition: ye,
      getCompletionEntryDetails: ae,
      getCompletionEntrySymbol: W,
      getSignatureHelpItems: Et,
      getQuickInfoAtPosition: ce,
      getDefinitionAtPosition: Te,
      getDefinitionAndBoundSpan: ee,
      getImplementationAtPosition: Ve,
      getTypeDefinitionAtPosition: Qe,
      getReferencesAtPosition: Me,
      findReferences: We,
      getFileReferences: Fe,
      getOccurrencesAtPosition: Be,
      getDocumentHighlights: qe,
      getNameOrDottedNameSpan: tt,
      getBreakpointStatementAtPosition: at,
      getNavigateToItems: st,
      getRenameInfo: he,
      getSmartSelectionRange: Ze,
      findRenameLocations: Oe,
      getNavigationBarItems: sn,
      getNavigationTree: Qt,
      getOutliningSpans: _r,
      getTodoComments: ie,
      getBraceMatchingAtPosition: $i,
      getIndentationAtPosition: Qi,
      getFormattingEditsForRange: Or,
      getFormattingEditsForDocument: At,
      getFormattingEditsAfterKeystroke: vn,
      getDocCommentTemplateAtPosition: Rn,
      isValidBraceCompletionAtPosition: an,
      getJsxClosingTagAtPosition: Pn,
      getSpanOfEnclosingComment: _e,
      getCodeFixesAtPosition: Wt,
      getCombinedCodeFix: fn,
      applyCodeActionCommand: Pi,
      organizeImports: rr,
      getEditsForFileRename: cr,
      getEmitOutput: Ct,
      getNonBoundSourceFile: Vt,
      getProgram: G,
      getCurrentProgram: () => c,
      getAutoImportProvider: V,
      updateIsDefinitionOfReferencedSymbols: H,
      getApplicableRefactors: Xe,
      getEditsForRefactor: Ut,
      toLineColumnOffset: cn,
      getSourceMapper: () => I,
      clearSourceMapperCache: () => I.clearCache(),
      prepareCallHierarchy: Sn,
      provideCallHierarchyIncomingCalls: Er,
      provideCallHierarchyOutgoingCalls: ue,
      toggleLineComment: Hr,
      toggleMultilineComment: we,
      commentSelection: yt,
      uncommentSelection: Nt,
      provideInlayHints: mt,
      getSupportedCodeFixes: K0e
    };
    switch (o) {
      case 0:
        break;
      case 1:
        nZ.forEach((it) => zt[it] = () => {
          throw new Error(`LanguageService Operation: ${it} not allowed in LanguageServiceMode.PartialSemantic`);
        });
        break;
      case 2:
        abe.forEach((it) => zt[it] = () => {
          throw new Error(`LanguageService Operation: ${it} not allowed in LanguageServiceMode.Syntactic`);
        });
        break;
      default:
        D.assertNever(o);
    }
    return zt;
  }
  function QQ(e) {
    return e.nameTable || i9e(e), e.nameTable;
  }
  function i9e(e) {
    const t = e.nameTable = /* @__PURE__ */ new Map();
    e.forEachChild(function r(i) {
      if (je(i) && !T$(i) && i.escapedText || Xf(i) && a9e(i)) {
        const o = qI(i);
        t.set(o, t.get(o) === void 0 ? i.pos : -1);
      } else if (Ni(i)) {
        const o = i.escapedText;
        t.set(o, t.get(o) === void 0 ? i.pos : -1);
      }
      if (Ma(i, r), xf(i))
        for (const o of i.jsDoc)
          Ma(o, r);
    });
  }
  function a9e(e) {
    return _g(e) || e.parent.kind === 280 || l9e(e) || NN(e);
  }
  function T6(e) {
    const t = o9e(e);
    return t && (Ls(t.parent) || N1(t.parent)) ? t : void 0;
  }
  function o9e(e) {
    switch (e.kind) {
      case 10:
      case 14:
      case 8:
        if (e.parent.kind === 164)
          return NW(e.parent.parent) ? e.parent.parent : void 0;
      case 79:
        return NW(e.parent) && (e.parent.parent.kind === 207 || e.parent.parent.kind === 289) && e.parent.name === e ? e.parent : void 0;
    }
  }
  function s9e(e, t) {
    const r = T6(e);
    if (r) {
      const i = t.getContextualType(r.parent), o = i && H9(r, t, i, !1);
      if (o && o.length === 1)
        return us(o);
    }
    return t.getSymbolAtLocation(e);
  }
  function H9(e, t, r, i) {
    const o = s6(e.name);
    if (!o)
      return rt;
    if (!r.isUnion()) {
      const c = r.getProperty(o);
      return c ? [c] : rt;
    }
    const s = ia(r.types, (c) => (Ls(e.parent) || N1(e.parent)) && t.isTypeInvalidDueToUnionDiscriminant(c, e.parent) ? void 0 : c.getProperty(o));
    if (i && (s.length === 0 || s.length === r.types.length)) {
      const c = r.getProperty(o);
      if (c)
        return [c];
    }
    return s.length === 0 ? ia(r.types, (c) => c.getProperty(o)) : s;
  }
  function l9e(e) {
    return e && e.parent && e.parent.kind === 209 && e.parent.argumentExpression === e;
  }
  function c9e(e) {
    if ($c)
      return Bi(mi(Jo($c.getExecutingFilePath())), AM(e));
    throw new Error("getDefaultLibFilePath is only supported when consumed as a node module. ");
  }
  var ZQ, W9, z9, $0e, eZ, q9, J9, Q0e, Z0e, ebe, tbe, nbe, rbe, ibe, tZ, nZ, abe, u9e = C({
    "src/services/services.ts"() {
      $r(), $r(), b0e(), j0e(), ZQ = "0.8", W9 = class {
        constructor(e, t, r) {
          this.pos = t, this.end = r, this.flags = 0, this.modifierFlagsCache = 0, this.transformFlags = 0, this.parent = void 0, this.kind = e;
        }
        assertHasRealPosition(e) {
          D.assert(!Qp(this.pos) && !Qp(this.end), e || "Node must have a real position for this operation");
        }
        getSourceFile() {
          return Zn(this);
        }
        getStart(e, t) {
          return this.assertHasRealPosition(), sT(this, e, t);
        }
        getFullStart() {
          return this.assertHasRealPosition(), this.pos;
        }
        getEnd() {
          return this.assertHasRealPosition(), this.end;
        }
        getWidth(e) {
          return this.assertHasRealPosition(), this.getEnd() - this.getStart(e);
        }
        getFullWidth() {
          return this.assertHasRealPosition(), this.end - this.pos;
        }
        getLeadingTriviaWidth(e) {
          return this.assertHasRealPosition(), this.getStart(e) - this.pos;
        }
        getFullText(e) {
          return this.assertHasRealPosition(), (e || this.getSourceFile()).text.substring(this.pos, this.end);
        }
        getText(e) {
          return this.assertHasRealPosition(), e || (e = this.getSourceFile()), e.text.substring(this.getStart(e), this.getEnd());
        }
        getChildCount(e) {
          return this.getChildren(e).length;
        }
        getChildAt(e, t) {
          return this.getChildren(t)[e];
        }
        getChildren(e) {
          return this.assertHasRealPosition("Node without a real position cannot be scanned and thus has no token nodes - use forEachChild and collect the result if that's fine"), this._children || (this._children = t9e(this, e));
        }
        getFirstToken(e) {
          this.assertHasRealPosition();
          const t = this.getChildren(e);
          if (!t.length)
            return;
          const r = nn(t, (i) => i.kind < 312 || i.kind > 353);
          return r.kind < 163 ? r : r.getFirstToken(e);
        }
        getLastToken(e) {
          this.assertHasRealPosition();
          const t = this.getChildren(e), r = tl(t);
          if (r)
            return r.kind < 163 ? r : r.getLastToken(e);
        }
        forEachChild(e, t) {
          return Ma(this, e, t);
        }
      }, z9 = class {
        constructor(e, t) {
          this.pos = e, this.end = t, this.flags = 0, this.modifierFlagsCache = 0, this.transformFlags = 0, this.parent = void 0;
        }
        getSourceFile() {
          return Zn(this);
        }
        getStart(e, t) {
          return sT(this, e, t);
        }
        getFullStart() {
          return this.pos;
        }
        getEnd() {
          return this.end;
        }
        getWidth(e) {
          return this.getEnd() - this.getStart(e);
        }
        getFullWidth() {
          return this.end - this.pos;
        }
        getLeadingTriviaWidth(e) {
          return this.getStart(e) - this.pos;
        }
        getFullText(e) {
          return (e || this.getSourceFile()).text.substring(this.pos, this.end);
        }
        getText(e) {
          return e || (e = this.getSourceFile()), e.text.substring(this.getStart(e), this.getEnd());
        }
        getChildCount() {
          return this.getChildren().length;
        }
        getChildAt(e) {
          return this.getChildren()[e];
        }
        getChildren() {
          return this.kind === 1 && this.jsDoc || rt;
        }
        getFirstToken() {
        }
        getLastToken() {
        }
        forEachChild() {
        }
      }, $0e = class {
        constructor(e, t) {
          this.id = 0, this.mergeId = 0, this.flags = e, this.escapedName = t;
        }
        getFlags() {
          return this.flags;
        }
        get name() {
          return Ml(this);
        }
        getEscapedName() {
          return this.escapedName;
        }
        getName() {
          return this.name;
        }
        getDeclarations() {
          return this.declarations;
        }
        getDocumentationComment(e) {
          if (!this.documentationComment)
            if (this.documentationComment = rt, !this.declarations && Om(this) && this.links.target && Om(this.links.target) && this.links.target.links.tupleLabelDeclaration) {
              const t = this.links.target.links.tupleLabelDeclaration;
              this.documentationComment = b6([t], e);
            } else
              this.documentationComment = b6(this.declarations, e);
          return this.documentationComment;
        }
        getContextualDocumentationComment(e, t) {
          if (e) {
            if (Iv(e) && (this.contextualGetAccessorDocumentationComment || (this.contextualGetAccessorDocumentationComment = b6(lr(this.declarations, Iv), t)), Le(this.contextualGetAccessorDocumentationComment)))
              return this.contextualGetAccessorDocumentationComment;
            if (hy(e) && (this.contextualSetAccessorDocumentationComment || (this.contextualSetAccessorDocumentationComment = b6(lr(this.declarations, hy), t)), Le(this.contextualSetAccessorDocumentationComment)))
              return this.contextualSetAccessorDocumentationComment;
          }
          return this.getDocumentationComment(t);
        }
        getJsDocTags(e) {
          return this.tags === void 0 && (this.tags = U9(this.declarations, e)), this.tags;
        }
        getContextualJsDocTags(e, t) {
          if (e) {
            if (Iv(e) && (this.contextualGetAccessorTags || (this.contextualGetAccessorTags = U9(lr(this.declarations, Iv), t)), Le(this.contextualGetAccessorTags)))
              return this.contextualGetAccessorTags;
            if (hy(e) && (this.contextualSetAccessorTags || (this.contextualSetAccessorTags = U9(lr(this.declarations, hy), t)), Le(this.contextualSetAccessorTags)))
              return this.contextualSetAccessorTags;
          }
          return this.getJsDocTags(t);
        }
      }, eZ = class extends z9 {
        constructor(e, t, r) {
          super(t, r), this.kind = e;
        }
      }, q9 = class extends z9 {
        constructor(e, t, r) {
          super(t, r), this.kind = 79;
        }
        get text() {
          return Mr(this);
        }
      }, q9.prototype.kind = 79, J9 = class extends z9 {
        constructor(e, t, r) {
          super(t, r), this.kind = 80;
        }
        get text() {
          return Mr(this);
        }
      }, J9.prototype.kind = 80, Q0e = class {
        constructor(e, t) {
          this.checker = e, this.flags = t;
        }
        getFlags() {
          return this.flags;
        }
        getSymbol() {
          return this.symbol;
        }
        getProperties() {
          return this.checker.getPropertiesOfType(this);
        }
        getProperty(e) {
          return this.checker.getPropertyOfType(this, e);
        }
        getApparentProperties() {
          return this.checker.getAugmentedPropertiesOfType(this);
        }
        getCallSignatures() {
          return this.checker.getSignaturesOfType(this, 0);
        }
        getConstructSignatures() {
          return this.checker.getSignaturesOfType(this, 1);
        }
        getStringIndexType() {
          return this.checker.getIndexTypeOfType(this, 0);
        }
        getNumberIndexType() {
          return this.checker.getIndexTypeOfType(this, 1);
        }
        getBaseTypes() {
          return this.isClassOrInterface() ? this.checker.getBaseTypes(this) : void 0;
        }
        isNullableType() {
          return this.checker.isNullableType(this);
        }
        getNonNullableType() {
          return this.checker.getNonNullableType(this);
        }
        getNonOptionalType() {
          return this.checker.getNonOptionalType(this);
        }
        getConstraint() {
          return this.checker.getBaseConstraintOfType(this);
        }
        getDefault() {
          return this.checker.getDefaultFromTypeParameter(this);
        }
        isUnion() {
          return !!(this.flags & 1048576);
        }
        isIntersection() {
          return !!(this.flags & 2097152);
        }
        isUnionOrIntersection() {
          return !!(this.flags & 3145728);
        }
        isLiteral() {
          return !!(this.flags & 2432);
        }
        isStringLiteral() {
          return !!(this.flags & 128);
        }
        isNumberLiteral() {
          return !!(this.flags & 256);
        }
        isTypeParameter() {
          return !!(this.flags & 262144);
        }
        isClassOrInterface() {
          return !!(ti(this) & 3);
        }
        isClass() {
          return !!(ti(this) & 1);
        }
        isIndexType() {
          return !!(this.flags & 4194304);
        }
        get typeArguments() {
          if (ti(this) & 4)
            return this.checker.getTypeArguments(this);
        }
      }, Z0e = class {
        constructor(e, t) {
          this.checker = e, this.flags = t;
        }
        getDeclaration() {
          return this.declaration;
        }
        getTypeParameters() {
          return this.typeParameters;
        }
        getParameters() {
          return this.parameters;
        }
        getReturnType() {
          return this.checker.getReturnTypeOfSignature(this);
        }
        getTypeParameterAtPosition(e) {
          const t = this.checker.getParameterType(this, e);
          if (t.isIndexType() && vk(t.type)) {
            const r = t.type.getConstraint();
            if (r)
              return this.checker.getIndexType(r);
          }
          return t;
        }
        getDocumentationComment() {
          return this.documentationComment || (this.documentationComment = b6(XE(this.declaration), this.checker));
        }
        getJsDocTags() {
          return this.jsDocTags || (this.jsDocTags = U9(XE(this.declaration), this.checker));
        }
      }, ebe = class extends W9 {
        constructor(e, t, r) {
          super(e, t, r), this.kind = 308;
        }
        update(e, t) {
          return KJ(this, e, t);
        }
        getLineAndCharacterOfPosition(e) {
          return ol(this, e);
        }
        getLineStarts() {
          return ig(this);
        }
        getPositionOfLineAndCharacter(e, t, r) {
          return ZH(ig(this), e, t, this.text, r);
        }
        getLineEndOfPosition(e) {
          const { line: t } = this.getLineAndCharacterOfPosition(e), r = this.getLineStarts();
          let i;
          t + 1 >= r.length && (i = this.getEnd()), i || (i = r[t + 1] - 1);
          const o = this.getFullText();
          return o[i] === `
` && o[i - 1] === "\r" ? i - 1 : i;
        }
        getNamedDeclarations() {
          return this.namedDeclarations || (this.namedDeclarations = this.computeNamedDeclarations()), this.namedDeclarations;
        }
        computeNamedDeclarations() {
          const e = f_();
          return this.forEachChild(o), e;
          function t(s) {
            const c = i(s);
            c && e.add(c, s);
          }
          function r(s) {
            let c = e.get(s);
            return c || e.set(s, c = []), c;
          }
          function i(s) {
            const c = sW(s);
            return c && (As(c) && Fr(c.expression) ? c.expression.name.text : yl(c) ? s6(c) : void 0);
          }
          function o(s) {
            switch (s.kind) {
              case 259:
              case 215:
              case 171:
              case 170:
                const c = s, f = i(c);
                if (f) {
                  const h = r(f), E = tl(h);
                  E && c.parent === E.parent && c.symbol === E.symbol ? c.body && !E.body && (h[h.length - 1] = c) : h.push(c);
                }
                Ma(s, o);
                break;
              case 260:
              case 228:
              case 261:
              case 262:
              case 263:
              case 264:
              case 268:
              case 278:
              case 273:
              case 270:
              case 271:
              case 174:
              case 175:
              case 184:
                t(s), Ma(s, o);
                break;
              case 166:
                if (!Yr(s, 16476))
                  break;
              case 257:
              case 205: {
                const h = s;
                if (Xa(h.name)) {
                  Ma(h.name, o);
                  break;
                }
                h.initializer && o(h.initializer);
              }
              case 302:
              case 169:
              case 168:
                t(s);
                break;
              case 275:
                const d = s;
                d.exportClause && (J_(d.exportClause) ? ze(d.exportClause.elements, o) : o(d.exportClause.name));
                break;
              case 269:
                const y = s.importClause;
                y && (y.name && t(y.name), y.namedBindings && (y.namedBindings.kind === 271 ? t(y.namedBindings) : ze(y.namedBindings.elements, o)));
                break;
              case 223:
                Cl(s) !== 0 && t(s);
              default:
                Ma(s, o);
            }
          }
        }
      }, tbe = class {
        constructor(e, t, r) {
          this.fileName = e, this.text = t, this.skipTrivia = r;
        }
        getLineAndCharacterOfPosition(e) {
          return ol(this, e);
        }
      }, nbe = class {
        constructor(e) {
          this.host = e;
        }
        getCurrentSourceFile(e) {
          var t, r, i, o, s, c, f, d;
          const y = this.host.getScriptSnapshot(e);
          if (!y)
            throw new Error("Could not find file: '" + e + "'.");
          const h = Z$(e, this.host), E = this.host.getScriptVersion(e);
          let A;
          if (this.currentFileName !== e) {
            const L = {
              languageVersion: 99,
              impliedNodeFormat: uF(zs(e, this.host.getCurrentDirectory(), ((i = (r = (t = this.host).getCompilerHost) == null ? void 0 : r.call(t)) == null ? void 0 : i.getCanonicalFileName) || J0(this.host)), (d = (f = (c = (s = (o = this.host).getCompilerHost) == null ? void 0 : s.call(o)) == null ? void 0 : c.getModuleResolutionCache) == null ? void 0 : f.call(c)) == null ? void 0 : d.getPackageJsonInfoCache(), this.host, this.host.getCompilationSettings()),
              setExternalModuleIndicator: ZN(this.host.getCompilationSettings())
            };
            A = j9(e, y, L, E, !0, h);
          } else if (this.currentFileVersion !== E) {
            const L = y.getChangeRange(this.currentFileScriptSnapshot);
            A = $Q(this.currentSourceFile, y, E, L);
          }
          return A && (this.currentFileVersion = E, this.currentFileName = e, this.currentFileScriptSnapshot = y, this.currentSourceFile = A), this.currentSourceFile;
        }
      }, rbe = {
        isCancellationRequested: t1,
        throwIfCancellationRequested: so
      }, ibe = class {
        constructor(e) {
          this.cancellationToken = e;
        }
        isCancellationRequested() {
          return this.cancellationToken.isCancellationRequested();
        }
        throwIfCancellationRequested() {
          var e;
          if (this.isCancellationRequested())
            throw (e = bi) == null || e.instant(bi.Phase.Session, "cancellationThrown", { kind: "CancellationTokenObject" }), new dI();
        }
      }, tZ = class {
        constructor(e, t = 20) {
          this.hostCancellationToken = e, this.throttleWaitMilliseconds = t, this.lastCancellationCheckTime = 0;
        }
        isCancellationRequested() {
          const e = il();
          return Math.abs(e - this.lastCancellationCheckTime) >= this.throttleWaitMilliseconds ? (this.lastCancellationCheckTime = e, this.hostCancellationToken.isCancellationRequested()) : !1;
        }
        throwIfCancellationRequested() {
          var e;
          if (this.isCancellationRequested())
            throw (e = bi) == null || e.instant(bi.Phase.Session, "cancellationThrown", { kind: "ThrottledCancellationToken" }), new dI();
        }
      }, nZ = [
        "getSemanticDiagnostics",
        "getSuggestionDiagnostics",
        "getCompilerOptionsDiagnostics",
        "getSemanticClassifications",
        "getEncodedSemanticClassifications",
        "getCodeFixesAtPosition",
        "getCombinedCodeFix",
        "applyCodeActionCommand",
        "organizeImports",
        "getEditsForFileRename",
        "getEmitOutput",
        "getApplicableRefactors",
        "getEditsForRefactor",
        "prepareCallHierarchy",
        "provideCallHierarchyIncomingCalls",
        "provideCallHierarchyOutgoingCalls",
        "provideInlayHints",
        "getSupportedCodeFixes"
      ], abe = [
        ...nZ,
        "getCompletionsAtPosition",
        "getCompletionEntryDetails",
        "getCompletionEntrySymbol",
        "getSignatureHelpItems",
        "getQuickInfoAtPosition",
        "getDefinitionAtPosition",
        "getDefinitionAndBoundSpan",
        "getImplementationAtPosition",
        "getTypeDefinitionAtPosition",
        "getReferencesAtPosition",
        "findReferences",
        "getOccurrencesAtPosition",
        "getDocumentHighlights",
        "getNavigateToItems",
        "getRenameInfo",
        "findRenameLocations",
        "getApplicableRefactors"
      ], xde(r9e());
    }
  });
  function d9e(e, t, r) {
    const i = [];
    r = GQ(r, i);
    const o = Va(e) ? e : [e], s = k8(void 0, void 0, N, r, o, t, !0);
    return s.diagnostics = va(s.diagnostics, i), s;
  }
  var f9e = C({
    "src/services/transform.ts"() {
      $r();
    }
  });
  function K9(e, t) {
    e && e.log("*INTERNAL ERROR* - Exception in typescript services: " + t.message);
  }
  function _9e(e, t, r, i) {
    let o;
    i && (e.log(t), o = il());
    const s = r();
    if (i) {
      const c = il();
      if (e.log(`${t} completed in ${c - o} msec`), Ha(s)) {
        let f = s;
        f.length > 128 && (f = f.substring(0, 128) + "..."), e.log(`  result.length=${f.length}, result='${JSON.stringify(f)}'`);
      }
    }
    return s;
  }
  function rZ(e, t, r, i) {
    return obe(e, t, !0, r, i);
  }
  function obe(e, t, r, i, o) {
    try {
      const s = _9e(e, t, i, o);
      return r ? JSON.stringify({ result: s }) : s;
    } catch (s) {
      return s instanceof dI ? JSON.stringify({ canceled: !0 }) : (K9(e, s), s.description = t, JSON.stringify({ error: s }));
    }
  }
  function iZ(e, t) {
    return e.map((r) => p9e(r, t));
  }
  function p9e(e, t) {
    return {
      message: Wv(e.messageText, t),
      start: e.start,
      length: e.length,
      category: nM(e),
      code: e.code,
      reportsUnnecessary: e.reportsUnnecessary,
      reportsDeprecated: e.reportsDeprecated
    };
  }
  function aZ(e) {
    return { spans: e.spans.join(","), endOfLineState: e.endOfLineState };
  }
  var X9, sbe, oZ, sZ, Y9, lbe, cbe, ube, dbe, m9e = C({
    "src/services/shims.ts"() {
      $r(), X9 = /* @__PURE__ */ function() {
        return this;
      }(), sbe = class {
        constructor(e) {
          this.scriptSnapshotShim = e;
        }
        getText(e, t) {
          return this.scriptSnapshotShim.getText(e, t);
        }
        getLength() {
          return this.scriptSnapshotShim.getLength();
        }
        getChangeRange(e) {
          const t = e, r = this.scriptSnapshotShim.getChangeRange(t.scriptSnapshotShim);
          if (r === null)
            return null;
          const i = JSON.parse(r);
          return HR(wc(i.span.start, i.span.length), i.newLength);
        }
        dispose() {
          "dispose" in this.scriptSnapshotShim && this.scriptSnapshotShim.dispose();
        }
      }, oZ = class {
        constructor(e) {
          this.shimHost = e, this.loggingEnabled = !1, this.tracingEnabled = !1, "getModuleResolutionsForFile" in this.shimHost && (this.resolveModuleNames = (t, r) => {
            const i = JSON.parse(this.shimHost.getModuleResolutionsForFile(r));
            return jt(t, (o) => {
              const s = dR(i, o);
              return s ? { resolvedFileName: s, extension: lO(s), isExternalLibraryImport: !1 } : void 0;
            });
          }), "directoryExists" in this.shimHost && (this.directoryExists = (t) => this.shimHost.directoryExists(t)), "getTypeReferenceDirectiveResolutionsForFile" in this.shimHost && (this.resolveTypeReferenceDirectives = (t, r) => {
            const i = JSON.parse(this.shimHost.getTypeReferenceDirectiveResolutionsForFile(r));
            return jt(t, (o) => dR(i, Ha(o) ? o : N_(o.fileName)));
          });
        }
        log(e) {
          this.loggingEnabled && this.shimHost.log(e);
        }
        trace(e) {
          this.tracingEnabled && this.shimHost.trace(e);
        }
        error(e) {
          this.shimHost.error(e);
        }
        getProjectVersion() {
          if (this.shimHost.getProjectVersion)
            return this.shimHost.getProjectVersion();
        }
        getTypeRootsVersion() {
          return this.shimHost.getTypeRootsVersion ? this.shimHost.getTypeRootsVersion() : 0;
        }
        useCaseSensitiveFileNames() {
          return this.shimHost.useCaseSensitiveFileNames ? this.shimHost.useCaseSensitiveFileNames() : !1;
        }
        getCompilationSettings() {
          const e = this.shimHost.getCompilationSettings();
          if (e === null || e === "")
            throw Error("LanguageServiceShimHostAdapter.getCompilationSettings: empty compilationSettings");
          const t = JSON.parse(e);
          return t.allowNonTsExtensions = !0, t;
        }
        getScriptFileNames() {
          const e = this.shimHost.getScriptFileNames();
          return JSON.parse(e);
        }
        getScriptSnapshot(e) {
          const t = this.shimHost.getScriptSnapshot(e);
          return t && new sbe(t);
        }
        getScriptKind(e) {
          return "getScriptKind" in this.shimHost ? this.shimHost.getScriptKind(e) : 0;
        }
        getScriptVersion(e) {
          return this.shimHost.getScriptVersion(e);
        }
        getLocalizedDiagnosticMessages() {
          const e = this.shimHost.getLocalizedDiagnosticMessages();
          if (e === null || e === "")
            return null;
          try {
            return JSON.parse(e);
          } catch (t) {
            return this.log(t.description || "diagnosticMessages.generated.json has invalid JSON format"), null;
          }
        }
        getCancellationToken() {
          const e = this.shimHost.getCancellationToken();
          return new tZ(e);
        }
        getCurrentDirectory() {
          return this.shimHost.getCurrentDirectory();
        }
        getDirectories(e) {
          return JSON.parse(this.shimHost.getDirectories(e));
        }
        getDefaultLibFileName(e) {
          return this.shimHost.getDefaultLibFileName(JSON.stringify(e));
        }
        readDirectory(e, t, r, i, o) {
          const s = dk(e, r, i, this.shimHost.useCaseSensitiveFileNames(), this.shimHost.getCurrentDirectory());
          return JSON.parse(this.shimHost.readDirectory(e, JSON.stringify(t), JSON.stringify(s.basePaths), s.excludePattern, s.includeFilePattern, s.includeDirectoryPattern, o));
        }
        readFile(e, t) {
          return this.shimHost.readFile(e, t);
        }
        fileExists(e) {
          return this.shimHost.fileExists(e);
        }
      }, sZ = class {
        constructor(e) {
          this.shimHost = e, this.useCaseSensitiveFileNames = this.shimHost.useCaseSensitiveFileNames ? this.shimHost.useCaseSensitiveFileNames() : !1, "directoryExists" in this.shimHost ? this.directoryExists = (t) => this.shimHost.directoryExists(t) : this.directoryExists = void 0, "realpath" in this.shimHost ? this.realpath = (t) => this.shimHost.realpath(t) : this.realpath = void 0;
        }
        readDirectory(e, t, r, i, o) {
          const s = dk(e, r, i, this.shimHost.useCaseSensitiveFileNames(), this.shimHost.getCurrentDirectory());
          return JSON.parse(this.shimHost.readDirectory(e, JSON.stringify(t), JSON.stringify(s.basePaths), s.excludePattern, s.includeFilePattern, s.includeDirectoryPattern, o));
        }
        fileExists(e) {
          return this.shimHost.fileExists(e);
        }
        readFile(e) {
          return this.shimHost.readFile(e);
        }
        getDirectories(e) {
          return JSON.parse(this.shimHost.getDirectories(e));
        }
      }, Y9 = class {
        constructor(e) {
          this.factory = e, e.registerShim(this);
        }
        dispose(e) {
          this.factory.unregisterShim(this);
        }
      }, lbe = class extends Y9 {
        constructor(e, t, r) {
          super(e), this.host = t, this.languageService = r, this.logPerformance = !1, this.logger = this.host;
        }
        forwardJSONCall(e, t) {
          return rZ(this.logger, e, t, this.logPerformance);
        }
        dispose(e) {
          this.logger.log("dispose()"), this.languageService.dispose(), this.languageService = null, X9 && X9.CollectGarbage && (X9.CollectGarbage(), this.logger.log("CollectGarbage()")), this.logger = null, super.dispose(e);
        }
        refresh(e) {
          this.forwardJSONCall(`refresh(${e})`, () => null);
        }
        cleanupSemanticCache() {
          this.forwardJSONCall("cleanupSemanticCache()", () => (this.languageService.cleanupSemanticCache(), null));
        }
        realizeDiagnostics(e) {
          const t = ib(this.host, void 0);
          return iZ(e, t);
        }
        getSyntacticClassifications(e, t, r) {
          return this.forwardJSONCall(`getSyntacticClassifications('${e}', ${t}, ${r})`, () => this.languageService.getSyntacticClassifications(e, wc(t, r)));
        }
        getSemanticClassifications(e, t, r) {
          return this.forwardJSONCall(`getSemanticClassifications('${e}', ${t}, ${r})`, () => this.languageService.getSemanticClassifications(e, wc(t, r)));
        }
        getEncodedSyntacticClassifications(e, t, r) {
          return this.forwardJSONCall(`getEncodedSyntacticClassifications('${e}', ${t}, ${r})`, () => aZ(this.languageService.getEncodedSyntacticClassifications(e, wc(t, r))));
        }
        getEncodedSemanticClassifications(e, t, r) {
          return this.forwardJSONCall(`getEncodedSemanticClassifications('${e}', ${t}, ${r})`, () => aZ(this.languageService.getEncodedSemanticClassifications(e, wc(t, r))));
        }
        getSyntacticDiagnostics(e) {
          return this.forwardJSONCall(`getSyntacticDiagnostics('${e}')`, () => {
            const t = this.languageService.getSyntacticDiagnostics(e);
            return this.realizeDiagnostics(t);
          });
        }
        getSemanticDiagnostics(e) {
          return this.forwardJSONCall(`getSemanticDiagnostics('${e}')`, () => {
            const t = this.languageService.getSemanticDiagnostics(e);
            return this.realizeDiagnostics(t);
          });
        }
        getSuggestionDiagnostics(e) {
          return this.forwardJSONCall(`getSuggestionDiagnostics('${e}')`, () => this.realizeDiagnostics(this.languageService.getSuggestionDiagnostics(e)));
        }
        getCompilerOptionsDiagnostics() {
          return this.forwardJSONCall("getCompilerOptionsDiagnostics()", () => {
            const e = this.languageService.getCompilerOptionsDiagnostics();
            return this.realizeDiagnostics(e);
          });
        }
        getQuickInfoAtPosition(e, t) {
          return this.forwardJSONCall(`getQuickInfoAtPosition('${e}', ${t})`, () => this.languageService.getQuickInfoAtPosition(e, t));
        }
        getNameOrDottedNameSpan(e, t, r) {
          return this.forwardJSONCall(`getNameOrDottedNameSpan('${e}', ${t}, ${r})`, () => this.languageService.getNameOrDottedNameSpan(e, t, r));
        }
        getBreakpointStatementAtPosition(e, t) {
          return this.forwardJSONCall(`getBreakpointStatementAtPosition('${e}', ${t})`, () => this.languageService.getBreakpointStatementAtPosition(e, t));
        }
        getSignatureHelpItems(e, t, r) {
          return this.forwardJSONCall(`getSignatureHelpItems('${e}', ${t})`, () => this.languageService.getSignatureHelpItems(e, t, r));
        }
        getDefinitionAtPosition(e, t) {
          return this.forwardJSONCall(`getDefinitionAtPosition('${e}', ${t})`, () => this.languageService.getDefinitionAtPosition(e, t));
        }
        getDefinitionAndBoundSpan(e, t) {
          return this.forwardJSONCall(`getDefinitionAndBoundSpan('${e}', ${t})`, () => this.languageService.getDefinitionAndBoundSpan(e, t));
        }
        getTypeDefinitionAtPosition(e, t) {
          return this.forwardJSONCall(`getTypeDefinitionAtPosition('${e}', ${t})`, () => this.languageService.getTypeDefinitionAtPosition(e, t));
        }
        getImplementationAtPosition(e, t) {
          return this.forwardJSONCall(`getImplementationAtPosition('${e}', ${t})`, () => this.languageService.getImplementationAtPosition(e, t));
        }
        getRenameInfo(e, t, r) {
          return this.forwardJSONCall(`getRenameInfo('${e}', ${t})`, () => this.languageService.getRenameInfo(e, t, r));
        }
        getSmartSelectionRange(e, t) {
          return this.forwardJSONCall(`getSmartSelectionRange('${e}', ${t})`, () => this.languageService.getSmartSelectionRange(e, t));
        }
        findRenameLocations(e, t, r, i, o) {
          return this.forwardJSONCall(`findRenameLocations('${e}', ${t}, ${r}, ${i}, ${o})`, () => this.languageService.findRenameLocations(e, t, r, i, o));
        }
        getBraceMatchingAtPosition(e, t) {
          return this.forwardJSONCall(`getBraceMatchingAtPosition('${e}', ${t})`, () => this.languageService.getBraceMatchingAtPosition(e, t));
        }
        isValidBraceCompletionAtPosition(e, t, r) {
          return this.forwardJSONCall(`isValidBraceCompletionAtPosition('${e}', ${t}, ${r})`, () => this.languageService.isValidBraceCompletionAtPosition(e, t, r));
        }
        getSpanOfEnclosingComment(e, t, r) {
          return this.forwardJSONCall(`getSpanOfEnclosingComment('${e}', ${t})`, () => this.languageService.getSpanOfEnclosingComment(e, t, r));
        }
        getIndentationAtPosition(e, t, r) {
          return this.forwardJSONCall(`getIndentationAtPosition('${e}', ${t})`, () => {
            const i = JSON.parse(r);
            return this.languageService.getIndentationAtPosition(e, t, i);
          });
        }
        getReferencesAtPosition(e, t) {
          return this.forwardJSONCall(`getReferencesAtPosition('${e}', ${t})`, () => this.languageService.getReferencesAtPosition(e, t));
        }
        findReferences(e, t) {
          return this.forwardJSONCall(`findReferences('${e}', ${t})`, () => this.languageService.findReferences(e, t));
        }
        getFileReferences(e) {
          return this.forwardJSONCall(`getFileReferences('${e})`, () => this.languageService.getFileReferences(e));
        }
        getOccurrencesAtPosition(e, t) {
          return this.forwardJSONCall(`getOccurrencesAtPosition('${e}', ${t})`, () => this.languageService.getOccurrencesAtPosition(e, t));
        }
        getDocumentHighlights(e, t, r) {
          return this.forwardJSONCall(`getDocumentHighlights('${e}', ${t})`, () => {
            const i = this.languageService.getDocumentHighlights(e, t, JSON.parse(r)), o = N_(Qc(e));
            return lr(i, (s) => N_(Qc(s.fileName)) === o);
          });
        }
        getCompletionsAtPosition(e, t, r, i) {
          return this.forwardJSONCall(`getCompletionsAtPosition('${e}', ${t}, ${r}, ${i})`, () => this.languageService.getCompletionsAtPosition(e, t, r, i));
        }
        getCompletionEntryDetails(e, t, r, i, o, s, c) {
          return this.forwardJSONCall(`getCompletionEntryDetails('${e}', ${t}, '${r}')`, () => {
            const f = i === void 0 ? void 0 : JSON.parse(i);
            return this.languageService.getCompletionEntryDetails(e, t, r, f, o, s, c);
          });
        }
        getFormattingEditsForRange(e, t, r, i) {
          return this.forwardJSONCall(`getFormattingEditsForRange('${e}', ${t}, ${r})`, () => {
            const o = JSON.parse(i);
            return this.languageService.getFormattingEditsForRange(e, t, r, o);
          });
        }
        getFormattingEditsForDocument(e, t) {
          return this.forwardJSONCall(`getFormattingEditsForDocument('${e}')`, () => {
            const r = JSON.parse(t);
            return this.languageService.getFormattingEditsForDocument(e, r);
          });
        }
        getFormattingEditsAfterKeystroke(e, t, r, i) {
          return this.forwardJSONCall(`getFormattingEditsAfterKeystroke('${e}', ${t}, '${r}')`, () => {
            const o = JSON.parse(i);
            return this.languageService.getFormattingEditsAfterKeystroke(e, t, r, o);
          });
        }
        getDocCommentTemplateAtPosition(e, t, r, i) {
          return this.forwardJSONCall(`getDocCommentTemplateAtPosition('${e}', ${t})`, () => this.languageService.getDocCommentTemplateAtPosition(e, t, r, i));
        }
        getNavigateToItems(e, t, r) {
          return this.forwardJSONCall(`getNavigateToItems('${e}', ${t}, ${r})`, () => this.languageService.getNavigateToItems(e, t, r));
        }
        getNavigationBarItems(e) {
          return this.forwardJSONCall(`getNavigationBarItems('${e}')`, () => this.languageService.getNavigationBarItems(e));
        }
        getNavigationTree(e) {
          return this.forwardJSONCall(`getNavigationTree('${e}')`, () => this.languageService.getNavigationTree(e));
        }
        getOutliningSpans(e) {
          return this.forwardJSONCall(`getOutliningSpans('${e}')`, () => this.languageService.getOutliningSpans(e));
        }
        getTodoComments(e, t) {
          return this.forwardJSONCall(`getTodoComments('${e}')`, () => this.languageService.getTodoComments(e, JSON.parse(t)));
        }
        prepareCallHierarchy(e, t) {
          return this.forwardJSONCall(`prepareCallHierarchy('${e}', ${t})`, () => this.languageService.prepareCallHierarchy(e, t));
        }
        provideCallHierarchyIncomingCalls(e, t) {
          return this.forwardJSONCall(`provideCallHierarchyIncomingCalls('${e}', ${t})`, () => this.languageService.provideCallHierarchyIncomingCalls(e, t));
        }
        provideCallHierarchyOutgoingCalls(e, t) {
          return this.forwardJSONCall(`provideCallHierarchyOutgoingCalls('${e}', ${t})`, () => this.languageService.provideCallHierarchyOutgoingCalls(e, t));
        }
        provideInlayHints(e, t, r) {
          return this.forwardJSONCall(`provideInlayHints('${e}', '${JSON.stringify(t)}', ${JSON.stringify(r)})`, () => this.languageService.provideInlayHints(e, t, r));
        }
        getEmitOutput(e) {
          return this.forwardJSONCall(`getEmitOutput('${e}')`, () => {
            const { diagnostics: t, ...r } = this.languageService.getEmitOutput(e);
            return { ...r, diagnostics: this.realizeDiagnostics(t) };
          });
        }
        getEmitOutputObject(e) {
          return obe(this.logger, `getEmitOutput('${e}')`, !1, () => this.languageService.getEmitOutput(e), this.logPerformance);
        }
        toggleLineComment(e, t) {
          return this.forwardJSONCall(`toggleLineComment('${e}', '${JSON.stringify(t)}')`, () => this.languageService.toggleLineComment(e, t));
        }
        toggleMultilineComment(e, t) {
          return this.forwardJSONCall(`toggleMultilineComment('${e}', '${JSON.stringify(t)}')`, () => this.languageService.toggleMultilineComment(e, t));
        }
        commentSelection(e, t) {
          return this.forwardJSONCall(`commentSelection('${e}', '${JSON.stringify(t)}')`, () => this.languageService.commentSelection(e, t));
        }
        uncommentSelection(e, t) {
          return this.forwardJSONCall(`uncommentSelection('${e}', '${JSON.stringify(t)}')`, () => this.languageService.uncommentSelection(e, t));
        }
      }, cbe = class extends Y9 {
        constructor(e, t) {
          super(e), this.logger = t, this.logPerformance = !1, this.classifier = Mve();
        }
        getEncodedLexicalClassifications(e, t, r = !1) {
          return rZ(this.logger, "getEncodedLexicalClassifications", () => aZ(this.classifier.getEncodedLexicalClassifications(e, t, r)), this.logPerformance);
        }
        getClassificationsForLine(e, t, r = !1) {
          const i = this.classifier.getClassificationsForLine(e, t, r);
          let o = "";
          for (const s of i.entries)
            o += s.length + `
`, o += s.classification + `
`;
          return o += i.finalLexState, o;
        }
      }, ube = class extends Y9 {
        constructor(e, t, r) {
          super(e), this.logger = t, this.host = r, this.logPerformance = !1;
        }
        forwardJSONCall(e, t) {
          return rZ(this.logger, e, t, this.logPerformance);
        }
        resolveModuleName(e, t, r) {
          return this.forwardJSONCall(`resolveModuleName('${e}')`, () => {
            const i = JSON.parse(r), o = Jk(t, Qc(e), i, this.host);
            let s = o.resolvedModule ? o.resolvedModule.resolvedFileName : void 0;
            return o.resolvedModule && o.resolvedModule.extension !== ".ts" && o.resolvedModule.extension !== ".tsx" && o.resolvedModule.extension !== ".d.ts" && (s = void 0), {
              resolvedFileName: s,
              failedLookupLocations: o.failedLookupLocations,
              affectingLocations: o.affectingLocations
            };
          });
        }
        resolveTypeReferenceDirective(e, t, r) {
          return this.forwardJSONCall(`resolveTypeReferenceDirective(${e})`, () => {
            const i = JSON.parse(r), o = LK(t, Qc(e), i, this.host);
            return {
              resolvedFileName: o.resolvedTypeReferenceDirective ? o.resolvedTypeReferenceDirective.resolvedFileName : void 0,
              primary: o.resolvedTypeReferenceDirective ? o.resolvedTypeReferenceDirective.primary : !0,
              failedLookupLocations: o.failedLookupLocations
            };
          });
        }
        getPreProcessedFileInfo(e, t) {
          return this.forwardJSONCall(`getPreProcessedFileInfo('${e}')`, () => {
            const r = a0e($F(t), !0, !0);
            return {
              referencedFiles: this.convertFileReferences(r.referencedFiles),
              importedFiles: this.convertFileReferences(r.importedFiles),
              ambientExternalModules: r.ambientExternalModules,
              isLibFile: r.isLibFile,
              typeReferenceDirectives: this.convertFileReferences(r.typeReferenceDirectives),
              libReferenceDirectives: this.convertFileReferences(r.libReferenceDirectives)
            };
          });
        }
        getAutomaticTypeDirectiveNames(e) {
          return this.forwardJSONCall(`getAutomaticTypeDirectiveNames('${e}')`, () => {
            const t = JSON.parse(e);
            return A5(t, this.host);
          });
        }
        convertFileReferences(e) {
          if (!e)
            return;
          const t = [];
          for (const r of e)
            t.push({
              path: Qc(r.fileName),
              position: r.pos,
              length: r.end - r.pos
            });
          return t;
        }
        getTSConfigFileInfo(e, t) {
          return this.forwardJSONCall(`getTSConfigFileInfo('${e}')`, () => {
            const r = $O(e, $F(t)), i = Qc(e), o = n8(r, this.host, mi(i), {}, i);
            return {
              options: o.options,
              typeAcquisition: o.typeAcquisition,
              files: o.fileNames,
              raw: o.raw,
              errors: iZ([...r.parseDiagnostics, ...o.errors], `\r
`)
            };
          });
        }
        getDefaultCompilationSettings() {
          return this.forwardJSONCall("getDefaultCompilationSettings()", () => V9());
        }
        discoverTypings(e) {
          const t = ru(!1);
          return this.forwardJSONCall("discoverTypings()", () => {
            const r = JSON.parse(e);
            return this.safeList === void 0 && (this.safeList = jT.loadSafeList(this.host, zs(r.safeListPath, r.safeListPath, t))), jT.discoverTypings(this.host, (i) => this.logger.log(i), r.fileNames, zs(r.projectRootPath, r.projectRootPath, t), this.safeList, r.packageNameToTypingLocation, r.typeAcquisition, r.unresolvedImports, r.typesRegistry, am);
          });
        }
      }, dbe = class {
        constructor() {
          this._shims = [];
        }
        getServicesVersion() {
          return ZQ;
        }
        createLanguageServiceShim(e) {
          try {
            this.documentRegistry === void 0 && (this.documentRegistry = AQ(e.useCaseSensitiveFileNames && e.useCaseSensitiveFileNames(), e.getCurrentDirectory()));
            const t = new oZ(e), r = Y0e(t, this.documentRegistry, !1);
            return new lbe(this, e, r);
          } catch (t) {
            throw K9(e, t), t;
          }
        }
        createClassifierShim(e) {
          try {
            return new cbe(this, e);
          } catch (t) {
            throw K9(e, t), t;
          }
        }
        createCoreServicesShim(e) {
          try {
            const t = new sZ(e);
            return new ube(this, e, t);
          } catch (t) {
            throw K9(e, t), t;
          }
        }
        close() {
          Fi(this._shims), this.documentRegistry = void 0;
        }
        registerShim(e) {
          this._shims.push(e);
        }
        unregisterShim(e) {
          for (let t = 0; t < this._shims.length; t++)
            if (this._shims[t] === e) {
              delete this._shims[t];
              return;
            }
          throw new Error("Invalid operation");
        }
      };
    }
  });
  function h9e(e, t) {
    if (e.isDeclarationFile)
      return;
    let r = aa(e, t);
    const i = e.getLineAndCharacterOfPosition(t).line;
    if (e.getLineAndCharacterOfPosition(r.getStart(e)).line > i) {
      const E = Ac(r.pos, e);
      if (!E || e.getLineAndCharacterOfPosition(E.getEnd()).line !== i)
        return;
      r = E;
    }
    if (r.flags & 16777216)
      return;
    return h(r);
    function o(E, A) {
      const L = Mx(E) ? Li(E.modifiers, Fu) : void 0, I = L ? Ko(e.text, L.end) : E.getStart(e);
      return hc(I, (A || E).getEnd());
    }
    function s(E, A) {
      return o(E, zT(A, A.parent, e));
    }
    function c(E, A) {
      return E && i === e.getLineAndCharacterOfPosition(E.getStart(e)).line ? h(E) : h(A);
    }
    function f(E, A, L) {
      if (E) {
        const I = E.indexOf(A);
        if (I >= 0) {
          let O = I, k = I + 1;
          for (; O > 0 && L(E[O - 1]); )
            O--;
          for (; k < E.length && L(E[k]); )
            k++;
          return hc(Ko(e.text, E[O].pos), E[k - 1].end);
        }
      }
      return o(A);
    }
    function d(E) {
      return h(Ac(E.pos, e));
    }
    function y(E) {
      return h(zT(E, E.parent, e));
    }
    function h(E) {
      if (E) {
        const { parent: ee } = E;
        switch (E.kind) {
          case 240:
            return L(E.declarationList.declarations[0]);
          case 257:
          case 169:
          case 168:
            return L(E);
          case 166:
            return O(E);
          case 259:
          case 171:
          case 170:
          case 174:
          case 175:
          case 173:
          case 215:
          case 216:
            return G(E);
          case 238:
            if (uT(E))
              return V(E);
          case 265:
            return H(E);
          case 295:
            return H(E.block);
          case 241:
            return o(E.expression);
          case 250:
            return o(E.getChildAt(0), E.expression);
          case 244:
            return s(E, E.expression);
          case 243:
            return h(E.statement);
          case 256:
            return o(E.getChildAt(0));
          case 242:
            return s(E, E.expression);
          case 253:
            return h(E.statement);
          case 249:
          case 248:
            return o(E.getChildAt(0), E.label);
          case 245:
            return X(E);
          case 246:
            return s(E, E.expression);
          case 247:
            return te(E);
          case 252:
            return s(E, E.expression);
          case 292:
          case 293:
            return h(E.statements[0]);
          case 255:
            return H(E.tryBlock);
          case 254:
            return o(E, E.expression);
          case 274:
            return o(E, E.expression);
          case 268:
            return o(E, E.moduleReference);
          case 269:
            return o(E, E.moduleSpecifier);
          case 275:
            return o(E, E.moduleSpecifier);
          case 264:
            if (vg(E) !== 1)
              return;
          case 260:
          case 263:
          case 302:
          case 205:
            return o(E);
          case 251:
            return h(E.statement);
          case 167:
            return f(ee.modifiers, E, Fu);
          case 203:
          case 204:
            return Y(E);
          case 261:
          case 262:
            return;
          case 26:
          case 1:
            return c(Ac(E.pos, e));
          case 27:
            return d(E);
          case 18:
            return de(E);
          case 19:
            return re(E);
          case 23:
            return ye(E);
          case 20:
            return ae(E);
          case 21:
            return W(E);
          case 58:
            return ce(E);
          case 31:
          case 29:
            return me(E);
          case 115:
            return ve(E);
          case 91:
          case 83:
          case 96:
            return y(E);
          case 162:
            return Te(E);
          default:
            if (wy(E))
              return P(E);
            if ((E.kind === 79 || E.kind === 227 || E.kind === 299 || E.kind === 300) && wy(ee))
              return o(E);
            if (E.kind === 223) {
              const { left: Qe, operatorToken: Ve } = E;
              if (wy(Qe))
                return P(Qe);
              if (Ve.kind === 63 && wy(E.parent))
                return o(E);
              if (Ve.kind === 27)
                return h(Qe);
            }
            if (dg(E))
              switch (ee.kind) {
                case 243:
                  return d(E);
                case 167:
                  return h(E.parent);
                case 245:
                case 247:
                  return o(E);
                case 223:
                  if (E.parent.operatorToken.kind === 27)
                    return o(E);
                  break;
                case 216:
                  if (E.parent.body === E)
                    return o(E);
                  break;
              }
            switch (E.parent.kind) {
              case 299:
                if (E.parent.name === E && !wy(E.parent.parent))
                  return h(E.parent.initializer);
                break;
              case 213:
                if (E.parent.type === E)
                  return y(E.parent.type);
                break;
              case 257:
              case 166: {
                const { initializer: Qe, type: Ve } = E.parent;
                if (Qe === E || Ve === E || yy(E.kind))
                  return d(E);
                break;
              }
              case 223: {
                const { left: Qe } = E.parent;
                if (wy(Qe) && E !== Qe)
                  return d(E);
                break;
              }
              default:
                if (Ka(E.parent) && E.parent.type === E)
                  return d(E);
            }
            return h(E.parent);
        }
      }
      function A(ee) {
        return Uu(ee.parent) && ee.parent.declarations[0] === ee ? o(Ac(ee.pos, e, ee.parent), ee) : o(ee);
      }
      function L(ee) {
        if (ee.parent.parent.kind === 246)
          return h(ee.parent.parent);
        const Qe = ee.parent;
        if (Xa(ee.name))
          return Y(ee.name);
        if (aT(ee) && ee.initializer || Yr(ee, 1) || Qe.parent.kind === 247)
          return A(ee);
        if (Uu(ee.parent) && ee.parent.declarations[0] !== ee)
          return h(Ac(ee.pos, e, ee.parent));
      }
      function I(ee) {
        return !!ee.initializer || ee.dotDotDotToken !== void 0 || Yr(ee, 12);
      }
      function O(ee) {
        if (Xa(ee.name))
          return Y(ee.name);
        if (I(ee))
          return o(ee);
        {
          const Qe = ee.parent, Ve = Qe.parameters.indexOf(ee);
          return D.assert(Ve !== -1), Ve !== 0 ? O(Qe.parameters[Ve - 1]) : h(Qe.body);
        }
      }
      function k(ee) {
        return Yr(ee, 1) || ee.parent.kind === 260 && ee.kind !== 173;
      }
      function G(ee) {
        if (ee.body)
          return k(ee) ? o(ee) : h(ee.body);
      }
      function V(ee) {
        const Qe = ee.statements.length ? ee.statements[0] : ee.getLastToken();
        return k(ee.parent) ? c(ee.parent, Qe) : h(Qe);
      }
      function H(ee) {
        switch (ee.parent.kind) {
          case 264:
            if (vg(ee.parent) !== 1)
              return;
          case 244:
          case 242:
          case 246:
            return c(ee.parent, ee.statements[0]);
          case 245:
          case 247:
            return c(Ac(ee.pos, e, ee.parent), ee.statements[0]);
        }
        return h(ee.statements[0]);
      }
      function te(ee) {
        if (ee.initializer.kind === 258) {
          const Qe = ee.initializer;
          if (Qe.declarations.length > 0)
            return h(Qe.declarations[0]);
        } else
          return h(ee.initializer);
      }
      function X(ee) {
        if (ee.initializer)
          return te(ee);
        if (ee.condition)
          return o(ee.condition);
        if (ee.incrementor)
          return o(ee.incrementor);
      }
      function Y(ee) {
        const Qe = ze(ee.elements, (Ve) => Ve.kind !== 229 ? Ve : void 0);
        return Qe ? h(Qe) : ee.parent.kind === 205 ? o(ee.parent) : A(ee.parent);
      }
      function P(ee) {
        D.assert(ee.kind !== 204 && ee.kind !== 203);
        const Qe = ee.kind === 206 ? ee.elements : ee.properties, Ve = ze(Qe, (Be) => Be.kind !== 229 ? Be : void 0);
        return Ve ? h(Ve) : o(ee.parent.kind === 223 ? ee.parent : ee);
      }
      function de(ee) {
        switch (ee.parent.kind) {
          case 263:
            const Qe = ee.parent;
            return c(Ac(ee.pos, e, ee.parent), Qe.members.length ? Qe.members[0] : Qe.getLastToken(e));
          case 260:
            const Ve = ee.parent;
            return c(Ac(ee.pos, e, ee.parent), Ve.members.length ? Ve.members[0] : Ve.getLastToken(e));
          case 266:
            return c(ee.parent.parent, ee.parent.clauses[0]);
        }
        return h(ee.parent);
      }
      function re(ee) {
        switch (ee.parent.kind) {
          case 265:
            if (vg(ee.parent.parent) !== 1)
              return;
          case 263:
          case 260:
            return o(ee);
          case 238:
            if (uT(ee.parent))
              return o(ee);
          case 295:
            return h(tl(ee.parent.statements));
          case 266:
            const Qe = ee.parent, Ve = tl(Qe.clauses);
            return Ve ? h(tl(Ve.statements)) : void 0;
          case 203:
            const Be = ee.parent;
            return h(tl(Be.elements) || Be);
          default:
            if (wy(ee.parent)) {
              const qe = ee.parent;
              return o(tl(qe.properties) || qe);
            }
            return h(ee.parent);
        }
      }
      function ye(ee) {
        switch (ee.parent.kind) {
          case 204:
            const Qe = ee.parent;
            return o(tl(Qe.elements) || Qe);
          default:
            if (wy(ee.parent)) {
              const Ve = ee.parent;
              return o(tl(Ve.elements) || Ve);
            }
            return h(ee.parent);
        }
      }
      function ae(ee) {
        return ee.parent.kind === 243 || ee.parent.kind === 210 || ee.parent.kind === 211 ? d(ee) : ee.parent.kind === 214 ? y(ee) : h(ee.parent);
      }
      function W(ee) {
        switch (ee.parent.kind) {
          case 215:
          case 259:
          case 216:
          case 171:
          case 170:
          case 174:
          case 175:
          case 173:
          case 244:
          case 243:
          case 245:
          case 247:
          case 210:
          case 211:
          case 214:
            return d(ee);
          default:
            return h(ee.parent);
        }
      }
      function ce(ee) {
        return Ka(ee.parent) || ee.parent.kind === 299 || ee.parent.kind === 166 ? d(ee) : h(ee.parent);
      }
      function me(ee) {
        return ee.parent.kind === 213 ? y(ee) : h(ee.parent);
      }
      function ve(ee) {
        return ee.parent.kind === 243 ? s(ee, ee.parent.expression) : h(ee.parent);
      }
      function Te(ee) {
        return ee.parent.kind === 247 ? y(ee) : h(ee.parent);
      }
    }
  }
  var g9e = C({
    "src/services/breakpoints.ts"() {
      $r();
    }
  }), lZ = {};
  ne(lZ, {
    spanInSourceFileAtLocation: () => h9e
  });
  var y9e = C({
    "src/services/_namespaces/ts.BreakpointResolver.ts"() {
      g9e();
    }
  });
  function v9e(e) {
    return (Bs(e) || Gu(e)) && gu(e);
  }
  function xw(e) {
    return (Bs(e) || Js(e) || Gu(e)) && Ki(e.parent) && e === e.parent.initializer && je(e.parent.name) && !!(hp(e.parent) & 2);
  }
  function fbe(e) {
    return qi(e) || Jl(e) || yc(e) || Bs(e) || Nc(e) || Gu(e) || Il(e) || ac(e) || Ah(e) || z_(e) || e_(e);
  }
  function Xx(e) {
    return qi(e) || Jl(e) && je(e.name) || yc(e) || Nc(e) || Il(e) || ac(e) || Ah(e) || z_(e) || e_(e) || v9e(e) || xw(e);
  }
  function _be(e) {
    return qi(e) ? e : gu(e) ? e.name : xw(e) ? e.parent.name : D.checkDefined(e.modifiers && nn(e.modifiers, pbe));
  }
  function pbe(e) {
    return e.kind === 88;
  }
  function mbe(e, t) {
    const r = _be(t);
    return r && e.getSymbolAtLocation(r);
  }
  function b9e(e, t) {
    if (qi(t))
      return { text: t.fileName, pos: 0, end: 0 };
    if ((yc(t) || Nc(t)) && !gu(t)) {
      const o = t.modifiers && nn(t.modifiers, pbe);
      if (o)
        return { text: "default", pos: o.getStart(), end: o.getEnd() };
    }
    if (Il(t)) {
      const o = t.getSourceFile(), s = Ko(o.text, $p(t).pos), c = s + 6, f = e.getTypeChecker(), d = f.getSymbolAtLocation(t.parent);
      return { text: `${d ? `${f.symbolToString(d, t.parent)} ` : ""}static {}`, pos: s, end: c };
    }
    const r = xw(t) ? t.parent.name : D.checkDefined(ka(t), "Expected call hierarchy item to have a name");
    let i = je(r) ? Mr(r) : Xf(r) ? r.text : As(r) && Xf(r.expression) ? r.expression.text : void 0;
    if (i === void 0) {
      const o = e.getTypeChecker(), s = o.getSymbolAtLocation(r);
      s && (i = o.symbolToString(s, t));
    }
    if (i === void 0) {
      const o = R8();
      i = NI((s) => o.writeNode(4, t, t.getSourceFile(), s));
    }
    return { text: i, pos: r.getStart(), end: r.getEnd() };
  }
  function E9e(e) {
    var t, r;
    if (xw(e))
      return tm(e.parent.parent.parent.parent) && je(e.parent.parent.parent.parent.parent.name) ? e.parent.parent.parent.parent.parent.name.getText() : void 0;
    switch (e.kind) {
      case 174:
      case 175:
      case 171:
        return e.parent.kind === 207 ? (t = lW(e.parent)) == null ? void 0 : t.getText() : (r = ka(e.parent)) == null ? void 0 : r.getText();
      case 259:
      case 260:
      case 264:
        if (tm(e.parent) && je(e.parent.parent.name))
          return e.parent.parent.name.getText();
    }
  }
  function hbe(e, t) {
    if (t.body)
      return t;
    if (ql(t))
      return Eh(t.parent);
    if (yc(t) || ac(t)) {
      const r = mbe(e, t);
      return r && r.valueDeclaration && Qs(r.valueDeclaration) && r.valueDeclaration.body ? r.valueDeclaration : void 0;
    }
    return t;
  }
  function gbe(e, t) {
    const r = mbe(e, t);
    let i;
    if (r && r.declarations) {
      const o = lR(r.declarations), s = jt(r.declarations, (d) => ({ file: d.getSourceFile().fileName, pos: d.pos }));
      o.sort((d, y) => Nu(s[d].file, s[y].file) || s[d].pos - s[y].pos);
      const c = jt(o, (d) => r.declarations[d]);
      let f;
      for (const d of c)
        Xx(d) && ((!f || f.parent !== d.parent || f.end !== d.pos) && (i = Fn(i, d)), f = d);
    }
    return i;
  }
  function $9(e, t) {
    var r, i, o;
    return Il(t) ? t : Qs(t) ? (i = (r = hbe(e, t)) != null ? r : gbe(e, t)) != null ? i : t : (o = gbe(e, t)) != null ? o : t;
  }
  function ybe(e, t) {
    const r = e.getTypeChecker();
    let i = !1;
    for (; ; ) {
      if (Xx(t))
        return $9(r, t);
      if (fbe(t)) {
        const o = nr(t, Xx);
        return o && $9(r, o);
      }
      if (_g(t)) {
        if (Xx(t.parent))
          return $9(r, t.parent);
        if (fbe(t.parent)) {
          const o = nr(t.parent, Xx);
          return o && $9(r, o);
        }
        return Ki(t.parent) && t.parent.initializer && xw(t.parent.initializer) ? t.parent.initializer : void 0;
      }
      if (ql(t))
        return Xx(t.parent) ? t.parent : void 0;
      if (t.kind === 124 && Il(t.parent)) {
        t = t.parent;
        continue;
      }
      if (Ki(t) && t.initializer && xw(t.initializer))
        return t.initializer;
      if (!i) {
        let o = r.getSymbolAtLocation(t);
        if (o && (o.flags & 2097152 && (o = r.getAliasedSymbol(o)), o.valueDeclaration)) {
          i = !0, t = o.valueDeclaration;
          continue;
        }
      }
      return;
    }
  }
  function cZ(e, t) {
    const r = t.getSourceFile(), i = b9e(e, t), o = E9e(t), s = z1(t), c = _w(t), f = hc(Ko(r.text, t.getFullStart(), !1, !0), t.getEnd()), d = hc(i.pos, i.end);
    return { file: r.fileName, kind: s, kindModifiers: c, name: i.text, containerName: o, span: f, selectionSpan: d };
  }
  function T9e(e) {
    return e !== void 0;
  }
  function S9e(e) {
    if (e.kind === ul.EntryKind.Node) {
      const { node: t } = e;
      if (v$(t, !0, !0) || Aye(t, !0, !0) || Cye(t, !0, !0) || Lye(t, !0, !0) || zC(t) || S$(t)) {
        const r = t.getSourceFile();
        return { declaration: nr(t, Xx) || r, range: U$(t, r) };
      }
    }
  }
  function vbe(e) {
    return ps(e.declaration);
  }
  function x9e(e, t) {
    return { from: e, fromSpans: t };
  }
  function A9e(e, t) {
    return x9e(cZ(e, t[0].declaration), jt(t, (r) => qv(r.range)));
  }
  function C9e(e, t, r) {
    if (qi(t) || Jl(t) || Il(t))
      return [];
    const i = _be(t), o = lr(ul.findReferenceOrRenameEntries(e, r, e.getSourceFiles(), i, 0, { use: ul.FindReferencesUse.References }, S9e), T9e);
    return o ? oI(o, vbe, (s) => A9e(e, s)) : [];
  }
  function L9e(e, t) {
    function r(o) {
      const s = AT(o) ? o.tag : Qu(o) ? o.tagName : ll(o) || Il(o) ? o : o.expression, c = ybe(e, s);
      if (c) {
        const f = U$(s, o.getSourceFile());
        if (Va(c))
          for (const d of c)
            t.push({ declaration: d, range: f });
        else
          t.push({ declaration: c, range: f });
      }
    }
    function i(o) {
      if (o && !(o.flags & 16777216)) {
        if (Xx(o)) {
          if (di(o))
            for (const s of o.members)
              s.name && As(s.name) && i(s.name.expression);
          return;
        }
        switch (o.kind) {
          case 79:
          case 268:
          case 269:
          case 275:
          case 261:
          case 262:
            return;
          case 172:
            r(o);
            return;
          case 213:
          case 231:
            i(o.expression);
            return;
          case 257:
          case 166:
            i(o.name), i(o.initializer);
            return;
          case 210:
            r(o), i(o.expression), ze(o.arguments, i);
            return;
          case 211:
            r(o), i(o.expression), ze(o.arguments, i);
            return;
          case 212:
            r(o), i(o.tag), i(o.template);
            return;
          case 283:
          case 282:
            r(o), i(o.tagName), i(o.attributes);
            return;
          case 167:
            r(o), i(o.expression);
            return;
          case 208:
          case 209:
            r(o), Ma(o, i);
            break;
          case 235:
            i(o.expression);
            return;
        }
        yh(o) || Ma(o, i);
      }
    }
    return i;
  }
  function I9e(e, t) {
    ze(e.statements, t);
  }
  function k9e(e, t) {
    !Yr(e, 2) && e.body && tm(e.body) && ze(e.body.statements, t);
  }
  function w9e(e, t, r) {
    const i = hbe(e, t);
    i && (ze(i.parameters, r), r(i.body));
  }
  function D9e(e, t) {
    t(e.body);
  }
  function R9e(e, t) {
    ze(e.modifiers, t);
    const r = E1(e);
    r && t(r.expression);
    for (const i of e.members)
      K_(i) && ze(i.modifiers, t), to(i) ? t(i.initializer) : ql(i) && i.body ? (ze(i.parameters, t), t(i.body)) : Il(i) && t(i);
  }
  function N9e(e, t) {
    const r = [], i = L9e(e, r);
    switch (t.kind) {
      case 308:
        I9e(t, i);
        break;
      case 264:
        k9e(t, i);
        break;
      case 259:
      case 215:
      case 216:
      case 171:
      case 174:
      case 175:
        w9e(e.getTypeChecker(), t, i);
        break;
      case 260:
      case 228:
        R9e(t, i);
        break;
      case 172:
        D9e(t, i);
        break;
      default:
        D.assertNever(t);
    }
    return r;
  }
  function O9e(e, t) {
    return { to: e, fromSpans: t };
  }
  function P9e(e, t) {
    return O9e(cZ(e, t[0].declaration), jt(t, (r) => qv(r.range)));
  }
  function M9e(e, t) {
    return t.flags & 16777216 || Ah(t) ? [] : oI(N9e(e, t), vbe, (r) => P9e(e, r));
  }
  var F9e = C({
    "src/services/callHierarchy.ts"() {
      $r();
    }
  }), Yx = {};
  ne(Yx, {
    createCallHierarchyItem: () => cZ,
    getIncomingCalls: () => C9e,
    getOutgoingCalls: () => M9e,
    resolveCallHierarchyDeclaration: () => ybe
  });
  var B9e = C({
    "src/services/_namespaces/ts.CallHierarchy.ts"() {
      F9e();
    }
  });
  function G9e(e, t, r, i) {
    const o = bbe(e, t, r, i);
    D.assert(o.spans.length % 3 === 0);
    const s = o.spans, c = [];
    for (let f = 0; f < s.length; f += 3)
      c.push({
        textSpan: wc(s[f], s[f + 1]),
        classificationType: s[f + 2]
      });
    return c;
  }
  function bbe(e, t, r, i) {
    return {
      spans: U9e(e, r, i, t),
      endOfLineState: 0
    };
  }
  function U9e(e, t, r, i) {
    const o = [];
    return e && t && V9e(e, t, r, (c, f, d) => {
      o.push(c.getStart(t), c.getWidth(t), (f + 1 << 8) + d);
    }, i), o;
  }
  function V9e(e, t, r, i, o) {
    const s = e.getTypeChecker();
    let c = !1;
    function f(d) {
      switch (d.kind) {
        case 264:
        case 260:
        case 261:
        case 259:
        case 228:
        case 215:
        case 216:
          o.throwIfCancellationRequested();
      }
      if (!d || !LM(r, d.pos, d.getFullWidth()) || d.getFullWidth() === 0)
        return;
      const y = c;
      if ((Ay(d) || wx(d)) && (c = !0), Pk(d) && (c = !1), je(d) && !c && !z9e(d) && !yk(d.escapedText)) {
        let h = s.getSymbolAtLocation(d);
        if (h) {
          h.flags & 2097152 && (h = s.getAliasedSymbol(h));
          let E = j9e(h, HT(d));
          if (E !== void 0) {
            let A = 0;
            d.parent && (_s(d.parent) || _Z.get(d.parent.kind) === E) && d.parent.name === d && (A = 1), E === 6 && Tbe(d) && (E = 9), E = H9e(s, d, E);
            const L = h.valueDeclaration;
            if (L) {
              const I = _y(L), O = hp(L);
              I & 32 && (A |= 2), I & 512 && (A |= 4), E !== 0 && E !== 2 && (I & 64 || O & 2 || h.getFlags() & 8) && (A |= 8), (E === 7 || E === 10) && W9e(L, t) && (A |= 32), e.isSourceFileDefaultLibrary(L.getSourceFile()) && (A |= 16);
            } else
              h.declarations && h.declarations.some((I) => e.isSourceFileDefaultLibrary(I.getSourceFile())) && (A |= 16);
            i(d, E, A);
          }
        }
      }
      Ma(d, f), c = y;
    }
    f(t);
  }
  function j9e(e, t) {
    const r = e.getFlags();
    if (r & 32)
      return 0;
    if (r & 384)
      return 1;
    if (r & 524288)
      return 5;
    if (r & 64) {
      if (t & 2)
        return 2;
    } else if (r & 262144)
      return 4;
    let i = e.valueDeclaration || e.declarations && e.declarations[0];
    return i && _s(i) && (i = Ebe(i)), i && _Z.get(i.kind);
  }
  function H9e(e, t, r) {
    if (r === 7 || r === 9 || r === 6) {
      const i = e.getTypeAtLocation(t);
      if (i) {
        const o = (s) => s(i) || i.isUnion() && i.types.some(s);
        if (r !== 6 && o((s) => s.getConstructSignatures().length > 0))
          return 0;
        if (o((s) => s.getCallSignatures().length > 0) && !o((s) => s.getProperties().length > 0) || q9e(t))
          return r === 9 ? 11 : 10;
      }
    }
    return r;
  }
  function W9e(e, t) {
    return _s(e) && (e = Ebe(e)), Ki(e) ? (!qi(e.parent.parent.parent) || xC(e.parent)) && e.getSourceFile() === t : yc(e) ? !qi(e.parent) && e.getSourceFile() === t : !1;
  }
  function Ebe(e) {
    for (; ; )
      if (_s(e.parent.parent))
        e = e.parent.parent;
      else
        return e.parent.parent;
  }
  function z9e(e) {
    const t = e.parent;
    return t && (Wm(t) || Ld(t) || Gv(t));
  }
  function q9e(e) {
    for (; Tbe(e); )
      e = e.parent;
    return no(e.parent) && e.parent.expression === e;
  }
  function Tbe(e) {
    return Cd(e.parent) && e.parent.right === e || Fr(e.parent) && e.parent.name === e;
  }
  var uZ, dZ, fZ, _Z, J9e = C({
    "src/services/classifier2020.ts"() {
      $r(), uZ = /* @__PURE__ */ ((e) => (e[e.typeOffset = 8] = "typeOffset", e[e.modifierMask = 255] = "modifierMask", e))(uZ || {}), dZ = /* @__PURE__ */ ((e) => (e[e.class = 0] = "class", e[e.enum = 1] = "enum", e[e.interface = 2] = "interface", e[e.namespace = 3] = "namespace", e[e.typeParameter = 4] = "typeParameter", e[e.type = 5] = "type", e[e.parameter = 6] = "parameter", e[e.variable = 7] = "variable", e[e.enumMember = 8] = "enumMember", e[e.property = 9] = "property", e[e.function = 10] = "function", e[e.member = 11] = "member", e))(dZ || {}), fZ = /* @__PURE__ */ ((e) => (e[e.declaration = 0] = "declaration", e[e.static = 1] = "static", e[e.async = 2] = "async", e[e.readonly = 3] = "readonly", e[e.defaultLibrary = 4] = "defaultLibrary", e[e.local = 5] = "local", e))(fZ || {}), _Z = /* @__PURE__ */ new Map([
        [257, 7],
        [166, 6],
        [169, 9],
        [264, 3],
        [263, 1],
        [302, 8],
        [260, 0],
        [171, 11],
        [259, 10],
        [215, 10],
        [170, 11],
        [174, 9],
        [175, 9],
        [168, 9],
        [261, 2],
        [262, 5],
        [165, 4],
        [299, 9],
        [300, 9]
      ]);
    }
  }), Sbe = {};
  ne(Sbe, {
    TokenEncodingConsts: () => uZ,
    TokenModifier: () => fZ,
    TokenType: () => dZ,
    getEncodedSemanticClassifications: () => bbe,
    getSemanticClassifications: () => G9e
  });
  var K9e = C({
    "src/services/_namespaces/ts.classifier.v2020.ts"() {
      J9e();
    }
  }), Q9 = {};
  ne(Q9, {
    v2020: () => Sbe
  });
  var X9e = C({
    "src/services/_namespaces/ts.classifier.ts"() {
      K9e();
    }
  });
  function Ap(e, t, r) {
    return mZ(e, qx(r), t, void 0, void 0);
  }
  function ro(e, t, r, i, o, s) {
    return mZ(e, qx(r), t, i, qx(o), s);
  }
  function pZ(e, t, r, i, o, s) {
    return mZ(e, qx(r), t, i, o && qx(o), s);
  }
  function mZ(e, t, r, i, o, s) {
    return { fixName: e, description: t, changes: r, fixId: i, fixAllDescription: o, commands: s ? [s] : void 0 };
  }
  function po(e) {
    for (const t of e.errorCodes)
      Z9.add(String(t), e);
    if (e.fixIds)
      for (const t of e.fixIds)
        D.assert(!eB.has(t)), eB.set(t, e);
  }
  function Y9e() {
    return Ro(Z9.keys());
  }
  function $9e(e, t) {
    const { errorCodes: r } = e;
    let i = 0;
    for (const s of t)
      if (jr(r, s.code) && i++, i > 1)
        break;
    const o = i < 2;
    return ({ fixId: s, fixAllDescription: c, ...f }) => o ? f : { ...f, fixId: s, fixAllDescription: c };
  }
  function Q9e(e) {
    const t = Abe(e), r = Z9.get(String(e.errorCode));
    return ca(r, (i) => jt(i.getCodeActions(e), $9e(i, t)));
  }
  function Z9e(e) {
    return eB.get(oo(e.fixId, Ha)).getAllCodeActions(e);
  }
  function $x(e, t) {
    return { changes: e, commands: t };
  }
  function xbe(e, t) {
    return { fileName: e, textChanges: t };
  }
  function Cs(e, t, r) {
    const i = [], o = gr.ChangeTracker.with(e, (s) => Qx(e, t, (c) => r(s, c, i)));
    return $x(o, i.length === 0 ? void 0 : i);
  }
  function Qx(e, t, r) {
    for (const i of Abe(e))
      jr(t, i.code) && r(i);
  }
  function Abe({ program: e, sourceFile: t, cancellationToken: r }) {
    return [
      ...e.getSemanticDiagnostics(t, r),
      ...e.getSyntacticDiagnostics(t, r),
      ...PQ(t, e, r)
    ];
  }
  var Z9, eB, eBe = C({
    "src/services/codeFixProvider.ts"() {
      $r(), Z9 = f_(), eB = /* @__PURE__ */ new Map();
    }
  });
  function Cbe(e, t, r) {
    const i = RO(r) ? N.createAsExpression(r.expression, N.createKeywordTypeNode(157)) : N.createTypeAssertion(N.createKeywordTypeNode(157), r.expression);
    e.replaceNode(t, r.expression, i);
  }
  function Lbe(e, t) {
    if (!fr(e))
      return nr(aa(e, t), (r) => RO(r) || Kfe(r));
  }
  var tB, hZ, tBe = C({
    "src/services/codefixes/addConvertToUnknownForNonOverlappingTypes.ts"() {
      $r(), Eo(), tB = "addConvertToUnknownForNonOverlappingTypes", hZ = [_.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first.code], po({
        errorCodes: hZ,
        getCodeActions: function(t) {
          const r = Lbe(t.sourceFile, t.span.start);
          if (r === void 0)
            return;
          const i = gr.ChangeTracker.with(t, (o) => Cbe(o, t.sourceFile, r));
          return [ro(tB, i, _.Add_unknown_conversion_for_non_overlapping_types, tB, _.Add_unknown_to_all_conversions_of_non_overlapping_types)];
        },
        fixIds: [tB],
        getAllCodeActions: (e) => Cs(e, hZ, (t, r) => {
          const i = Lbe(r.file, r.start);
          i && Cbe(t, r.file, i);
        })
      });
    }
  }), nBe = C({
    "src/services/codefixes/addEmptyExportDeclaration.ts"() {
      $r(), Eo(), po({
        errorCodes: [
          _.await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code,
          _.for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code
        ],
        getCodeActions: function(t) {
          const { sourceFile: r } = t, i = gr.ChangeTracker.with(t, (o) => {
            const s = N.createExportDeclaration(void 0, !1, N.createNamedExports([]), void 0);
            o.insertNodeAtEndOfScope(r, r, s);
          });
          return [Ap("addEmptyExportDeclaration", i, _.Add_export_to_make_this_file_into_a_module)];
        }
      });
    }
  });
  function Ibe(e, t, r, i) {
    const o = r((s) => rBe(s, e.sourceFile, t, i));
    return ro(nB, o, _.Add_async_modifier_to_containing_function, nB, _.Add_all_missing_async_modifiers);
  }
  function rBe(e, t, r, i) {
    if (i && i.has(ps(r)))
      return;
    i == null || i.add(ps(r));
    const o = N.updateModifiers(wl(r, !0), N.createNodeArray(N.createModifiersFromModifierFlags(Nv(r) | 512)));
    e.replaceNode(t, r, o);
  }
  function kbe(e, t) {
    if (!t)
      return;
    const r = aa(e, t.start);
    return nr(r, (o) => o.getStart(e) < t.start || o.getEnd() > iu(t) ? "quit" : (Js(o) || ac(o) || Bs(o) || yc(o)) && XC(t, rd(o, e)));
  }
  function iBe(e, t) {
    return ({ start: r, length: i, relatedInformation: o, code: s }) => ly(r) && ly(i) && XC({ start: r, length: i }, e) && s === t && !!o && kt(o, (c) => c.code === _.Did_you_mean_to_mark_this_function_as_async.code);
  }
  var nB, gZ, aBe = C({
    "src/services/codefixes/addMissingAsync.ts"() {
      $r(), Eo(), nB = "addMissingAsync", gZ = [
        _.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,
        _.Type_0_is_not_assignable_to_type_1.code,
        _.Type_0_is_not_comparable_to_type_1.code
      ], po({
        fixIds: [nB],
        errorCodes: gZ,
        getCodeActions: function(t) {
          const { sourceFile: r, errorCode: i, cancellationToken: o, program: s, span: c } = t, f = nn(s.getTypeChecker().getDiagnostics(r, o), iBe(c, i)), d = f && f.relatedInformation && nn(f.relatedInformation, (E) => E.code === _.Did_you_mean_to_mark_this_function_as_async.code), y = kbe(r, d);
          return y ? [Ibe(t, y, (E) => gr.ChangeTracker.with(t, E))] : void 0;
        },
        getAllCodeActions: (e) => {
          const { sourceFile: t } = e, r = /* @__PURE__ */ new Set();
          return Cs(e, gZ, (i, o) => {
            const s = o.relatedInformation && nn(o.relatedInformation, (d) => d.code === _.Did_you_mean_to_mark_this_function_as_async.code), c = kbe(t, s);
            return c ? Ibe(e, c, (d) => (d(i), []), r) : void 0;
          });
        }
      });
    }
  });
  function wbe(e, t, r, i, o) {
    const s = dQ(e, r);
    return s && oBe(e, t, r, i, o) && Nbe(s) ? s : void 0;
  }
  function Dbe(e, t, r, i, o, s) {
    const { sourceFile: c, program: f, cancellationToken: d } = e, y = sBe(t, c, d, f, i);
    if (y) {
      const h = o((E) => {
        ze(y.initializers, ({ expression: A }) => yZ(E, r, c, i, A, s)), s && y.needsSecondPassForFixAll && yZ(E, r, c, i, t, s);
      });
      return Ap("addMissingAwaitToInitializer", h, y.initializers.length === 1 ? [_.Add_await_to_initializer_for_0, y.initializers[0].declarationSymbol.name] : _.Add_await_to_initializers);
    }
  }
  function Rbe(e, t, r, i, o, s) {
    const c = o((f) => yZ(f, r, e.sourceFile, i, t, s));
    return ro(rB, c, _.Add_await, rB, _.Fix_all_expressions_possibly_missing_await);
  }
  function oBe(e, t, r, i, o) {
    const c = o.getTypeChecker().getDiagnostics(e, i);
    return kt(c, ({ start: f, length: d, relatedInformation: y, code: h }) => ly(f) && ly(d) && XC({ start: f, length: d }, r) && h === t && !!y && kt(y, (E) => E.code === _.Did_you_forget_to_use_await.code));
  }
  function sBe(e, t, r, i, o) {
    const s = lBe(e, o);
    if (!s)
      return;
    let c = s.isCompleteFix, f;
    for (const d of s.identifiers) {
      const y = o.getSymbolAtLocation(d);
      if (!y)
        continue;
      const h = ai(y.valueDeclaration, Ki), E = h && ai(h.name, je), A = q0(h, 240);
      if (!h || !A || h.type || !h.initializer || A.getSourceFile() !== t || Yr(A, 1) || !E || !Nbe(h.initializer)) {
        c = !1;
        continue;
      }
      const L = i.getSemanticDiagnostics(t, r);
      if (ul.Core.eachSymbolReferenceInFile(E, o, t, (O) => d !== O && !cBe(O, L, t, o))) {
        c = !1;
        continue;
      }
      (f || (f = [])).push({
        expression: h.initializer,
        declarationSymbol: y
      });
    }
    return f && {
      initializers: f,
      needsSecondPassForFixAll: !c
    };
  }
  function lBe(e, t) {
    if (Fr(e.parent) && je(e.parent.expression))
      return { identifiers: [e.parent.expression], isCompleteFix: !0 };
    if (je(e))
      return { identifiers: [e], isCompleteFix: !0 };
    if (br(e)) {
      let r, i = !0;
      for (const o of [e.left, e.right]) {
        const s = t.getTypeAtLocation(o);
        if (t.getPromisedTypeOfPromise(s)) {
          if (!je(o)) {
            i = !1;
            continue;
          }
          (r || (r = [])).push(o);
        }
      }
      return r && { identifiers: r, isCompleteFix: i };
    }
  }
  function cBe(e, t, r, i) {
    const o = Fr(e.parent) ? e.parent.name : br(e.parent) ? e.parent : e, s = nn(t, (c) => c.start === o.getStart(r) && c.start + c.length === o.getEnd());
    return s && jr(iB, s.code) || i.getTypeAtLocation(o).flags & 1;
  }
  function Nbe(e) {
    return e.kind & 32768 || !!nr(e, (t) => t.parent && Js(t.parent) && t.parent.body === t || co(t) && (t.parent.kind === 259 || t.parent.kind === 215 || t.parent.kind === 216 || t.parent.kind === 171));
  }
  function yZ(e, t, r, i, o, s) {
    if (NO(o.parent) && !o.parent.awaitModifier) {
      const c = i.getTypeAtLocation(o), f = i.getAsyncIterableType();
      if (f && i.isTypeAssignableTo(c, f)) {
        const d = o.parent;
        e.replaceNode(r, d, N.updateForOfStatement(d, N.createToken(133), d.initializer, d.expression, d.statement));
        return;
      }
    }
    if (br(o))
      for (const c of [o.left, o.right]) {
        if (s && je(c)) {
          const y = i.getSymbolAtLocation(c);
          if (y && s.has(bo(y)))
            continue;
        }
        const f = i.getTypeAtLocation(c), d = i.getPromisedTypeOfPromise(f) ? N.createAwaitExpression(c) : c;
        e.replaceNode(r, c, d);
      }
    else if (t === vZ && Fr(o.parent)) {
      if (s && je(o.parent.expression)) {
        const c = i.getSymbolAtLocation(o.parent.expression);
        if (c && s.has(bo(c)))
          return;
      }
      e.replaceNode(r, o.parent.expression, N.createParenthesizedExpression(N.createAwaitExpression(o.parent.expression))), Obe(e, o.parent.expression, r);
    } else if (jr(bZ, t) && lg(o.parent)) {
      if (s && je(o)) {
        const c = i.getSymbolAtLocation(o);
        if (c && s.has(bo(c)))
          return;
      }
      e.replaceNode(r, o, N.createParenthesizedExpression(N.createAwaitExpression(o))), Obe(e, o, r);
    } else {
      if (s && Ki(o.parent) && je(o.parent.name)) {
        const c = i.getSymbolAtLocation(o.parent.name);
        if (c && !hv(s, bo(c)))
          return;
      }
      e.replaceNode(r, o, N.createAwaitExpression(o));
    }
  }
  function Obe(e, t, r) {
    const i = Ac(t.pos, r);
    i && u9(i.end, i.parent, r) && e.insertText(r, t.getStart(r), ";");
  }
  var rB, vZ, bZ, iB, uBe = C({
    "src/services/codefixes/addMissingAwait.ts"() {
      $r(), Eo(), rB = "addMissingAwait", vZ = _.Property_0_does_not_exist_on_type_1.code, bZ = [
        _.This_expression_is_not_callable.code,
        _.This_expression_is_not_constructable.code
      ], iB = [
        _.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type.code,
        _.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,
        _.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,
        _.Operator_0_cannot_be_applied_to_type_1.code,
        _.Operator_0_cannot_be_applied_to_types_1_and_2.code,
        _.This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap.code,
        _.This_condition_will_always_return_true_since_this_0_is_always_defined.code,
        _.Type_0_is_not_an_array_type.code,
        _.Type_0_is_not_an_array_type_or_a_string_type.code,
        _.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher.code,
        _.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,
        _.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,
        _.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator.code,
        _.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator.code,
        _.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,
        vZ,
        ...bZ
      ], po({
        fixIds: [rB],
        errorCodes: iB,
        getCodeActions: function(t) {
          const { sourceFile: r, errorCode: i, span: o, cancellationToken: s, program: c } = t, f = wbe(r, i, o, s, c);
          if (!f)
            return;
          const d = t.program.getTypeChecker(), y = (h) => gr.ChangeTracker.with(t, h);
          return uR([
            Dbe(t, f, i, d, y),
            Rbe(t, f, i, d, y)
          ]);
        },
        getAllCodeActions: (e) => {
          const { sourceFile: t, program: r, cancellationToken: i } = e, o = e.program.getTypeChecker(), s = /* @__PURE__ */ new Set();
          return Cs(e, iB, (c, f) => {
            const d = wbe(t, f.code, f, i, r);
            if (!d)
              return;
            const y = (h) => (h(c), []);
            return Dbe(e, d, f.code, o, y, s) || Rbe(e, d, f.code, o, y, s);
          });
        }
      });
    }
  });
  function Pbe(e, t, r, i, o) {
    const s = aa(t, r), c = nr(s, (y) => kA(y.parent) ? y.parent.initializer === y : dBe(y) ? !1 : "quit");
    if (c)
      return aB(e, c, t, o);
    const f = s.parent;
    if (br(f) && f.operatorToken.kind === 63 && ou(f.parent))
      return aB(e, s, t, o);
    if (Bu(f)) {
      const y = i.getTypeChecker();
      return Yn(f.elements, (h) => fBe(h, y)) ? aB(e, f, t, o) : void 0;
    }
    const d = nr(s, (y) => ou(y.parent) ? !0 : _Be(y) ? !1 : "quit");
    if (d) {
      const y = i.getTypeChecker();
      return Mbe(d, y) ? aB(e, d, t, o) : void 0;
    }
  }
  function aB(e, t, r, i) {
    (!i || hv(i, t)) && e.insertModifierBefore(r, 85, t);
  }
  function dBe(e) {
    switch (e.kind) {
      case 79:
      case 206:
      case 207:
      case 299:
      case 300:
        return !0;
      default:
        return !1;
    }
  }
  function fBe(e, t) {
    const r = je(e) ? e : ed(e, !0) && je(e.left) ? e.left : void 0;
    return !!r && !t.getSymbolAtLocation(r);
  }
  function _Be(e) {
    switch (e.kind) {
      case 79:
      case 223:
      case 27:
        return !0;
      default:
        return !1;
    }
  }
  function Mbe(e, t) {
    return br(e) ? e.operatorToken.kind === 27 ? Yn([e.left, e.right], (r) => Mbe(r, t)) : e.operatorToken.kind === 63 && je(e.left) && !t.getSymbolAtLocation(e.left) : !1;
  }
  var oB, EZ, pBe = C({
    "src/services/codefixes/addMissingConst.ts"() {
      $r(), Eo(), oB = "addMissingConst", EZ = [
        _.Cannot_find_name_0.code,
        _.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer.code
      ], po({
        errorCodes: EZ,
        getCodeActions: function(t) {
          const r = gr.ChangeTracker.with(t, (i) => Pbe(i, t.sourceFile, t.span.start, t.program));
          if (r.length > 0)
            return [ro(oB, r, _.Add_const_to_unresolved_variable, oB, _.Add_const_to_all_unresolved_variables)];
        },
        fixIds: [oB],
        getAllCodeActions: (e) => {
          const t = /* @__PURE__ */ new Set();
          return Cs(e, EZ, (r, i) => Pbe(r, i.file, i.start, e.program, t));
        }
      });
    }
  });
  function Fbe(e, t, r, i) {
    const o = aa(t, r);
    if (!je(o))
      return;
    const s = o.parent;
    s.kind === 169 && (!i || hv(i, s)) && e.insertModifierBefore(t, 136, s);
  }
  var sB, TZ, mBe = C({
    "src/services/codefixes/addMissingDeclareProperty.ts"() {
      $r(), Eo(), sB = "addMissingDeclareProperty", TZ = [
        _.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration.code
      ], po({
        errorCodes: TZ,
        getCodeActions: function(t) {
          const r = gr.ChangeTracker.with(t, (i) => Fbe(i, t.sourceFile, t.span.start));
          if (r.length > 0)
            return [ro(sB, r, _.Prefix_with_declare, sB, _.Prefix_all_incorrect_property_declarations_with_declare)];
        },
        fixIds: [sB],
        getAllCodeActions: (e) => {
          const t = /* @__PURE__ */ new Set();
          return Cs(e, TZ, (r, i) => Fbe(r, i.file, i.start, t));
        }
      });
    }
  });
  function Bbe(e, t, r) {
    const i = aa(t, r), o = nr(i, Fu);
    D.assert(!!o, "Expected position to be owned by a decorator.");
    const s = N.createCallExpression(o.expression, void 0, void 0);
    e.replaceNode(t, o.expression, s);
  }
  var lB, SZ, hBe = C({
    "src/services/codefixes/addMissingInvocationForDecorator.ts"() {
      $r(), Eo(), lB = "addMissingInvocationForDecorator", SZ = [_._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0.code], po({
        errorCodes: SZ,
        getCodeActions: function(t) {
          const r = gr.ChangeTracker.with(t, (i) => Bbe(i, t.sourceFile, t.span.start));
          return [ro(lB, r, _.Call_decorator_expression, lB, _.Add_to_all_uncalled_decorators)];
        },
        fixIds: [lB],
        getAllCodeActions: (e) => Cs(e, SZ, (t, r) => Bbe(t, r.file, r.start))
      });
    }
  });
  function Gbe(e, t, r) {
    const i = aa(t, r), o = i.parent;
    if (!Ba(o))
      return D.fail("Tried to add a parameter name to a non-parameter: " + D.formatSyntaxKind(i.kind));
    const s = o.parent.parameters.indexOf(o);
    D.assert(!o.type, "Tried to add a parameter name to a parameter that already had one."), D.assert(s > -1, "Parameter not found in parent parameter list.");
    const c = N.createTypeReferenceNode(o.name, void 0), f = N.createParameterDeclaration(o.modifiers, o.dotDotDotToken, "arg" + s, o.questionToken, o.dotDotDotToken ? N.createArrayTypeNode(c) : c, o.initializer);
    e.replaceNode(t, o, f);
  }
  var cB, xZ, gBe = C({
    "src/services/codefixes/addNameToNamelessParameter.ts"() {
      $r(), Eo(), cB = "addNameToNamelessParameter", xZ = [_.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1.code], po({
        errorCodes: xZ,
        getCodeActions: function(t) {
          const r = gr.ChangeTracker.with(t, (i) => Gbe(i, t.sourceFile, t.span.start));
          return [ro(cB, r, _.Add_parameter_name, cB, _.Add_names_to_all_parameters_without_names)];
        },
        fixIds: [cB],
        getAllCodeActions: (e) => Cs(e, xZ, (t, r) => Gbe(t, r.file, r.start))
      });
    }
  });
  function yBe(e, t, r) {
    var i, o;
    const s = Ube(dQ(e, t), r);
    if (!s)
      return rt;
    const { source: c, target: f } = s, d = vBe(c, f, r) ? r.getTypeAtLocation(f.expression) : r.getTypeAtLocation(f);
    return (o = (i = d.symbol) == null ? void 0 : i.declarations) != null && o.some((y) => Zn(y).fileName.match(/\.d\.ts$/)) ? rt : r.getExactOptionalProperties(d);
  }
  function vBe(e, t, r) {
    return Fr(t) && !!r.getExactOptionalProperties(r.getTypeAtLocation(t.expression)).length && r.getTypeAtLocation(e) === r.getUndefinedType();
  }
  function Ube(e, t) {
    var r;
    if (e) {
      if (br(e.parent) && e.parent.operatorToken.kind === 63)
        return { source: e.parent.right, target: e.parent.left };
      if (Ki(e.parent) && e.parent.initializer)
        return { source: e.parent.initializer, target: e.parent.name };
      if (no(e.parent)) {
        const i = t.getSymbolAtLocation(e.parent.expression);
        if (!(i != null && i.valueDeclaration) || !XS(i.valueDeclaration.kind) || !vt(e))
          return;
        const o = e.parent.arguments.indexOf(e);
        if (o === -1)
          return;
        const s = i.valueDeclaration.parameters[o].name;
        if (je(s))
          return { source: e, target: s };
      } else if (zc(e.parent) && je(e.parent.name) || t_(e.parent)) {
        const i = Ube(e.parent.parent, t);
        if (!i)
          return;
        const o = t.getPropertyOfType(t.getTypeAtLocation(i.target), e.parent.name.text), s = (r = o == null ? void 0 : o.declarations) == null ? void 0 : r[0];
        return s ? {
          source: zc(e.parent) ? e.parent.initializer : e.parent.name,
          target: s
        } : void 0;
      }
    } else
      return;
  }
  function bBe(e, t) {
    for (const r of t) {
      const i = r.valueDeclaration;
      if (i && (If(i) || to(i)) && i.type) {
        const o = N.createUnionTypeNode([
          ...i.type.kind === 189 ? i.type.types : [i.type],
          N.createTypeReferenceNode("undefined")
        ]);
        e.replaceNode(i.getSourceFile(), i.type, o);
      }
    }
  }
  var AZ, Vbe, EBe = C({
    "src/services/codefixes/addOptionalPropertyUndefined.ts"() {
      $r(), Eo(), AZ = "addOptionalPropertyUndefined", Vbe = [
        _.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target.code,
        _.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code,
        _.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code
      ], po({
        errorCodes: Vbe,
        getCodeActions(e) {
          const t = e.program.getTypeChecker(), r = yBe(e.sourceFile, e.span, t);
          if (!r.length)
            return;
          const i = gr.ChangeTracker.with(e, (o) => bBe(o, r));
          return [Ap(AZ, i, _.Add_undefined_to_optional_property_type)];
        },
        fixIds: [AZ]
      });
    }
  });
  function jbe(e, t) {
    const r = aa(e, t);
    return ai(Ba(r.parent) ? r.parent.parent : r.parent, Hbe);
  }
  function Hbe(e) {
    return TBe(e) && Wbe(e);
  }
  function Wbe(e) {
    return Qs(e) ? e.parameters.some(Wbe) || !e.type && !!zR(e) : !e.type && !!xv(e);
  }
  function zbe(e, t, r) {
    if (Qs(r) && (zR(r) || r.parameters.some((i) => !!xv(i)))) {
      if (!r.typeParameters) {
        const o = D3(r);
        o.length && e.insertTypeParameters(t, r, o);
      }
      const i = Js(r) && !bs(r, 20, t);
      i && e.insertNodeBefore(t, us(r.parameters), N.createToken(20));
      for (const o of r.parameters)
        if (!o.type) {
          const s = xv(o);
          s && e.tryInsertTypeAnnotation(t, o, lt(s, sb, Gi));
        }
      if (i && e.insertNodeAfter(t, qo(r.parameters), N.createToken(21)), !r.type) {
        const o = zR(r);
        o && e.tryInsertTypeAnnotation(t, r, lt(o, sb, Gi));
      }
    } else {
      const i = D.checkDefined(xv(r), "A JSDocType for this declaration should exist");
      D.assert(!r.type, "The JSDocType decl should have a type"), e.tryInsertTypeAnnotation(t, r, lt(i, sb, Gi));
    }
  }
  function TBe(e) {
    return Qs(e) || e.kind === 257 || e.kind === 168 || e.kind === 169;
  }
  function sb(e) {
    switch (e.kind) {
      case 315:
      case 316:
        return N.createTypeReferenceNode("any", rt);
      case 319:
        return xBe(e);
      case 318:
        return sb(e.type);
      case 317:
        return ABe(e);
      case 321:
        return CBe(e);
      case 320:
        return LBe(e);
      case 180:
        return kBe(e);
      case 325:
        return SBe(e);
      default:
        const t = Bn(e, sb, bg);
        return or(t, 1), t;
    }
  }
  function SBe(e) {
    const t = N.createTypeLiteralNode(jt(e.jsDocPropertyTags, (r) => N.createPropertySignature(void 0, je(r.name) ? r.name : r.name.right, dO(r) ? N.createToken(57) : void 0, r.typeExpression && lt(r.typeExpression.type, sb, Gi) || N.createKeywordTypeNode(131))));
    return or(t, 1), t;
  }
  function xBe(e) {
    return N.createUnionTypeNode([lt(e.type, sb, Gi), N.createTypeReferenceNode("undefined", rt)]);
  }
  function ABe(e) {
    return N.createUnionTypeNode([lt(e.type, sb, Gi), N.createTypeReferenceNode("null", rt)]);
  }
  function CBe(e) {
    return N.createArrayTypeNode(lt(e.type, sb, Gi));
  }
  function LBe(e) {
    var t;
    return N.createFunctionTypeNode(rt, e.parameters.map(IBe), (t = e.type) != null ? t : N.createKeywordTypeNode(131));
  }
  function IBe(e) {
    const t = e.parent.parameters.indexOf(e), r = e.type.kind === 321 && t === e.parent.parameters.length - 1, i = e.name || (r ? "rest" : "arg" + t), o = r ? N.createToken(25) : e.dotDotDotToken;
    return N.createParameterDeclaration(e.modifiers, o, i, e.questionToken, lt(e.type, sb, Gi), e.initializer);
  }
  function kBe(e) {
    let t = e.typeName, r = e.typeArguments;
    if (je(e.typeName)) {
      if (h3(e))
        return wBe(e);
      let i = e.typeName.text;
      switch (e.typeName.text) {
        case "String":
        case "Boolean":
        case "Object":
        case "Number":
          i = i.toLowerCase();
          break;
        case "array":
        case "date":
        case "promise":
          i = i[0].toUpperCase() + i.slice(1);
          break;
      }
      t = N.createIdentifier(i), (i === "Array" || i === "Promise") && !e.typeArguments ? r = N.createNodeArray([N.createTypeReferenceNode("any", rt)]) : r = Jn(e.typeArguments, sb, Gi);
    }
    return N.createTypeReferenceNode(t, r);
  }
  function wBe(e) {
    const t = N.createParameterDeclaration(void 0, void 0, e.typeArguments[0].kind === 148 ? "n" : "s", void 0, N.createTypeReferenceNode(e.typeArguments[0].kind === 148 ? "number" : "string", []), void 0), r = N.createTypeLiteralNode([N.createIndexSignature(void 0, [t], e.typeArguments[1])]);
    return or(r, 1), r;
  }
  var uB, CZ, DBe = C({
    "src/services/codefixes/annotateWithTypeFromJSDoc.ts"() {
      $r(), Eo(), uB = "annotateWithTypeFromJSDoc", CZ = [_.JSDoc_types_may_be_moved_to_TypeScript_types.code], po({
        errorCodes: CZ,
        getCodeActions(e) {
          const t = jbe(e.sourceFile, e.span.start);
          if (!t)
            return;
          const r = gr.ChangeTracker.with(e, (i) => zbe(i, e.sourceFile, t));
          return [ro(uB, r, _.Annotate_with_type_from_JSDoc, uB, _.Annotate_everything_with_types_from_JSDoc)];
        },
        fixIds: [uB],
        getAllCodeActions: (e) => Cs(e, CZ, (t, r) => {
          const i = jbe(r.file, r.start);
          i && zbe(t, r.file, i);
        })
      });
    }
  });
  function qbe(e, t, r, i, o, s) {
    const c = i.getSymbolAtLocation(aa(t, r));
    if (!c || !c.valueDeclaration || !(c.flags & 19))
      return;
    const f = c.valueDeclaration;
    if (yc(f) || Bs(f))
      e.replaceNode(t, f, h(f));
    else if (Ki(f)) {
      const E = y(f);
      if (!E)
        return;
      const A = f.parent.parent;
      Uu(f.parent) && f.parent.declarations.length > 1 ? (e.delete(t, f), e.insertNodeAfter(t, A, E)) : e.replaceNode(t, A, E);
    }
    function d(E) {
      const A = [];
      return E.exports && E.exports.forEach((O) => {
        if (O.name === "prototype" && O.declarations) {
          const k = O.declarations[0];
          if (O.declarations.length === 1 && Fr(k) && br(k.parent) && k.parent.operatorToken.kind === 63 && Ls(k.parent.right)) {
            const G = k.parent.right;
            I(G.symbol, void 0, A);
          }
        } else
          I(O, [N.createToken(124)], A);
      }), E.members && E.members.forEach((O, k) => {
        var G, V, H, te;
        if (k === "constructor" && O.valueDeclaration) {
          const X = (te = (H = (V = (G = E.exports) == null ? void 0 : G.get("prototype")) == null ? void 0 : V.declarations) == null ? void 0 : H[0]) == null ? void 0 : te.parent;
          X && br(X) && Ls(X.right) && kt(X.right.properties, fB) || e.delete(t, O.valueDeclaration.parent);
          return;
        }
        I(O, void 0, A);
      }), A;
      function L(O, k) {
        return ll(O) ? Fr(O) && fB(O) ? !0 : Ka(k) : Yn(O.properties, (G) => !!(ac(G) || DM(G) || zc(G) && Bs(G.initializer) && G.name || fB(G)));
      }
      function I(O, k, G) {
        if (!(O.flags & 8192) && !(O.flags & 4096))
          return;
        const V = O.valueDeclaration, H = V.parent, te = H.right;
        if (!L(V, te) || kt(G, (re) => {
          const ye = ka(re);
          return !!(ye && je(ye) && Mr(ye) === Ml(O));
        }))
          return;
        const X = H.parent && H.parent.kind === 241 ? H.parent : H;
        if (e.delete(t, X), !te) {
          G.push(N.createPropertyDeclaration(k, O.name, void 0, void 0, void 0));
          return;
        }
        if (ll(V) && (Bs(te) || Js(te))) {
          const re = xp(t, o), ye = RBe(V, s, re);
          ye && Y(G, te, ye);
          return;
        } else if (Ls(te)) {
          ze(te.properties, (re) => {
            (ac(re) || DM(re)) && G.push(re), zc(re) && Bs(re.initializer) && Y(G, re.initializer, re.name), fB(re);
          });
          return;
        } else {
          if (Zu(t) || !Fr(V))
            return;
          const re = N.createPropertyDeclaration(k, V.name, void 0, void 0, te);
          $C(H.parent, re, t), G.push(re);
          return;
        }
        function Y(re, ye, ae) {
          return Bs(ye) ? P(re, ye, ae) : de(re, ye, ae);
        }
        function P(re, ye, ae) {
          const W = va(k, dB(ye, 132)), ce = N.createMethodDeclaration(W, void 0, ae, void 0, void 0, ye.parameters, void 0, ye.body);
          $C(H, ce, t), re.push(ce);
        }
        function de(re, ye, ae) {
          const W = ye.body;
          let ce;
          W.kind === 238 ? ce = W : ce = N.createBlock([N.createReturnStatement(W)]);
          const me = va(k, dB(ye, 132)), ve = N.createMethodDeclaration(me, void 0, ae, void 0, void 0, ye.parameters, void 0, ce);
          $C(H, ve, t), re.push(ve);
        }
      }
    }
    function y(E) {
      const A = E.initializer;
      if (!A || !Bs(A) || !je(E.name))
        return;
      const L = d(E.symbol);
      A.body && L.unshift(N.createConstructorDeclaration(void 0, A.parameters, A.body));
      const I = dB(E.parent.parent, 93);
      return N.createClassDeclaration(I, E.name, void 0, void 0, L);
    }
    function h(E) {
      const A = d(c);
      E.body && A.unshift(N.createConstructorDeclaration(void 0, E.parameters, E.body));
      const L = dB(E, 93);
      return N.createClassDeclaration(L, E.name, void 0, void 0, A);
    }
  }
  function dB(e, t) {
    return K_(e) ? lr(e.modifiers, (r) => r.kind === t) : void 0;
  }
  function fB(e) {
    return e.name ? !!(je(e.name) && e.name.text === "constructor") : !1;
  }
  function RBe(e, t, r) {
    if (Fr(e))
      return e.name;
    const i = e.argumentExpression;
    if (v_(i))
      return i;
    if (xs(i))
      return P_(i.text, ts(t)) ? N.createIdentifier(i.text) : bx(i) ? N.createStringLiteral(i.text, r === 0) : i;
  }
  var _B, LZ, NBe = C({
    "src/services/codefixes/convertFunctionToEs6Class.ts"() {
      $r(), Eo(), _B = "convertFunctionToEs6Class", LZ = [_.This_constructor_function_may_be_converted_to_a_class_declaration.code], po({
        errorCodes: LZ,
        getCodeActions(e) {
          const t = gr.ChangeTracker.with(e, (r) => qbe(r, e.sourceFile, e.span.start, e.program.getTypeChecker(), e.preferences, e.program.getCompilerOptions()));
          return [ro(_B, t, _.Convert_function_to_an_ES2015_class, _B, _.Convert_all_constructor_functions_to_classes)];
        },
        fixIds: [_B],
        getAllCodeActions: (e) => Cs(e, LZ, (t, r) => qbe(t, r.file, r.start, e.program.getTypeChecker(), e.preferences, e.program.getCompilerOptions()))
      });
    }
  });
  function Jbe(e, t, r, i) {
    const o = aa(t, r);
    let s;
    if (je(o) && Ki(o.parent) && o.parent.initializer && Qs(o.parent.initializer) ? s = o.parent.initializer : s = ai(Cf(aa(t, r)), BQ), !s)
      return;
    const c = /* @__PURE__ */ new Map(), f = fr(s), d = PBe(s, i), y = MBe(s, i, c);
    if (!MQ(y, i))
      return;
    const h = y.body && co(y.body) ? OBe(y.body, i) : rt, E = { checker: i, synthNamesMap: c, setOfExpressionsToReturn: d, isInJSFile: f };
    if (!h.length)
      return;
    const A = Ko(t.text, $p(s).pos);
    e.insertModifierAt(t, A, 132, { suffix: " " });
    for (const L of h)
      if (Ma(L, function I(O) {
        if (no(O)) {
          const k = Zx(O, O, E, !1);
          if (YT())
            return !0;
          e.replaceNodeWithNodes(t, L, k);
        } else if (!Ka(O) && (Ma(O, I), YT()))
          return !0;
      }), YT())
        return;
  }
  function OBe(e, t) {
    const r = [];
    return cT(e, (i) => {
      N9(i, t) && r.push(i);
    }), r;
  }
  function PBe(e, t) {
    if (!e.body)
      return /* @__PURE__ */ new Set();
    const r = /* @__PURE__ */ new Set();
    return Ma(e.body, function i(o) {
      Aw(o, t, "then") ? (r.add(ps(o)), ze(o.arguments, i)) : Aw(o, t, "catch") || Aw(o, t, "finally") ? (r.add(ps(o)), Ma(o, i)) : Xbe(o, t) ? r.add(ps(o)) : Ma(o, i);
    }), r;
  }
  function Aw(e, t, r) {
    if (!no(e))
      return !1;
    const o = X8(e, r) && t.getTypeAtLocation(e);
    return !!(o && t.getPromisedTypeOfPromise(o));
  }
  function Kbe(e, t) {
    return (ti(e) & 4) !== 0 && e.target === t;
  }
  function pB(e, t, r) {
    if (e.expression.name.escapedText === "finally")
      return;
    const i = r.getTypeAtLocation(e.expression.expression);
    if (Kbe(i, r.getPromiseType()) || Kbe(i, r.getPromiseLikeType()))
      if (e.expression.name.escapedText === "then") {
        if (t === cy(e.arguments, 0))
          return cy(e.typeArguments, 0);
        if (t === cy(e.arguments, 1))
          return cy(e.typeArguments, 1);
      } else
        return cy(e.typeArguments, 0);
  }
  function Xbe(e, t) {
    return vt(e) ? !!t.getPromisedTypeOfPromise(t.getTypeAtLocation(e)) : !1;
  }
  function MBe(e, t, r) {
    const i = /* @__PURE__ */ new Map(), o = f_();
    return Ma(e, function s(c) {
      if (!je(c)) {
        Ma(c, s);
        return;
      }
      const f = t.getSymbolAtLocation(c);
      if (f) {
        const d = t.getTypeAtLocation(c), y = t1e(d, t), h = bo(f).toString();
        if (y && !Ba(c.parent) && !Qs(c.parent) && !r.has(h)) {
          const E = Yc(y.parameters), A = (E == null ? void 0 : E.valueDeclaration) && Ba(E.valueDeclaration) && ai(E.valueDeclaration.name, je) || N.createUniqueName("result", 16), L = Ybe(A, o);
          r.set(h, L), o.add(A.text, f);
        } else if (c.parent && (Ba(c.parent) || Ki(c.parent) || _s(c.parent))) {
          const E = c.text, A = o.get(E);
          if (A && A.some((L) => L !== f)) {
            const L = Ybe(c, o);
            i.set(h, L.identifier), r.set(h, L), o.add(E, f);
          } else {
            const L = wl(c);
            r.set(h, eL(L)), o.add(E, f);
          }
        }
      }
    }), f6(e, !0, (s) => {
      if (_s(s) && je(s.name) && Hm(s.parent)) {
        const c = t.getSymbolAtLocation(s.name), f = c && i.get(String(bo(c)));
        if (f && f.text !== (s.name || s.propertyName).getText())
          return N.createBindingElement(s.dotDotDotToken, s.propertyName || s.name, f, s.initializer);
      } else if (je(s)) {
        const c = t.getSymbolAtLocation(s), f = c && i.get(String(bo(c)));
        if (f)
          return N.createIdentifier(f.text);
      }
    });
  }
  function Ybe(e, t) {
    const r = (t.get(e.text) || rt).length, i = r === 0 ? e : N.createIdentifier(e.text + "_" + r);
    return eL(i);
  }
  function YT() {
    return !x6;
  }
  function Yv() {
    return x6 = !1, rt;
  }
  function Zx(e, t, r, i, o) {
    if (Aw(t, r.checker, "then"))
      return GBe(t, cy(t.arguments, 0), cy(t.arguments, 1), r, i, o);
    if (Aw(t, r.checker, "catch"))
      return Zbe(t, cy(t.arguments, 0), r, i, o);
    if (Aw(t, r.checker, "finally"))
      return BBe(t, cy(t.arguments, 0), r, i, o);
    if (Fr(t))
      return Zx(e, t.expression, r, i, o);
    const s = r.checker.getTypeAtLocation(t);
    return s && r.checker.getPromisedTypeOfPromise(s) ? (D.assertNode(Tl(t).parent, Fr), UBe(e, t, r, i, o)) : Yv();
  }
  function mB({ checker: e }, t) {
    if (t.kind === 104)
      return !0;
    if (je(t) && !Sl(t) && Mr(t) === "undefined") {
      const r = e.getSymbolAtLocation(t);
      return !r || e.isUndefinedSymbol(r);
    }
    return !1;
  }
  function FBe(e) {
    const t = N.createUniqueName(e.identifier.text, 16);
    return eL(t);
  }
  function $be(e, t, r) {
    let i;
    return r && !Lw(e, t) && (Cw(r) ? (i = r, t.synthNamesMap.forEach((o, s) => {
      if (o.identifier.text === r.identifier.text) {
        const c = FBe(r);
        t.synthNamesMap.set(s, c);
      }
    })) : i = eL(N.createUniqueName("result", 16), r.types), DZ(i)), i;
  }
  function Qbe(e, t, r, i, o) {
    const s = [];
    let c;
    if (i && !Lw(e, t)) {
      c = wl(DZ(i));
      const f = i.types, d = t.checker.getUnionType(f, 2), y = t.isInJSFile ? void 0 : t.checker.typeToTypeNode(d, void 0, void 0), h = [N.createVariableDeclaration(c, void 0, y)], E = N.createVariableStatement(void 0, N.createVariableDeclarationList(h, 1));
      s.push(E);
    }
    return s.push(r), o && c && HBe(o) && s.push(N.createVariableStatement(void 0, N.createVariableDeclarationList([
      N.createVariableDeclaration(wl(a1e(o)), void 0, void 0, c)
    ], 2))), s;
  }
  function BBe(e, t, r, i, o) {
    if (!t || mB(r, t))
      return Zx(e, e.expression.expression, r, i, o);
    const s = $be(e, r, o), c = Zx(e, e.expression.expression, r, !0, s);
    if (YT())
      return Yv();
    const f = kZ(t, i, void 0, void 0, e, r);
    if (YT())
      return Yv();
    const d = N.createBlock(c), y = N.createBlock(f), h = N.createTryStatement(d, void 0, y);
    return Qbe(e, r, h, s, o);
  }
  function Zbe(e, t, r, i, o) {
    if (!t || mB(r, t))
      return Zx(e, e.expression.expression, r, i, o);
    const s = r1e(t, r), c = $be(e, r, o), f = Zx(e, e.expression.expression, r, !0, c);
    if (YT())
      return Yv();
    const d = kZ(t, i, c, s, e, r);
    if (YT())
      return Yv();
    const y = N.createBlock(f), h = N.createCatchClause(s && wl(S6(s)), N.createBlock(d)), E = N.createTryStatement(y, h, void 0);
    return Qbe(e, r, E, c, o);
  }
  function GBe(e, t, r, i, o, s) {
    if (!t || mB(i, t))
      return Zbe(e, r, i, o, s);
    if (r && !mB(i, r))
      return Yv();
    const c = r1e(t, i), f = Zx(e.expression.expression, e.expression.expression, i, !0, c);
    if (YT())
      return Yv();
    const d = kZ(t, o, s, c, e, i);
    return YT() ? Yv() : va(f, d);
  }
  function UBe(e, t, r, i, o) {
    if (Lw(e, r)) {
      let s = wl(t);
      return i && (s = N.createAwaitExpression(s)), [N.createReturnStatement(s)];
    }
    return hB(o, N.createAwaitExpression(t), void 0);
  }
  function hB(e, t, r) {
    return !e || i1e(e) ? [N.createExpressionStatement(t)] : Cw(e) && e.hasBeenDeclared ? [N.createExpressionStatement(N.createAssignment(wl(wZ(e)), t))] : [
      N.createVariableStatement(void 0, N.createVariableDeclarationList([
        N.createVariableDeclaration(wl(S6(e)), void 0, r, t)
      ], 2))
    ];
  }
  function IZ(e, t) {
    if (t && e) {
      const r = N.createUniqueName("result", 16);
      return [
        ...hB(eL(r), e, t),
        N.createReturnStatement(r)
      ];
    }
    return [N.createReturnStatement(e)];
  }
  function kZ(e, t, r, i, o, s) {
    var c;
    switch (e.kind) {
      case 104:
        break;
      case 208:
      case 79:
        if (!i)
          break;
        const f = N.createCallExpression(wl(e), void 0, Cw(i) ? [wZ(i)] : []);
        if (Lw(o, s))
          return IZ(f, pB(o, e, s.checker));
        const d = s.checker.getTypeAtLocation(e), y = s.checker.getSignaturesOfType(d, 0);
        if (!y.length)
          return Yv();
        const h = y[0].getReturnType(), E = hB(r, N.createAwaitExpression(f), pB(o, e, s.checker));
        return r && r.types.push(s.checker.getAwaitedType(h) || h), E;
      case 215:
      case 216: {
        const A = e.body, L = (c = t1e(s.checker.getTypeAtLocation(e), s.checker)) == null ? void 0 : c.getReturnType();
        if (co(A)) {
          let I = [], O = !1;
          for (const k of A.statements)
            if (bp(k))
              if (O = !0, N9(k, s.checker))
                I = I.concat(n1e(s, k, t, r));
              else {
                const G = L && k.expression ? e1e(s.checker, L, k.expression) : k.expression;
                I.push(...IZ(G, pB(o, e, s.checker)));
              }
            else {
              if (t && cT(k, n1))
                return Yv();
              I.push(k);
            }
          return Lw(o, s) ? I.map((k) => wl(k)) : VBe(I, r, s, O);
        } else {
          const I = FQ(A, s.checker) ? n1e(s, N.createReturnStatement(A), t, r) : rt;
          if (I.length > 0)
            return I;
          if (L) {
            const O = e1e(s.checker, L, A);
            if (Lw(o, s))
              return IZ(O, pB(o, e, s.checker));
            {
              const k = hB(r, O, void 0);
              return r && r.types.push(s.checker.getAwaitedType(L) || L), k;
            }
          } else
            return Yv();
        }
      }
      default:
        return Yv();
    }
    return rt;
  }
  function e1e(e, t, r) {
    const i = wl(r);
    return e.getPromisedTypeOfPromise(t) ? N.createAwaitExpression(i) : i;
  }
  function t1e(e, t) {
    const r = t.getSignaturesOfType(e, 0);
    return tl(r);
  }
  function VBe(e, t, r, i) {
    const o = [];
    for (const s of e)
      if (bp(s)) {
        if (s.expression) {
          const c = Xbe(s.expression, r.checker) ? N.createAwaitExpression(s.expression) : s.expression;
          t === void 0 ? o.push(N.createExpressionStatement(c)) : Cw(t) && t.hasBeenDeclared ? o.push(N.createExpressionStatement(N.createAssignment(wZ(t), c))) : o.push(N.createVariableStatement(void 0, N.createVariableDeclarationList([N.createVariableDeclaration(S6(t), void 0, void 0, c)], 2)));
        }
      } else
        o.push(wl(s));
    return !i && t !== void 0 && o.push(N.createVariableStatement(void 0, N.createVariableDeclarationList([N.createVariableDeclaration(S6(t), void 0, void 0, N.createIdentifier("undefined"))], 2))), o;
  }
  function n1e(e, t, r, i) {
    let o = [];
    return Ma(t, function s(c) {
      if (no(c)) {
        const f = Zx(c, c, e, r, i);
        if (o = o.concat(f), o.length > 0)
          return;
      } else
        Ka(c) || Ma(c, s);
    }), o;
  }
  function r1e(e, t) {
    const r = [];
    let i;
    if (Qs(e)) {
      if (e.parameters.length > 0) {
        const d = e.parameters[0].name;
        i = o(d);
      }
    } else
      je(e) ? i = s(e) : Fr(e) && je(e.name) && (i = s(e.name));
    if (!i || "identifier" in i && i.identifier.text === "undefined")
      return;
    return i;
    function o(d) {
      if (je(d))
        return s(d);
      const y = ca(d.elements, (h) => Rc(h) ? [] : [o(h.name)]);
      return jBe(d, y);
    }
    function s(d) {
      const y = f(d), h = c(y);
      return h && t.synthNamesMap.get(bo(h).toString()) || eL(d, r);
    }
    function c(d) {
      var y, h;
      return (h = (y = ai(d, Rm)) == null ? void 0 : y.symbol) != null ? h : t.checker.getSymbolAtLocation(d);
    }
    function f(d) {
      return d.original ? d.original : d;
    }
  }
  function i1e(e) {
    return e ? Cw(e) ? !e.identifier.text : Yn(e.elements, i1e) : !0;
  }
  function eL(e, t = []) {
    return { kind: 0, identifier: e, types: t, hasBeenDeclared: !1, hasBeenReferenced: !1 };
  }
  function jBe(e, t = rt, r = []) {
    return { kind: 1, bindingPattern: e, elements: t, types: r };
  }
  function wZ(e) {
    return e.hasBeenReferenced = !0, e.identifier;
  }
  function S6(e) {
    return Cw(e) ? DZ(e) : a1e(e);
  }
  function a1e(e) {
    for (const t of e.elements)
      S6(t);
    return e.bindingPattern;
  }
  function DZ(e) {
    return e.hasBeenDeclared = !0, e.identifier;
  }
  function Cw(e) {
    return e.kind === 0;
  }
  function HBe(e) {
    return e.kind === 1;
  }
  function Lw(e, t) {
    return !!e.original && t.setOfExpressionsToReturn.has(ps(e.original));
  }
  var gB, RZ, x6, WBe = C({
    "src/services/codefixes/convertToAsyncFunction.ts"() {
      $r(), Eo(), gB = "convertToAsyncFunction", RZ = [_.This_may_be_converted_to_an_async_function.code], x6 = !0, po({
        errorCodes: RZ,
        getCodeActions(e) {
          x6 = !0;
          const t = gr.ChangeTracker.with(e, (r) => Jbe(r, e.sourceFile, e.span.start, e.program.getTypeChecker()));
          return x6 ? [ro(gB, t, _.Convert_to_async_function, gB, _.Convert_all_to_async_functions)] : [];
        },
        fixIds: [gB],
        getAllCodeActions: (e) => Cs(e, RZ, (t, r) => Jbe(t, r.file, r.start, e.program.getTypeChecker()))
      });
    }
  });
  function zBe(e, t, r, i) {
    for (const o of e.imports) {
      const s = RA(e, o.text, Tp(e, o));
      if (!s || s.resolvedFileName !== t.fileName)
        continue;
      const c = AN(o);
      switch (c.kind) {
        case 268:
          r.replaceNode(e, c, Dy(c.name, void 0, o, i));
          break;
        case 210:
          xd(c, !1) && r.replaceNode(e, c, N.createPropertyAccessExpression(wl(c), "default"));
          break;
      }
    }
  }
  function qBe(e, t, r, i, o) {
    const s = { original: aGe(e), additional: /* @__PURE__ */ new Set() }, c = JBe(e, t, s);
    KBe(e, c, r);
    let f = !1, d;
    for (const y of lr(e.statements, uc)) {
      const h = s1e(e, y, r, t, s, i, o);
      h && nN(h, d ?? (d = /* @__PURE__ */ new Map()));
    }
    for (const y of lr(e.statements, (h) => !uc(h))) {
      const h = XBe(e, y, t, r, s, i, c, d, o);
      f = f || h;
    }
    return d == null || d.forEach((y, h) => {
      r.replaceNode(e, h, y);
    }), f;
  }
  function JBe(e, t, r) {
    const i = /* @__PURE__ */ new Map();
    return o1e(e, (o) => {
      const { text: s } = o.name;
      !i.has(s) && (x3(o.name) || t.resolveName(s, o, 111551, !0)) && i.set(s, yB(`_${s}`, r));
    }), i;
  }
  function KBe(e, t, r) {
    o1e(e, (i, o) => {
      if (o)
        return;
      const { text: s } = i.name;
      r.replaceNode(e, i, N.createIdentifier(t.get(s) || s));
    });
  }
  function o1e(e, t) {
    e.forEachChild(function r(i) {
      if (Fr(i) && F1(e, i.expression) && je(i.name)) {
        const { parent: o } = i;
        t(i, br(o) && o.left === i && o.operatorToken.kind === 63);
      }
      i.forEachChild(r);
    });
  }
  function XBe(e, t, r, i, o, s, c, f, d) {
    switch (t.kind) {
      case 240:
        return s1e(e, t, i, r, o, s, d), !1;
      case 241: {
        const { expression: y } = t;
        switch (y.kind) {
          case 210:
            return xd(y, !0) && i.replaceNode(e, t, Dy(void 0, void 0, y.arguments[0], d)), !1;
          case 223: {
            const { operatorToken: h } = y;
            return h.kind === 63 && $Be(e, r, y, i, c, f);
          }
        }
      }
      default:
        return !1;
    }
  }
  function s1e(e, t, r, i, o, s, c) {
    const { declarationList: f } = t;
    let d = !1;
    const y = jt(f.declarations, (h) => {
      const { name: E, initializer: A } = h;
      if (A) {
        if (F1(e, A))
          return d = !0, tL([]);
        if (xd(A, !0))
          return d = !0, rGe(E, A.arguments[0], i, o, s, c);
        if (Fr(A) && xd(A.expression, !0))
          return d = !0, YBe(E, A.name.text, A.expression.arguments[0], o, c);
      }
      return tL([N.createVariableStatement(void 0, N.createVariableDeclarationList([h], f.flags))]);
    });
    if (d) {
      r.replaceNodeWithNodes(e, t, ca(y, (E) => E.newImports));
      let h;
      return ze(y, (E) => {
        E.useSitesToUnqualify && nN(E.useSitesToUnqualify, h ?? (h = /* @__PURE__ */ new Map()));
      }), h;
    }
  }
  function YBe(e, t, r, i, o) {
    switch (e.kind) {
      case 203:
      case 204: {
        const s = yB(t, i);
        return tL([
          d1e(s, t, r, o),
          vB(void 0, e, N.createIdentifier(s))
        ]);
      }
      case 79:
        return tL([d1e(e.text, t, r, o)]);
      default:
        return D.assertNever(e, `Convert to ES module got invalid syntax form ${e.kind}`);
    }
  }
  function $Be(e, t, r, i, o, s) {
    const { left: c, right: f } = r;
    if (!Fr(c))
      return !1;
    if (F1(e, c))
      if (F1(e, f))
        i.delete(e, r.parent);
      else {
        const d = Ls(f) ? QBe(f, s) : xd(f, !0) ? eGe(f.arguments[0], t) : void 0;
        return d ? (i.replaceNodeWithNodes(e, r.parent, d[0]), d[1]) : (i.replaceRangeWithText(e, h_(c.getStart(e), f.pos), "export default"), !0);
      }
    else
      F1(e, c.expression) && ZBe(e, r, i, o);
    return !1;
  }
  function QBe(e, t) {
    const r = OS(e.properties, (i) => {
      switch (i.kind) {
        case 174:
        case 175:
        case 300:
        case 301:
          return;
        case 299:
          return je(i.name) ? nGe(i.name.text, i.initializer, t) : void 0;
        case 171:
          return je(i.name) ? u1e(i.name.text, [N.createToken(93)], i, t) : void 0;
        default:
          D.assertNever(i, `Convert to ES6 got invalid prop kind ${i.kind}`);
      }
    });
    return r && [r, !1];
  }
  function ZBe(e, t, r, i) {
    const { text: o } = t.left.name, s = i.get(o);
    if (s !== void 0) {
      const c = [
        vB(void 0, s, t.right),
        PZ([N.createExportSpecifier(!1, s, o)])
      ];
      r.replaceNodeWithNodes(e, t.parent, c);
    } else
      tGe(t, e, r);
  }
  function eGe(e, t) {
    const r = e.text, i = t.getSymbolAtLocation(e), o = i ? i.exports : Y4;
    return o.has("export=") ? [[NZ(r)], !0] : o.has("default") ? o.size > 1 ? [[l1e(r), NZ(r)], !0] : [[NZ(r)], !0] : [[l1e(r)], !1];
  }
  function l1e(e) {
    return PZ(void 0, e);
  }
  function NZ(e) {
    return PZ([N.createExportSpecifier(!1, void 0, "default")], e);
  }
  function tGe({ left: e, right: t, parent: r }, i, o) {
    const s = e.name.text;
    if ((Bs(t) || Js(t) || Gu(t)) && (!t.name || t.name.text === s)) {
      o.replaceRange(i, { pos: e.getStart(i), end: t.getStart(i) }, N.createToken(93), { suffix: " " }), t.name || o.insertName(i, t, s);
      const c = bs(r, 26, i);
      c && o.delete(i, c);
    } else
      o.replaceNodeRangeWithNodes(i, e.expression, bs(e, 24, i), [N.createToken(93), N.createToken(85)], { joiner: " ", suffix: " " });
  }
  function nGe(e, t, r) {
    const i = [N.createToken(93)];
    switch (t.kind) {
      case 215: {
        const { name: s } = t;
        if (s && s.text !== e)
          return o();
      }
      case 216:
        return u1e(e, i, t, r);
      case 228:
        return sGe(e, i, t, r);
      default:
        return o();
    }
    function o() {
      return vB(i, N.createIdentifier(e), OZ(t, r));
    }
  }
  function OZ(e, t) {
    if (!t || !kt(Ro(t.keys()), (i) => df(e, i)))
      return e;
    return Va(e) ? tQ(e, !0, r) : f6(e, !0, r);
    function r(i) {
      if (i.kind === 208) {
        const o = t.get(i);
        return t.delete(i), o;
      }
    }
  }
  function rGe(e, t, r, i, o, s) {
    switch (e.kind) {
      case 203: {
        const c = OS(e.elements, (f) => f.dotDotDotToken || f.initializer || f.propertyName && !je(f.propertyName) || !je(f.name) ? void 0 : f1e(f.propertyName && f.propertyName.text, f.name.text));
        if (c)
          return tL([Dy(void 0, c, t, s)]);
      }
      case 204: {
        const c = yB(qZ(t.text, o), i);
        return tL([
          Dy(N.createIdentifier(c), void 0, t, s),
          vB(void 0, wl(e), N.createIdentifier(c))
        ]);
      }
      case 79:
        return iGe(e, t, r, i, s);
      default:
        return D.assertNever(e, `Convert to ES module got invalid name kind ${e.kind}`);
    }
  }
  function iGe(e, t, r, i, o) {
    const s = r.getSymbolAtLocation(e), c = /* @__PURE__ */ new Map();
    let f = !1, d;
    for (const h of i.original.get(e.text)) {
      if (r.getSymbolAtLocation(h) !== s || h === e)
        continue;
      const { parent: E } = h;
      if (Fr(E)) {
        const { name: { text: A } } = E;
        if (A === "default") {
          f = !0;
          const L = h.getText();
          (d ?? (d = /* @__PURE__ */ new Map())).set(E, N.createIdentifier(L));
        } else {
          D.assert(E.expression === h, "Didn't expect expression === use");
          let L = c.get(A);
          L === void 0 && (L = yB(A, i), c.set(A, L)), (d ?? (d = /* @__PURE__ */ new Map())).set(E, N.createIdentifier(L));
        }
      } else
        f = !0;
    }
    const y = c.size === 0 ? void 0 : Ro(ao(c.entries(), ([h, E]) => N.createImportSpecifier(!1, h === E ? void 0 : N.createIdentifier(h), N.createIdentifier(E))));
    return y || (f = !0), tL([Dy(f ? wl(e) : void 0, y, t, o)], d);
  }
  function yB(e, t) {
    for (; t.original.has(e) || t.additional.has(e); )
      e = `_${e}`;
    return t.additional.add(e), e;
  }
  function aGe(e) {
    const t = f_();
    return c1e(e, (r) => t.add(r.text, r)), t;
  }
  function c1e(e, t) {
    je(e) && oGe(e) && t(e), e.forEachChild((r) => c1e(r, t));
  }
  function oGe(e) {
    const { parent: t } = e;
    switch (t.kind) {
      case 208:
        return t.name !== e;
      case 205:
        return t.propertyName !== e;
      case 273:
        return t.propertyName !== e;
      default:
        return !0;
    }
  }
  function u1e(e, t, r, i) {
    return N.createFunctionDeclaration(va(t, q1(r.modifiers)), wl(r.asteriskToken), e, q1(r.typeParameters), q1(r.parameters), wl(r.type), N.converters.convertToFunctionBlock(OZ(r.body, i)));
  }
  function sGe(e, t, r, i) {
    return N.createClassDeclaration(va(t, q1(r.modifiers)), e, q1(r.typeParameters), q1(r.heritageClauses), OZ(r.members, i));
  }
  function d1e(e, t, r, i) {
    return t === "default" ? Dy(N.createIdentifier(e), void 0, r, i) : Dy(void 0, [f1e(t, e)], r, i);
  }
  function f1e(e, t) {
    return N.createImportSpecifier(!1, e !== void 0 && e !== t ? N.createIdentifier(e) : void 0, N.createIdentifier(t));
  }
  function vB(e, t, r) {
    return N.createVariableStatement(e, N.createVariableDeclarationList([N.createVariableDeclaration(t, void 0, void 0, r)], 2));
  }
  function PZ(e, t) {
    return N.createExportDeclaration(void 0, !1, e && N.createNamedExports(e), t === void 0 ? void 0 : N.createStringLiteral(t));
  }
  function tL(e, t) {
    return {
      newImports: e,
      useSitesToUnqualify: t
    };
  }
  var lGe = C({
    "src/services/codefixes/convertToEsModule.ts"() {
      $r(), Eo(), po({
        errorCodes: [_.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module.code],
        getCodeActions(e) {
          const { sourceFile: t, program: r, preferences: i } = e, o = gr.ChangeTracker.with(e, (s) => {
            if (qBe(t, r.getTypeChecker(), s, ts(r.getCompilerOptions()), xp(t, i)))
              for (const f of r.getSourceFiles())
                zBe(f, t, s, xp(f, i));
          });
          return [Ap("convertToEsModule", o, _.Convert_to_ES_module)];
        }
      });
    }
  });
  function _1e(e, t) {
    const r = nr(aa(e, t), Cd);
    return D.assert(!!r, "Expected position to be owned by a qualified name."), je(r.left) ? r : void 0;
  }
  function p1e(e, t, r) {
    const i = r.right.text, o = N.createIndexedAccessTypeNode(N.createTypeReferenceNode(r.left, void 0), N.createLiteralTypeNode(N.createStringLiteral(i)));
    e.replaceNode(t, r, o);
  }
  var bB, MZ, cGe = C({
    "src/services/codefixes/correctQualifiedNameToIndexedAccessType.ts"() {
      $r(), Eo(), bB = "correctQualifiedNameToIndexedAccessType", MZ = [_.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1.code], po({
        errorCodes: MZ,
        getCodeActions(e) {
          const t = _1e(e.sourceFile, e.span.start);
          if (!t)
            return;
          const r = gr.ChangeTracker.with(e, (o) => p1e(o, e.sourceFile, t)), i = `${t.left.text}["${t.right.text}"]`;
          return [ro(bB, r, [_.Rewrite_as_the_indexed_access_type_0, i], bB, _.Rewrite_all_as_indexed_access_types)];
        },
        fixIds: [bB],
        getAllCodeActions: (e) => Cs(e, MZ, (t, r) => {
          const i = _1e(r.file, r.start);
          i && p1e(t, r.file, i);
        })
      });
    }
  });
  function m1e(e, t) {
    return ai(aa(t, e.start).parent, dd);
  }
  function h1e(e, t, r) {
    if (!t)
      return;
    const i = t.parent, o = i.parent, s = uGe(t, r);
    if (s.length === i.elements.length)
      e.insertModifierBefore(r.sourceFile, 154, i);
    else {
      const c = N.updateExportDeclaration(o, o.modifiers, !1, N.updateNamedExports(i, lr(i.elements, (d) => !jr(s, d))), o.moduleSpecifier, void 0), f = N.createExportDeclaration(void 0, !0, N.createNamedExports(s), o.moduleSpecifier, void 0);
      e.replaceNode(r.sourceFile, o, c, {
        leadingTriviaOption: gr.LeadingTriviaOption.IncludeAll,
        trailingTriviaOption: gr.TrailingTriviaOption.Exclude
      }), e.insertNodeAfter(r.sourceFile, o, f);
    }
  }
  function uGe(e, t) {
    const r = e.parent;
    if (r.elements.length === 1)
      return r.elements;
    const i = xve(rd(r), t.program.getSemanticDiagnostics(t.sourceFile, t.cancellationToken));
    return lr(r.elements, (o) => {
      var s;
      return o === e || ((s = Sve(o, i)) == null ? void 0 : s.code) === EB[0];
    });
  }
  var EB, TB, dGe = C({
    "src/services/codefixes/convertToTypeOnlyExport.ts"() {
      $r(), Eo(), EB = [_.Re_exporting_a_type_when_0_is_enabled_requires_using_export_type.code], TB = "convertToTypeOnlyExport", po({
        errorCodes: EB,
        getCodeActions: function(t) {
          const r = gr.ChangeTracker.with(t, (i) => h1e(i, m1e(t.span, t.sourceFile), t));
          if (r.length)
            return [ro(TB, r, _.Convert_to_type_only_export, TB, _.Convert_all_re_exported_types_to_type_only_exports)];
        },
        fixIds: [TB],
        getAllCodeActions: function(t) {
          const r = /* @__PURE__ */ new Map();
          return Cs(t, EB, (i, o) => {
            const s = m1e(o, t.sourceFile);
            s && vp(r, ps(s.parent.parent)) && h1e(i, s, t);
          });
        }
      });
    }
  });
  function g1e(e, t) {
    const { parent: r } = aa(e, t);
    return Ld(r) || Wc(r) && r.importClause ? r : void 0;
  }
  function y1e(e, t, r) {
    if (Ld(r))
      e.replaceNode(t, r, N.updateImportSpecifier(r, !0, r.propertyName, r.name));
    else {
      const i = r.importClause;
      if (i.name && i.namedBindings)
        e.replaceNodeWithNodes(t, r, [
          N.createImportDeclaration(q1(r.modifiers, !0), N.createImportClause(!0, wl(i.name, !0), void 0), wl(r.moduleSpecifier, !0), wl(r.assertClause, !0)),
          N.createImportDeclaration(q1(r.modifiers, !0), N.createImportClause(!0, void 0, wl(i.namedBindings, !0)), wl(r.moduleSpecifier, !0), wl(r.assertClause, !0))
        ]);
      else {
        const o = N.updateImportDeclaration(r, r.modifiers, N.updateImportClause(i, !0, i.name, i.namedBindings), r.moduleSpecifier, r.assertClause);
        e.replaceNode(t, r, o);
      }
    }
  }
  var FZ, SB, fGe = C({
    "src/services/codefixes/convertToTypeOnlyImport.ts"() {
      $r(), Eo(), FZ = [
        _.This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set_to_error.code,
        _._0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled.code
      ], SB = "convertToTypeOnlyImport", po({
        errorCodes: FZ,
        getCodeActions: function(t) {
          const r = g1e(t.sourceFile, t.span.start);
          if (r) {
            const i = gr.ChangeTracker.with(t, (o) => y1e(o, t.sourceFile, r));
            return [ro(SB, i, _.Convert_to_type_only_import, SB, _.Convert_all_imports_not_used_as_a_value_to_type_only_imports)];
          }
        },
        fixIds: [SB],
        getAllCodeActions: function(t) {
          return Cs(t, FZ, (r, i) => {
            const o = g1e(i.file, i.start);
            o && y1e(r, i.file, o);
          });
        }
      });
    }
  });
  function v1e(e, t) {
    const r = aa(e, t);
    if (je(r)) {
      const i = oo(r.parent.parent, If), o = r.getText(e);
      return {
        container: oo(i.parent, uf),
        typeNode: i.type,
        constraint: o,
        name: o === "K" ? "P" : "K"
      };
    }
  }
  function b1e(e, t, { container: r, typeNode: i, constraint: o, name: s }) {
    e.replaceNode(t, r, N.createMappedTypeNode(void 0, N.createTypeParameterDeclaration(void 0, s, N.createTypeReferenceNode(o)), void 0, void 0, i, void 0));
  }
  var xB, BZ, _Ge = C({
    "src/services/codefixes/convertLiteralTypeToMappedType.ts"() {
      $r(), Eo(), xB = "convertLiteralTypeToMappedType", BZ = [_._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0.code], po({
        errorCodes: BZ,
        getCodeActions: function(t) {
          const { sourceFile: r, span: i } = t, o = v1e(r, i.start);
          if (!o)
            return;
          const { name: s, constraint: c } = o, f = gr.ChangeTracker.with(t, (d) => b1e(d, r, o));
          return [ro(xB, f, [_.Convert_0_to_1_in_0, c, s], xB, _.Convert_all_type_literals_to_mapped_type)];
        },
        fixIds: [xB],
        getAllCodeActions: (e) => Cs(e, BZ, (t, r) => {
          const i = v1e(r.file, r.start);
          i && b1e(t, r.file, i);
        })
      });
    }
  });
  function E1e(e, t) {
    return D.checkDefined(xc(aa(e, t)), "There should be a containing class");
  }
  function T1e(e) {
    return !e.valueDeclaration || !(Mu(e.valueDeclaration) & 8);
  }
  function S1e(e, t, r, i, o, s) {
    const c = e.program.getTypeChecker(), f = pGe(i, c), d = c.getTypeAtLocation(t), h = c.getPropertiesOfType(d).filter(J4(T1e, (k) => !f.has(k.escapedName))), E = c.getTypeAtLocation(i), A = nn(i.members, (k) => ql(k));
    E.getNumberIndexType() || I(d, 1), E.getStringIndexType() || I(d, 0);
    const L = $T(r, e.program, s, e.host);
    Wee(i, h, r, e, s, L, (k) => O(r, i, k)), L.writeFixes(o);
    function I(k, G) {
      const V = c.getIndexInfoOfType(k, G);
      V && O(r, i, c.indexInfoToIndexSignatureDeclaration(V, i, void 0, e2(e)));
    }
    function O(k, G, V) {
      A ? o.insertNodeAfter(k, A, V) : o.insertMemberAtStart(k, G, V);
    }
  }
  function pGe(e, t) {
    const r = Xp(e);
    if (!r)
      return lo();
    const i = t.getTypeAtLocation(r), o = t.getPropertiesOfType(i);
    return lo(o.filter(T1e));
  }
  var GZ, AB, mGe = C({
    "src/services/codefixes/fixClassIncorrectlyImplementsInterface.ts"() {
      $r(), Eo(), GZ = [
        _.Class_0_incorrectly_implements_interface_1.code,
        _.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass.code
      ], AB = "fixClassIncorrectlyImplementsInterface", po({
        errorCodes: GZ,
        getCodeActions(e) {
          const { sourceFile: t, span: r } = e, i = E1e(t, r.start);
          return ia(XA(i), (o) => {
            const s = gr.ChangeTracker.with(e, (c) => S1e(e, o, t, i, c, e.preferences));
            return s.length === 0 ? void 0 : ro(AB, s, [_.Implement_interface_0, o.getText(t)], AB, _.Implement_all_unimplemented_interfaces);
          });
        },
        fixIds: [AB],
        getAllCodeActions(e) {
          const t = /* @__PURE__ */ new Map();
          return Cs(e, GZ, (r, i) => {
            const o = E1e(i.file, i.start);
            if (vp(t, ps(o)))
              for (const s of XA(o))
                S1e(e, s, i.file, o, r, e.preferences);
          });
        }
      });
    }
  });
  function $T(e, t, r, i, o) {
    return x1e(e, t, !1, r, i, o);
  }
  function x1e(e, t, r, i, o, s) {
    const c = t.getCompilerOptions(), f = [], d = [], y = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Map();
    return { addImportFromDiagnostic: E, addImportFromExportedSymbol: A, writeFixes: I, hasFixes: O };
    function E(k, G) {
      const V = w1e(G, k.code, k.start, r);
      !V || !V.length || L(us(V));
    }
    function A(k, G) {
      const V = D.checkDefined(k.parent), H = y9(k, ts(c)), te = t.getTypeChecker(), X = te.getMergedSymbol(cf(k, te)), Y = L1e(e, X, H, V, !1, t, o, i, s), P = LB(e, t), de = A1e(e, D.checkDefined(Y), t, void 0, !!G, P, o, i);
      de && L({ fix: de, symbolName: H, errorIdentifierText: void 0 });
    }
    function L(k) {
      var G, V;
      const { fix: H, symbolName: te } = k;
      switch (H.kind) {
        case 0:
          f.push(H);
          break;
        case 1:
          d.push(H);
          break;
        case 2: {
          const { importClauseOrBindingPattern: de, importKind: re, addAsTypeOnly: ye } = H, ae = String(ps(de));
          let W = y.get(ae);
          if (W || y.set(ae, W = { importClauseOrBindingPattern: de, defaultImport: void 0, namedImports: /* @__PURE__ */ new Map() }), re === 0) {
            const ce = W == null ? void 0 : W.namedImports.get(te);
            W.namedImports.set(te, X(ce, ye));
          } else
            D.assert(W.defaultImport === void 0 || W.defaultImport.name === te, "(Add to Existing) Default import should be missing or match symbolName"), W.defaultImport = {
              name: te,
              addAsTypeOnly: X((G = W.defaultImport) == null ? void 0 : G.addAsTypeOnly, ye)
            };
          break;
        }
        case 3: {
          const { moduleSpecifier: de, importKind: re, useRequire: ye, addAsTypeOnly: ae } = H, W = Y(de, re, ye, ae);
          switch (D.assert(W.useRequire === ye, "(Add new) Tried to add an `import` and a `require` for the same module"), re) {
            case 1:
              D.assert(W.defaultImport === void 0 || W.defaultImport.name === te, "(Add new) Default import should be missing or match symbolName"), W.defaultImport = { name: te, addAsTypeOnly: X((V = W.defaultImport) == null ? void 0 : V.addAsTypeOnly, ae) };
              break;
            case 0:
              const ce = (W.namedImports || (W.namedImports = /* @__PURE__ */ new Map())).get(te);
              W.namedImports.set(te, X(ce, ae));
              break;
            case 3:
            case 2:
              D.assert(W.namespaceLikeImport === void 0 || W.namespaceLikeImport.name === te, "Namespacelike import shoudl be missing or match symbolName"), W.namespaceLikeImport = { importKind: re, name: te, addAsTypeOnly: ae };
              break;
          }
          break;
        }
        case 4:
          break;
        default:
          D.assertNever(H, `fix wasn't never - got kind ${H.kind}`);
      }
      function X(de, re) {
        return Math.max(de ?? 0, re);
      }
      function Y(de, re, ye, ae) {
        const W = P(de, !0), ce = P(de, !1), me = h.get(W), ve = h.get(ce), Te = {
          defaultImport: void 0,
          namedImports: void 0,
          namespaceLikeImport: void 0,
          useRequire: ye
        };
        return re === 1 && ae === 2 ? me || (h.set(W, Te), Te) : ae === 1 && (me || ve) ? me || ve : ve || (h.set(ce, Te), Te);
      }
      function P(de, re) {
        return `${re ? 1 : 0}|${de}`;
      }
    }
    function I(k) {
      const G = xp(e, i);
      for (const H of f)
        WZ(k, e, H);
      for (const H of d)
        F1e(k, e, H, G);
      y.forEach(({ importClauseOrBindingPattern: H, defaultImport: te, namedImports: X }) => {
        M1e(k, e, H, te, Ro(X.entries(), ([Y, P]) => ({ addAsTypeOnly: P, name: Y })), c, i);
      });
      let V;
      h.forEach(({ useRequire: H, defaultImport: te, namedImports: X, namespaceLikeImport: Y }, P) => {
        const de = P.slice(2), ye = (H ? U1e : G1e)(de, G, te, X && Ro(X.entries(), ([ae, W]) => ({ addAsTypeOnly: W, name: ae })), Y, c);
        V = hA(V, ye);
      }), V && i9(k, e, V, !0, i);
    }
    function O() {
      return f.length > 0 || d.length > 0 || y.size > 0 || h.size > 0;
    }
  }
  function hGe(e, t, r, i) {
    const o = bw(e, i, r), s = I1e(t.getTypeChecker(), e, t.getCompilerOptions());
    return { getModuleSpecifierForBestExportInfo: c };
    function c(f, d, y, h) {
      const { fixes: E, computedWithoutCacheCount: A } = CB(f, d, y, !1, t, e, r, i, s, h), L = D1e(E, e, t, o, r);
      return L && { ...L, computedWithoutCacheCount: A };
    }
  }
  function gGe(e, t, r, i, o, s, c, f, d, y, h, E) {
    const A = f.getCompilerOptions();
    let L;
    r ? (L = h6(i, c, f, h, E).get(i.path, r), D.assertIsDefined(L, "Some exportInfo should match the specified exportMapKey")) : (L = qH(V_(t.name)) ? [vGe(e, o, t, f, c)] : L1e(i, e, o, t, s, f, c, h, E), D.assertIsDefined(L, "Some exportInfo should match the specified symbol / moduleSymbol"));
    const I = LB(i, f), O = mx(aa(i, y)), k = D.checkDefined(A1e(i, L, f, y, O, I, c, h));
    return {
      moduleSpecifier: k.moduleSpecifier,
      codeAction: C1e(HZ({ host: c, formatContext: d, preferences: h }, i, o, k, !1, A, h))
    };
  }
  function yGe(e, t, r, i, o, s) {
    const c = r.getCompilerOptions(), f = Sj(jZ(e, r.getTypeChecker(), t, c)), d = O1e(e, t, f, r), y = f !== t.text;
    return d && C1e(HZ({ host: i, formatContext: o, preferences: s }, e, f, d, y, c, s));
  }
  function A1e(e, t, r, i, o, s, c, f) {
    const d = bw(e, f, c);
    return D1e(CB(t, i, o, s, r, e, c, f).fixes, e, r, d, c);
  }
  function C1e({ description: e, changes: t, commands: r }) {
    return { description: e, changes: t, commands: r };
  }
  function L1e(e, t, r, i, o, s, c, f, d) {
    const y = k1e(s, c);
    return h6(e, c, s, f, d).search(e.path, o, (h) => h === r, (h) => {
      if (cf(h[0].symbol, y(h[0].isFromPackageJson)) === t && h.some((E) => E.moduleSymbol === i || E.symbol.parent === i))
        return h;
    });
  }
  function vGe(e, t, r, i, o) {
    var s, c;
    const f = i.getCompilerOptions(), d = h(i.getTypeChecker(), !1);
    if (d)
      return d;
    const y = (c = (s = o.getPackageJsonAutoImportProvider) == null ? void 0 : s.call(o)) == null ? void 0 : c.getTypeChecker();
    return D.checkDefined(y && h(y, !0), "Could not find symbol in specified module for code actions");
    function h(E, A) {
      const L = C9(r, E, f);
      if (L && cf(L.symbol, E) === e)
        return { symbol: L.symbol, moduleSymbol: r, moduleFileName: void 0, exportKind: L.exportKind, targetFlags: cf(e, E).flags, isFromPackageJson: A };
      const I = E.tryGetMemberInModuleExportsAndProperties(t, r);
      if (I && cf(I, E) === e)
        return { symbol: I, moduleSymbol: r, moduleFileName: void 0, exportKind: 0, targetFlags: cf(e, E).flags, isFromPackageJson: A };
    }
  }
  function CB(e, t, r, i, o, s, c, f, d = I1e(o.getTypeChecker(), s, o.getCompilerOptions()), y) {
    const h = o.getTypeChecker(), E = ca(e, d.getImportsForExportInfo), A = t !== void 0 && bGe(E, t), L = TGe(E, r, h, o.getCompilerOptions());
    if (L)
      return {
        computedWithoutCacheCount: 0,
        fixes: [...A ? [A] : rt, L]
      };
    const { fixes: I, computedWithoutCacheCount: O = 0 } = xGe(e, E, o, s, t, r, i, c, f, y);
    return {
      computedWithoutCacheCount: O,
      fixes: [...A ? [A] : rt, ...I]
    };
  }
  function bGe(e, t) {
    return Jt(e, ({ declaration: r, importKind: i }) => {
      var o;
      if (i !== 0)
        return;
      const s = EGe(r), c = s && ((o = xN(r)) == null ? void 0 : o.text);
      if (c)
        return { kind: 0, namespacePrefix: s, usagePosition: t, moduleSpecifier: c };
    });
  }
  function EGe(e) {
    var t, r, i;
    switch (e.kind) {
      case 257:
        return (t = ai(e.name, je)) == null ? void 0 : t.text;
      case 268:
        return e.name.text;
      case 269:
        return (i = ai((r = e.importClause) == null ? void 0 : r.namedBindings, Gv)) == null ? void 0 : i.name.text;
      default:
        return D.assertNever(e);
    }
  }
  function UZ(e, t, r, i, o, s) {
    return e ? t && s.importsNotUsedAsValues === 2 || U3(s) && (!(i & 111551) || o.getTypeOnlyAliasDeclaration(r)) ? 2 : 1 : 4;
  }
  function TGe(e, t, r, i) {
    return Jt(e, ({ declaration: o, importKind: s, symbol: c, targetFlags: f }) => {
      if (s === 3 || s === 2 || o.kind === 268)
        return;
      if (o.kind === 257)
        return (s === 0 || s === 1) && o.name.kind === 203 ? { kind: 2, importClauseOrBindingPattern: o.name, importKind: s, moduleSpecifier: o.initializer.arguments[0].text, addAsTypeOnly: 4 } : void 0;
      const { importClause: d } = o;
      if (!d || !xs(o.moduleSpecifier))
        return;
      const { name: y, namedBindings: h } = d;
      if (d.isTypeOnly && !(s === 0 && h))
        return;
      const E = UZ(t, !1, c, f, r, i);
      if (!(s === 1 && (y || E === 2 && h)) && !(s === 0 && (h == null ? void 0 : h.kind) === 271))
        return {
          kind: 2,
          importClauseOrBindingPattern: d,
          importKind: s,
          moduleSpecifier: o.moduleSpecifier.text,
          addAsTypeOnly: E
        };
    });
  }
  function I1e(e, t, r) {
    let i;
    for (const o of t.imports) {
      const s = AN(o);
      if (_z(s.parent)) {
        const c = e.resolveExternalModuleName(o);
        c && (i || (i = f_())).add(bo(c), s.parent);
      } else if (s.kind === 269 || s.kind === 268) {
        const c = e.getSymbolAtLocation(o);
        c && (i || (i = f_())).add(bo(c), s);
      }
    }
    return {
      getImportsForExportInfo: ({ moduleSymbol: o, exportKind: s, targetFlags: c, symbol: f }) => {
        if (!(c & 111551) && Zu(t))
          return rt;
        const d = i == null ? void 0 : i.get(bo(o));
        if (!d)
          return rt;
        const y = VZ(t, s, r);
        return d.map((h) => ({ declaration: h, importKind: y, symbol: f, targetFlags: c }));
      }
    };
  }
  function LB(e, t) {
    if (!Zu(e))
      return !1;
    if (e.commonJsModuleIndicator && !e.externalModuleIndicator)
      return !0;
    if (e.externalModuleIndicator && !e.commonJsModuleIndicator)
      return !1;
    const r = t.getCompilerOptions();
    if (r.configFile)
      return au(r) < 5;
    for (const i of t.getSourceFiles())
      if (!(i === e || !Zu(i) || t.isSourceFileFromExternalLibrary(i))) {
        if (i.commonJsModuleIndicator && !i.externalModuleIndicator)
          return !0;
        if (i.externalModuleIndicator && !i.commonJsModuleIndicator)
          return !1;
      }
    return !0;
  }
  function k1e(e, t) {
    return Lm((r) => r ? t.getPackageJsonAutoImportProvider().getTypeChecker() : e.getTypeChecker());
  }
  function SGe(e, t, r, i, o, s, c, f, d) {
    const y = Zu(t), h = e.getCompilerOptions(), E = Wx(e, c), A = k1e(e, c), L = vl(h), I = QF(L), O = d ? (V) => ({ moduleSpecifiers: B1.tryGetModuleSpecifiersFromCache(V, t, E, f), computedWithoutCache: !1 }) : (V, H) => B1.getModuleSpecifiersWithCacheInfo(V, H, h, t, E, f);
    let k = 0;
    const G = ca(s, (V, H) => {
      const te = A(V.isFromPackageJson), { computedWithoutCache: X, moduleSpecifiers: Y } = O(V.moduleSymbol, te), P = !!(V.targetFlags & 111551), de = UZ(i, !0, V.symbol, V.targetFlags, te, h);
      return k += X ? 1 : 0, ia(Y, (re) => {
        var ye;
        if (I && Gx(re))
          return;
        if (!P && y && r !== void 0)
          return { kind: 1, moduleSpecifier: re, usagePosition: r, exportInfo: V, isReExport: H > 0 };
        const ae = VZ(t, V.exportKind, h);
        let W;
        if (r !== void 0 && ae === 3 && V.exportKind === 0) {
          const ce = te.resolveExternalModuleSymbol(V.moduleSymbol);
          let me;
          ce !== V.moduleSymbol && (me = (ye = L9(ce, te, h)) == null ? void 0 : ye.name), me || (me = zZ(V.moduleSymbol, ts(h), !1)), W = { namespacePrefix: me, usagePosition: r };
        }
        return {
          kind: 3,
          moduleSpecifier: re,
          importKind: ae,
          useRequire: o,
          addAsTypeOnly: de,
          exportInfo: V,
          isReExport: H > 0,
          qualification: W
        };
      });
    });
    return { computedWithoutCacheCount: k, fixes: G };
  }
  function xGe(e, t, r, i, o, s, c, f, d, y) {
    const h = Jt(t, (E) => AGe(E, s, c, r.getTypeChecker(), r.getCompilerOptions()));
    return h ? { fixes: [h] } : SGe(r, i, o, s, c, e, f, d, y);
  }
  function AGe({ declaration: e, importKind: t, symbol: r, targetFlags: i }, o, s, c, f) {
    var d;
    const y = (d = xN(e)) == null ? void 0 : d.text;
    if (y) {
      const h = s ? 4 : UZ(o, !0, r, i, c, f);
      return { kind: 3, moduleSpecifier: y, importKind: t, addAsTypeOnly: h, useRequire: s };
    }
  }
  function w1e(e, t, r, i) {
    const o = aa(e.sourceFile, r);
    let s;
    if (t === _._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code)
      s = kGe(e, o);
    else if (je(o))
      if (t === _._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code) {
        const f = Sj(jZ(e.sourceFile, e.program.getTypeChecker(), o, e.program.getCompilerOptions())), d = O1e(e.sourceFile, o, f, e.program);
        return d && [{ fix: d, symbolName: f, errorIdentifierText: o.text }];
      } else
        s = RGe(e, o, i);
    else
      return;
    const c = bw(e.sourceFile, e.preferences, e.host);
    return s && CGe(s, e.sourceFile, e.program, c, e.host);
  }
  function CGe(e, t, r, i, o) {
    const s = (c) => zs(c, o.getCurrentDirectory(), J0(o));
    return aI(e, (c, f) => r1(!!c.isJsxNamespaceFix, !!f.isJsxNamespaceFix) || Ws(c.fix.kind, f.fix.kind) || R1e(c.fix, f.fix, t, r, i.allowsImportingSpecifier, s));
  }
  function D1e(e, t, r, i, o) {
    if (kt(e))
      return e[0].kind === 0 || e[0].kind === 2 ? e[0] : e.reduce((s, c) => R1e(c, s, t, r, i.allowsImportingSpecifier, (f) => zs(f, o.getCurrentDirectory(), J0(o))) === -1 ? c : s);
  }
  function R1e(e, t, r, i, o, s) {
    return e.kind !== 0 && t.kind !== 0 ? r1(o(t.moduleSpecifier), o(e.moduleSpecifier)) || IGe(e.moduleSpecifier, t.moduleSpecifier, r, i) || r1(N1e(e, r, i.getCompilerOptions(), s), N1e(t, r, i.getCompilerOptions(), s)) || aO(e.moduleSpecifier, t.moduleSpecifier) : 0;
  }
  function N1e(e, t, r, i) {
    var o;
    if (e.isReExport && ((o = e.exportInfo) != null && o.moduleFileName) && vl(r) === 2 && LGe(e.exportInfo.moduleFileName)) {
      const s = i(mi(e.exportInfo.moduleFileName));
      return xa(t.path, s);
    }
    return !1;
  }
  function LGe(e) {
    return mu(e, [".js", ".jsx", ".d.ts", ".ts", ".tsx"], !0) === "index";
  }
  function IGe(e, t, r, i) {
    return xa(e, "node:") && !xa(t, "node:") ? b9(r, i) ? -1 : 1 : xa(t, "node:") && !xa(e, "node:") ? b9(r, i) ? 1 : -1 : 0;
  }
  function kGe({ sourceFile: e, program: t, host: r, preferences: i }, o) {
    const s = t.getTypeChecker(), c = wGe(o, s);
    if (!c)
      return;
    const f = s.getAliasedSymbol(c), d = c.name, y = [{ symbol: c, moduleSymbol: f, moduleFileName: void 0, exportKind: 3, targetFlags: f.flags, isFromPackageJson: !1 }], h = LB(e, t);
    return CB(y, void 0, !1, h, t, e, r, i).fixes.map((A) => {
      var L;
      return { fix: A, symbolName: d, errorIdentifierText: (L = ai(o, je)) == null ? void 0 : L.text };
    });
  }
  function wGe(e, t) {
    const r = je(e) ? t.getSymbolAtLocation(e) : void 0;
    if (M3(r))
      return r;
    const { parent: i } = e;
    if (Qu(i) && i.tagName === e || Nx(i)) {
      const o = t.resolveName(t.getJsxNamespace(i), Qu(i) ? e : i, 111551, !1);
      if (M3(o))
        return o;
    }
  }
  function VZ(e, t, r, i) {
    if (r.verbatimModuleSyntax && (au(r) === 1 || e.impliedNodeFormat === 1))
      return 3;
    switch (t) {
      case 0:
        return 0;
      case 1:
        return 1;
      case 2:
        return PGe(e, r, !!i);
      case 3:
        return DGe(e, r, !!i);
      default:
        return D.assertNever(t);
    }
  }
  function DGe(e, t, r) {
    if (ET(t))
      return 1;
    const i = au(t);
    switch (i) {
      case 2:
      case 1:
      case 3:
        return fr(e) && (Zl(e) || r) ? 2 : 3;
      case 4:
      case 5:
      case 6:
      case 7:
      case 99:
      case 0:
        return 2;
      case 100:
      case 199:
        return e.impliedNodeFormat === 99 ? 2 : 3;
      default:
        return D.assertNever(i, `Unexpected moduleKind ${i}`);
    }
  }
  function RGe({ sourceFile: e, program: t, cancellationToken: r, host: i, preferences: o }, s, c) {
    const f = t.getTypeChecker(), d = t.getCompilerOptions();
    return ca(jZ(e, f, s, d), (y) => {
      if (y === "default")
        return;
      const h = mx(s), E = LB(e, t), A = OGe(y, UI(s), HT(s), r, e, t, c, i, o);
      return Ro(u_(A.values(), (L) => CB(L, s.getStart(e), h, E, t, e, i, o).fixes), (L) => ({ fix: L, symbolName: y, errorIdentifierText: s.text, isJsxNamespaceFix: y !== s.text }));
    });
  }
  function O1e(e, t, r, i) {
    const o = i.getTypeChecker(), s = o.resolveName(r, t, 111551, !0);
    if (!s)
      return;
    const c = o.getTypeOnlyAliasDeclaration(s);
    if (!(!c || Zn(c) !== e))
      return { kind: 4, typeOnlyAliasDeclaration: c };
  }
  function jZ(e, t, r, i) {
    const o = r.parent;
    if ((Qu(o) || Dx(o)) && o.tagName === r && mQ(i.jsx)) {
      const s = t.getJsxNamespace(e);
      if (NGe(s, r, t))
        return !KI(r.text) && !t.resolveName(r.text, r, 111551, !1) ? [r.text, s] : [s];
    }
    return [r.text];
  }
  function NGe(e, t, r) {
    if (KI(t.text))
      return !0;
    const i = r.resolveName(e, t, 111551, !0);
    return !i || kt(i.declarations, _1) && !(i.flags & 111551);
  }
  function OGe(e, t, r, i, o, s, c, f, d) {
    var y;
    const h = f_(), E = bw(o, d, f), A = (y = f.getModuleSpecifierCache) == null ? void 0 : y.call(f), L = Lm((O) => Wx(O ? f.getPackageJsonAutoImportProvider() : s, f));
    function I(O, k, G, V, H, te) {
      const X = L(te);
      if (k && vQ(H, o, k, d, E, X, A) || !k && E.allowsImportingAmbientModule(O, X)) {
        const Y = H.getTypeChecker();
        h.add(fve(G, Y).toString(), { symbol: G, moduleSymbol: O, moduleFileName: k == null ? void 0 : k.fileName, exportKind: V, targetFlags: cf(G, Y).flags, isFromPackageJson: te });
      }
    }
    return bQ(s, f, d, c, (O, k, G, V) => {
      const H = G.getTypeChecker();
      i.throwIfCancellationRequested();
      const te = G.getCompilerOptions(), X = C9(O, H, te);
      X && (X.name === e || zZ(O, ts(te), t) === e) && j1e(X.resolvedSymbol, r) && I(O, k, X.symbol, X.exportKind, G, V);
      const Y = H.tryGetMemberInModuleExportsAndProperties(e, O);
      Y && j1e(Y, r) && I(O, k, Y, 0, G, V);
    }), h;
  }
  function PGe(e, t, r) {
    const i = ET(t), o = fr(e);
    if (!o && au(t) >= 5)
      return i ? 1 : 2;
    if (o)
      return Zl(e) || r ? i ? 1 : 2 : 3;
    for (const s of e.statements)
      if (su(s) && !Al(s.moduleReference))
        return 3;
    return i ? 1 : 3;
  }
  function HZ(e, t, r, i, o, s, c) {
    let f;
    const d = gr.ChangeTracker.with(e, (y) => {
      f = MGe(y, t, r, i, o, s, c);
    });
    return ro(JZ, d, f, KZ, _.Add_all_missing_imports);
  }
  function MGe(e, t, r, i, o, s, c) {
    const f = xp(t, c);
    switch (i.kind) {
      case 0:
        return WZ(e, t, i), [_.Change_0_to_1, r, `${i.namespacePrefix}.${r}`];
      case 1:
        return F1e(e, t, i, f), [_.Change_0_to_1, r, B1e(i.moduleSpecifier, f) + r];
      case 2: {
        const { importClauseOrBindingPattern: d, importKind: y, addAsTypeOnly: h, moduleSpecifier: E } = i;
        M1e(e, t, d, y === 1 ? { name: r, addAsTypeOnly: h } : void 0, y === 0 ? [{ name: r, addAsTypeOnly: h }] : rt, s, c);
        const A = V_(E);
        return o ? [_.Import_0_from_1, r, A] : [_.Update_import_from_0, A];
      }
      case 3: {
        const { importKind: d, moduleSpecifier: y, addAsTypeOnly: h, useRequire: E, qualification: A } = i, L = E ? U1e : G1e, I = d === 1 ? { name: r, addAsTypeOnly: h } : void 0, O = d === 0 ? [{ name: r, addAsTypeOnly: h }] : void 0, k = d === 2 || d === 3 ? { importKind: d, name: (A == null ? void 0 : A.namespacePrefix) || r, addAsTypeOnly: h } : void 0;
        return i9(e, t, L(y, f, I, O, k, s), !0, c), A && WZ(e, t, A), o ? [_.Import_0_from_1, r, y] : [_.Add_import_from_0, y];
      }
      case 4: {
        const { typeOnlyAliasDeclaration: d } = i, y = FGe(e, d, s, t, c);
        return y.kind === 273 ? [_.Remove_type_from_import_of_0_from_1, r, P1e(y.parent.parent)] : [_.Remove_type_from_import_declaration_from_0, P1e(y)];
      }
      default:
        return D.assertNever(i, `Unexpected fix kind ${i.kind}`);
    }
  }
  function P1e(e) {
    var t, r;
    return e.kind === 268 ? ((r = ai((t = ai(e.moduleReference, zm)) == null ? void 0 : t.expression, xs)) == null ? void 0 : r.text) || e.moduleReference.getText() : oo(e.parent.moduleSpecifier, jo).text;
  }
  function FGe(e, t, r, i, o) {
    const s = U3(r);
    switch (t.kind) {
      case 273:
        if (t.isTypeOnly) {
          const f = $_.detectImportSpecifierSorting(t.parent.elements, o);
          if (t.parent.elements.length > 1 && f) {
            e.delete(i, t);
            const d = N.updateImportSpecifier(t, !1, t.propertyName, t.name), y = $_.getOrganizeImportsComparer(o, f === 2), h = $_.getImportSpecifierInsertionIndex(t.parent.elements, d, y);
            e.insertImportSpecifierAtIndex(i, d, t.parent, h);
          } else
            e.deleteRange(i, t.getFirstToken());
          return t;
        } else
          return D.assert(t.parent.parent.isTypeOnly), c(t.parent.parent), t.parent.parent;
      case 270:
        return c(t), t;
      case 271:
        return c(t.parent), t.parent;
      case 268:
        return e.deleteRange(i, t.getChildAt(1)), t;
      default:
        D.failBadSyntaxKind(t);
    }
    function c(f) {
      if (e.delete(i, q$(f, i)), s) {
        const d = ai(f.namedBindings, xy);
        if (d && d.elements.length > 1) {
          $_.detectImportSpecifierSorting(d.elements, o) && t.kind === 273 && d.elements.indexOf(t) !== 0 && (e.delete(i, t), e.insertImportSpecifierAtIndex(i, t, d, 0));
          for (const y of d.elements)
            y !== t && !y.isTypeOnly && e.insertModifierBefore(i, 154, y);
        }
      }
    }
  }
  function M1e(e, t, r, i, o, s, c) {
    var f;
    if (r.kind === 203) {
      i && E(r, i.name, "default");
      for (const A of o)
        E(r, A.name, void 0);
      return;
    }
    const d = r.isTypeOnly && kt([i, ...o], (A) => (A == null ? void 0 : A.addAsTypeOnly) === 4), y = r.namedBindings && ((f = ai(r.namedBindings, xy)) == null ? void 0 : f.elements), h = d && U3(s);
    if (i && (D.assert(!r.name, "Cannot add a default import to an import clause that already has one"), e.insertNodeAt(t, r.getStart(t), N.createIdentifier(i.name), { suffix: ", " })), o.length) {
      let A;
      if (typeof c.organizeImportsIgnoreCase == "boolean")
        A = c.organizeImportsIgnoreCase;
      else if (y) {
        const k = $_.detectImportSpecifierSorting(y, c);
        k !== 3 && (A = k === 2);
      }
      A === void 0 && (A = $_.detectSorting(t, c) === 2);
      const L = $_.getOrganizeImportsComparer(c, A), I = sy(o.map((k) => N.createImportSpecifier((!r.isTypeOnly || d) && A6(k), void 0, N.createIdentifier(k.name))), (k, G) => $_.compareImportOrExportSpecifiers(k, G, L)), O = (y == null ? void 0 : y.length) && $_.detectImportSpecifierSorting(y, c);
      if (O && !(A && O === 1))
        for (const k of I) {
          const G = h && !k.isTypeOnly ? 0 : $_.getImportSpecifierInsertionIndex(y, k, L);
          e.insertImportSpecifierAtIndex(t, k, r.namedBindings, G);
        }
      else if (y != null && y.length)
        for (const k of I)
          e.insertNodeInListAfter(t, qo(y), k, y);
      else if (I.length) {
        const k = N.createNamedImports(I);
        r.namedBindings ? e.replaceNode(t, r.namedBindings, k) : e.insertNodeAfter(t, D.checkDefined(r.name, "Import clause must have either named imports or a default import"), k);
      }
    }
    if (d && (e.delete(t, q$(r, t)), h && y))
      for (const A of y)
        e.insertModifierBefore(t, 154, A);
    function E(A, L, I) {
      const O = N.createBindingElement(void 0, I, L);
      A.elements.length ? e.insertNodeInListAfter(t, qo(A.elements), O) : e.replaceNode(t, A, N.createObjectBindingPattern([O]));
    }
  }
  function WZ(e, t, { namespacePrefix: r, usagePosition: i }) {
    e.insertText(t, i, r + ".");
  }
  function F1e(e, t, { moduleSpecifier: r, usagePosition: i }, o) {
    e.insertText(t, i, B1e(r, o));
  }
  function B1e(e, t) {
    const r = eve(t);
    return `import(${r}${e}${r}).`;
  }
  function A6({ addAsTypeOnly: e }) {
    return e === 2;
  }
  function G1e(e, t, r, i, o, s) {
    const c = ZF(e, t);
    let f;
    if (r !== void 0 || i != null && i.length) {
      const d = (!r || A6(r)) && Yn(i, A6) || s.verbatimModuleSyntax && (r == null ? void 0 : r.addAsTypeOnly) !== 4 && !kt(i, (y) => y.addAsTypeOnly === 4);
      f = hA(f, Dy(r && N.createIdentifier(r.name), i == null ? void 0 : i.map(({ addAsTypeOnly: y, name: h }) => N.createImportSpecifier(!d && y === 2, void 0, N.createIdentifier(h))), e, t, d));
    }
    if (o) {
      const d = o.importKind === 3 ? N.createImportEqualsDeclaration(void 0, A6(o), N.createIdentifier(o.name), N.createExternalModuleReference(c)) : N.createImportDeclaration(void 0, N.createImportClause(A6(o), void 0, N.createNamespaceImport(N.createIdentifier(o.name))), c, void 0);
      f = hA(f, d);
    }
    return D.checkDefined(f);
  }
  function U1e(e, t, r, i, o) {
    const s = ZF(e, t);
    let c;
    if (r || i != null && i.length) {
      const f = (i == null ? void 0 : i.map(({ name: y }) => N.createBindingElement(void 0, void 0, y))) || [];
      r && f.unshift(N.createBindingElement(void 0, "default", r.name));
      const d = V1e(N.createObjectBindingPattern(f), s);
      c = hA(c, d);
    }
    if (o) {
      const f = V1e(o.name, s);
      c = hA(c, f);
    }
    return D.checkDefined(c);
  }
  function V1e(e, t) {
    return N.createVariableStatement(void 0, N.createVariableDeclarationList([
      N.createVariableDeclaration(typeof e == "string" ? N.createIdentifier(e) : e, void 0, void 0, N.createCallExpression(N.createIdentifier("require"), void 0, [t]))
    ], 2));
  }
  function j1e({ declarations: e }, t) {
    return kt(e, (r) => !!(K8(r) & t));
  }
  function zZ(e, t, r) {
    return qZ(Ud(V_(e.name)), t, r);
  }
  function qZ(e, t, r) {
    const i = mu(gA(e, "/index"));
    let o = "", s = !0;
    const c = i.charCodeAt(0);
    mh(c, t) ? (o += String.fromCharCode(c), r && (o = o.toUpperCase())) : s = !1;
    for (let f = 1; f < i.length; f++) {
      const d = i.charCodeAt(f), y = G0(d, t);
      if (y) {
        let h = String.fromCharCode(d);
        s || (h = h.toUpperCase()), o += h;
      }
      s = y;
    }
    return ax(o) ? `_${o}` : o || "_";
  }
  var JZ, KZ, XZ, BGe = C({
    "src/services/codefixes/importFixes.ts"() {
      $r(), Eo(), JZ = "import", KZ = "fixMissingImport", XZ = [
        _.Cannot_find_name_0.code,
        _.Cannot_find_name_0_Did_you_mean_1.code,
        _.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,
        _.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,
        _.Cannot_find_namespace_0.code,
        _._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code,
        _._0_only_refers_to_a_type_but_is_being_used_as_a_value_here.code,
        _.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer.code,
        _._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code
      ], po({
        errorCodes: XZ,
        getCodeActions(e) {
          const { errorCode: t, preferences: r, sourceFile: i, span: o, program: s } = e, c = w1e(e, t, o.start, !0);
          if (c)
            return c.map(({ fix: f, symbolName: d, errorIdentifierText: y }) => HZ(e, i, d, f, d !== y, s.getCompilerOptions(), r));
        },
        fixIds: [KZ],
        getAllCodeActions: (e) => {
          const { sourceFile: t, program: r, preferences: i, host: o, cancellationToken: s } = e, c = x1e(t, r, !0, i, o, s);
          return Qx(e, XZ, (f) => c.addImportFromDiagnostic(f, e)), $x(gr.ChangeTracker.with(e, c.writeFixes));
        }
      });
    }
  });
  function H1e(e, t, r) {
    const i = nn(e.getSemanticDiagnostics(t), (c) => c.start === r.start && c.length === r.length);
    if (i === void 0 || i.relatedInformation === void 0)
      return;
    const o = nn(i.relatedInformation, (c) => c.code === _.This_type_parameter_might_need_an_extends_0_constraint.code);
    if (o === void 0 || o.file === void 0 || o.start === void 0 || o.length === void 0)
      return;
    let s = $ee(o.file, wc(o.start, o.length));
    if (s !== void 0 && (je(s) && Fl(s.parent) && (s = s.parent), Fl(s))) {
      if (Dk(s.parent))
        return;
      const c = aa(t, r.start), f = e.getTypeChecker();
      return { constraint: UGe(f, c) || GGe(o.messageText), declaration: s, token: c };
    }
  }
  function W1e(e, t, r, i, o, s) {
    const { declaration: c, constraint: f } = s, d = t.getTypeChecker();
    if (Ha(f))
      e.insertText(o, c.name.end, ` extends ${f}`);
    else {
      const y = ts(t.getCompilerOptions()), h = e2({ program: t, host: i }), E = $T(o, t, r, i), A = uG(d, E, f, void 0, y, void 0, h);
      A && (e.replaceNode(o, c, N.updateTypeParameterDeclaration(c, void 0, c.name, A, c.default)), E.writeFixes(e));
    }
  }
  function GGe(e) {
    const [t, r] = Wv(e, `
`, 0).match(/`extends (.*)`/) || [];
    return r;
  }
  function UGe(e, t) {
    return Gi(t.parent) ? e.getTypeArgumentConstraint(t.parent) : (vt(t) ? e.getContextualType(t) : void 0) || e.getTypeAtLocation(t);
  }
  var IB, YZ, VGe = C({
    "src/services/codefixes/fixAddMissingConstraint.ts"() {
      $r(), Eo(), IB = "addMissingConstraint", YZ = [
        _.Type_0_is_not_comparable_to_type_1.code,
        _.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated.code,
        _.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code,
        _.Type_0_is_not_assignable_to_type_1.code,
        _.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code,
        _.Property_0_is_incompatible_with_index_signature.code,
        _.Property_0_in_type_1_is_not_assignable_to_type_2.code,
        _.Type_0_does_not_satisfy_the_constraint_1.code
      ], po({
        errorCodes: YZ,
        getCodeActions(e) {
          const { sourceFile: t, span: r, program: i, preferences: o, host: s } = e, c = H1e(i, t, r);
          if (c === void 0)
            return;
          const f = gr.ChangeTracker.with(e, (d) => W1e(d, i, o, s, t, c));
          return [ro(IB, f, _.Add_extends_constraint, IB, _.Add_extends_constraint_to_all_type_parameters)];
        },
        fixIds: [IB],
        getAllCodeActions: (e) => {
          const { program: t, preferences: r, host: i } = e, o = /* @__PURE__ */ new Map();
          return $x(gr.ChangeTracker.with(e, (s) => {
            Qx(e, YZ, (c) => {
              const f = H1e(t, c.file, wc(c.start, c.length));
              if (f && vp(o, ps(f.declaration)))
                return W1e(s, t, r, i, c.file, f);
            });
          }));
        }
      });
    }
  });
  function z1e(e, t, r, i) {
    switch (r) {
      case _.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code:
      case _.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code:
      case _.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code:
      case _.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code:
      case _.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code:
        return jGe(e, t.sourceFile, i);
      case _.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code:
      case _.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code:
      case _.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code:
      case _.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code:
        return HGe(e, t.sourceFile, i);
      default:
        D.fail("Unexpected error code: " + r);
    }
  }
  function jGe(e, t, r) {
    const i = J1e(t, r);
    if (Zu(t)) {
      e.addJSDocTags(t, i, [N.createJSDocOverrideTag(N.createIdentifier("override"))]);
      return;
    }
    const o = i.modifiers || rt, s = nn(o, Ex), c = nn(o, Hfe), f = nn(o, (E) => F$(E.kind)), d = Li(o, Fu), y = c ? c.end : s ? s.end : f ? f.end : d ? Ko(t.text, d.end) : i.getStart(t), h = f || s || c ? { prefix: " " } : { suffix: " " };
    e.insertModifierAt(t, y, 161, h);
  }
  function HGe(e, t, r) {
    const i = J1e(t, r);
    if (Zu(t)) {
      e.filterJSDocTags(t, i, K4(J7));
      return;
    }
    const o = nn(i.modifiers, Wfe);
    D.assertIsDefined(o), e.deleteModifier(t, o);
  }
  function q1e(e) {
    switch (e.kind) {
      case 173:
      case 169:
      case 171:
      case 174:
      case 175:
        return !0;
      case 166:
        return nf(e, e.parent);
      default:
        return !1;
    }
  }
  function J1e(e, t) {
    const r = aa(e, t), i = nr(r, (o) => di(o) ? "quit" : q1e(o));
    return D.assert(i && q1e(i)), i;
  }
  var $Z, nL, Iw, QZ, ZZ, WGe = C({
    "src/services/codefixes/fixOverrideModifier.ts"() {
      $r(), Eo(), $Z = "fixOverrideModifier", nL = "fixAddOverrideModifier", Iw = "fixRemoveOverrideModifier", QZ = [
        _.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code,
        _.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code,
        _.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code,
        _.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code,
        _.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code,
        _.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code,
        _.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code,
        _.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code,
        _.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code
      ], ZZ = {
        [_.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code]: {
          descriptions: _.Add_override_modifier,
          fixId: nL,
          fixAllDescriptions: _.Add_all_missing_override_modifiers
        },
        [_.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code]: {
          descriptions: _.Add_override_modifier,
          fixId: nL,
          fixAllDescriptions: _.Add_all_missing_override_modifiers
        },
        [_.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code]: {
          descriptions: _.Remove_override_modifier,
          fixId: Iw,
          fixAllDescriptions: _.Remove_all_unnecessary_override_modifiers
        },
        [_.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code]: {
          descriptions: _.Remove_override_modifier,
          fixId: Iw,
          fixAllDescriptions: _.Remove_override_modifier
        },
        [_.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code]: {
          descriptions: _.Add_override_modifier,
          fixId: nL,
          fixAllDescriptions: _.Add_all_missing_override_modifiers
        },
        [_.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code]: {
          descriptions: _.Add_override_modifier,
          fixId: nL,
          fixAllDescriptions: _.Add_all_missing_override_modifiers
        },
        [_.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code]: {
          descriptions: _.Add_override_modifier,
          fixId: nL,
          fixAllDescriptions: _.Remove_all_unnecessary_override_modifiers
        },
        [_.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code]: {
          descriptions: _.Remove_override_modifier,
          fixId: Iw,
          fixAllDescriptions: _.Remove_all_unnecessary_override_modifiers
        },
        [_.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code]: {
          descriptions: _.Remove_override_modifier,
          fixId: Iw,
          fixAllDescriptions: _.Remove_all_unnecessary_override_modifiers
        }
      }, po({
        errorCodes: QZ,
        getCodeActions: function(t) {
          const { errorCode: r, span: i } = t, o = ZZ[r];
          if (!o)
            return rt;
          const { descriptions: s, fixId: c, fixAllDescriptions: f } = o, d = gr.ChangeTracker.with(t, (y) => z1e(y, t, r, i.start));
          return [
            pZ($Z, d, s, c, f)
          ];
        },
        fixIds: [$Z, nL, Iw],
        getAllCodeActions: (e) => Cs(e, QZ, (t, r) => {
          const { code: i, start: o } = r, s = ZZ[i];
          !s || s.fixId !== e.fixId || z1e(t, e, i, o);
        })
      });
    }
  });
  function K1e(e, t, r, i) {
    const o = xp(t, i), s = N.createStringLiteral(r.name.text, o === 0);
    e.replaceNode(t, r, RM(r) ? N.createElementAccessChain(r.expression, r.questionDotToken, s) : N.createElementAccessExpression(r.expression, s));
  }
  function X1e(e, t) {
    return oo(aa(e, t).parent, Fr);
  }
  var kB, eee, zGe = C({
    "src/services/codefixes/fixNoPropertyAccessFromIndexSignature.ts"() {
      $r(), Eo(), kB = "fixNoPropertyAccessFromIndexSignature", eee = [
        _.Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0.code
      ], po({
        errorCodes: eee,
        fixIds: [kB],
        getCodeActions(e) {
          const { sourceFile: t, span: r, preferences: i } = e, o = X1e(t, r.start), s = gr.ChangeTracker.with(e, (c) => K1e(c, e.sourceFile, o, i));
          return [ro(kB, s, [_.Use_element_access_for_0, o.name.text], kB, _.Use_element_access_for_all_undeclared_properties)];
        },
        getAllCodeActions: (e) => Cs(e, eee, (t, r) => K1e(t, r.file, X1e(r.file, r.start), e.preferences))
      });
    }
  });
  function Y1e(e, t, r, i) {
    const o = aa(t, r);
    if (!qC(o))
      return;
    const s = Sd(o, !1, !1);
    if (!(!yc(s) && !Bs(s)) && !qi(Sd(s, !1, !1))) {
      const c = D.checkDefined(bs(s, 98, t)), { name: f } = s, d = D.checkDefined(s.body);
      return Bs(s) ? f && ul.Core.isSymbolReferencedInFile(f, i, t, d) ? void 0 : (e.delete(t, c), f && e.delete(t, f), e.insertText(t, d.pos, " =>"), [_.Convert_function_expression_0_to_arrow_function, f ? f.text : A9]) : (e.replaceNode(t, c, N.createToken(85)), e.insertText(t, f.end, " = "), e.insertText(t, d.pos, " =>"), [_.Convert_function_declaration_0_to_arrow_function, f.text]);
    }
  }
  var wB, tee, qGe = C({
    "src/services/codefixes/fixImplicitThis.ts"() {
      $r(), Eo(), wB = "fixImplicitThis", tee = [_.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code], po({
        errorCodes: tee,
        getCodeActions: function(t) {
          const { sourceFile: r, program: i, span: o } = t;
          let s;
          const c = gr.ChangeTracker.with(t, (f) => {
            s = Y1e(f, r, o.start, i.getTypeChecker());
          });
          return s ? [ro(wB, c, s, wB, _.Fix_all_implicit_this_errors)] : rt;
        },
        fixIds: [wB],
        getAllCodeActions: (e) => Cs(e, tee, (t, r) => {
          Y1e(t, r.file, r.start, e.program.getTypeChecker());
        })
      });
    }
  });
  function $1e(e, t, r) {
    var i;
    const o = aa(e, t);
    if (je(o)) {
      const s = nr(o, Wc);
      if (s === void 0)
        return;
      const c = jo(s.moduleSpecifier) ? s.moduleSpecifier.text : void 0;
      if (c === void 0)
        return;
      const f = RA(e, c, void 0);
      if (f === void 0)
        return;
      const d = r.getSourceFile(f.resolvedFileName);
      if (d === void 0 || Ew(r, d))
        return;
      const y = d.symbol, h = (i = ai(y.valueDeclaration, Nm)) == null ? void 0 : i.locals;
      if (h === void 0)
        return;
      const E = h.get(o.escapedText);
      if (E === void 0)
        return;
      const A = KGe(E);
      return A === void 0 ? void 0 : { exportName: { node: o, isTypeOnly: cC(A) }, node: A, moduleSourceFile: d, moduleSpecifier: c };
    }
  }
  function JGe(e, t, { exportName: r, node: i, moduleSourceFile: o }) {
    const s = DB(o, r.isTypeOnly);
    s ? Q1e(e, t, o, s, [r]) : uO(i) ? e.insertExportModifier(o, i) : Z1e(e, t, o, [r]);
  }
  function nee(e, t, r, i, o) {
    Le(i) && (o ? Q1e(e, t, r, o, i) : Z1e(e, t, r, i));
  }
  function DB(e, t) {
    const r = (i) => eu(i) && (t && i.isTypeOnly || !i.isTypeOnly);
    return Li(e.statements, r);
  }
  function Q1e(e, t, r, i, o) {
    const s = i.exportClause && J_(i.exportClause) ? i.exportClause.elements : N.createNodeArray([]), c = !i.isTypeOnly && !!(j_(t.getCompilerOptions()) || nn(s, (f) => f.isTypeOnly));
    e.replaceNode(r, i, N.updateExportDeclaration(i, i.modifiers, i.isTypeOnly, N.createNamedExports(N.createNodeArray([...s, ...eEe(o, c)], s.hasTrailingComma)), i.moduleSpecifier, i.assertClause));
  }
  function Z1e(e, t, r, i) {
    e.insertNodeAtEndOfScope(r, r, N.createExportDeclaration(void 0, !1, N.createNamedExports(eEe(i, j_(t.getCompilerOptions()))), void 0, void 0));
  }
  function eEe(e, t) {
    return N.createNodeArray(jt(e, (r) => N.createExportSpecifier(t && r.isTypeOnly, void 0, r.node)));
  }
  function KGe(e) {
    if (e.valueDeclaration === void 0)
      return Yc(e.declarations);
    const t = e.valueDeclaration, r = Ki(t) ? ai(t.parent.parent, uc) : void 0;
    return r && Le(r.declarationList.declarations) === 1 ? r : t;
  }
  var RB, ree, XGe = C({
    "src/services/codefixes/fixImportNonExportedMember.ts"() {
      $r(), Eo(), RB = "fixImportNonExportedMember", ree = [
        _.Module_0_declares_1_locally_but_it_is_not_exported.code
      ], po({
        errorCodes: ree,
        fixIds: [RB],
        getCodeActions(e) {
          const { sourceFile: t, span: r, program: i } = e, o = $1e(t, r.start, i);
          if (o === void 0)
            return;
          const s = gr.ChangeTracker.with(e, (c) => JGe(c, i, o));
          return [ro(RB, s, [_.Export_0_from_module_1, o.exportName.node.text, o.moduleSpecifier], RB, _.Export_all_referenced_locals)];
        },
        getAllCodeActions(e) {
          const { program: t } = e;
          return $x(gr.ChangeTracker.with(e, (r) => {
            const i = /* @__PURE__ */ new Map();
            Qx(e, ree, (o) => {
              const s = $1e(o.file, o.start, t);
              if (s === void 0)
                return;
              const { exportName: c, node: f, moduleSourceFile: d } = s;
              if (DB(d, c.isTypeOnly) === void 0 && uO(f))
                r.insertExportModifier(d, f);
              else {
                const y = i.get(d) || { typeOnlyExports: [], exports: [] };
                c.isTypeOnly ? y.typeOnlyExports.push(c) : y.exports.push(c), i.set(d, y);
              }
            }), i.forEach((o, s) => {
              const c = DB(s, !0);
              c && c.isTypeOnly ? (nee(r, t, s, o.typeOnlyExports, c), nee(r, t, s, o.exports, DB(s, !1))) : nee(r, t, s, [...o.exports, ...o.typeOnlyExports], c);
            });
          }));
        }
      });
    }
  });
  function YGe(e, t) {
    const r = aa(e, t);
    return nr(r, (i) => i.kind === 199);
  }
  function $Ge(e, t, r) {
    if (!r)
      return;
    let i = r.type, o = !1, s = !1;
    for (; i.kind === 187 || i.kind === 188 || i.kind === 193; )
      i.kind === 187 ? o = !0 : i.kind === 188 && (s = !0), i = i.type;
    const c = N.updateNamedTupleMember(r, r.dotDotDotToken || (s ? N.createToken(25) : void 0), r.name, r.questionToken || (o ? N.createToken(57) : void 0), i);
    c !== r && e.replaceNode(t, r, c);
  }
  var NB, tEe, QGe = C({
    "src/services/codefixes/fixIncorrectNamedTupleSyntax.ts"() {
      $r(), Eo(), NB = "fixIncorrectNamedTupleSyntax", tEe = [
        _.A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type.code,
        _.A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type.code
      ], po({
        errorCodes: tEe,
        getCodeActions: function(t) {
          const { sourceFile: r, span: i } = t, o = YGe(r, i.start), s = gr.ChangeTracker.with(t, (c) => $Ge(c, r, o));
          return [ro(NB, s, _.Move_labeled_tuple_element_modifiers_to_labels, NB, _.Move_labeled_tuple_element_modifiers_to_labels)];
        },
        fixIds: [NB]
      });
    }
  });
  function nEe(e, t, r, i) {
    const o = aa(e, t), s = o.parent;
    if ((i === _.No_overload_matches_this_call.code || i === _.Type_0_is_not_assignable_to_type_1.code) && !nm(s))
      return;
    const c = r.program.getTypeChecker();
    let f;
    if (Fr(s) && s.name === o) {
      D.assert(og(o), "Expected an identifier for spelling (property access)");
      let d = c.getTypeAtLocation(s.expression);
      s.flags & 32 && (d = c.getNonNullableType(d)), f = c.getSuggestedSymbolForNonexistentProperty(o, d);
    } else if (br(s) && s.operatorToken.kind === 101 && s.left === o && Ni(o)) {
      const d = c.getTypeAtLocation(s.right);
      f = c.getSuggestedSymbolForNonexistentProperty(o, d);
    } else if (Cd(s) && s.right === o) {
      const d = c.getSymbolAtLocation(s.left);
      d && d.flags & 1536 && (f = c.getSuggestedSymbolForNonexistentModule(s.right, d));
    } else if (Ld(s) && s.name === o) {
      D.assertNode(o, je, "Expected an identifier for spelling (import)");
      const d = nr(o, Wc), y = eUe(e, r, d);
      y && y.symbol && (f = c.getSuggestedSymbolForNonexistentModule(o, y.symbol));
    } else if (nm(s) && s.name === o) {
      D.assertNode(o, je, "Expected an identifier for JSX attribute");
      const d = nr(o, Qu), y = c.getContextualTypeForArgumentAtIndex(d, 0);
      f = c.getSuggestedSymbolForNonexistentJSXAttribute(o, y);
    } else if (Yr(s, 16384) && Uc(s) && s.name === o) {
      const d = nr(o, di), y = d ? Xp(d) : void 0, h = y ? c.getTypeAtLocation(y) : void 0;
      h && (f = c.getSuggestedSymbolForNonexistentClassMember(Sc(o), h));
    } else {
      const d = HT(o), y = Sc(o);
      D.assert(y !== void 0, "name should be defined"), f = c.getSuggestedSymbolForNonexistentSymbol(o, y, ZGe(d));
    }
    return f === void 0 ? void 0 : { node: o, suggestedSymbol: f };
  }
  function rEe(e, t, r, i, o) {
    const s = Ml(i);
    if (!P_(s, o) && Fr(r.parent)) {
      const c = i.valueDeclaration;
      c && gu(c) && Ni(c.name) ? e.replaceNode(t, r, N.createIdentifier(s)) : e.replaceNode(t, r.parent, N.createElementAccessExpression(r.parent.expression, N.createStringLiteral(s)));
    } else
      e.replaceNode(t, r, N.createIdentifier(s));
  }
  function ZGe(e) {
    let t = 0;
    return e & 4 && (t |= 1920), e & 2 && (t |= 788968), e & 1 && (t |= 111551), t;
  }
  function eUe(e, t, r) {
    if (!r || !xs(r.moduleSpecifier))
      return;
    const i = RA(e, r.moduleSpecifier.text, Tp(e, r.moduleSpecifier));
    if (i)
      return t.program.getSourceFile(i.resolvedFileName);
  }
  var iee, aee, tUe = C({
    "src/services/codefixes/fixSpelling.ts"() {
      $r(), Eo(), iee = "fixSpelling", aee = [
        _.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,
        _.Property_0_may_not_exist_on_type_1_Did_you_mean_2.code,
        _.Cannot_find_name_0_Did_you_mean_1.code,
        _.Could_not_find_name_0_Did_you_mean_1.code,
        _.Cannot_find_namespace_0_Did_you_mean_1.code,
        _.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,
        _.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,
        _._0_has_no_exported_member_named_1_Did_you_mean_2.code,
        _.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1.code,
        _.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1.code,
        _.No_overload_matches_this_call.code,
        _.Type_0_is_not_assignable_to_type_1.code
      ], po({
        errorCodes: aee,
        getCodeActions(e) {
          const { sourceFile: t, errorCode: r } = e, i = nEe(t, e.span.start, e, r);
          if (!i)
            return;
          const { node: o, suggestedSymbol: s } = i, c = ts(e.host.getCompilationSettings()), f = gr.ChangeTracker.with(e, (d) => rEe(d, t, o, s, c));
          return [ro("spelling", f, [_.Change_spelling_to_0, Ml(s)], iee, _.Fix_all_detected_spelling_errors)];
        },
        fixIds: [iee],
        getAllCodeActions: (e) => Cs(e, aee, (t, r) => {
          const i = nEe(r.file, r.start, e, r.code), o = ts(e.host.getCompilationSettings());
          i && rEe(t, e.sourceFile, i.node, i.suggestedSymbol, o);
        })
      });
    }
  });
  function iEe(e, t, r) {
    const i = e.createSymbol(4, t.escapedText);
    i.links.type = e.getTypeAtLocation(r);
    const o = lo([i]);
    return e.createAnonymousType(void 0, o, [], [], []);
  }
  function oee(e, t, r, i) {
    if (!t.body || !co(t.body) || Le(t.body.statements) !== 1)
      return;
    const o = us(t.body.statements);
    if (ou(o) && see(e, t, e.getTypeAtLocation(o.expression), r, i))
      return {
        declaration: t,
        kind: 0,
        expression: o.expression,
        statement: o,
        commentSource: o.expression
      };
    if (R1(o) && ou(o.statement)) {
      const s = N.createObjectLiteralExpression([N.createPropertyAssignment(o.label, o.statement.expression)]), c = iEe(e, o.label, o.statement.expression);
      if (see(e, t, c, r, i))
        return Js(t) ? {
          declaration: t,
          kind: 1,
          expression: s,
          statement: o,
          commentSource: o.statement.expression
        } : {
          declaration: t,
          kind: 0,
          expression: s,
          statement: o,
          commentSource: o.statement.expression
        };
    } else if (co(o) && Le(o.statements) === 1) {
      const s = us(o.statements);
      if (R1(s) && ou(s.statement)) {
        const c = N.createObjectLiteralExpression([N.createPropertyAssignment(s.label, s.statement.expression)]), f = iEe(e, s.label, s.statement.expression);
        if (see(e, t, f, r, i))
          return {
            declaration: t,
            kind: 0,
            expression: c,
            statement: o,
            commentSource: s
          };
      }
    }
  }
  function see(e, t, r, i, o) {
    if (o) {
      const s = e.getSignatureFromDeclaration(t);
      if (s) {
        Yr(t, 512) && (r = e.createPromiseType(r));
        const c = e.createSignature(t, s.typeParameters, s.thisParameter, s.parameters, r, void 0, s.minArgumentCount, s.flags);
        r = e.createAnonymousType(void 0, lo(), [c], [], []);
      } else
        r = e.getAnyType();
    }
    return e.isTypeAssignableTo(r, i);
  }
  function aEe(e, t, r, i) {
    const o = aa(t, r);
    if (!o.parent)
      return;
    const s = nr(o.parent, Qs);
    switch (i) {
      case _.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value.code:
        return !s || !s.body || !s.type || !df(s.type, o) ? void 0 : oee(e, s, e.getTypeFromTypeNode(s.type), !1);
      case _.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code:
        if (!s || !no(s.parent) || !s.body)
          return;
        const c = s.parent.arguments.indexOf(s), f = e.getContextualTypeForArgumentAtIndex(s.parent, c);
        return f ? oee(e, s, f, !0) : void 0;
      case _.Type_0_is_not_assignable_to_type_1.code:
        if (!_g(o) || !BA(o.parent) && !nm(o.parent))
          return;
        const d = nUe(o.parent);
        return !d || !Qs(d) || !d.body ? void 0 : oee(e, d, e.getTypeAtLocation(o.parent), !0);
    }
  }
  function nUe(e) {
    switch (e.kind) {
      case 257:
      case 166:
      case 205:
      case 169:
      case 299:
        return e.initializer;
      case 288:
        return e.initializer && (Pk(e.initializer) ? e.initializer.expression : void 0);
      case 300:
      case 168:
      case 302:
      case 351:
      case 344:
        return;
    }
  }
  function oEe(e, t, r, i) {
    zd(r);
    const o = d9(t);
    e.replaceNode(t, i, N.createReturnStatement(r), {
      leadingTriviaOption: gr.LeadingTriviaOption.Exclude,
      trailingTriviaOption: gr.TrailingTriviaOption.Exclude,
      suffix: o ? ";" : void 0
    });
  }
  function sEe(e, t, r, i, o, s) {
    const c = s || iQ(i) ? N.createParenthesizedExpression(i) : i;
    zd(o), JT(o, c), e.replaceNode(t, r.body, c);
  }
  function lEe(e, t, r, i) {
    e.replaceNode(t, r.body, N.createParenthesizedExpression(i));
  }
  function rUe(e, t, r) {
    const i = gr.ChangeTracker.with(e, (o) => oEe(o, e.sourceFile, t, r));
    return ro(OB, i, _.Add_a_return_statement, PB, _.Add_all_missing_return_statement);
  }
  function iUe(e, t, r, i) {
    const o = gr.ChangeTracker.with(e, (s) => sEe(s, e.sourceFile, t, r, i, !1));
    return ro(OB, o, _.Remove_braces_from_arrow_function_body, MB, _.Remove_braces_from_all_arrow_function_bodies_with_relevant_issues);
  }
  function aUe(e, t, r) {
    const i = gr.ChangeTracker.with(e, (o) => lEe(o, e.sourceFile, t, r));
    return ro(OB, i, _.Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal, FB, _.Wrap_all_object_literal_with_parentheses);
  }
  var OB, PB, MB, FB, lee, oUe = C({
    "src/services/codefixes/returnValueCorrect.ts"() {
      $r(), Eo(), OB = "returnValueCorrect", PB = "fixAddReturnStatement", MB = "fixRemoveBracesFromArrowFunctionBody", FB = "fixWrapTheBlockWithParen", lee = [
        _.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value.code,
        _.Type_0_is_not_assignable_to_type_1.code,
        _.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code
      ], po({
        errorCodes: lee,
        fixIds: [PB, MB, FB],
        getCodeActions: function(t) {
          const { program: r, sourceFile: i, span: { start: o }, errorCode: s } = t, c = aEe(r.getTypeChecker(), i, o, s);
          if (c)
            return c.kind === 0 ? Fn([rUe(t, c.expression, c.statement)], Js(c.declaration) ? iUe(t, c.declaration, c.expression, c.commentSource) : void 0) : [aUe(t, c.declaration, c.expression)];
        },
        getAllCodeActions: (e) => Cs(e, lee, (t, r) => {
          const i = aEe(e.program.getTypeChecker(), r.file, r.start, r.code);
          if (i)
            switch (e.fixId) {
              case PB:
                oEe(t, r.file, i.expression, i.statement);
                break;
              case MB:
                if (!Js(i.declaration))
                  return;
                sEe(t, r.file, i.declaration, i.expression, i.commentSource, !1);
                break;
              case FB:
                if (!Js(i.declaration))
                  return;
                lEe(t, r.file, i.declaration, i.expression);
                break;
              default:
                D.fail(JSON.stringify(e.fixId));
            }
        })
      });
    }
  });
  function cEe(e, t, r, i, o) {
    var s;
    const c = aa(e, t), f = c.parent;
    if (r === _.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code) {
      if (!(c.kind === 18 && Ls(f) && no(f.parent)))
        return;
      const L = vi(f.parent.arguments, (G) => G === f);
      if (L < 0)
        return;
      const I = i.getResolvedSignature(f.parent);
      if (!(I && I.declaration && I.parameters[L]))
        return;
      const O = I.parameters[L].valueDeclaration;
      if (!(O && Ba(O) && je(O.name)))
        return;
      const k = Ro(i.getUnmatchedProperties(i.getTypeAtLocation(f), i.getParameterType(I, L), !1, !1));
      return Le(k) ? { kind: 3, token: O.name, properties: k, parentDeclaration: f } : void 0;
    }
    if (!og(c))
      return;
    if (je(c) && kv(f) && f.initializer && Ls(f.initializer)) {
      const L = Ro(i.getUnmatchedProperties(i.getTypeAtLocation(f.initializer), i.getTypeAtLocation(c), !1, !1));
      return Le(L) ? { kind: 3, token: c, properties: L, parentDeclaration: f.initializer } : void 0;
    }
    if (je(c) && Qu(c.parent)) {
      const L = ts(o.getCompilerOptions()), I = _Ue(i, L, c.parent);
      return Le(I) ? { kind: 4, token: c, attributes: I, parentDeclaration: c.parent } : void 0;
    }
    if (je(c)) {
      const L = (s = i.getContextualType(c)) == null ? void 0 : s.getNonNullableType();
      if (L && ti(L) & 16) {
        const I = Yc(i.getSignaturesOfType(L, 0));
        return I === void 0 ? void 0 : { kind: 5, token: c, signature: I, sourceFile: e, parentDeclaration: bEe(c) };
      }
      if (no(f) && f.expression === c)
        return { kind: 2, token: c, call: f, sourceFile: e, modifierFlags: 0, parentDeclaration: bEe(c) };
    }
    if (!Fr(f))
      return;
    const d = j$(i.getTypeAtLocation(f.expression)), y = d.symbol;
    if (!y || !y.declarations)
      return;
    if (je(c) && no(f.parent)) {
      const L = nn(y.declarations, Jl), I = L == null ? void 0 : L.getSourceFile();
      if (L && I && !Ew(o, I))
        return { kind: 2, token: c, call: f.parent, sourceFile: e, modifierFlags: 1, parentDeclaration: L };
      const O = nn(y.declarations, qi);
      if (e.commonJsModuleIndicator)
        return;
      if (O && !Ew(o, O))
        return { kind: 2, token: c, call: f.parent, sourceFile: O, modifierFlags: 1, parentDeclaration: O };
    }
    const h = nn(y.declarations, di);
    if (!h && Ni(c))
      return;
    const E = h || nn(y.declarations, (L) => nd(L) || uf(L));
    if (E && !Ew(o, E.getSourceFile())) {
      const L = !uf(E) && (d.target || d) !== i.getDeclaredTypeOfSymbol(y);
      if (L && (Ni(c) || nd(E)))
        return;
      const I = E.getSourceFile(), O = uf(E) ? 0 : (L ? 32 : 0) | (pQ(c.text) ? 8 : 0), k = Zu(I), G = ai(f.parent, no);
      return { kind: 0, token: c, call: G, modifierFlags: O, parentDeclaration: E, declSourceFile: I, isJSFile: k };
    }
    const A = nn(y.declarations, eb);
    if (A && !(d.flags & 1056) && !Ni(c) && !Ew(o, A.getSourceFile()))
      return { kind: 1, token: c, parentDeclaration: A };
  }
  function sUe(e, t) {
    return t.isJSFile ? XE(lUe(e, t)) : cUe(e, t);
  }
  function lUe(e, { parentDeclaration: t, declSourceFile: r, modifierFlags: i, token: o }) {
    if (nd(t) || uf(t))
      return;
    const s = gr.ChangeTracker.with(e, (f) => uEe(f, r, t, o, !!(i & 32)));
    if (s.length === 0)
      return;
    const c = i & 32 ? _.Initialize_static_property_0 : Ni(o) ? _.Declare_a_private_field_named_0 : _.Initialize_property_0_in_the_constructor;
    return ro(Ry, s, [c, o.text], Ry, _.Add_all_missing_members);
  }
  function uEe(e, t, r, i, o) {
    const s = i.text;
    if (o) {
      if (r.kind === 228)
        return;
      const c = r.name.getText(), f = dEe(N.createIdentifier(c), s);
      e.insertNodeAfter(t, r, f);
    } else if (Ni(i)) {
      const c = N.createPropertyDeclaration(void 0, s, void 0, void 0, void 0), f = pEe(r);
      f ? e.insertNodeAfter(t, f, c) : e.insertMemberAtStart(t, r, c);
    } else {
      const c = Eh(r);
      if (!c)
        return;
      const f = dEe(N.createThis(), s);
      e.insertNodeAtConstructorEnd(t, c, f);
    }
  }
  function dEe(e, t) {
    return N.createExpressionStatement(N.createAssignment(N.createPropertyAccessExpression(e, t), QT()));
  }
  function cUe(e, { parentDeclaration: t, declSourceFile: r, modifierFlags: i, token: o }) {
    const s = o.text, c = i & 32, f = fEe(e.program.getTypeChecker(), t, o), d = (h) => gr.ChangeTracker.with(e, (E) => _Ee(E, r, t, s, f, h)), y = [ro(Ry, d(i & 32), [c ? _.Declare_static_property_0 : _.Declare_property_0, s], Ry, _.Add_all_missing_members)];
    return c || Ni(o) || (i & 8 && y.unshift(Ap(Ry, d(8), [_.Declare_private_property_0, s])), y.push(uUe(e, r, t, o.text, f))), y;
  }
  function fEe(e, t, r) {
    let i;
    if (r.parent.parent.kind === 223) {
      const o = r.parent.parent, s = r.parent === o.left ? o.right : o.left, c = e.getWidenedType(e.getBaseTypeOfLiteralType(e.getTypeAtLocation(s)));
      i = e.typeToTypeNode(c, t, 1);
    } else {
      const o = e.getContextualType(r.parent);
      i = o ? e.typeToTypeNode(o, void 0, 1) : void 0;
    }
    return i || N.createKeywordTypeNode(131);
  }
  function _Ee(e, t, r, i, o, s) {
    const c = s ? N.createNodeArray(N.createModifiersFromModifierFlags(s)) : void 0, f = di(r) ? N.createPropertyDeclaration(c, i, void 0, o, void 0) : N.createPropertySignature(void 0, i, void 0, o), d = pEe(r);
    d ? e.insertNodeAfter(t, d, f) : e.insertMemberAtStart(t, r, f);
  }
  function pEe(e) {
    let t;
    for (const r of e.members) {
      if (!to(r))
        break;
      t = r;
    }
    return t;
  }
  function uUe(e, t, r, i, o) {
    const s = N.createKeywordTypeNode(152), c = N.createParameterDeclaration(void 0, void 0, "x", void 0, s, void 0), f = N.createIndexSignature(void 0, [c], o), d = gr.ChangeTracker.with(e, (y) => y.insertMemberAtStart(t, r, f));
    return Ap(Ry, d, [_.Add_index_signature_for_property_0, i]);
  }
  function dUe(e, t) {
    const { parentDeclaration: r, declSourceFile: i, modifierFlags: o, token: s, call: c } = t;
    if (c === void 0 || Ni(s))
      return;
    const f = s.text, d = (h) => gr.ChangeTracker.with(e, (E) => mEe(e, E, c, s, h, r, i)), y = [ro(Ry, d(o & 32), [o & 32 ? _.Declare_static_method_0 : _.Declare_method_0, f], Ry, _.Add_all_missing_members)];
    return o & 8 && y.unshift(Ap(Ry, d(8), [_.Declare_private_method_0, f])), y;
  }
  function mEe(e, t, r, i, o, s, c) {
    const f = $T(c, e.program, e.preferences, e.host), d = di(s) ? 171 : 170, y = zee(d, e, f, r, i, o, s), h = pUe(s, r);
    h ? t.insertNodeAfter(c, h, y) : t.insertMemberAtStart(c, s, y), f.writeFixes(t);
  }
  function hEe(e, t, { token: r, parentDeclaration: i }) {
    const o = kt(i.members, (c) => {
      const f = t.getTypeAtLocation(c);
      return !!(f && f.flags & 402653316);
    }), s = N.createEnumMember(r, o ? N.createStringLiteral(r.text) : void 0);
    e.replaceNode(i.getSourceFile(), i, N.updateEnumDeclaration(i, i.modifiers, i.name, va(i.members, XE(s))), {
      leadingTriviaOption: gr.LeadingTriviaOption.IncludeAll,
      trailingTriviaOption: gr.TrailingTriviaOption.Exclude
    });
  }
  function gEe(e, t, r) {
    const i = xp(t.sourceFile, t.preferences), o = $T(t.sourceFile, t.program, t.preferences, t.host), s = r.kind === 2 ? zee(259, t, o, r.call, Mr(r.token), r.modifierFlags, r.parentDeclaration) : cG(259, t, i, r.signature, R6(_.Function_not_implemented.message, i), r.token, void 0, void 0, void 0, o);
    s === void 0 && D.fail("fixMissingFunctionDeclaration codefix got unexpected error."), bp(r.parentDeclaration) ? e.insertNodeBefore(r.sourceFile, r.parentDeclaration, s, !0) : e.insertNodeAtEndOfScope(r.sourceFile, r.parentDeclaration, s), o.writeFixes(e);
  }
  function yEe(e, t, r) {
    const i = $T(t.sourceFile, t.program, t.preferences, t.host), o = xp(t.sourceFile, t.preferences), s = t.program.getTypeChecker(), c = r.parentDeclaration.attributes, f = kt(c.properties, IT), d = jt(r.attributes, (E) => {
      const A = BB(t, s, i, o, s.getTypeOfSymbol(E), r.parentDeclaration), L = N.createIdentifier(E.name), I = N.createJsxAttribute(L, N.createJsxExpression(void 0, A));
      return Vo(L, I), I;
    }), y = N.createJsxAttributes(f ? [...d, ...c.properties] : [...c.properties, ...d]), h = { prefix: c.pos === c.end ? " " : void 0 };
    e.replaceNode(t.sourceFile, c, y, h), i.writeFixes(e);
  }
  function vEe(e, t, r) {
    const i = $T(t.sourceFile, t.program, t.preferences, t.host), o = xp(t.sourceFile, t.preferences), s = ts(t.program.getCompilerOptions()), c = t.program.getTypeChecker(), f = jt(r.properties, (y) => {
      const h = BB(t, c, i, o, c.getTypeOfSymbol(y), r.parentDeclaration);
      return N.createPropertyAssignment(mUe(y, s, o, c), h);
    }), d = {
      leadingTriviaOption: gr.LeadingTriviaOption.Exclude,
      trailingTriviaOption: gr.TrailingTriviaOption.Exclude,
      indentation: r.indentation
    };
    e.replaceNode(t.sourceFile, r.parentDeclaration, N.createObjectLiteralExpression([...r.parentDeclaration.properties, ...f], !0), d), i.writeFixes(e);
  }
  function BB(e, t, r, i, o, s) {
    if (o.flags & 3)
      return QT();
    if (o.flags & 134217732)
      return N.createStringLiteral("", i === 0);
    if (o.flags & 8)
      return N.createNumericLiteral(0);
    if (o.flags & 64)
      return N.createBigIntLiteral("0n");
    if (o.flags & 16)
      return N.createFalse();
    if (o.flags & 1056) {
      const c = o.symbol.exports ? U4(o.symbol.exports.values()) : o.symbol, f = t.symbolToExpression(o.symbol.parent ? o.symbol.parent : o.symbol, 111551, void 0, void 0);
      return c === void 0 || f === void 0 ? N.createNumericLiteral(0) : N.createPropertyAccessExpression(f, t.symbolToString(c));
    }
    if (o.flags & 256)
      return N.createNumericLiteral(o.value);
    if (o.flags & 2048)
      return N.createBigIntLiteral(o.value);
    if (o.flags & 128)
      return N.createStringLiteral(o.value, i === 0);
    if (o.flags & 512)
      return o === t.getFalseType() || o === t.getFalseType(!0) ? N.createFalse() : N.createTrue();
    if (o.flags & 65536)
      return N.createNull();
    if (o.flags & 1048576) {
      const c = Jt(o.types, (f) => BB(e, t, r, i, f, s));
      return c ?? QT();
    }
    if (t.isArrayLikeType(o))
      return N.createArrayLiteralExpression();
    if (fUe(o)) {
      const c = jt(t.getPropertiesOfType(o), (f) => {
        const d = BB(e, t, r, i, t.getTypeOfSymbol(f), s);
        return N.createPropertyAssignment(f.name, d);
      });
      return N.createObjectLiteralExpression(c, !0);
    }
    if (ti(o) & 16) {
      if (nn(o.symbol.declarations || rt, Im(Ch, Ah, ac)) === void 0)
        return QT();
      const f = t.getSignaturesOfType(o, 0);
      if (f === void 0)
        return QT();
      const d = cG(215, e, i, f[0], R6(_.Function_not_implemented.message, i), void 0, void 0, void 0, s, r);
      return d ?? QT();
    }
    if (ti(o) & 1) {
      const c = mg(o.symbol);
      if (c === void 0 || A1(c))
        return QT();
      const f = Eh(c);
      return f && Le(f.parameters) ? QT() : N.createNewExpression(N.createIdentifier(o.symbol.name), void 0, void 0);
    }
    return QT();
  }
  function QT() {
    return N.createIdentifier("undefined");
  }
  function fUe(e) {
    return e.flags & 524288 && (ti(e) & 128 || e.symbol && ai(Am(e.symbol.declarations), uf));
  }
  function _Ue(e, t, r) {
    const i = e.getContextualType(r.attributes);
    if (i === void 0)
      return rt;
    const o = i.getProperties();
    if (!Le(o))
      return rt;
    const s = /* @__PURE__ */ new Set();
    for (const c of r.attributes.properties)
      if (nm(c) && s.add(c.name.escapedText), IT(c)) {
        const f = e.getTypeAtLocation(c.expression);
        for (const d of f.getProperties())
          s.add(d.escapedName);
      }
    return lr(o, (c) => P_(c.name, t, 1) && !(c.flags & 16777216 || Ll(c) & 48 || s.has(c.escapedName)));
  }
  function pUe(e, t) {
    if (uf(e))
      return;
    const r = nr(t, (i) => ac(i) || ql(i));
    return r && r.parent === e ? r : void 0;
  }
  function mUe(e, t, r, i) {
    if (Om(e)) {
      const o = i.symbolToNode(e, 111551, void 0, 1073741824);
      if (o && As(o))
        return o;
    }
    return $3(e.name, t, r === 0);
  }
  function bEe(e) {
    if (nr(e, Pk)) {
      const t = nr(e.parent, bp);
      if (t)
        return t;
    }
    return Zn(e);
  }
  var Ry, C6, L6, I6, cee, hUe = C({
    "src/services/codefixes/fixAddMissingMember.ts"() {
      $r(), Eo(), Ry = "fixMissingMember", C6 = "fixMissingProperties", L6 = "fixMissingAttributes", I6 = "fixMissingFunctionDeclaration", cee = [
        _.Property_0_does_not_exist_on_type_1.code,
        _.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,
        _.Property_0_is_missing_in_type_1_but_required_in_type_2.code,
        _.Type_0_is_missing_the_following_properties_from_type_1_Colon_2.code,
        _.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more.code,
        _.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,
        _.Cannot_find_name_0.code
      ], po({
        errorCodes: cee,
        getCodeActions(e) {
          const t = e.program.getTypeChecker(), r = cEe(e.sourceFile, e.span.start, e.errorCode, t, e.program);
          if (r) {
            if (r.kind === 3) {
              const i = gr.ChangeTracker.with(e, (o) => vEe(o, e, r));
              return [ro(C6, i, _.Add_missing_properties, C6, _.Add_all_missing_properties)];
            }
            if (r.kind === 4) {
              const i = gr.ChangeTracker.with(e, (o) => yEe(o, e, r));
              return [ro(L6, i, _.Add_missing_attributes, L6, _.Add_all_missing_attributes)];
            }
            if (r.kind === 2 || r.kind === 5) {
              const i = gr.ChangeTracker.with(e, (o) => gEe(o, e, r));
              return [ro(I6, i, [_.Add_missing_function_declaration_0, r.token.text], I6, _.Add_all_missing_function_declarations)];
            }
            if (r.kind === 1) {
              const i = gr.ChangeTracker.with(e, (o) => hEe(o, e.program.getTypeChecker(), r));
              return [ro(Ry, i, [_.Add_missing_enum_member_0, r.token.text], Ry, _.Add_all_missing_members)];
            }
            return va(dUe(e, r), sUe(e, r));
          }
        },
        fixIds: [Ry, I6, C6, L6],
        getAllCodeActions: (e) => {
          const { program: t, fixId: r } = e, i = t.getTypeChecker(), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map();
          return $x(gr.ChangeTracker.with(e, (c) => {
            Qx(e, cee, (f) => {
              const d = cEe(f.file, f.start, f.code, i, e.program);
              if (!(!d || !vp(o, ps(d.parentDeclaration) + "#" + d.token.text))) {
                if (r === I6 && (d.kind === 2 || d.kind === 5))
                  gEe(c, e, d);
                else if (r === C6 && d.kind === 3)
                  vEe(c, e, d);
                else if (r === L6 && d.kind === 4)
                  yEe(c, e, d);
                else if (d.kind === 1 && hEe(c, i, d), d.kind === 0) {
                  const { parentDeclaration: y, token: h } = d, E = pA(s, y, () => []);
                  E.some((A) => A.token.text === h.text) || E.push(d);
                }
              }
            }), s.forEach((f, d) => {
              const y = uf(d) ? void 0 : Zee(d, i);
              for (const h of f) {
                if (y != null && y.some((G) => {
                  const V = s.get(G);
                  return !!V && V.some(({ token: H }) => H.text === h.token.text);
                }))
                  continue;
                const { parentDeclaration: E, declSourceFile: A, modifierFlags: L, token: I, call: O, isJSFile: k } = h;
                if (O && !Ni(I))
                  mEe(e, c, O, I, L & 32, E, A);
                else if (k && !nd(E) && !uf(E))
                  uEe(c, A, E, I, !!(L & 32));
                else {
                  const G = fEe(i, E, I);
                  _Ee(c, A, E, I.text, G, L & 32);
                }
              }
            });
          }));
        }
      });
    }
  });
  function EEe(e, t, r) {
    const i = oo(gUe(t, r), no), o = N.createNewExpression(i.expression, i.typeArguments, i.arguments);
    e.replaceNode(t, i, o);
  }
  function gUe(e, t) {
    let r = aa(e, t.start);
    const i = iu(t);
    for (; r.end < i; )
      r = r.parent;
    return r;
  }
  var GB, uee, yUe = C({
    "src/services/codefixes/fixAddMissingNewOperator.ts"() {
      $r(), Eo(), GB = "addMissingNewOperator", uee = [_.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new.code], po({
        errorCodes: uee,
        getCodeActions(e) {
          const { sourceFile: t, span: r } = e, i = gr.ChangeTracker.with(e, (o) => EEe(o, t, r));
          return [ro(GB, i, _.Add_missing_new_operator_to_call, GB, _.Add_missing_new_operator_to_all_calls)];
        },
        fixIds: [GB],
        getAllCodeActions: (e) => Cs(e, uee, (t, r) => EEe(t, e.sourceFile, r))
      });
    }
  });
  function TEe(e, t) {
    return { type: "install package", file: e, packageName: t };
  }
  function SEe(e, t) {
    const r = ai(aa(e, t), jo);
    if (!r)
      return;
    const i = r.text, { packageName: o } = FK(i);
    return Gc(o) ? void 0 : o;
  }
  function xEe(e, t, r) {
    var i;
    return r === dee ? jT.nodeCoreModules.has(e) ? "@types/node" : void 0 : (i = t.isKnownTypesPackageName) != null && i.call(t, e) ? N5(e) : void 0;
  }
  var AEe, UB, dee, fee, vUe = C({
    "src/services/codefixes/fixCannotFindModule.ts"() {
      $r(), Eo(), AEe = "fixCannotFindModule", UB = "installTypesPackage", dee = _.Cannot_find_module_0_or_its_corresponding_type_declarations.code, fee = [
        dee,
        _.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type.code
      ], po({
        errorCodes: fee,
        getCodeActions: function(t) {
          const { host: r, sourceFile: i, span: { start: o } } = t, s = SEe(i, o);
          if (s === void 0)
            return;
          const c = xEe(s, r, t.errorCode);
          return c === void 0 ? [] : [ro(AEe, [], [_.Install_0, c], UB, _.Install_all_missing_types_packages, TEe(i.fileName, c))];
        },
        fixIds: [UB],
        getAllCodeActions: (e) => Cs(e, fee, (t, r, i) => {
          const o = SEe(r.file, r.start);
          if (o !== void 0)
            switch (e.fixId) {
              case UB: {
                const s = xEe(o, e.host, r.code);
                s && i.push(TEe(r.file.fileName, s));
                break;
              }
              default:
                D.fail(`Bad fixId: ${e.fixId}`);
            }
        })
      });
    }
  });
  function CEe(e, t) {
    const r = aa(e, t);
    return oo(r.parent, di);
  }
  function LEe(e, t, r, i, o) {
    const s = Xp(e), c = r.program.getTypeChecker(), f = c.getTypeAtLocation(s), d = c.getPropertiesOfType(f).filter(bUe), y = $T(t, r.program, o, r.host);
    Wee(e, d, t, r, o, y, (h) => i.insertMemberAtStart(t, e, h)), y.writeFixes(i);
  }
  function bUe(e) {
    const t = Nv(us(e.getDeclarations()));
    return !(t & 8) && !!(t & 256);
  }
  var _ee, VB, EUe = C({
    "src/services/codefixes/fixClassDoesntImplementInheritedAbstractMember.ts"() {
      $r(), Eo(), _ee = [
        _.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2.code,
        _.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1.code
      ], VB = "fixClassDoesntImplementInheritedAbstractMember", po({
        errorCodes: _ee,
        getCodeActions: function(t) {
          const { sourceFile: r, span: i } = t, o = gr.ChangeTracker.with(t, (s) => LEe(CEe(r, i.start), r, t, s, t.preferences));
          return o.length === 0 ? void 0 : [ro(VB, o, _.Implement_inherited_abstract_class, VB, _.Implement_all_inherited_abstract_classes)];
        },
        fixIds: [VB],
        getAllCodeActions: function(t) {
          const r = /* @__PURE__ */ new Map();
          return Cs(t, _ee, (i, o) => {
            const s = CEe(o.file, o.start);
            vp(r, ps(s)) && LEe(s, t.sourceFile, t, i, t.preferences);
          });
        }
      });
    }
  });
  function IEe(e, t, r, i) {
    e.insertNodeAtConstructorStart(t, r, i), e.delete(t, i);
  }
  function kEe(e, t) {
    const r = aa(e, t);
    if (r.kind !== 108)
      return;
    const i = Cf(r), o = wEe(i.body);
    return o && !o.expression.arguments.some((s) => Fr(s) && s.expression === r) ? { constructor: i, superCall: o } : void 0;
  }
  function wEe(e) {
    return ou(e) && MA(e.expression) ? e : Ka(e) ? void 0 : Ma(e, wEe);
  }
  var jB, pee, TUe = C({
    "src/services/codefixes/fixClassSuperMustPrecedeThisAccess.ts"() {
      $r(), Eo(), jB = "classSuperMustPrecedeThisAccess", pee = [_.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class.code], po({
        errorCodes: pee,
        getCodeActions(e) {
          const { sourceFile: t, span: r } = e, i = kEe(t, r.start);
          if (!i)
            return;
          const { constructor: o, superCall: s } = i, c = gr.ChangeTracker.with(e, (f) => IEe(f, t, o, s));
          return [ro(jB, c, _.Make_super_call_the_first_statement_in_the_constructor, jB, _.Make_all_super_calls_the_first_statement_in_their_constructor)];
        },
        fixIds: [jB],
        getAllCodeActions(e) {
          const { sourceFile: t } = e, r = /* @__PURE__ */ new Map();
          return Cs(e, pee, (i, o) => {
            const s = kEe(o.file, o.start);
            if (!s)
              return;
            const { constructor: c, superCall: f } = s;
            vp(r, ps(c.parent)) && IEe(i, t, c, f);
          });
        }
      });
    }
  });
  function DEe(e, t) {
    const r = aa(e, t);
    return D.assert(ql(r.parent), "token should be at the constructor declaration"), r.parent;
  }
  function REe(e, t, r) {
    const i = N.createExpressionStatement(N.createCallExpression(N.createSuper(), void 0, rt));
    e.insertNodeAtConstructorStart(t, r, i);
  }
  var HB, mee, SUe = C({
    "src/services/codefixes/fixConstructorForDerivedNeedSuperCall.ts"() {
      $r(), Eo(), HB = "constructorForDerivedNeedSuperCall", mee = [_.Constructors_for_derived_classes_must_contain_a_super_call.code], po({
        errorCodes: mee,
        getCodeActions(e) {
          const { sourceFile: t, span: r } = e, i = DEe(t, r.start), o = gr.ChangeTracker.with(e, (s) => REe(s, t, i));
          return [ro(HB, o, _.Add_missing_super_call, HB, _.Add_all_missing_super_calls)];
        },
        fixIds: [HB],
        getAllCodeActions: (e) => Cs(e, mee, (t, r) => REe(t, e.sourceFile, DEe(r.file, r.start)))
      });
    }
  });
  function NEe(e, t) {
    Xee(e, t, "jsx", N.createStringLiteral("react"));
  }
  var hee, gee, xUe = C({
    "src/services/codefixes/fixEnableJsxFlag.ts"() {
      $r(), Eo(), hee = "fixEnableJsxFlag", gee = [_.Cannot_use_JSX_unless_the_jsx_flag_is_provided.code], po({
        errorCodes: gee,
        getCodeActions: function(t) {
          const { configFile: r } = t.program.getCompilerOptions();
          if (r === void 0)
            return;
          const i = gr.ChangeTracker.with(t, (o) => NEe(o, r));
          return [
            Ap(hee, i, _.Enable_the_jsx_flag_in_your_configuration_file)
          ];
        },
        fixIds: [hee],
        getAllCodeActions: (e) => Cs(e, gee, (t) => {
          const { configFile: r } = e.program.getCompilerOptions();
          r !== void 0 && NEe(t, r);
        })
      });
    }
  });
  function OEe(e, t, r) {
    const i = nn(e.getSemanticDiagnostics(t), (c) => c.start === r.start && c.length === r.length);
    if (i === void 0 || i.relatedInformation === void 0)
      return;
    const o = nn(i.relatedInformation, (c) => c.code === _.Did_you_mean_0.code);
    if (o === void 0 || o.file === void 0 || o.start === void 0 || o.length === void 0)
      return;
    const s = $ee(o.file, wc(o.start, o.length));
    if (s !== void 0 && vt(s) && br(s.parent))
      return { suggestion: AUe(o.messageText), expression: s.parent, arg: s };
  }
  function PEe(e, t, r, i) {
    const o = N.createCallExpression(N.createPropertyAccessExpression(N.createIdentifier("Number"), N.createIdentifier("isNaN")), void 0, [r]), s = i.operatorToken.kind;
    e.replaceNode(t, i, s === 37 || s === 35 ? N.createPrefixUnaryExpression(53, o) : o);
  }
  function AUe(e) {
    const [t, r] = Wv(e, `
`, 0).match(/\'(.*)\'/) || [];
    return r;
  }
  var WB, yee, CUe = C({
    "src/services/codefixes/fixNaNEquality.ts"() {
      $r(), Eo(), WB = "fixNaNEquality", yee = [
        _.This_condition_will_always_return_0.code
      ], po({
        errorCodes: yee,
        getCodeActions(e) {
          const { sourceFile: t, span: r, program: i } = e, o = OEe(i, t, r);
          if (o === void 0)
            return;
          const { suggestion: s, expression: c, arg: f } = o, d = gr.ChangeTracker.with(e, (y) => PEe(y, t, f, c));
          return [ro(WB, d, [_.Use_0, s], WB, _.Use_Number_isNaN_in_all_conditions)];
        },
        fixIds: [WB],
        getAllCodeActions: (e) => Cs(e, yee, (t, r) => {
          const i = OEe(e.program, r.file, wc(r.start, r.length));
          i && PEe(t, r.file, i.arg, i.expression);
        })
      });
    }
  }), LUe = C({
    "src/services/codefixes/fixModuleAndTargetOptions.ts"() {
      $r(), Eo(), po({
        errorCodes: [
          _.Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher.code,
          _.Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher.code
        ],
        getCodeActions: function(t) {
          const r = t.program.getCompilerOptions(), { configFile: i } = r;
          if (i === void 0)
            return;
          const o = [], s = au(r);
          if (s >= 5 && s < 99) {
            const y = gr.ChangeTracker.with(t, (h) => {
              Xee(h, i, "module", N.createStringLiteral("esnext"));
            });
            o.push(Ap("fixModuleOption", y, [_.Set_the_module_option_in_your_configuration_file_to_0, "esnext"]));
          }
          const f = ts(r);
          if (f < 4 || f > 99) {
            const y = gr.ChangeTracker.with(t, (h) => {
              if (!BI(i))
                return;
              const A = [["target", N.createStringLiteral("es2017")]];
              s === 1 && A.push(["module", N.createStringLiteral("commonjs")]), Kee(h, i, A);
            });
            o.push(Ap("fixTargetOption", y, [_.Set_the_target_option_in_your_configuration_file_to_0, "es2017"]));
          }
          return o.length ? o : void 0;
        }
      });
    }
  });
  function MEe(e, t, r) {
    e.replaceNode(t, r, N.createPropertyAssignment(r.name, r.objectAssignmentInitializer));
  }
  function FEe(e, t) {
    return oo(aa(e, t).parent, t_);
  }
  var zB, vee, IUe = C({
    "src/services/codefixes/fixPropertyAssignment.ts"() {
      $r(), Eo(), zB = "fixPropertyAssignment", vee = [
        _.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern.code
      ], po({
        errorCodes: vee,
        fixIds: [zB],
        getCodeActions(e) {
          const { sourceFile: t, span: r } = e, i = FEe(t, r.start), o = gr.ChangeTracker.with(e, (s) => MEe(s, e.sourceFile, i));
          return [ro(zB, o, [_.Change_0_to_1, "=", ":"], zB, [_.Switch_each_misused_0_to_1, "=", ":"])];
        },
        getAllCodeActions: (e) => Cs(e, vee, (t, r) => MEe(t, r.file, FEe(r.file, r.start)))
      });
    }
  });
  function BEe(e, t) {
    const r = aa(e, t), i = xc(r).heritageClauses, o = i[0].getFirstToken();
    return o.kind === 94 ? { extendsToken: o, heritageClauses: i } : void 0;
  }
  function GEe(e, t, r, i) {
    if (e.replaceNode(t, r, N.createToken(117)), i.length === 2 && i[0].token === 94 && i[1].token === 117) {
      const o = i[1].getFirstToken(), s = o.getFullStart();
      e.replaceRange(t, { pos: s, end: s }, N.createToken(27));
      const c = t.text;
      let f = o.end;
      for (; f < c.length && Dm(c.charCodeAt(f)); )
        f++;
      e.deleteRange(t, { pos: o.getStart(), end: f });
    }
  }
  var qB, bee, kUe = C({
    "src/services/codefixes/fixExtendsInterfaceBecomesImplements.ts"() {
      $r(), Eo(), qB = "extendsInterfaceBecomesImplements", bee = [_.Cannot_extend_an_interface_0_Did_you_mean_implements.code], po({
        errorCodes: bee,
        getCodeActions(e) {
          const { sourceFile: t } = e, r = BEe(t, e.span.start);
          if (!r)
            return;
          const { extendsToken: i, heritageClauses: o } = r, s = gr.ChangeTracker.with(e, (c) => GEe(c, t, i, o));
          return [ro(qB, s, _.Change_extends_to_implements, qB, _.Change_all_extended_interfaces_to_implements)];
        },
        fixIds: [qB],
        getAllCodeActions: (e) => Cs(e, bee, (t, r) => {
          const i = BEe(r.file, r.start);
          i && GEe(t, r.file, i.extendsToken, i.heritageClauses);
        })
      });
    }
  });
  function UEe(e, t, r) {
    const i = aa(e, t);
    if (je(i) || Ni(i))
      return { node: i, className: r === Eee ? xc(i).name.text : void 0 };
  }
  function VEe(e, t, { node: r, className: i }) {
    zd(r), e.replaceNode(t, r, N.createPropertyAccessExpression(i ? N.createIdentifier(i) : N.createThis(), r));
  }
  var JB, Eee, Tee, wUe = C({
    "src/services/codefixes/fixForgottenThisPropertyAccess.ts"() {
      $r(), Eo(), JB = "forgottenThisPropertyAccess", Eee = _.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code, Tee = [
        _.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,
        _.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression.code,
        Eee
      ], po({
        errorCodes: Tee,
        getCodeActions(e) {
          const { sourceFile: t } = e, r = UEe(t, e.span.start, e.errorCode);
          if (!r)
            return;
          const i = gr.ChangeTracker.with(e, (o) => VEe(o, t, r));
          return [ro(JB, i, [_.Add_0_to_unresolved_variable, r.className || "this"], JB, _.Add_qualifier_to_all_unresolved_variables_matching_a_member_name)];
        },
        fixIds: [JB],
        getAllCodeActions: (e) => Cs(e, Tee, (t, r) => {
          const i = UEe(r.file, r.start, r.code);
          i && VEe(t, e.sourceFile, i);
        })
      });
    }
  });
  function DUe(e) {
    return Ps(Aee, e);
  }
  function See(e, t, r, i, o) {
    const s = r.getText()[i];
    if (!DUe(s))
      return;
    const c = o ? Aee[s] : `{${yw(r, t, s)}}`;
    e.replaceRangeWithText(r, { pos: i, end: i + 1 }, c);
  }
  var KB, k6, xee, Aee, RUe = C({
    "src/services/codefixes/fixInvalidJsxCharacters.ts"() {
      $r(), Eo(), KB = "fixInvalidJsxCharacters_expression", k6 = "fixInvalidJsxCharacters_htmlEntity", xee = [
        _.Unexpected_token_Did_you_mean_or_gt.code,
        _.Unexpected_token_Did_you_mean_or_rbrace.code
      ], po({
        errorCodes: xee,
        fixIds: [KB, k6],
        getCodeActions(e) {
          const { sourceFile: t, preferences: r, span: i } = e, o = gr.ChangeTracker.with(e, (c) => See(c, r, t, i.start, !1)), s = gr.ChangeTracker.with(e, (c) => See(c, r, t, i.start, !0));
          return [
            ro(KB, o, _.Wrap_invalid_character_in_an_expression_container, KB, _.Wrap_all_invalid_characters_in_an_expression_container),
            ro(k6, s, _.Convert_invalid_character_to_its_html_entity_code, k6, _.Convert_all_invalid_characters_to_HTML_entity_code)
          ];
        },
        getAllCodeActions(e) {
          return Cs(e, xee, (t, r) => See(t, e.preferences, r.file, r.start, e.fixId === k6));
        }
      }), Aee = {
        ">": "&gt;",
        "}": "&rbrace;"
      };
    }
  });
  function NUe(e, { name: t, jsDocHost: r, jsDocParameterTag: i }) {
    const o = gr.ChangeTracker.with(e, (s) => s.filterJSDocTags(e.sourceFile, r, (c) => c !== i));
    return ro(w6, o, [_.Delete_unused_param_tag_0, t.getText(e.sourceFile)], w6, _.Delete_all_unused_param_tags);
  }
  function OUe(e, { name: t, jsDocHost: r, signature: i, jsDocParameterTag: o }) {
    if (!Le(i.parameters))
      return;
    const s = e.sourceFile, c = d1(i), f = /* @__PURE__ */ new Set();
    for (const E of c)
      rm(E) && je(E.name) && f.add(E.name.escapedText);
    const d = Jt(i.parameters, (E) => je(E.name) && !f.has(E.name.escapedText) ? E.name.getText(s) : void 0);
    if (d === void 0)
      return;
    const y = N.updateJSDocParameterTag(o, o.tagName, N.createIdentifier(d), o.isBracketed, o.typeExpression, o.isNameFirst, o.comment), h = gr.ChangeTracker.with(e, (E) => E.replaceJSDocComment(s, r, jt(c, (A) => A === o ? y : A)));
    return Ap(Cee, h, [_.Rename_param_tag_name_0_to_1, t.getText(s), d]);
  }
  function jEe(e, t) {
    const r = aa(e, t);
    if (r.parent && rm(r.parent) && je(r.parent.name)) {
      const i = r.parent, o = ix(i), s = z0(i);
      if (o && s)
        return { jsDocHost: o, signature: s, name: r.parent.name, jsDocParameterTag: i };
    }
  }
  var w6, Cee, Lee, PUe = C({
    "src/services/codefixes/fixUnmatchedParameter.ts"() {
      $r(), Eo(), w6 = "deleteUnmatchedParameter", Cee = "renameUnmatchedParameter", Lee = [
        _.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name.code
      ], po({
        fixIds: [w6, Cee],
        errorCodes: Lee,
        getCodeActions: function(t) {
          const { sourceFile: r, span: i } = t, o = [], s = jEe(r, i.start);
          if (s)
            return Fn(o, NUe(t, s)), Fn(o, OUe(t, s)), o;
        },
        getAllCodeActions: function(t) {
          const r = /* @__PURE__ */ new Map();
          return $x(gr.ChangeTracker.with(t, (i) => {
            Qx(t, Lee, ({ file: o, start: s }) => {
              const c = jEe(o, s);
              c && r.set(c.signature, Fn(r.get(c.signature), c.jsDocParameterTag));
            }), r.forEach((o, s) => {
              if (t.fixId === w6) {
                const c = new Set(o);
                i.filterJSDocTags(s.getSourceFile(), s, (f) => !c.has(f));
              }
            });
          }));
        }
      });
    }
  });
  function MUe(e, t, r) {
    const i = ai(aa(e, r), je);
    if (!i || i.parent.kind !== 180)
      return;
    const s = t.getTypeChecker().getSymbolAtLocation(i);
    return nn((s == null ? void 0 : s.declarations) || rt, Im(Wm, Ld, su));
  }
  function FUe(e, t, r, i) {
    if (r.kind === 268) {
      e.insertModifierBefore(t, 154, r.name);
      return;
    }
    const o = r.kind === 270 ? r : r.parent.parent;
    if (o.name && o.namedBindings)
      return;
    const s = i.getTypeChecker();
    E3(o, (f) => {
      if (cf(f.symbol, s).flags & 111551)
        return !0;
    }) || e.insertModifierBefore(t, 154, o);
  }
  function BUe(e, t, r, i) {
    Hw.doChangeNamedToNamespaceOrDefault(t, i, e, r.parent);
  }
  var XB, HEe, GUe = C({
    "src/services/codefixes/fixUnreferenceableDecoratorMetadata.ts"() {
      $r(), Eo(), XB = "fixUnreferenceableDecoratorMetadata", HEe = [_.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled.code], po({
        errorCodes: HEe,
        getCodeActions: (e) => {
          const t = MUe(e.sourceFile, e.program, e.span.start);
          if (!t)
            return;
          const r = gr.ChangeTracker.with(e, (s) => t.kind === 273 && BUe(s, e.sourceFile, t, e.program)), i = gr.ChangeTracker.with(e, (s) => FUe(s, e.sourceFile, t, e.program));
          let o;
          return r.length && (o = Fn(o, Ap(XB, r, _.Convert_named_imports_to_namespace_import))), i.length && (o = Fn(o, Ap(XB, i, _.Convert_to_type_only_import))), o;
        },
        fixIds: [XB]
      });
    }
  });
  function WEe(e, t, r) {
    e.replaceNode(t, r.parent, N.createKeywordTypeNode(157));
  }
  function kw(e, t) {
    return ro(ww, e, t, QB, _.Delete_all_unused_declarations);
  }
  function zEe(e, t, r) {
    e.delete(t, D.checkDefined(oo(r.parent, ez).typeParameters, "The type parameter to delete should exist"));
  }
  function Iee(e) {
    return e.kind === 100 || e.kind === 79 && (e.parent.kind === 273 || e.parent.kind === 270);
  }
  function qEe(e) {
    return e.kind === 100 ? ai(e.parent, Wc) : void 0;
  }
  function JEe(e, t) {
    return Uu(t.parent) && us(t.parent.getChildren(e)) === t;
  }
  function KEe(e, t, r) {
    e.delete(t, r.parent.kind === 240 ? r.parent : r);
  }
  function UUe(e, t, r) {
    ze(r.elements, (i) => e.delete(t, i));
  }
  function XEe(e, t, r, i) {
    t !== _.Property_0_is_declared_but_its_value_is_never_read.code && (i.kind === 138 && (i = oo(i.parent, vC).typeParameter.name), je(i) && VUe(i) && (e.replaceNode(r, i, N.createIdentifier(`_${i.text}`)), Ba(i.parent) && TI(i.parent).forEach((o) => {
      je(o.name) && e.replaceNode(r, o.name, N.createIdentifier(`_${o.name.text}`));
    })));
  }
  function VUe(e) {
    switch (e.parent.kind) {
      case 166:
      case 165:
        return !0;
      case 257:
        switch (e.parent.parent.parent.kind) {
          case 247:
          case 246:
            return !0;
        }
    }
    return !1;
  }
  function YB(e, t, r, i, o, s, c, f) {
    jUe(t, r, e, i, o, s, c, f), je(t) && ul.Core.eachSymbolReferenceInFile(t, i, e, (d) => {
      Fr(d.parent) && d.parent.name === d && (d = d.parent), !f && qUe(d) && r.delete(e, d.parent.parent);
    });
  }
  function jUe(e, t, r, i, o, s, c, f) {
    const { parent: d } = e;
    if (Ba(d))
      HUe(t, r, d, i, o, s, c, f);
    else if (!(f && je(e) && ul.Core.isSymbolReferencedInFile(e, i, r))) {
      const y = Wm(d) ? e : As(d) ? d.parent : d;
      D.assert(y !== r, "should not delete whole source file"), t.delete(r, y);
    }
  }
  function HUe(e, t, r, i, o, s, c, f = !1) {
    if (WUe(i, t, r, o, s, c, f))
      if (r.modifiers && r.modifiers.length > 0 && (!je(r.name) || ul.Core.isSymbolReferencedInFile(r.name, i, t)))
        for (const d of r.modifiers)
          fo(d) && e.deleteModifier(t, d);
      else
        !r.initializer && YEe(r, i, o) && e.delete(t, r);
  }
  function YEe(e, t, r) {
    const i = e.parent.parameters.indexOf(e);
    return !ul.Core.someSignatureUsage(e.parent, r, t, (o, s) => !s || s.arguments.length > i);
  }
  function WUe(e, t, r, i, o, s, c) {
    const { parent: f } = r;
    switch (f.kind) {
      case 171:
      case 173:
        const d = f.parameters.indexOf(r), y = ac(f) ? f.name : f, h = ul.Core.getReferencedSymbolsForNode(f.pos, y, o, i, s);
        if (h) {
          for (const E of h)
            for (const A of E.references)
              if (A.kind === ul.EntryKind.Node) {
                const L = Ck(A.node) && no(A.node.parent) && A.node.parent.arguments.length > d, I = Fr(A.node.parent) && Ck(A.node.parent.expression) && no(A.node.parent.parent) && A.node.parent.parent.arguments.length > d, O = (ac(A.node.parent) || Ah(A.node.parent)) && A.node.parent !== r.parent && A.node.parent.parameters.length > d;
                if (L || I || O)
                  return !1;
              }
        }
        return !0;
      case 259:
        return f.name && zUe(e, t, f.name) ? $Ee(f, r, c) : !0;
      case 215:
      case 216:
        return $Ee(f, r, c);
      case 175:
        return !1;
      case 174:
        return !0;
      default:
        return D.failBadSyntaxKind(f);
    }
  }
  function zUe(e, t, r) {
    return !!ul.Core.eachSymbolReferenceInFile(r, e, t, (i) => je(i) && no(i.parent) && i.parent.arguments.indexOf(i) >= 0);
  }
  function $Ee(e, t, r) {
    const i = e.parameters, o = i.indexOf(t);
    return D.assert(o !== -1, "The parameter should already be in the list"), r ? i.slice(o + 1).every((s) => je(s.name) && !s.symbol.isReferenced) : o === i.length - 1;
  }
  function qUe(e) {
    return (br(e.parent) && e.parent.left === e || (yJ(e.parent) || Bv(e.parent)) && e.parent.operand === e) && ou(e.parent.parent);
  }
  var ww, $B, QB, D6, ZB, kee, JUe = C({
    "src/services/codefixes/fixUnusedIdentifier.ts"() {
      $r(), Eo(), ww = "unusedIdentifier", $B = "unusedIdentifier_prefix", QB = "unusedIdentifier_delete", D6 = "unusedIdentifier_deleteImports", ZB = "unusedIdentifier_infer", kee = [
        _._0_is_declared_but_its_value_is_never_read.code,
        _._0_is_declared_but_never_used.code,
        _.Property_0_is_declared_but_its_value_is_never_read.code,
        _.All_imports_in_import_declaration_are_unused.code,
        _.All_destructured_elements_are_unused.code,
        _.All_variables_are_unused.code,
        _.All_type_parameters_are_unused.code
      ], po({
        errorCodes: kee,
        getCodeActions(e) {
          const { errorCode: t, sourceFile: r, program: i, cancellationToken: o } = e, s = i.getTypeChecker(), c = i.getSourceFiles(), f = aa(r, e.span.start);
          if (Ep(f))
            return [kw(gr.ChangeTracker.with(e, (E) => E.delete(r, f)), _.Remove_template_tag)];
          if (f.kind === 29) {
            const E = gr.ChangeTracker.with(e, (A) => zEe(A, r, f));
            return [kw(E, _.Remove_type_parameters)];
          }
          const d = qEe(f);
          if (d) {
            const E = gr.ChangeTracker.with(e, (A) => A.delete(r, d));
            return [ro(ww, E, [_.Remove_import_from_0, bde(d)], D6, _.Delete_all_unused_imports)];
          } else if (Iee(f)) {
            const E = gr.ChangeTracker.with(e, (A) => YB(r, f, A, s, c, i, o, !1));
            if (E.length)
              return [ro(ww, E, [_.Remove_unused_declaration_for_Colon_0, f.getText(r)], D6, _.Delete_all_unused_imports)];
          }
          if (Hm(f.parent) || bC(f.parent)) {
            if (Ba(f.parent.parent)) {
              const E = f.parent.elements, A = [
                E.length > 1 ? _.Remove_unused_declarations_for_Colon_0 : _.Remove_unused_declaration_for_Colon_0,
                jt(E, (L) => L.getText(r)).join(", ")
              ];
              return [
                kw(gr.ChangeTracker.with(e, (L) => UUe(L, r, f.parent)), A)
              ];
            }
            return [
              kw(gr.ChangeTracker.with(e, (E) => E.delete(r, f.parent.parent)), _.Remove_unused_destructuring_declaration)
            ];
          }
          if (JEe(r, f))
            return [
              kw(gr.ChangeTracker.with(e, (E) => KEe(E, r, f.parent)), _.Remove_variable_statement)
            ];
          const y = [];
          if (f.kind === 138) {
            const E = gr.ChangeTracker.with(e, (L) => WEe(L, r, f)), A = oo(f.parent, vC).typeParameter.name.text;
            y.push(ro(ww, E, [_.Replace_infer_0_with_unknown, A], ZB, _.Replace_all_unused_infer_with_unknown));
          } else {
            const E = gr.ChangeTracker.with(e, (A) => YB(r, f, A, s, c, i, o, !1));
            if (E.length) {
              const A = As(f.parent) ? f.parent : f;
              y.push(kw(E, [_.Remove_unused_declaration_for_Colon_0, A.getText(r)]));
            }
          }
          const h = gr.ChangeTracker.with(e, (E) => XEe(E, t, r, f));
          return h.length && y.push(ro(ww, h, [_.Prefix_0_with_an_underscore, f.getText(r)], $B, _.Prefix_all_unused_declarations_with_where_possible)), y;
        },
        fixIds: [$B, QB, D6, ZB],
        getAllCodeActions: (e) => {
          const { sourceFile: t, program: r, cancellationToken: i } = e, o = r.getTypeChecker(), s = r.getSourceFiles();
          return Cs(e, kee, (c, f) => {
            const d = aa(t, f.start);
            switch (e.fixId) {
              case $B:
                XEe(c, f.code, t, d);
                break;
              case D6: {
                const y = qEe(d);
                y ? c.delete(t, y) : Iee(d) && YB(t, d, c, o, s, r, i, !0);
                break;
              }
              case QB: {
                if (d.kind === 138 || Iee(d))
                  break;
                if (Ep(d))
                  c.delete(t, d);
                else if (d.kind === 29)
                  zEe(c, t, d);
                else if (Hm(d.parent)) {
                  if (d.parent.parent.initializer)
                    break;
                  (!Ba(d.parent.parent) || YEe(d.parent.parent, o, s)) && c.delete(t, d.parent.parent);
                } else {
                  if (bC(d.parent.parent) && d.parent.parent.parent.initializer)
                    break;
                  JEe(t, d) ? KEe(c, t, d.parent) : YB(t, d, c, o, s, r, i, !0);
                }
                break;
              }
              case ZB:
                d.kind === 138 && WEe(c, t, d);
                break;
              default:
                D.fail(JSON.stringify(e.fixId));
            }
          });
        }
      });
    }
  });
  function QEe(e, t, r, i, o) {
    const s = aa(t, r), c = nr(s, wa);
    if (c.getStart(t) !== s.getStart(t)) {
      const d = JSON.stringify({
        statementKind: D.formatSyntaxKind(c.kind),
        tokenKind: D.formatSyntaxKind(s.kind),
        errorCode: o,
        start: r,
        length: i
      });
      D.fail("Token and statement should start at the same point. " + d);
    }
    const f = (co(c.parent) ? c.parent : c).parent;
    if (!co(c.parent) || c === us(c.parent.statements))
      switch (f.kind) {
        case 242:
          if (f.elseStatement) {
            if (co(c.parent))
              break;
            e.replaceNode(t, c, N.createBlock(rt));
            return;
          }
        case 244:
        case 245:
          e.delete(t, f);
          return;
      }
    if (co(c.parent)) {
      const d = r + i, y = D.checkDefined(KUe(vq(c.parent.statements, c), (h) => h.pos < d), "Some statement should be last");
      e.deleteNodeRange(t, c, y);
    } else
      e.delete(t, c);
  }
  function KUe(e, t) {
    let r;
    for (const i of e) {
      if (!t(i))
        break;
      r = i;
    }
    return r;
  }
  var eG, wee, XUe = C({
    "src/services/codefixes/fixUnreachableCode.ts"() {
      $r(), Eo(), eG = "fixUnreachableCode", wee = [_.Unreachable_code_detected.code], po({
        errorCodes: wee,
        getCodeActions(e) {
          if (e.program.getSyntacticDiagnostics(e.sourceFile, e.cancellationToken).length)
            return;
          const r = gr.ChangeTracker.with(e, (i) => QEe(i, e.sourceFile, e.span.start, e.span.length, e.errorCode));
          return [ro(eG, r, _.Remove_unreachable_code, eG, _.Remove_all_unreachable_code)];
        },
        fixIds: [eG],
        getAllCodeActions: (e) => Cs(e, wee, (t, r) => QEe(t, r.file, r.start, r.length, r.code))
      });
    }
  });
  function ZEe(e, t, r) {
    const i = aa(t, r), o = oo(i.parent, R1), s = i.getStart(t), c = o.statement.getStart(t), f = g_(s, c, t) ? c : Ko(t.text, bs(o, 58, t).end, !0);
    e.deleteRange(t, { pos: s, end: f });
  }
  var tG, Dee, YUe = C({
    "src/services/codefixes/fixUnusedLabel.ts"() {
      $r(), Eo(), tG = "fixUnusedLabel", Dee = [_.Unused_label.code], po({
        errorCodes: Dee,
        getCodeActions(e) {
          const t = gr.ChangeTracker.with(e, (r) => ZEe(r, e.sourceFile, e.span.start));
          return [ro(tG, t, _.Remove_unused_label, tG, _.Remove_all_unused_labels)];
        },
        fixIds: [tG],
        getAllCodeActions: (e) => Cs(e, Dee, (t, r) => ZEe(t, r.file, r.start))
      });
    }
  });
  function eTe(e, t, r, i, o) {
    e.replaceNode(t, r, o.typeToTypeNode(i, r, void 0));
  }
  function tTe(e, t, r) {
    const i = nr(aa(e, t), $Ue), o = i && i.type;
    return o && { typeNode: o, type: QUe(r, o) };
  }
  function $Ue(e) {
    switch (e.kind) {
      case 231:
      case 176:
      case 177:
      case 259:
      case 174:
      case 178:
      case 197:
      case 171:
      case 170:
      case 166:
      case 169:
      case 168:
      case 175:
      case 262:
      case 213:
      case 257:
        return !0;
      default:
        return !1;
    }
  }
  function QUe(e, t) {
    if (AC(t)) {
      const r = e.getTypeFromTypeNode(t.type);
      return r === e.getNeverType() || r === e.getVoidType() ? r : e.getUnionType(Fn([r, e.getUndefinedType()], t.postfix ? void 0 : e.getNullType()));
    }
    return e.getTypeFromTypeNode(t);
  }
  var Ree, nG, Nee, ZUe = C({
    "src/services/codefixes/fixJSDocTypes.ts"() {
      $r(), Eo(), Ree = "fixJSDocTypes_plain", nG = "fixJSDocTypes_nullable", Nee = [
        _.JSDoc_types_can_only_be_used_inside_documentation_comments.code,
        _._0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1.code,
        _._0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1.code
      ], po({
        errorCodes: Nee,
        getCodeActions(e) {
          const { sourceFile: t } = e, r = e.program.getTypeChecker(), i = tTe(t, e.span.start, r);
          if (!i)
            return;
          const { typeNode: o, type: s } = i, c = o.getText(t), f = [d(s, Ree, _.Change_all_jsdoc_style_types_to_TypeScript)];
          return o.kind === 317 && f.push(d(s, nG, _.Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types)), f;
          function d(y, h, E) {
            const A = gr.ChangeTracker.with(e, (L) => eTe(L, t, o, y, r));
            return ro("jdocTypes", A, [_.Change_0_to_1, c, r.typeToString(y)], h, E);
          }
        },
        fixIds: [Ree, nG],
        getAllCodeActions(e) {
          const { fixId: t, program: r, sourceFile: i } = e, o = r.getTypeChecker();
          return Cs(e, Nee, (s, c) => {
            const f = tTe(c.file, c.start, o);
            if (!f)
              return;
            const { typeNode: d, type: y } = f, h = d.kind === 317 && t === nG ? o.getNullableType(y, 32768) : y;
            eTe(s, i, d, h, o);
          });
        }
      });
    }
  });
  function nTe(e, t, r) {
    e.replaceNodeWithText(t, r, `${r.text}()`);
  }
  function rTe(e, t) {
    const r = aa(e, t);
    if (Fr(r.parent)) {
      let i = r.parent;
      for (; Fr(i.parent); )
        i = i.parent;
      return i.name;
    }
    if (je(r))
      return r;
  }
  var rG, Oee, eVe = C({
    "src/services/codefixes/fixMissingCallParentheses.ts"() {
      $r(), Eo(), rG = "fixMissingCallParentheses", Oee = [
        _.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead.code
      ], po({
        errorCodes: Oee,
        fixIds: [rG],
        getCodeActions(e) {
          const { sourceFile: t, span: r } = e, i = rTe(t, r.start);
          if (!i)
            return;
          const o = gr.ChangeTracker.with(e, (s) => nTe(s, e.sourceFile, i));
          return [ro(rG, o, _.Add_missing_call_parentheses, rG, _.Add_all_missing_call_parentheses)];
        },
        getAllCodeActions: (e) => Cs(e, Oee, (t, r) => {
          const i = rTe(r.file, r.start);
          i && nTe(t, r.file, i);
        })
      });
    }
  });
  function tVe(e) {
    if (e.type)
      return e.type;
    if (Ki(e.parent) && e.parent.type && Ch(e.parent.type))
      return e.parent.type.type;
  }
  function iTe(e, t) {
    const r = aa(e, t), i = Cf(r);
    if (!i)
      return;
    let o;
    switch (i.kind) {
      case 171:
        o = i.name;
        break;
      case 259:
      case 215:
        o = bs(i, 98, e);
        break;
      case 216:
        const s = i.typeParameters ? 29 : 20;
        o = bs(i, s, e) || us(i.parameters);
        break;
      default:
        return;
    }
    return o && {
      insertBefore: o,
      returnType: tVe(i)
    };
  }
  function aTe(e, t, { insertBefore: r, returnType: i }) {
    if (i) {
      const o = fN(i);
      (!o || o.kind !== 79 || o.text !== "Promise") && e.replaceNode(t, i, N.createTypeReferenceNode("Promise", N.createNodeArray([i])));
    }
    e.insertModifierBefore(t, 132, r);
  }
  var iG, Pee, nVe = C({
    "src/services/codefixes/fixAwaitInSyncFunction.ts"() {
      $r(), Eo(), iG = "fixAwaitInSyncFunction", Pee = [
        _.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code,
        _.for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code,
        _.Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function.code
      ], po({
        errorCodes: Pee,
        getCodeActions(e) {
          const { sourceFile: t, span: r } = e, i = iTe(t, r.start);
          if (!i)
            return;
          const o = gr.ChangeTracker.with(e, (s) => aTe(s, t, i));
          return [ro(iG, o, _.Add_async_modifier_to_containing_function, iG, _.Add_all_missing_async_modifiers)];
        },
        fixIds: [iG],
        getAllCodeActions: function(t) {
          const r = /* @__PURE__ */ new Map();
          return Cs(t, Pee, (i, o) => {
            const s = iTe(o.file, o.start);
            !s || !vp(r, ps(s.insertBefore)) || aTe(i, t.sourceFile, s);
          });
        }
      });
    }
  });
  function oTe(e, t, r, i, o) {
    let s, c;
    if (i === _._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property.code)
      s = t, c = t + r;
    else if (i === _._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor.code) {
      const f = o.program.getTypeChecker(), d = aa(e, t).parent;
      D.assert(V0(d), "error span of fixPropertyOverrideAccessor should only be on an accessor");
      const y = d.parent;
      D.assert(di(y), "erroneous accessors should only be inside classes");
      const h = Am(Zee(y, f));
      if (!h)
        return [];
      const E = ta(OA(d.name)), A = f.getPropertyOfType(f.getTypeAtLocation(h), E);
      if (!A || !A.valueDeclaration)
        return [];
      s = A.valueDeclaration.pos, c = A.valueDeclaration.end, e = Zn(A.valueDeclaration);
    } else
      D.fail("fixPropertyOverrideAccessor codefix got unexpected error code " + i);
    return ETe(e, o.program, s, c, o, _.Generate_get_and_set_accessors.message);
  }
  var Mee, aG, rVe = C({
    "src/services/codefixes/fixPropertyOverrideAccessor.ts"() {
      $r(), Eo(), Mee = [
        _._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property.code,
        _._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor.code
      ], aG = "fixPropertyOverrideAccessor", po({
        errorCodes: Mee,
        getCodeActions(e) {
          const t = oTe(e.sourceFile, e.span.start, e.span.length, e.errorCode, e);
          if (t)
            return [ro(aG, t, _.Generate_get_and_set_accessors, aG, _.Generate_get_and_set_accessors_for_all_overriding_properties)];
        },
        fixIds: [aG],
        getAllCodeActions: (e) => Cs(e, Mee, (t, r) => {
          const i = oTe(r.file, r.start, r.length, r.code, e);
          if (i)
            for (const o of i)
              t.pushRaw(e.sourceFile, o);
        })
      });
    }
  });
  function iVe(e, t) {
    switch (e) {
      case _.Parameter_0_implicitly_has_an_1_type.code:
      case _.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:
        return e_(Cf(t)) ? _.Infer_type_of_0_from_usage : _.Infer_parameter_types_from_usage;
      case _.Rest_parameter_0_implicitly_has_an_any_type.code:
      case _.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code:
        return _.Infer_parameter_types_from_usage;
      case _.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code:
        return _.Infer_this_type_of_0_from_usage;
      default:
        return _.Infer_type_of_0_from_usage;
    }
  }
  function aVe(e) {
    switch (e) {
      case _.Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage.code:
        return _.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code;
      case _.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:
        return _.Variable_0_implicitly_has_an_1_type.code;
      case _.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:
        return _.Parameter_0_implicitly_has_an_1_type.code;
      case _.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code:
        return _.Rest_parameter_0_implicitly_has_an_any_type.code;
      case _.Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage.code:
        return _.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code;
      case _._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage.code:
        return _._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code;
      case _.Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage.code:
        return _.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code;
      case _.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:
        return _.Member_0_implicitly_has_an_1_type.code;
    }
    return e;
  }
  function sTe(e, t, r, i, o, s, c, f, d) {
    if (!II(r.kind) && r.kind !== 79 && r.kind !== 25 && r.kind !== 108)
      return;
    const { parent: y } = r, h = $T(t, o, d, f);
    switch (i = aVe(i), i) {
      case _.Member_0_implicitly_has_an_1_type.code:
      case _.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code:
        if (Ki(y) && c(y) || to(y) || If(y))
          return lTe(e, h, t, y, o, f, s), h.writeFixes(e), y;
        if (Fr(y)) {
          const L = Dw(y.name, o, s), I = vw(L, y, o, f);
          if (I) {
            const O = N.createJSDocTypeTag(void 0, N.createJSDocTypeExpression(I), void 0);
            e.addJSDocTags(t, oo(y.parent.parent, ou), [O]);
          }
          return h.writeFixes(e), y;
        }
        return;
      case _.Variable_0_implicitly_has_an_1_type.code: {
        const L = o.getTypeChecker().getSymbolAtLocation(r);
        return L && L.valueDeclaration && Ki(L.valueDeclaration) && c(L.valueDeclaration) ? (lTe(e, h, Zn(L.valueDeclaration), L.valueDeclaration, o, f, s), h.writeFixes(e), L.valueDeclaration) : void 0;
      }
    }
    const E = Cf(r);
    if (E === void 0)
      return;
    let A;
    switch (i) {
      case _.Parameter_0_implicitly_has_an_1_type.code:
        if (e_(E)) {
          cTe(e, h, t, E, o, f, s), A = E;
          break;
        }
      case _.Rest_parameter_0_implicitly_has_an_any_type.code:
        if (c(E)) {
          const L = oo(y, Ba);
          oVe(e, h, t, L, E, o, f, s), A = L;
        }
        break;
      case _.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code:
      case _._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code:
        z_(E) && je(E.name) && (oG(e, h, t, E, Dw(E.name, o, s), o, f), A = E);
        break;
      case _.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code:
        e_(E) && (cTe(e, h, t, E, o, f, s), A = E);
        break;
      case _.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code:
        gr.isThisTypeAnnotatable(E) && c(E) && (sVe(e, t, E, o, f, s), A = E);
        break;
      default:
        return D.fail(String(i));
    }
    return h.writeFixes(e), A;
  }
  function lTe(e, t, r, i, o, s, c) {
    je(i.name) && oG(e, t, r, i, Dw(i.name, o, c), o, s);
  }
  function oVe(e, t, r, i, o, s, c, f) {
    if (!je(i.name))
      return;
    const d = uVe(o, r, s, f);
    if (D.assert(o.parameters.length === d.length, "Parameter count and inference count should match"), fr(o))
      uTe(e, r, d, s, c);
    else {
      const y = Js(o) && !bs(o, 20, r);
      y && e.insertNodeBefore(r, us(o.parameters), N.createToken(20));
      for (const { declaration: h, type: E } of d)
        h && !h.type && !h.initializer && oG(e, t, r, h, E, s, c);
      y && e.insertNodeAfter(r, qo(o.parameters), N.createToken(21));
    }
  }
  function sVe(e, t, r, i, o, s) {
    const c = dTe(r, t, i, s);
    if (!c || !c.length)
      return;
    const f = Bee(i, c, s).thisParameter(), d = vw(f, r, i, o);
    d && (fr(r) ? lVe(e, t, r, d) : e.tryInsertThisTypeAnnotation(t, r, d));
  }
  function lVe(e, t, r, i) {
    e.addJSDocTags(t, r, [
      N.createJSDocThisTag(void 0, N.createJSDocTypeExpression(i))
    ]);
  }
  function cTe(e, t, r, i, o, s, c) {
    const f = Yc(i.parameters);
    if (f && je(i.name) && je(f.name)) {
      let d = Dw(i.name, o, c);
      d === o.getTypeChecker().getAnyType() && (d = Dw(f.name, o, c)), fr(i) ? uTe(e, r, [{ declaration: f, type: d }], o, s) : oG(e, t, r, f, d, o, s);
    }
  }
  function oG(e, t, r, i, o, s, c) {
    const f = vw(o, i, s, c);
    if (f)
      if (fr(r) && i.kind !== 168) {
        const d = Ki(i) ? ai(i.parent.parent, uc) : i;
        if (!d)
          return;
        const y = N.createJSDocTypeExpression(f), h = z_(i) ? N.createJSDocReturnTag(void 0, y, void 0) : N.createJSDocTypeTag(void 0, y, void 0);
        e.addJSDocTags(r, d, [h]);
      } else
        cVe(f, i, r, e, t, ts(s.getCompilerOptions())) || e.tryInsertTypeAnnotation(r, i, f);
  }
  function cVe(e, t, r, i, o, s) {
    const c = ZT(e, s);
    return c && i.tryInsertTypeAnnotation(r, t, c.typeNode) ? (ze(c.symbols, (f) => o.addImportFromExportedSymbol(f, !0)), !0) : !1;
  }
  function uTe(e, t, r, i, o) {
    const s = r.length && r[0].declaration.parent;
    if (!s)
      return;
    const c = ia(r, (f) => {
      const d = f.declaration;
      if (d.initializer || xv(d) || !je(d.name))
        return;
      const y = f.type && vw(f.type, d, i, o);
      if (y) {
        const h = N.cloneNode(d.name);
        return or(h, 7168), { name: N.cloneNode(d.name), param: d, isOptional: !!f.isOptional, typeNode: y };
      }
    });
    if (c.length)
      if (Js(s) || Bs(s)) {
        const f = Js(s) && !bs(s, 20, t);
        f && e.insertNodeBefore(t, us(s.parameters), N.createToken(20)), ze(c, ({ typeNode: d, param: y }) => {
          const h = N.createJSDocTypeTag(void 0, N.createJSDocTypeExpression(d)), E = N.createJSDocComment(void 0, [h]);
          e.insertNodeAt(t, y.getStart(t), E, { suffix: " " });
        }), f && e.insertNodeAfter(t, qo(s.parameters), N.createToken(21));
      } else {
        const f = jt(c, ({ name: d, typeNode: y, isOptional: h }) => N.createJSDocParameterTag(void 0, d, !!h, N.createJSDocTypeExpression(y), !1, void 0));
        e.addJSDocTags(t, s, f);
      }
  }
  function Fee(e, t, r) {
    return ia(ul.getReferenceEntriesForNode(-1, e, t, t.getSourceFiles(), r), (i) => i.kind !== ul.EntryKind.Span ? ai(i.node, je) : void 0);
  }
  function Dw(e, t, r) {
    const i = Fee(e, t, r);
    return Bee(t, i, r).single();
  }
  function uVe(e, t, r, i) {
    const o = dTe(e, t, r, i);
    return o && Bee(r, o, i).parameters(e) || e.parameters.map((s) => ({
      declaration: s,
      type: je(s.name) ? Dw(s.name, r, i) : r.getTypeChecker().getAnyType()
    }));
  }
  function dTe(e, t, r, i) {
    let o;
    switch (e.kind) {
      case 173:
        o = bs(e, 135, t);
        break;
      case 216:
      case 215:
        const s = e.parent;
        o = (Ki(s) || to(s)) && je(s.name) ? s.name : e.name;
        break;
      case 259:
      case 171:
      case 170:
        o = e.name;
        break;
    }
    if (o)
      return Fee(o, r, i);
  }
  function Bee(e, t, r) {
    const i = e.getTypeChecker(), o = {
      string: () => i.getStringType(),
      number: () => i.getNumberType(),
      Array: (Oe) => i.createArrayType(Oe),
      Promise: (Oe) => i.createPromiseType(Oe)
    }, s = [
      i.getStringType(),
      i.getNumberType(),
      i.createArrayType(i.getAnyType()),
      i.createPromiseType(i.getAnyType())
    ];
    return {
      single: d,
      parameters: y,
      thisParameter: h
    };
    function c() {
      return {
        isNumber: void 0,
        isString: void 0,
        isNumberOrString: void 0,
        candidateTypes: void 0,
        properties: void 0,
        calls: void 0,
        constructs: void 0,
        numberIndex: void 0,
        stringIndex: void 0,
        candidateThisTypes: void 0,
        inferredTypes: void 0
      };
    }
    function f(Oe) {
      const Me = /* @__PURE__ */ new Map();
      for (const We of Oe)
        We.properties && We.properties.forEach((Fe, st) => {
          Me.has(st) || Me.set(st, []), Me.get(st).push(Fe);
        });
      const Ye = /* @__PURE__ */ new Map();
      return Me.forEach((We, Fe) => {
        Ye.set(Fe, f(We));
      }), {
        isNumber: Oe.some((We) => We.isNumber),
        isString: Oe.some((We) => We.isString),
        isNumberOrString: Oe.some((We) => We.isNumberOrString),
        candidateTypes: ca(Oe, (We) => We.candidateTypes),
        properties: Ye,
        calls: ca(Oe, (We) => We.calls),
        constructs: ca(Oe, (We) => We.constructs),
        numberIndex: ze(Oe, (We) => We.numberIndex),
        stringIndex: ze(Oe, (We) => We.stringIndex),
        candidateThisTypes: ca(Oe, (We) => We.candidateThisTypes),
        inferredTypes: void 0
      };
    }
    function d() {
      return re(E(t));
    }
    function y(Oe) {
      if (t.length === 0 || !Oe.parameters)
        return;
      const Me = c();
      for (const We of t)
        r.throwIfCancellationRequested(), A(We, Me);
      const Ye = [...Me.constructs || [], ...Me.calls || []];
      return Oe.parameters.map((We, Fe) => {
        const st = [], Ct = gh(We);
        let Et = !1;
        for (const tt of Ye)
          if (tt.argumentTypes.length <= Fe)
            Et = fr(Oe), st.push(i.getUndefinedType());
          else if (Ct)
            for (let at = Fe; at < tt.argumentTypes.length; at++)
              st.push(i.getBaseTypeOfLiteralType(tt.argumentTypes[at]));
          else
            st.push(i.getBaseTypeOfLiteralType(tt.argumentTypes[Fe]));
        if (je(We.name)) {
          const tt = E(Fee(We.name, e, r));
          st.push(...Ct ? ia(tt, i.getElementTypeOfArrayType) : tt);
        }
        const Vt = re(st);
        return {
          type: Ct ? i.createArrayType(Vt) : Vt,
          isOptional: Et && !Ct,
          declaration: We
        };
      });
    }
    function h() {
      const Oe = c();
      for (const Me of t)
        r.throwIfCancellationRequested(), A(Me, Oe);
      return re(Oe.candidateThisTypes || rt);
    }
    function E(Oe) {
      const Me = c();
      for (const Ye of Oe)
        r.throwIfCancellationRequested(), A(Ye, Me);
      return ae(Me);
    }
    function A(Oe, Me) {
      for (; tk(Oe); )
        Oe = Oe.parent;
      switch (Oe.parent.kind) {
        case 241:
          I(Oe, Me);
          break;
        case 222:
          Me.isNumber = !0;
          break;
        case 221:
          O(Oe.parent, Me);
          break;
        case 223:
          k(Oe, Oe.parent, Me);
          break;
        case 292:
        case 293:
          G(Oe.parent, Me);
          break;
        case 210:
        case 211:
          Oe.parent.expression === Oe ? V(Oe.parent, Me) : L(Oe, Me);
          break;
        case 208:
          H(Oe.parent, Me);
          break;
        case 209:
          te(Oe.parent, Oe, Me);
          break;
        case 299:
        case 300:
          X(Oe.parent, Me);
          break;
        case 169:
          Y(Oe.parent, Me);
          break;
        case 257: {
          const { name: Ye, initializer: We } = Oe.parent;
          if (Oe === Ye) {
            We && Be(Me, i.getTypeAtLocation(We));
            break;
          }
        }
        default:
          return L(Oe, Me);
      }
    }
    function L(Oe, Me) {
      dg(Oe) && Be(Me, i.getContextualType(Oe));
    }
    function I(Oe, Me) {
      Be(Me, no(Oe) ? i.getVoidType() : i.getAnyType());
    }
    function O(Oe, Me) {
      switch (Oe.operator) {
        case 45:
        case 46:
        case 40:
        case 54:
          Me.isNumber = !0;
          break;
        case 39:
          Me.isNumberOrString = !0;
          break;
      }
    }
    function k(Oe, Me, Ye) {
      switch (Me.operatorToken.kind) {
        case 42:
        case 41:
        case 43:
        case 44:
        case 47:
        case 48:
        case 49:
        case 50:
        case 51:
        case 52:
        case 65:
        case 67:
        case 66:
        case 68:
        case 69:
        case 73:
        case 74:
        case 78:
        case 70:
        case 72:
        case 71:
        case 40:
        case 29:
        case 32:
        case 31:
        case 33:
          const We = i.getTypeAtLocation(Me.left === Oe ? Me.right : Me.left);
          We.flags & 1056 ? Be(Ye, We) : Ye.isNumber = !0;
          break;
        case 64:
        case 39:
          const Fe = i.getTypeAtLocation(Me.left === Oe ? Me.right : Me.left);
          Fe.flags & 1056 ? Be(Ye, Fe) : Fe.flags & 296 ? Ye.isNumber = !0 : Fe.flags & 402653316 ? Ye.isString = !0 : Fe.flags & 1 || (Ye.isNumberOrString = !0);
          break;
        case 63:
        case 34:
        case 36:
        case 37:
        case 35:
          Be(Ye, i.getTypeAtLocation(Me.left === Oe ? Me.right : Me.left));
          break;
        case 101:
          Oe === Me.left && (Ye.isString = !0);
          break;
        case 56:
        case 60:
          Oe === Me.left && (Oe.parent.parent.kind === 257 || ed(Oe.parent.parent, !0)) && Be(Ye, i.getTypeAtLocation(Me.right));
          break;
      }
    }
    function G(Oe, Me) {
      Be(Me, i.getTypeAtLocation(Oe.parent.parent.expression));
    }
    function V(Oe, Me) {
      const Ye = {
        argumentTypes: [],
        return_: c()
      };
      if (Oe.arguments)
        for (const We of Oe.arguments)
          Ye.argumentTypes.push(i.getTypeAtLocation(We));
      A(Oe, Ye.return_), Oe.kind === 210 ? (Me.calls || (Me.calls = [])).push(Ye) : (Me.constructs || (Me.constructs = [])).push(Ye);
    }
    function H(Oe, Me) {
      const Ye = sl(Oe.name.text);
      Me.properties || (Me.properties = /* @__PURE__ */ new Map());
      const We = Me.properties.get(Ye) || c();
      A(Oe, We), Me.properties.set(Ye, We);
    }
    function te(Oe, Me, Ye) {
      if (Me === Oe.argumentExpression) {
        Ye.isNumberOrString = !0;
        return;
      } else {
        const We = i.getTypeAtLocation(Oe.argumentExpression), Fe = c();
        A(Oe, Fe), We.flags & 296 ? Ye.numberIndex = Fe : Ye.stringIndex = Fe;
      }
    }
    function X(Oe, Me) {
      const Ye = Ki(Oe.parent.parent) ? Oe.parent.parent : Oe.parent;
      qe(Me, i.getTypeAtLocation(Ye));
    }
    function Y(Oe, Me) {
      qe(Me, i.getTypeAtLocation(Oe.parent));
    }
    function P(Oe, Me) {
      const Ye = [];
      for (const We of Oe)
        for (const { high: Fe, low: st } of Me)
          Fe(We) && (D.assert(!st(We), "Priority can't have both low and high"), Ye.push(st));
      return Oe.filter((We) => Ye.every((Fe) => !Fe(We)));
    }
    function de(Oe) {
      return re(ae(Oe));
    }
    function re(Oe) {
      if (!Oe.length)
        return i.getAnyType();
      const Me = i.getUnionType([i.getStringType(), i.getNumberType()]);
      let We = P(Oe, [
        {
          high: (st) => st === i.getStringType() || st === i.getNumberType(),
          low: (st) => st === Me
        },
        {
          high: (st) => !(st.flags & 16385),
          low: (st) => !!(st.flags & 16385)
        },
        {
          high: (st) => !(st.flags & 114689) && !(ti(st) & 16),
          low: (st) => !!(ti(st) & 16)
        }
      ]);
      const Fe = We.filter((st) => ti(st) & 16);
      return Fe.length && (We = We.filter((st) => !(ti(st) & 16)), We.push(ye(Fe))), i.getWidenedType(i.getUnionType(We.map(i.getBaseTypeOfLiteralType), 2));
    }
    function ye(Oe) {
      if (Oe.length === 1)
        return Oe[0];
      const Me = [], Ye = [], We = [], Fe = [];
      let st = !1, Ct = !1;
      const Et = f_();
      for (const at of Oe) {
        for (const On of i.getPropertiesOfType(at))
          Et.add(On.name, On.valueDeclaration ? i.getTypeOfSymbolAtLocation(On, On.valueDeclaration) : i.getAnyType());
        Me.push(...i.getSignaturesOfType(at, 0)), Ye.push(...i.getSignaturesOfType(at, 1));
        const sn = i.getIndexInfoOfType(at, 0);
        sn && (We.push(sn.type), st = st || sn.isReadonly);
        const Qt = i.getIndexInfoOfType(at, 1);
        Qt && (Fe.push(Qt.type), Ct = Ct || Qt.isReadonly);
      }
      const Vt = Ese(Et, (at, sn) => {
        const Qt = sn.length < Oe.length ? 16777216 : 0, On = i.createSymbol(4 | Qt, at);
        return On.links.type = i.getUnionType(sn), [at, On];
      }), tt = [];
      return We.length && tt.push(i.createIndexInfo(i.getStringType(), i.getUnionType(We), st)), Fe.length && tt.push(i.createIndexInfo(i.getNumberType(), i.getUnionType(Fe), Ct)), i.createAnonymousType(Oe[0].symbol, Vt, Me, Ye, tt);
    }
    function ae(Oe) {
      var Me, Ye, We;
      const Fe = [];
      Oe.isNumber && Fe.push(i.getNumberType()), Oe.isString && Fe.push(i.getStringType()), Oe.isNumberOrString && Fe.push(i.getUnionType([i.getStringType(), i.getNumberType()])), Oe.numberIndex && Fe.push(i.createArrayType(de(Oe.numberIndex))), ((Me = Oe.properties) != null && Me.size || (Ye = Oe.constructs) != null && Ye.length || Oe.stringIndex) && Fe.push(W(Oe));
      const st = (Oe.candidateTypes || []).map((Et) => i.getBaseTypeOfLiteralType(Et)), Ct = (We = Oe.calls) != null && We.length ? W(Oe) : void 0;
      return Ct && st ? Fe.push(i.getUnionType([Ct, ...st], 2)) : (Ct && Fe.push(Ct), Le(st) && Fe.push(...st)), Fe.push(...ce(Oe)), Fe;
    }
    function W(Oe) {
      const Me = /* @__PURE__ */ new Map();
      Oe.properties && Oe.properties.forEach((st, Ct) => {
        const Et = i.createSymbol(4, Ct);
        Et.links.type = de(st), Me.set(Ct, Et);
      });
      const Ye = Oe.calls ? [Ve(Oe.calls)] : [], We = Oe.constructs ? [Ve(Oe.constructs)] : [], Fe = Oe.stringIndex ? [i.createIndexInfo(i.getStringType(), de(Oe.stringIndex), !1)] : [];
      return i.createAnonymousType(void 0, Me, Ye, We, Fe);
    }
    function ce(Oe) {
      if (!Oe.properties || !Oe.properties.size)
        return [];
      const Me = s.filter((Ye) => me(Ye, Oe));
      return 0 < Me.length && Me.length < 3 ? Me.map((Ye) => ve(Ye, Oe)) : [];
    }
    function me(Oe, Me) {
      return Me.properties ? !of(Me.properties, (Ye, We) => {
        const Fe = i.getTypeOfPropertyOfType(Oe, We);
        return Fe ? Ye.calls ? !i.getSignaturesOfType(Fe, 0).length || !i.isTypeAssignableTo(Fe, Qe(Ye.calls)) : !i.isTypeAssignableTo(Fe, de(Ye)) : !0;
      }) : !1;
    }
    function ve(Oe, Me) {
      if (!(ti(Oe) & 4) || !Me.properties)
        return Oe;
      const Ye = Oe.target, We = Am(Ye.typeParameters);
      if (!We)
        return Oe;
      const Fe = [];
      return Me.properties.forEach((st, Ct) => {
        const Et = i.getTypeOfPropertyOfType(Ye, Ct);
        D.assert(!!Et, "generic should have all the properties of its reference."), Fe.push(...Te(Et, de(st), We));
      }), o[Oe.symbol.escapedName](re(Fe));
    }
    function Te(Oe, Me, Ye) {
      if (Oe === Ye)
        return [Me];
      if (Oe.flags & 3145728)
        return ca(Oe.types, (st) => Te(st, Me, Ye));
      if (ti(Oe) & 4 && ti(Me) & 4) {
        const st = i.getTypeArguments(Oe), Ct = i.getTypeArguments(Me), Et = [];
        if (st && Ct)
          for (let Vt = 0; Vt < st.length; Vt++)
            Ct[Vt] && Et.push(...Te(st[Vt], Ct[Vt], Ye));
        return Et;
      }
      const We = i.getSignaturesOfType(Oe, 0), Fe = i.getSignaturesOfType(Me, 0);
      return We.length === 1 && Fe.length === 1 ? ee(We[0], Fe[0], Ye) : [];
    }
    function ee(Oe, Me, Ye) {
      var We;
      const Fe = [];
      for (let Et = 0; Et < Oe.parameters.length; Et++) {
        const Vt = Oe.parameters[Et], tt = Me.parameters[Et], at = Oe.declaration && gh(Oe.declaration.parameters[Et]);
        if (!tt)
          break;
        let sn = Vt.valueDeclaration ? i.getTypeOfSymbolAtLocation(Vt, Vt.valueDeclaration) : i.getAnyType();
        const Qt = at && i.getElementTypeOfArrayType(sn);
        Qt && (sn = Qt);
        const On = ((We = ai(tt, Om)) == null ? void 0 : We.links.type) || (tt.valueDeclaration ? i.getTypeOfSymbolAtLocation(tt, tt.valueDeclaration) : i.getAnyType());
        Fe.push(...Te(sn, On, Ye));
      }
      const st = i.getReturnTypeOfSignature(Oe), Ct = i.getReturnTypeOfSignature(Me);
      return Fe.push(...Te(st, Ct, Ye)), Fe;
    }
    function Qe(Oe) {
      return i.createAnonymousType(void 0, lo(), [Ve(Oe)], rt, rt);
    }
    function Ve(Oe) {
      const Me = [], Ye = Math.max(...Oe.map((Fe) => Fe.argumentTypes.length));
      for (let Fe = 0; Fe < Ye; Fe++) {
        const st = i.createSymbol(1, sl(`arg${Fe}`));
        st.links.type = re(Oe.map((Ct) => Ct.argumentTypes[Fe] || i.getUndefinedType())), Oe.some((Ct) => Ct.argumentTypes[Fe] === void 0) && (st.flags |= 16777216), Me.push(st);
      }
      const We = de(f(Oe.map((Fe) => Fe.return_)));
      return i.createSignature(void 0, void 0, void 0, Me, We, void 0, Ye, 0);
    }
    function Be(Oe, Me) {
      Me && !(Me.flags & 1) && !(Me.flags & 131072) && (Oe.candidateTypes || (Oe.candidateTypes = [])).push(Me);
    }
    function qe(Oe, Me) {
      Me && !(Me.flags & 1) && !(Me.flags & 131072) && (Oe.candidateThisTypes || (Oe.candidateThisTypes = [])).push(Me);
    }
  }
  var sG, Gee, dVe = C({
    "src/services/codefixes/inferFromUsage.ts"() {
      $r(), Eo(), sG = "inferFromUsage", Gee = [
        _.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code,
        _.Variable_0_implicitly_has_an_1_type.code,
        _.Parameter_0_implicitly_has_an_1_type.code,
        _.Rest_parameter_0_implicitly_has_an_any_type.code,
        _.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code,
        _._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code,
        _.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code,
        _.Member_0_implicitly_has_an_1_type.code,
        _.Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage.code,
        _.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,
        _.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,
        _.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code,
        _.Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage.code,
        _._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage.code,
        _.Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage.code,
        _.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,
        _.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code
      ], po({
        errorCodes: Gee,
        getCodeActions(e) {
          const { sourceFile: t, program: r, span: { start: i }, errorCode: o, cancellationToken: s, host: c, preferences: f } = e, d = aa(t, i);
          let y;
          const h = gr.ChangeTracker.with(e, (A) => {
            y = sTe(A, t, d, o, r, s, n1, c, f);
          }), E = y && ka(y);
          return !E || h.length === 0 ? void 0 : [ro(sG, h, [iVe(o, d), Sc(E)], sG, _.Infer_all_types_from_usage)];
        },
        fixIds: [sG],
        getAllCodeActions(e) {
          const { sourceFile: t, program: r, cancellationToken: i, host: o, preferences: s } = e, c = JC();
          return Cs(e, Gee, (f, d) => {
            sTe(f, t, aa(d.file, d.start), d.code, r, i, c, o, s);
          });
        }
      });
    }
  });
  function fTe(e, t, r) {
    if (fr(e))
      return;
    const i = aa(e, r), o = nr(i, Qs), s = o == null ? void 0 : o.type;
    if (!s)
      return;
    const c = t.getTypeFromTypeNode(s), f = t.getAwaitedType(c) || t.getVoidType(), d = t.typeToTypeNode(f, s, void 0);
    if (d)
      return { returnTypeNode: s, returnType: c, promisedTypeNode: d, promisedType: f };
  }
  function _Te(e, t, r, i) {
    e.replaceNode(t, r, N.createTypeReferenceNode("Promise", [i]));
  }
  var lG, Uee, fVe = C({
    "src/services/codefixes/fixReturnTypeInAsyncFunction.ts"() {
      $r(), Eo(), lG = "fixReturnTypeInAsyncFunction", Uee = [
        _.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0.code
      ], po({
        errorCodes: Uee,
        fixIds: [lG],
        getCodeActions: function(t) {
          const { sourceFile: r, program: i, span: o } = t, s = i.getTypeChecker(), c = fTe(r, i.getTypeChecker(), o.start);
          if (!c)
            return;
          const { returnTypeNode: f, returnType: d, promisedTypeNode: y, promisedType: h } = c, E = gr.ChangeTracker.with(t, (A) => _Te(A, r, f, y));
          return [ro(lG, E, [
            _.Replace_0_with_Promise_1,
            s.typeToString(d),
            s.typeToString(h)
          ], lG, _.Fix_all_incorrect_return_type_of_an_async_functions)];
        },
        getAllCodeActions: (e) => Cs(e, Uee, (t, r) => {
          const i = fTe(r.file, e.program.getTypeChecker(), r.start);
          i && _Te(t, r.file, i.returnTypeNode, i.promisedTypeNode);
        })
      });
    }
  });
  function pTe(e, t, r, i) {
    const { line: o } = ol(t, r);
    (!i || hv(i, o)) && e.insertCommentBeforeLine(t, o, r, " @ts-ignore");
  }
  var Vee, jee, Hee, _Ve = C({
    "src/services/codefixes/disableJsDiagnostics.ts"() {
      $r(), Eo(), Vee = "disableJsDiagnostics", jee = "disableJsDiagnostics", Hee = ia(Object.keys(_), (e) => {
        const t = _[e];
        return t.category === 1 ? t.code : void 0;
      }), po({
        errorCodes: Hee,
        getCodeActions: function(t) {
          const { sourceFile: r, program: i, span: o, host: s, formatContext: c } = t;
          if (!fr(r) || !cO(r, i.getCompilerOptions()))
            return;
          const f = r.checkJsDirective ? "" : ib(s, c.options), d = [
            Ap(Vee, [xbe(r.fileName, [
              i6(r.checkJsDirective ? hc(r.checkJsDirective.pos, r.checkJsDirective.end) : wc(0, 0), `// @ts-nocheck${f}`)
            ])], _.Disable_checking_for_this_file)
          ];
          return gr.isValidLocationToAddComment(r, o.start) && d.unshift(ro(Vee, gr.ChangeTracker.with(t, (y) => pTe(y, r, o.start)), _.Ignore_this_error_message, jee, _.Add_ts_ignore_to_all_error_messages)), d;
        },
        fixIds: [jee],
        getAllCodeActions: (e) => {
          const t = /* @__PURE__ */ new Set();
          return Cs(e, Hee, (r, i) => {
            gr.isValidLocationToAddComment(i.file, i.start) && pTe(r, i.file, i.start, t);
          });
        }
      });
    }
  });
  function Wee(e, t, r, i, o, s, c) {
    const f = e.symbol.members;
    for (const d of t)
      f.has(d.escapedName) || mTe(d, e, r, i, o, s, c, void 0);
  }
  function e2(e) {
    return {
      trackSymbol: () => !1,
      moduleResolverHost: W$(e.program, e.host)
    };
  }
  function mTe(e, t, r, i, o, s, c, f, d = 3, y = !1) {
    var h;
    const E = e.getDeclarations(), A = E == null ? void 0 : E[0], L = i.program.getTypeChecker(), I = ts(i.program.getCompilerOptions()), O = (h = A == null ? void 0 : A.kind) != null ? h : 168, k = wl(ka(A), !1), G = A ? Mu(A) : 0;
    let V = G & 4 ? 4 : G & 16 ? 16 : 0;
    A && af(A) && (V |= 128);
    const H = re(), te = L.getWidenedType(L.getTypeOfSymbolAtLocation(e, t)), X = !!(e.flags & 16777216), Y = !!(t.flags & 16777216) || y, P = xp(r, o);
    switch (O) {
      case 168:
      case 169:
        const me = P === 0 ? 268435456 : void 0;
        let ve = L.typeToTypeNode(te, t, me, e2(i));
        if (s) {
          const ee = ZT(ve, I);
          ee && (ve = ee.typeNode, t2(s, ee.symbols));
        }
        c(N.createPropertyDeclaration(H, A ? ae(k) : e.getName(), X && d & 2 ? N.createToken(57) : void 0, ve, void 0));
        break;
      case 174:
      case 175: {
        D.assertIsDefined(E);
        let ee = L.typeToTypeNode(te, t, void 0, e2(i));
        const Qe = vT(E, A), Ve = Qe.secondAccessor ? [Qe.firstAccessor, Qe.secondAccessor] : [Qe.firstAccessor];
        if (s) {
          const Be = ZT(ee, I);
          Be && (ee = Be.typeNode, t2(s, Be.symbols));
        }
        for (const Be of Ve)
          if (z_(Be))
            c(N.createGetAccessorDeclaration(H, ae(k), rt, ce(ee), W(f, P, Y)));
          else {
            D.assertNode(Be, e_, "The counterpart to a getter should be a setter");
            const qe = $I(Be), Oe = qe && je(qe.name) ? Mr(qe.name) : void 0;
            c(N.createSetAccessorDeclaration(H, ae(k), qee(1, [Oe], [ce(ee)], 1, !1), W(f, P, Y)));
          }
        break;
      }
      case 170:
      case 171:
        D.assertIsDefined(E);
        const Te = te.isUnion() ? ca(te.types, (ee) => ee.getCallSignatures()) : te.getCallSignatures();
        if (!kt(Te))
          break;
        if (E.length === 1) {
          D.assert(Te.length === 1, "One declaration implies one signature");
          const ee = Te[0];
          de(P, ee, H, ae(k), W(f, P, Y));
          break;
        }
        for (const ee of Te)
          de(P, ee, H, ae(k));
        if (!Y)
          if (E.length > Te.length) {
            const ee = L.getSignatureFromDeclaration(E[E.length - 1]);
            de(P, ee, H, ae(k), W(f, P));
          } else
            D.assert(E.length === Te.length, "Declarations and signatures should match count"), c(hVe(L, i, t, Te, ae(k), X && !!(d & 1), H, P, f));
        break;
    }
    function de(me, ve, Te, ee, Qe) {
      const Ve = cG(171, i, me, ve, Qe, ee, Te, X && !!(d & 1), t, s);
      Ve && c(Ve);
    }
    function re() {
      let me;
      return V && (me = hA(me, N.createModifiersFromModifierFlags(V))), ye() && (me = Fn(me, N.createToken(161))), me && N.createNodeArray(me);
    }
    function ye() {
      return !!(i.program.getCompilerOptions().noImplicitOverride && A && A1(A));
    }
    function ae(me) {
      return je(me) && me.escapedText === "constructor" ? N.createComputedPropertyName(N.createStringLiteral(Mr(me), P === 0)) : wl(me, !1);
    }
    function W(me, ve, Te) {
      return Te ? void 0 : wl(me, !1) || Jee(ve);
    }
    function ce(me) {
      return wl(me, !1);
    }
  }
  function cG(e, t, r, i, o, s, c, f, d, y) {
    const h = t.program, E = h.getTypeChecker(), A = ts(h.getCompilerOptions()), L = fr(d), I = 524545 | (r === 0 ? 268435456 : 0), O = E.signatureToSignatureDeclaration(i, e, d, I, e2(t));
    if (!O)
      return;
    let k = L ? void 0 : O.typeParameters, G = O.parameters, V = L ? void 0 : O.type;
    if (y) {
      if (k) {
        const Y = _a(k, (P) => {
          let de = P.constraint, re = P.default;
          if (de) {
            const ye = ZT(de, A);
            ye && (de = ye.typeNode, t2(y, ye.symbols));
          }
          if (re) {
            const ye = ZT(re, A);
            ye && (re = ye.typeNode, t2(y, ye.symbols));
          }
          return N.updateTypeParameterDeclaration(P, P.modifiers, P.name, de, re);
        });
        k !== Y && (k = ht(N.createNodeArray(Y, k.hasTrailingComma), k));
      }
      const X = _a(G, (Y) => {
        let P = L ? void 0 : Y.type;
        if (P) {
          const de = ZT(P, A);
          de && (P = de.typeNode, t2(y, de.symbols));
        }
        return N.updateParameterDeclaration(Y, Y.modifiers, Y.dotDotDotToken, Y.name, L ? void 0 : Y.questionToken, P, Y.initializer);
      });
      if (G !== X && (G = ht(N.createNodeArray(X, G.hasTrailingComma), G)), V) {
        const Y = ZT(V, A);
        Y && (V = Y.typeNode, t2(y, Y.symbols));
      }
    }
    const H = f ? N.createToken(57) : void 0, te = O.asteriskToken;
    if (Bs(O))
      return N.updateFunctionExpression(O, c, O.asteriskToken, ai(s, je), k, G, V, o ?? O.body);
    if (Js(O))
      return N.updateArrowFunction(O, c, k, G, V, O.equalsGreaterThanToken, o ?? O.body);
    if (ac(O))
      return N.updateMethodDeclaration(O, c, te, s ?? N.createIdentifier(""), H, k, G, V, o);
    if (yc(O))
      return N.updateFunctionDeclaration(O, c, O.asteriskToken, ai(s, je), k, G, V, o ?? O.body);
  }
  function zee(e, t, r, i, o, s, c) {
    const f = xp(t.sourceFile, t.preferences), d = ts(t.program.getCompilerOptions()), y = e2(t), h = t.program.getTypeChecker(), E = fr(c), { typeArguments: A, arguments: L, parent: I } = i, O = E ? void 0 : h.getContextualType(i), k = jt(L, (re) => je(re) ? re.text : Fr(re) && je(re.name) ? re.name.text : void 0), G = E ? [] : jt(L, (re) => h.getTypeAtLocation(re)), { argumentTypeNodes: V, argumentTypeParameters: H } = yTe(h, r, G, c, d, void 0, y), te = s ? N.createNodeArray(N.createModifiersFromModifierFlags(s)) : void 0, X = j7(I) ? N.createToken(41) : void 0, Y = E ? void 0 : pVe(h, H, A), P = qee(L.length, k, V, void 0, E), de = E || O === void 0 ? void 0 : h.typeToTypeNode(O, c, void 0, y);
    switch (e) {
      case 171:
        return N.createMethodDeclaration(te, X, o, void 0, Y, P, de, Jee(f));
      case 170:
        return N.createMethodSignature(te, o, void 0, Y, P, de === void 0 ? N.createKeywordTypeNode(157) : de);
      case 259:
        return N.createFunctionDeclaration(te, X, o, Y, P, de, R6(_.Function_not_implemented.message, f));
      default:
        D.fail("Unexpected kind");
    }
  }
  function pVe(e, t, r) {
    const i = new Set(t.map((s) => s[0])), o = new Map(t);
    if (r) {
      const s = r.filter((f) => !t.some((d) => {
        var y;
        return e.getTypeAtLocation(f) === ((y = d[1]) == null ? void 0 : y.argumentType);
      })), c = i.size + s.length;
      for (let f = 0; i.size < c; f += 1)
        i.add(hTe(f));
    }
    return Ro(i.values(), (s) => {
      var c;
      return N.createTypeParameterDeclaration(void 0, s, (c = o.get(s)) == null ? void 0 : c.constraint);
    });
  }
  function hTe(e) {
    return 84 + e <= 90 ? String.fromCharCode(84 + e) : `T${e}`;
  }
  function uG(e, t, r, i, o, s, c) {
    let f = e.typeToTypeNode(r, i, s, c);
    if (f && gg(f)) {
      const d = ZT(f, o);
      d && (t2(t, d.symbols), f = d.typeNode);
    }
    return wl(f);
  }
  function gTe(e) {
    return e.isUnionOrIntersection() ? e.types.some(gTe) : e.flags & 262144;
  }
  function yTe(e, t, r, i, o, s, c) {
    const f = [], d = /* @__PURE__ */ new Map();
    for (let y = 0; y < r.length; y += 1) {
      const h = r[y];
      if (h.isUnionOrIntersection() && h.types.some(gTe)) {
        const O = hTe(y);
        f.push(N.createTypeReferenceNode(O)), d.set(O, void 0);
        continue;
      }
      const E = e.getBaseTypeOfLiteralType(h), A = uG(e, t, E, i, o, s, c);
      if (!A)
        continue;
      f.push(A);
      const L = vTe(h), I = h.isTypeParameter() && h.constraint && !mVe(h.constraint) ? uG(e, t, h.constraint, i, o, s, c) : void 0;
      L && d.set(L, { argumentType: h, constraint: I });
    }
    return { argumentTypeNodes: f, argumentTypeParameters: Ro(d.entries()) };
  }
  function mVe(e) {
    return e.flags & 524288 && e.objectFlags === 16;
  }
  function vTe(e) {
    var t;
    if (e.flags & 3145728)
      for (const r of e.types) {
        const i = vTe(r);
        if (i)
          return i;
      }
    return e.flags & 262144 ? (t = e.getSymbol()) == null ? void 0 : t.getName() : void 0;
  }
  function qee(e, t, r, i, o) {
    const s = [], c = /* @__PURE__ */ new Map();
    for (let f = 0; f < e; f++) {
      const d = (t == null ? void 0 : t[f]) || `arg${f}`, y = c.get(d);
      c.set(d, (y || 0) + 1);
      const h = N.createParameterDeclaration(void 0, void 0, d + (y || ""), i !== void 0 && f >= i ? N.createToken(57) : void 0, o ? void 0 : (r == null ? void 0 : r[f]) || N.createKeywordTypeNode(157), void 0);
      s.push(h);
    }
    return s;
  }
  function hVe(e, t, r, i, o, s, c, f, d) {
    let y = i[0], h = i[0].minArgumentCount, E = !1;
    for (const O of i)
      h = Math.min(O.minArgumentCount, h), Eu(O) && (E = !0), O.parameters.length >= y.parameters.length && (!Eu(O) || Eu(y)) && (y = O);
    const A = y.parameters.length - (Eu(y) ? 1 : 0), L = y.parameters.map((O) => O.name), I = qee(A, L, void 0, h, !1);
    if (E) {
      const O = N.createParameterDeclaration(void 0, N.createToken(25), L[A] || "rest", A >= h ? N.createToken(57) : void 0, N.createArrayTypeNode(N.createKeywordTypeNode(157)), void 0);
      I.push(O);
    }
    return yVe(c, o, s, void 0, I, gVe(i, e, t, r), f, d);
  }
  function gVe(e, t, r, i) {
    if (Le(e)) {
      const o = t.getUnionType(jt(e, t.getReturnTypeOfSignature));
      return t.typeToTypeNode(o, i, 1, e2(r));
    }
  }
  function yVe(e, t, r, i, o, s, c, f) {
    return N.createMethodDeclaration(e, void 0, t, r ? N.createToken(57) : void 0, i, o, s, f || Jee(c));
  }
  function Jee(e) {
    return R6(_.Method_not_implemented.message, e);
  }
  function R6(e, t) {
    return N.createBlock([N.createThrowStatement(N.createNewExpression(N.createIdentifier("Error"), void 0, [N.createStringLiteral(e, t === 0)]))], !0);
  }
  function Kee(e, t, r) {
    const i = BI(t);
    if (!i)
      return;
    const o = Yee(i, "compilerOptions");
    if (o === void 0) {
      e.insertNodeAtObjectStart(t, i, dG("compilerOptions", N.createObjectLiteralExpression(r.map(([c, f]) => dG(c, f)), !0)));
      return;
    }
    const s = o.initializer;
    if (Ls(s))
      for (const [c, f] of r) {
        const d = Yee(s, c);
        d === void 0 ? e.insertNodeAtObjectStart(t, s, dG(c, f)) : e.replaceNode(t, d.initializer, f);
      }
  }
  function Xee(e, t, r, i) {
    Kee(e, t, [[r, i]]);
  }
  function dG(e, t) {
    return N.createPropertyAssignment(N.createStringLiteral(e), t);
  }
  function Yee(e, t) {
    return nn(e.properties, (r) => zc(r) && !!r.name && jo(r.name) && r.name.text === t);
  }
  function ZT(e, t) {
    let r;
    const i = lt(e, o, Gi);
    if (r && i)
      return { typeNode: i, symbols: r };
    function o(s) {
      if (j0(s) && s.qualifier) {
        const c = Lf(s.qualifier), f = y9(c.symbol, t), d = f !== c.text ? bTe(s.qualifier, N.createIdentifier(f)) : s.qualifier;
        r = Fn(r, c.symbol);
        const y = Jn(s.typeArguments, o, Gi);
        return N.createTypeReferenceNode(d, y);
      }
      return Bn(s, o, bg);
    }
  }
  function bTe(e, t) {
    return e.kind === 79 ? t : N.createQualifiedName(bTe(e.left, t), e.right);
  }
  function t2(e, t) {
    t.forEach((r) => e.addImportFromExportedSymbol(r, !0));
  }
  function $ee(e, t) {
    const r = iu(t);
    let i = aa(e, t.start);
    for (; i.end < r; )
      i = i.parent;
    return i;
  }
  var Qee, vVe = C({
    "src/services/codefixes/helpers.ts"() {
      $r(), Qee = /* @__PURE__ */ ((e) => (e[e.Method = 1] = "Method", e[e.Property = 2] = "Property", e[e.All = 3] = "All", e))(Qee || {});
    }
  });
  function ETe(e, t, r, i, o, s) {
    const c = xTe(e, t, r, i);
    if (!c || Hw.isRefactorErrorInfo(c))
      return;
    const f = gr.ChangeTracker.fromContext(o), { isStatic: d, isReadonly: y, fieldName: h, accessorName: E, originalName: A, type: L, container: I, declaration: O } = c;
    zd(h), zd(E), zd(O), zd(I);
    let k, G;
    if (di(I)) {
      const H = Mu(O);
      if (Zu(e)) {
        const te = N.createModifiersFromModifierFlags(H);
        k = te, G = te;
      } else
        k = N.createModifiersFromModifierFlags(TVe(H)), G = N.createModifiersFromModifierFlags(SVe(H));
      Mx(O) && (G = va(Sv(O), G));
    }
    IVe(f, e, O, L, h, G);
    const V = xVe(h, E, L, k, d, I);
    if (zd(V), ATe(f, e, V, O, I), y) {
      const H = Eh(I);
      H && kVe(f, e, H, h.text, A);
    } else {
      const H = AVe(h, E, L, k, d, I);
      zd(H), ATe(f, e, H, O, I);
    }
    return f.getChanges();
  }
  function bVe(e) {
    return je(e) || jo(e);
  }
  function EVe(e) {
    return nf(e, e.parent) || to(e) || zc(e);
  }
  function TTe(e, t) {
    return je(t) ? N.createIdentifier(e) : N.createStringLiteral(e);
  }
  function STe(e, t, r) {
    const i = t ? r.name : N.createThis();
    return je(e) ? N.createPropertyAccessExpression(i, e) : N.createElementAccessExpression(i, N.createStringLiteralFromNode(e));
  }
  function TVe(e) {
    return e &= -65, e &= -9, e & 16 || (e |= 4), e;
  }
  function SVe(e) {
    return e &= -5, e &= -17, e |= 8, e;
  }
  function xTe(e, t, r, i, o = !0) {
    const s = aa(e, r), c = r === i && o, f = nr(s.parent, EVe), d = 124;
    if (!f || !(L$(f.name, e, r, i) || c))
      return {
        error: Oo(_.Could_not_find_property_for_which_to_generate_accessor)
      };
    if (!bVe(f.name))
      return {
        error: Oo(_.Name_is_not_valid)
      };
    if ((Mu(f) & 126975 | d) !== d)
      return {
        error: Oo(_.Can_only_convert_property_with_modifier)
      };
    const y = f.name.text, h = pQ(y), E = TTe(h ? y : KT(`_${y}`, e), f.name), A = TTe(h ? KT(y.substring(1), e) : y, f.name);
    return {
      isStatic: gc(f),
      isReadonly: QI(f),
      type: wVe(f, t),
      container: f.kind === 166 ? f.parent.parent : f.parent,
      originalName: f.name.text,
      declaration: f,
      fieldName: E,
      accessorName: A,
      renameAccessor: h
    };
  }
  function xVe(e, t, r, i, o, s) {
    return N.createGetAccessorDeclaration(i, t, [], r, N.createBlock([
      N.createReturnStatement(STe(e, o, s))
    ], !0));
  }
  function AVe(e, t, r, i, o, s) {
    return N.createSetAccessorDeclaration(i, t, [N.createParameterDeclaration(void 0, void 0, N.createIdentifier("value"), void 0, r)], N.createBlock([
      N.createExpressionStatement(N.createAssignment(STe(e, o, s), N.createIdentifier("value")))
    ], !0));
  }
  function CVe(e, t, r, i, o, s) {
    const c = N.updatePropertyDeclaration(r, s, o, r.questionToken || r.exclamationToken, i, r.initializer);
    e.replaceNode(t, r, c);
  }
  function LVe(e, t, r, i) {
    let o = N.updatePropertyAssignment(r, i, r.initializer);
    (o.modifiers || o.questionToken || o.exclamationToken) && (o === r && (o = N.cloneNode(o)), o.modifiers = void 0, o.questionToken = void 0, o.exclamationToken = void 0), e.replacePropertyAssignment(t, r, o);
  }
  function IVe(e, t, r, i, o, s) {
    to(r) ? CVe(e, t, r, i, o, s) : zc(r) ? LVe(e, t, r, o) : e.replaceNode(t, r, N.updateParameterDeclaration(r, s, r.dotDotDotToken, oo(o, je), r.questionToken, r.type, r.initializer));
  }
  function ATe(e, t, r, i, o) {
    nf(i, i.parent) ? e.insertMemberAtStart(t, o, r) : zc(i) ? e.insertNodeAfterComma(t, i, r) : e.insertNodeAfter(t, i, r);
  }
  function kVe(e, t, r, i, o) {
    r.body && r.body.forEachChild(function s(c) {
      cl(c) && c.expression.kind === 108 && jo(c.argumentExpression) && c.argumentExpression.text === o && ok(c) && e.replaceNode(t, c.argumentExpression, N.createStringLiteral(i)), Fr(c) && c.expression.kind === 108 && c.name.text === o && ok(c) && e.replaceNode(t, c.name, N.createIdentifier(i)), !Ka(c) && !di(c) && c.forEachChild(s);
    });
  }
  function wVe(e, t) {
    const r = Jue(e);
    if (to(e) && r && e.questionToken) {
      const i = t.getTypeChecker(), o = i.getTypeFromTypeNode(r);
      if (!i.isTypeAssignableTo(i.getUndefinedType(), o)) {
        const s = Sx(r) ? r.types : [r];
        return N.createUnionTypeNode([...s, N.createKeywordTypeNode(155)]);
      }
    }
    return r;
  }
  function Zee(e, t) {
    const r = [];
    for (; e; ) {
      const i = E1(e), o = i && t.getSymbolAtLocation(i.expression);
      if (!o)
        break;
      const s = o.flags & 2097152 ? t.getAliasedSymbol(o) : o, c = s.declarations && nn(s.declarations, di);
      if (!c)
        break;
      r.push(c), e = c;
    }
    return r;
  }
  var DVe = C({
    "src/services/codefixes/generateAccessors.ts"() {
      $r();
    }
  });
  function RVe(e, t) {
    const r = Zn(t), i = WA(t), o = e.program.getCompilerOptions(), s = [];
    return s.push(CTe(e, r, t, Dy(i.name, void 0, t.moduleSpecifier, xp(r, e.preferences)))), au(o) === 1 && s.push(CTe(e, r, t, N.createImportEqualsDeclaration(void 0, !1, i.name, N.createExternalModuleReference(t.moduleSpecifier)))), s;
  }
  function CTe(e, t, r, i) {
    const o = gr.ChangeTracker.with(e, (s) => s.replaceNode(t, r, i));
    return Ap(ete, o, [_.Replace_import_with_0, o[0].textChanges[0].newText]);
  }
  function NVe(e) {
    const t = e.sourceFile, r = _.This_expression_is_not_callable.code === e.errorCode ? 210 : 211, i = nr(aa(t, e.span.start), (s) => s.kind === r);
    if (!i)
      return [];
    const o = i.expression;
    return LTe(e, o);
  }
  function OVe(e) {
    const t = e.sourceFile, r = nr(aa(t, e.span.start), (i) => i.getStart() === e.span.start && i.getEnd() === e.span.start + e.span.length);
    return r ? LTe(e, r) : [];
  }
  function LTe(e, t) {
    const r = e.program.getTypeChecker().getTypeAtLocation(t);
    if (!(r.symbol && Om(r.symbol) && r.symbol.links.originatingImport))
      return [];
    const i = [], o = r.symbol.links.originatingImport;
    if (lf(o) || Ti(i, RVe(e, o)), vt(t) && !(gu(t.parent) && t.parent.name === t)) {
      const s = e.sourceFile, c = gr.ChangeTracker.with(e, (f) => f.replaceNode(s, t, N.createPropertyAccessExpression(t, "default"), {}));
      i.push(Ap(ete, c, _.Use_synthetic_default_member));
    }
    return i;
  }
  var ete, PVe = C({
    "src/services/codefixes/fixInvalidImportSyntax.ts"() {
      $r(), Eo(), ete = "invalidImportSyntax", po({
        errorCodes: [
          _.This_expression_is_not_callable.code,
          _.This_expression_is_not_constructable.code
        ],
        getCodeActions: NVe
      }), po({
        errorCodes: [
          _.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,
          _.Type_0_does_not_satisfy_the_constraint_1.code,
          _.Type_0_is_not_assignable_to_type_1.code,
          _.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated.code,
          _.Type_predicate_0_is_not_assignable_to_1.code,
          _.Property_0_of_type_1_is_not_assignable_to_2_index_type_3.code,
          _._0_index_type_1_is_not_assignable_to_2_index_type_3.code,
          _.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2.code,
          _.Property_0_in_type_1_is_not_assignable_to_type_2.code,
          _.Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property.code,
          _.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1.code
        ],
        getCodeActions: OVe
      });
    }
  });
  function ITe(e, t) {
    const r = aa(e, t);
    if (je(r) && to(r.parent)) {
      const i = Zc(r.parent);
      if (i)
        return { type: i, prop: r.parent, isJs: fr(r.parent) };
    }
  }
  function MVe(e, t) {
    if (t.isJs)
      return;
    const r = gr.ChangeTracker.with(e, (i) => kTe(i, e.sourceFile, t.prop));
    return ro(fG, r, [_.Add_definite_assignment_assertion_to_property_0, t.prop.getText()], _G, _.Add_definite_assignment_assertions_to_all_uninitialized_properties);
  }
  function kTe(e, t, r) {
    zd(r);
    const i = N.updatePropertyDeclaration(r, r.modifiers, r.name, N.createToken(53), r.type, r.initializer);
    e.replaceNode(t, r, i);
  }
  function FVe(e, t) {
    const r = gr.ChangeTracker.with(e, (i) => wTe(i, e.sourceFile, t));
    return ro(fG, r, [_.Add_undefined_type_to_property_0, t.prop.name.getText()], pG, _.Add_undefined_type_to_all_uninitialized_properties);
  }
  function wTe(e, t, r) {
    const i = N.createKeywordTypeNode(155), o = Sx(r.type) ? r.type.types.concat(i) : [r.type, i], s = N.createUnionTypeNode(o);
    r.isJs ? e.addJSDocTags(t, r.prop, [N.createJSDocTypeTag(void 0, N.createJSDocTypeExpression(s))]) : e.replaceNode(t, r.type, s);
  }
  function BVe(e, t) {
    if (t.isJs)
      return;
    const r = e.program.getTypeChecker(), i = RTe(r, t.prop);
    if (!i)
      return;
    const o = gr.ChangeTracker.with(e, (s) => DTe(s, e.sourceFile, t.prop, i));
    return ro(fG, o, [_.Add_initializer_to_property_0, t.prop.name.getText()], mG, _.Add_initializers_to_all_uninitialized_properties);
  }
  function DTe(e, t, r, i) {
    zd(r);
    const o = N.updatePropertyDeclaration(r, r.modifiers, r.name, r.questionToken, r.type, i);
    e.replaceNode(t, r, o);
  }
  function RTe(e, t) {
    return NTe(e, e.getTypeFromTypeNode(t.type));
  }
  function NTe(e, t) {
    if (t.flags & 512)
      return t === e.getFalseType() || t === e.getFalseType(!0) ? N.createFalse() : N.createTrue();
    if (t.isStringLiteral())
      return N.createStringLiteral(t.value);
    if (t.isNumberLiteral())
      return N.createNumericLiteral(t.value);
    if (t.flags & 2048)
      return N.createBigIntLiteral(t.value);
    if (t.isUnion())
      return Jt(t.types, (r) => NTe(e, r));
    if (t.isClass()) {
      const r = mg(t.symbol);
      if (!r || Yr(r, 256))
        return;
      const i = Eh(r);
      return i && i.parameters.length ? void 0 : N.createNewExpression(N.createIdentifier(t.symbol.name), void 0, void 0);
    } else if (e.isArrayLikeType(t))
      return N.createArrayLiteralExpression();
  }
  var fG, _G, pG, mG, tte, GVe = C({
    "src/services/codefixes/fixStrictClassInitialization.ts"() {
      $r(), Eo(), fG = "strictClassInitialization", _G = "addMissingPropertyDefiniteAssignmentAssertions", pG = "addMissingPropertyUndefinedType", mG = "addMissingPropertyInitializer", tte = [_.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor.code], po({
        errorCodes: tte,
        getCodeActions: function(t) {
          const r = ITe(t.sourceFile, t.span.start);
          if (!r)
            return;
          const i = [];
          return Fn(i, FVe(t, r)), Fn(i, MVe(t, r)), Fn(i, BVe(t, r)), i;
        },
        fixIds: [_G, pG, mG],
        getAllCodeActions: (e) => Cs(e, tte, (t, r) => {
          const i = ITe(r.file, r.start);
          if (i)
            switch (e.fixId) {
              case _G:
                kTe(t, r.file, i.prop);
                break;
              case pG:
                wTe(t, r.file, i);
                break;
              case mG:
                const o = e.program.getTypeChecker(), s = RTe(o, i.prop);
                if (!s)
                  return;
                DTe(t, r.file, i.prop, s);
                break;
              default:
                D.fail(JSON.stringify(e.fixId));
            }
        })
      });
    }
  });
  function OTe(e, t, r) {
    const { allowSyntheticDefaults: i, defaultImportName: o, namedImports: s, statement: c, required: f } = r;
    e.replaceNode(t, c, o && !i ? N.createImportEqualsDeclaration(void 0, !1, o, N.createExternalModuleReference(f)) : N.createImportDeclaration(void 0, N.createImportClause(!1, o, s), f, void 0));
  }
  function PTe(e, t, r) {
    const { parent: i } = aa(e, r);
    if (!xd(i, !0))
      throw D.failBadSyntaxKind(i);
    const o = oo(i.parent, Ki), s = ai(o.name, je), c = Hm(o.name) ? UVe(o.name) : void 0;
    if (s || c)
      return {
        allowSyntheticDefaults: ET(t.getCompilerOptions()),
        defaultImportName: s,
        namedImports: c,
        statement: oo(o.parent.parent, uc),
        required: us(i.arguments)
      };
  }
  function UVe(e) {
    const t = [];
    for (const r of e.elements) {
      if (!je(r.name) || r.initializer)
        return;
      t.push(N.createImportSpecifier(!1, ai(r.propertyName, je), r.name));
    }
    if (t.length)
      return N.createNamedImports(t);
  }
  var hG, nte, VVe = C({
    "src/services/codefixes/requireInTs.ts"() {
      $r(), Eo(), hG = "requireInTs", nte = [_.require_call_may_be_converted_to_an_import.code], po({
        errorCodes: nte,
        getCodeActions(e) {
          const t = PTe(e.sourceFile, e.program, e.span.start);
          if (!t)
            return;
          const r = gr.ChangeTracker.with(e, (i) => OTe(i, e.sourceFile, t));
          return [ro(hG, r, _.Convert_require_to_import, hG, _.Convert_all_require_to_import)];
        },
        fixIds: [hG],
        getAllCodeActions: (e) => Cs(e, nte, (t, r) => {
          const i = PTe(r.file, e.program, r.start);
          i && OTe(t, e.sourceFile, i);
        })
      });
    }
  });
  function MTe(e, t) {
    const r = aa(e, t);
    if (!je(r))
      return;
    const { parent: i } = r;
    if (su(i) && zm(i.moduleReference))
      return { importNode: i, name: r, moduleSpecifier: i.moduleReference.expression };
    if (Gv(i)) {
      const o = i.parent.parent;
      return { importNode: o, name: r, moduleSpecifier: o.moduleSpecifier };
    }
  }
  function FTe(e, t, r, i) {
    e.replaceNode(t, r.importNode, Dy(r.name, void 0, r.moduleSpecifier, xp(t, i)));
  }
  var gG, rte, jVe = C({
    "src/services/codefixes/useDefaultImport.ts"() {
      $r(), Eo(), gG = "useDefaultImport", rte = [_.Import_may_be_converted_to_a_default_import.code], po({
        errorCodes: rte,
        getCodeActions(e) {
          const { sourceFile: t, span: { start: r } } = e, i = MTe(t, r);
          if (!i)
            return;
          const o = gr.ChangeTracker.with(e, (s) => FTe(s, t, i, e.preferences));
          return [ro(gG, o, _.Convert_to_default_import, gG, _.Convert_all_to_default_imports)];
        },
        fixIds: [gG],
        getAllCodeActions: (e) => Cs(e, rte, (t, r) => {
          const i = MTe(r.file, r.start);
          i && FTe(t, r.file, i, e.preferences);
        })
      });
    }
  });
  function BTe(e, t, r) {
    const i = ai(aa(t, r.start), v_);
    if (!i)
      return;
    const o = i.getText(t) + "n";
    e.replaceNode(t, i, N.createBigIntLiteral(o));
  }
  var yG, ite, HVe = C({
    "src/services/codefixes/useBigintLiteral.ts"() {
      $r(), Eo(), yG = "useBigintLiteral", ite = [
        _.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers.code
      ], po({
        errorCodes: ite,
        getCodeActions: function(t) {
          const r = gr.ChangeTracker.with(t, (i) => BTe(i, t.sourceFile, t.span));
          if (r.length > 0)
            return [ro(yG, r, _.Convert_to_a_bigint_numeric_literal, yG, _.Convert_all_to_bigint_numeric_literals)];
        },
        fixIds: [yG],
        getAllCodeActions: (e) => Cs(e, ite, (t, r) => BTe(t, r.file, r))
      });
    }
  });
  function GTe(e, t) {
    const r = aa(e, t);
    return D.assert(r.kind === 100, "This token should be an ImportKeyword"), D.assert(r.parent.kind === 202, "Token parent should be an ImportType"), r.parent;
  }
  function UTe(e, t, r) {
    const i = N.updateImportTypeNode(r, r.argument, r.assertions, r.qualifier, r.typeArguments, !0);
    e.replaceNode(t, r, i);
  }
  var VTe, vG, ate, WVe = C({
    "src/services/codefixes/fixAddModuleReferTypeMissingTypeof.ts"() {
      $r(), Eo(), VTe = "fixAddModuleReferTypeMissingTypeof", vG = VTe, ate = [_.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0.code], po({
        errorCodes: ate,
        getCodeActions: function(t) {
          const { sourceFile: r, span: i } = t, o = GTe(r, i.start), s = gr.ChangeTracker.with(t, (c) => UTe(c, r, o));
          return [ro(vG, s, _.Add_missing_typeof, vG, _.Add_missing_typeof)];
        },
        fixIds: [vG],
        getAllCodeActions: (e) => Cs(e, ate, (t, r) => UTe(t, e.sourceFile, GTe(r.file, r.start)))
      });
    }
  });
  function jTe(e, t) {
    let o = aa(e, t).parent.parent;
    if (!(!br(o) && (o = o.parent, !br(o))) && Al(o.operatorToken))
      return o;
  }
  function HTe(e, t, r) {
    const i = zVe(r);
    i && e.replaceNode(t, r, N.createJsxFragment(N.createJsxOpeningFragment(), i, N.createJsxJsxClosingFragment()));
  }
  function zVe(e) {
    const t = [];
    let r = e;
    for (; ; )
      if (br(r) && Al(r.operatorToken) && r.operatorToken.kind === 27) {
        if (t.push(r.left), tN(r.right))
          return t.push(r.right), t;
        if (br(r.right)) {
          r = r.right;
          continue;
        } else
          return;
      } else
        return;
  }
  var bG, ote, qVe = C({
    "src/services/codefixes/wrapJsxInFragment.ts"() {
      $r(), Eo(), bG = "wrapJsxInFragment", ote = [_.JSX_expressions_must_have_one_parent_element.code], po({
        errorCodes: ote,
        getCodeActions: function(t) {
          const { sourceFile: r, span: i } = t, o = jTe(r, i.start);
          if (!o)
            return;
          const s = gr.ChangeTracker.with(t, (c) => HTe(c, r, o));
          return [ro(bG, s, _.Wrap_in_JSX_fragment, bG, _.Wrap_all_unparented_JSX_in_JSX_fragment)];
        },
        fixIds: [bG],
        getAllCodeActions: (e) => Cs(e, ote, (t, r) => {
          const i = jTe(e.sourceFile, r.start);
          i && HTe(t, e.sourceFile, i);
        })
      });
    }
  });
  function WTe(e, t) {
    const r = aa(e, t), i = ai(r.parent.parent, Tx);
    if (!i)
      return;
    const o = nd(i.parent) ? i.parent : ai(i.parent.parent, em);
    if (o)
      return { indexSignature: i, container: o };
  }
  function JVe(e, t) {
    return N.createTypeAliasDeclaration(e.modifiers, e.name, e.typeParameters, t);
  }
  function zTe(e, t, { indexSignature: r, container: i }) {
    const s = (nd(i) ? i.members : i.type.members).filter((h) => !Tx(h)), c = us(r.parameters), f = N.createTypeParameterDeclaration(void 0, oo(c.name, je), c.type), d = N.createMappedTypeNode(QI(r) ? N.createModifier(146) : void 0, f, void 0, r.questionToken, r.type, void 0), y = N.createIntersectionTypeNode([
      ...WI(i),
      d,
      ...s.length ? [N.createTypeLiteralNode(s)] : rt
    ]);
    e.replaceNode(t, i, JVe(i, y));
  }
  var EG, ste, KVe = C({
    "src/services/codefixes/convertToMappedObjectType.ts"() {
      $r(), Eo(), EG = "fixConvertToMappedObjectType", ste = [_.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead.code], po({
        errorCodes: ste,
        getCodeActions: function(t) {
          const { sourceFile: r, span: i } = t, o = WTe(r, i.start);
          if (!o)
            return;
          const s = gr.ChangeTracker.with(t, (f) => zTe(f, r, o)), c = Mr(o.container.name);
          return [ro(EG, s, [_.Convert_0_to_mapped_object_type, c], EG, [_.Convert_0_to_mapped_object_type, c])];
        },
        fixIds: [EG],
        getAllCodeActions: (e) => Cs(e, ste, (t, r) => {
          const i = WTe(r.file, r.start);
          i && zTe(t, r.file, i);
        })
      });
    }
  }), lte, qTe, XVe = C({
    "src/services/codefixes/removeAccidentalCallParentheses.ts"() {
      $r(), Eo(), lte = "removeAccidentalCallParentheses", qTe = [
        _.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without.code
      ], po({
        errorCodes: qTe,
        getCodeActions(e) {
          const t = nr(aa(e.sourceFile, e.span.start), no);
          if (!t)
            return;
          const r = gr.ChangeTracker.with(e, (i) => {
            i.deleteRange(e.sourceFile, { pos: t.expression.end, end: t.end });
          });
          return [Ap(lte, r, _.Remove_parentheses)];
        },
        fixIds: [lte]
      });
    }
  });
  function JTe(e, t, r) {
    const i = ai(aa(t, r.start), (f) => f.kind === 133), o = i && ai(i.parent, TC);
    if (!o)
      return;
    let s = o;
    if (Vd(o.parent)) {
      const f = lk(o.expression, !1);
      if (je(f)) {
        const d = Ac(o.parent.pos, t);
        d && d.kind !== 103 && (s = o.parent);
      }
    }
    e.replaceNode(t, s, o.expression);
  }
  var TG, cte, YVe = C({
    "src/services/codefixes/removeUnnecessaryAwait.ts"() {
      $r(), Eo(), TG = "removeUnnecessaryAwait", cte = [
        _.await_has_no_effect_on_the_type_of_this_expression.code
      ], po({
        errorCodes: cte,
        getCodeActions: function(t) {
          const r = gr.ChangeTracker.with(t, (i) => JTe(i, t.sourceFile, t.span));
          if (r.length > 0)
            return [ro(TG, r, _.Remove_unnecessary_await, TG, _.Remove_all_unnecessary_uses_of_await)];
        },
        fixIds: [TG],
        getAllCodeActions: (e) => Cs(e, cte, (t, r) => JTe(t, r.file, r))
      });
    }
  });
  function KTe(e, t) {
    return nr(aa(e, t.start), Wc);
  }
  function XTe(e, t, r) {
    if (!t)
      return;
    const i = D.checkDefined(t.importClause);
    e.replaceNode(r.sourceFile, t, N.updateImportDeclaration(t, t.modifiers, N.updateImportClause(i, i.isTypeOnly, i.name, void 0), t.moduleSpecifier, t.assertClause)), e.insertNodeAfter(r.sourceFile, t, N.createImportDeclaration(void 0, N.updateImportClause(i, i.isTypeOnly, void 0, i.namedBindings), t.moduleSpecifier, t.assertClause));
  }
  var ute, SG, $Ve = C({
    "src/services/codefixes/splitTypeOnlyImport.ts"() {
      $r(), Eo(), ute = [_.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both.code], SG = "splitTypeOnlyImport", po({
        errorCodes: ute,
        fixIds: [SG],
        getCodeActions: function(t) {
          const r = gr.ChangeTracker.with(t, (i) => XTe(i, KTe(t.sourceFile, t.span), t));
          if (r.length)
            return [ro(SG, r, _.Split_into_two_separate_import_declarations, SG, _.Split_all_invalid_type_only_imports)];
        },
        getAllCodeActions: (e) => Cs(e, ute, (t, r) => {
          XTe(t, KTe(e.sourceFile, r), e);
        })
      });
    }
  });
  function YTe(e, t, r) {
    var i;
    const s = r.getTypeChecker().getSymbolAtLocation(aa(e, t));
    if (s === void 0)
      return;
    const c = ai((i = s == null ? void 0 : s.valueDeclaration) == null ? void 0 : i.parent, Uu);
    if (c === void 0)
      return;
    const f = bs(c, 85, e);
    if (f !== void 0)
      return { symbol: s, token: f };
  }
  function $Te(e, t, r) {
    e.replaceNode(t, r, N.createToken(119));
  }
  var xG, dte, QVe = C({
    "src/services/codefixes/convertConstToLet.ts"() {
      $r(), Eo(), xG = "fixConvertConstToLet", dte = [_.Cannot_assign_to_0_because_it_is_a_constant.code], po({
        errorCodes: dte,
        getCodeActions: function(t) {
          const { sourceFile: r, span: i, program: o } = t, s = YTe(r, i.start, o);
          if (s === void 0)
            return;
          const c = gr.ChangeTracker.with(t, (f) => $Te(f, r, s.token));
          return [pZ(xG, c, _.Convert_const_to_let, xG, _.Convert_all_const_to_let)];
        },
        getAllCodeActions: (e) => {
          const { program: t } = e, r = /* @__PURE__ */ new Map();
          return $x(gr.ChangeTracker.with(e, (i) => {
            Qx(e, dte, (o) => {
              const s = YTe(o.file, o.start, t);
              if (s && vp(r, bo(s.symbol)))
                return $Te(i, o.file, s.token);
            });
          }));
        },
        fixIds: [xG]
      });
    }
  });
  function QTe(e, t, r) {
    const i = aa(e, t);
    return i.kind === 26 && i.parent && (Ls(i.parent) || Bu(i.parent)) ? { node: i } : void 0;
  }
  function ZTe(e, t, { node: r }) {
    const i = N.createToken(27);
    e.replaceNode(t, r, i);
  }
  var AG, eSe, fte, ZVe = C({
    "src/services/codefixes/fixExpectedComma.ts"() {
      $r(), Eo(), AG = "fixExpectedComma", eSe = _._0_expected.code, fte = [eSe], po({
        errorCodes: fte,
        getCodeActions(e) {
          const { sourceFile: t } = e, r = QTe(t, e.span.start, e.errorCode);
          if (!r)
            return;
          const i = gr.ChangeTracker.with(e, (o) => ZTe(o, t, r));
          return [ro(AG, i, [_.Change_0_to_1, ";", ","], AG, [_.Change_0_to_1, ";", ","])];
        },
        fixIds: [AG],
        getAllCodeActions: (e) => Cs(e, fte, (t, r) => {
          const i = QTe(r.file, r.start, r.code);
          i && ZTe(t, e.sourceFile, i);
        })
      });
    }
  });
  function tSe(e, t, r, i, o) {
    const s = aa(t, r.start);
    if (!je(s) || !no(s.parent) || s.parent.expression !== s || s.parent.arguments.length !== 0)
      return;
    const c = i.getTypeChecker(), f = c.getSymbolAtLocation(s), d = f == null ? void 0 : f.valueDeclaration;
    if (!d || !Ba(d) || !D1(d.parent.parent) || o != null && o.has(d))
      return;
    o == null || o.add(d);
    const y = eje(d.parent.parent);
    if (kt(y)) {
      const h = y[0], E = !Sx(h) && !xx(h) && xx(N.createUnionTypeNode([h, N.createKeywordTypeNode(114)]).types[0]);
      E && e.insertText(t, h.pos, "("), e.insertText(t, h.end, E ? ") | void" : " | void");
    } else {
      const h = c.getResolvedSignature(s.parent), E = h == null ? void 0 : h.parameters[0], A = E && c.getTypeOfSymbolAtLocation(E, d.parent.parent);
      fr(d) ? (!A || A.flags & 3) && (e.insertText(t, d.parent.parent.end, ")"), e.insertText(t, Ko(t.text, d.parent.parent.pos), "/** @type {Promise<void>} */(")) : (!A || A.flags & 2) && e.insertText(t, d.parent.parent.expression.end, "<void>");
    }
  }
  function eje(e) {
    var t;
    if (fr(e)) {
      if (Vd(e.parent)) {
        const r = (t = u1(e.parent)) == null ? void 0 : t.typeExpression.type;
        if (r && q_(r) && je(r.typeName) && Mr(r.typeName) === "Promise")
          return r.typeArguments;
      }
    } else
      return e.typeArguments;
  }
  var nSe, _te, pte, tje = C({
    "src/services/codefixes/fixAddVoidToPromise.ts"() {
      $r(), Eo(), nSe = "addVoidToPromise", _te = "addVoidToPromise", pte = [
        _.Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments.code,
        _.Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise.code
      ], po({
        errorCodes: pte,
        fixIds: [_te],
        getCodeActions(e) {
          const t = gr.ChangeTracker.with(e, (r) => tSe(r, e.sourceFile, e.span, e.program));
          if (t.length > 0)
            return [ro(nSe, t, _.Add_void_to_Promise_resolved_without_a_value, _te, _.Add_void_to_all_Promises_resolved_without_a_value)];
        },
        getAllCodeActions(e) {
          return Cs(e, pte, (t, r) => tSe(t, r.file, r, e.program, /* @__PURE__ */ new Set()));
        }
      });
    }
  }), Hu = {};
  ne(Hu, {
    PreserveOptionalFlags: () => Qee,
    addNewNodeForMemberSymbol: () => mTe,
    codeFixAll: () => Cs,
    createCodeFixAction: () => ro,
    createCodeFixActionMaybeFixAll: () => pZ,
    createCodeFixActionWithoutFixAll: () => Ap,
    createCombinedCodeActions: () => $x,
    createFileTextChanges: () => xbe,
    createImportAdder: () => $T,
    createImportSpecifierResolver: () => hGe,
    createJsonPropertyAssignment: () => dG,
    createMissingMemberNodes: () => Wee,
    createSignatureDeclarationFromCallExpression: () => zee,
    createSignatureDeclarationFromSignature: () => cG,
    createStubbedBody: () => R6,
    eachDiagnostic: () => Qx,
    findAncestorMatchingSpan: () => $ee,
    findJsonProperty: () => Yee,
    generateAccessorFromProperty: () => ETe,
    getAccessorConvertiblePropertyAtPosition: () => xTe,
    getAllFixes: () => Z9e,
    getAllSupers: () => Zee,
    getArgumentTypesAndTypeParameters: () => yTe,
    getFixes: () => Q9e,
    getImportCompletionAction: () => gGe,
    getImportKind: () => VZ,
    getNoopSymbolTrackerWithResolver: () => e2,
    getPromoteTypeOnlyCompletionAction: () => yGe,
    getSupportedErrorCodes: () => Y9e,
    importFixName: () => JZ,
    importSymbols: () => t2,
    moduleSpecifierToValidIdentifier: () => qZ,
    moduleSymbolToValidIdentifier: () => zZ,
    parameterShouldGetTypeFromJSDoc: () => Hbe,
    registerCodeFix: () => po,
    setJsonCompilerOptionValue: () => Xee,
    setJsonCompilerOptionValues: () => Kee,
    tryGetAutoImportableReferenceFromTypeNode: () => ZT,
    typeToAutoImportableTypeNode: () => uG
  });
  var Eo = C({
    "src/services/_namespaces/ts.codefix.ts"() {
      eBe(), tBe(), nBe(), aBe(), uBe(), pBe(), mBe(), hBe(), gBe(), EBe(), DBe(), NBe(), WBe(), lGe(), cGe(), dGe(), fGe(), _Ge(), mGe(), BGe(), VGe(), WGe(), zGe(), qGe(), XGe(), QGe(), tUe(), oUe(), hUe(), yUe(), vUe(), EUe(), TUe(), SUe(), xUe(), CUe(), LUe(), IUe(), kUe(), wUe(), RUe(), PUe(), GUe(), JUe(), XUe(), YUe(), ZUe(), eVe(), nVe(), rVe(), dVe(), fVe(), _Ve(), vVe(), DVe(), PVe(), GVe(), VVe(), jVe(), HVe(), WVe(), qVe(), KVe(), XVe(), YVe(), $Ve(), QVe(), ZVe(), tje();
    }
  });
  function nje(e) {
    return !!(e.kind & 1);
  }
  function rje(e) {
    return !!(e.kind & 2);
  }
  function N6(e) {
    return !!(e && e.kind & 4);
  }
  function rL(e) {
    return !!(e && e.kind === 32);
  }
  function ije(e) {
    return N6(e) || rL(e) || mte(e);
  }
  function aje(e) {
    return (N6(e) || rL(e)) && !!e.isFromPackageJson;
  }
  function oje(e) {
    return !!(e.kind & 8);
  }
  function sje(e) {
    return !!(e.kind & 16);
  }
  function rSe(e) {
    return !!(e && e.kind & 64);
  }
  function iSe(e) {
    return !!(e && e.kind & 128);
  }
  function lje(e) {
    return !!(e && e.kind & 256);
  }
  function mte(e) {
    return !!(e && e.kind & 512);
  }
  function aSe(e, t, r, i, o, s, c, f, d) {
    var y, h, E;
    const A = il(), L = c || _x(vl(i.getCompilerOptions()));
    let I = !1, O = 0, k = 0, G = 0, V = 0;
    const H = d({
      tryResolve: X,
      skippedAny: () => I,
      resolvedAny: () => k > 0,
      resolvedBeyondLimit: () => k > OG
    }), te = V ? ` (${(G / V * 100).toFixed(1)}% hit rate)` : "";
    return (y = t.log) == null || y.call(t, `${e}: resolved ${k} module specifiers, plus ${O} ambient and ${G} from cache${te}`), (h = t.log) == null || h.call(t, `${e}: response is ${I ? "incomplete" : "complete"}`), (E = t.log) == null || E.call(t, `${e}: ${il() - A}`), H;
    function X(Y, P) {
      if (P) {
        const ae = r.getModuleSpecifierForBestExportInfo(Y, o, f);
        return ae && O++, ae || "failed";
      }
      const de = L || s.allowIncompleteCompletions && k < OG, re = !de && s.allowIncompleteCompletions && V < Cte, ye = de || re ? r.getModuleSpecifierForBestExportInfo(Y, o, f, re) : void 0;
      return (!de && !re || re && !ye) && (I = !0), k += (ye == null ? void 0 : ye.computedWithoutCacheCount) || 0, G += Y.length - ((ye == null ? void 0 : ye.computedWithoutCacheCount) || 0), re && V++, ye || (L ? "failed" : "skipped");
    }
  }
  function cje(e, t, r, i, o, s, c, f, d, y, h = !1) {
    var E;
    const { previousToken: A } = IG(o, i);
    if (c && !qT(i, o, A) && !Hje(i, c, A, o))
      return;
    if (c === " ")
      return s.includeCompletionsForImportStatements && s.includeCompletionsWithInsertText ? { isGlobalCompletion: !0, isMemberCompletion: !1, isNewIdentifierLocation: !0, isIncomplete: !0, entries: [] } : void 0;
    const L = t.getCompilerOptions(), I = s.allowIncompleteCompletions ? (E = e.getIncompleteCompletionsCache) == null ? void 0 : E.call(e) : void 0;
    if (I && f === 3 && A && je(A)) {
      const G = uje(I, i, A, t, e, s, d, o);
      if (G)
        return G;
    } else
      I == null || I.clear();
    const O = PG.getStringLiteralCompletions(i, o, A, L, e, t, r, s, h);
    if (O)
      return O;
    if (A && CI(A.parent) && (A.kind === 81 || A.kind === 86 || A.kind === 79))
      return Ije(A.parent);
    const k = mSe(t, r, i, L, o, s, void 0, e, y, d);
    if (k)
      switch (k.kind) {
        case 0:
          const G = pje(i, e, t, L, r, k, s, y, o, h);
          return G != null && G.isIncomplete && (I == null || I.set(G)), G;
        case 1:
          return hte(lb.getJSDocTagNameCompletions());
        case 2:
          return hte(lb.getJSDocTagCompletions());
        case 3:
          return hte(lb.getJSDocParameterNameCompletions(k.tag));
        case 4:
          return fje(k.keywordCompletions, k.isNewIdentifierLocation);
        default:
          return D.assertNever(k);
      }
  }
  function O6(e, t) {
    var r, i;
    let o = mR(e.sortText, t.sortText);
    return o === 0 && (o = mR(e.name, t.name)), o === 0 && ((r = e.data) != null && r.moduleSpecifier) && ((i = t.data) != null && i.moduleSpecifier) && (o = aO(e.data.moduleSpecifier, t.data.moduleSpecifier)), o === 0 ? -1 : o;
  }
  function oSe(e) {
    return !!(e != null && e.moduleSpecifier);
  }
  function uje(e, t, r, i, o, s, c, f) {
    const d = e.get();
    if (!d)
      return;
    const y = Df(t, f), h = r.text.toLowerCase(), E = h6(t, o, i, s, c), A = aSe("continuePreviousIncompleteResponse", o, Hu.createImportSpecifierResolver(t, i, o, s), i, r.getStart(), s, !1, mx(r), (L) => {
      const I = ia(d.entries, (O) => {
        var k;
        if (!O.hasAction || !O.source || !O.data || oSe(O.data))
          return O;
        if (!ISe(O.name, h))
          return;
        const { origin: G } = D.checkDefined(hSe(O.name, O.data, i, o)), V = E.get(t.path, O.data.exportMapKey), H = V && L.tryResolve(V, !Gc(V_(G.moduleSymbol.name)));
        if (H === "skipped")
          return O;
        if (!H || H === "failed") {
          (k = o.log) == null || k.call(o, `Unexpected failure resolving auto import for '${O.name}' from '${O.source}'`);
          return;
        }
        const te = {
          ...G,
          kind: 32,
          moduleSpecifier: H.moduleSpecifier
        };
        return O.data = fSe(te), O.source = vte(te), O.sourceDisplay = [Rf(te.moduleSpecifier)], O;
      });
      return L.skippedAny() || (d.isIncomplete = void 0), I;
    });
    return d.entries = A, d.flags = (d.flags || 0) | 4, d.optionalReplacementSpan = lSe(y), d;
  }
  function hte(e) {
    return { isGlobalCompletion: !1, isMemberCompletion: !1, isNewIdentifierLocation: !1, entries: e };
  }
  function dje(e) {
    return {
      name: yo(e),
      kind: "keyword",
      kindModifiers: "",
      sortText: lu.GlobalsOrKeywords
    };
  }
  function fje(e, t) {
    return {
      isGlobalCompletion: !1,
      isMemberCompletion: !1,
      isNewIdentifierLocation: t,
      entries: e.slice()
    };
  }
  function sSe(e, t, r) {
    return {
      kind: 4,
      keywordCompletions: gSe(e, t),
      isNewIdentifierLocation: r
    };
  }
  function _je(e) {
    switch (e) {
      case 154:
        return 8;
      default:
        D.fail("Unknown mapping from SyntaxKind to KeywordCompletionFilters");
    }
  }
  function lSe(e) {
    return (e == null ? void 0 : e.kind) === 79 ? rd(e) : void 0;
  }
  function pje(e, t, r, i, o, s, c, f, d, y) {
    const {
      symbols: h,
      contextToken: E,
      completionKind: A,
      isInSnippetScope: L,
      isNewIdentifierLocation: I,
      location: O,
      propertyAccessToConvert: k,
      keywordFilters: G,
      symbolToOriginInfoMap: V,
      recommendedCompletion: H,
      isJsxInitializer: te,
      isTypeOnlyLocation: X,
      isJsxIdentifierExpected: Y,
      isRightOfOpenTag: P,
      isRightOfDotOrQuestionDot: de,
      importStatementCompletion: re,
      insideJsDocTagTypeExpression: ye,
      symbolToSortTextMap: ae,
      hasUnresolvedAutoImports: W
    } = s;
    let ce = s.literals;
    const me = r.getTypeChecker();
    if (QN(e.scriptKind) === 1) {
      const Be = hje(O, e);
      if (Be)
        return Be;
    }
    const ve = nr(E, Mk);
    if (ve && (qfe(E) || mT(E, ve.expression))) {
      const Be = T9(me, ve.parent.clauses);
      ce = ce.filter((qe) => !Be.hasValue(qe)), h.forEach((qe, Oe) => {
        if (qe.valueDeclaration && O1(qe.valueDeclaration)) {
          const Me = me.getConstantValue(qe.valueDeclaration);
          Me !== void 0 && Be.hasValue(Me) && (V[Oe] = { kind: 256 });
        }
      });
    }
    const Te = bj(), ee = cSe(e, i);
    if (ee && !I && (!h || h.length === 0) && G === 0)
      return;
    const Qe = bte(h, Te, void 0, E, O, d, e, t, r, ts(i), o, A, c, i, f, X, k, Y, te, re, H, V, ae, Y, P, y);
    if (G !== 0)
      for (const Be of gSe(G, !ye && Zu(e)))
        (X && pw(ZE(Be.name)) || !Qe.has(Be.name)) && (Qe.add(Be.name), gv(Te, Be, O6, !0));
    for (const Be of Bje(E, d))
      Qe.has(Be.name) || (Qe.add(Be.name), gv(Te, Be, O6, !0));
    for (const Be of ce) {
      const qe = yje(e, c, Be);
      Qe.add(qe.name), gv(Te, qe, O6, !0);
    }
    ee || gje(e, O.pos, Qe, ts(i), Te);
    let Ve;
    if (c.includeCompletionsWithInsertText && E && !P && !de && (Ve = nr(E, MO))) {
      const Be = uSe(Ve, e, c, i, t, r, f);
      Be && Te.push(Be.entry);
    }
    return {
      flags: s.flags,
      isGlobalCompletion: L,
      isIncomplete: c.allowIncompleteCompletions && W ? !0 : void 0,
      isMemberCompletion: mje(A),
      isNewIdentifierLocation: I,
      optionalReplacementSpan: lSe(O),
      entries: Te
    };
  }
  function cSe(e, t) {
    return !Zu(e) || !!cO(e, t);
  }
  function uSe(e, t, r, i, o, s, c) {
    const f = e.clauses, d = s.getTypeChecker(), y = d.getTypeAtLocation(e.parent.expression);
    if (y && y.isUnion() && Yn(y.types, (h) => h.isLiteral())) {
      const h = T9(d, f), E = ts(i), A = xp(t, r), L = Hu.createImportAdder(t, s, r, o), I = [];
      for (const X of y.types)
        if (X.flags & 1024) {
          D.assert(X.symbol, "An enum member type should have a symbol"), D.assert(X.symbol.parent, "An enum member type should have a parent symbol (the enum symbol)");
          const Y = X.symbol.valueDeclaration && d.getConstantValue(X.symbol.valueDeclaration);
          if (Y !== void 0) {
            if (h.hasValue(Y))
              continue;
            h.addValue(Y);
          }
          const P = Hu.typeToAutoImportableTypeNode(d, L, X, e, E);
          if (!P)
            return;
          const de = CG(P, E, A);
          if (!de)
            return;
          I.push(de);
        } else if (!h.hasValue(X.value))
          switch (typeof X.value) {
            case "object":
              I.push(X.value.negative ? N.createPrefixUnaryExpression(40, N.createBigIntLiteral({ negative: !1, base10Value: X.value.base10Value })) : N.createBigIntLiteral(X.value));
              break;
            case "number":
              I.push(X.value < 0 ? N.createPrefixUnaryExpression(40, N.createNumericLiteral(-X.value)) : N.createNumericLiteral(X.value));
              break;
            case "string":
              I.push(N.createStringLiteral(X.value, A === 0));
              break;
          }
      if (I.length === 0)
        return;
      const O = jt(I, (X) => N.createCaseClause(X, [])), k = ib(o, c == null ? void 0 : c.options), G = yte({
        removeComments: !0,
        module: i.module,
        target: i.target,
        newLine: m6(k)
      }), V = c ? (X) => G.printAndFormatNode(4, X, t, c) : (X) => G.printNode(4, X, t), H = jt(O, (X, Y) => r.includeCompletionsWithSnippetText ? `${V(X)}$${Y + 1}` : `${V(X)}`).join(k);
      return {
        entry: {
          name: `${G.printNode(4, O[0], t)} ...`,
          kind: "",
          sortText: lu.GlobalsOrKeywords,
          insertText: H,
          hasAction: L.hasFixes() || void 0,
          source: "SwitchCases/",
          isSnippet: r.includeCompletionsWithSnippetText ? !0 : void 0
        },
        importAdder: L
      };
    }
  }
  function CG(e, t, r) {
    switch (e.kind) {
      case 180:
        const i = e.typeName;
        return LG(i, t, r);
      case 196:
        const o = CG(e.objectType, t, r), s = CG(e.indexType, t, r);
        return o && s && N.createElementAccessExpression(o, s);
      case 198:
        const c = e.literal;
        switch (c.kind) {
          case 10:
            return N.createStringLiteral(c.text, r === 0);
          case 8:
            return N.createNumericLiteral(c.text, c.numericLiteralFlags);
        }
        return;
      case 193:
        const f = CG(e.type, t, r);
        return f && (je(f) ? f : N.createParenthesizedExpression(f));
      case 183:
        return LG(e.exprName, t, r);
      case 202:
        D.fail("We should not get an import type after calling 'codefix.typeToAutoImportableTypeNode'.");
    }
  }
  function LG(e, t, r) {
    if (je(e))
      return e;
    const i = ta(e.right.escapedText);
    return Lq(i, t) ? N.createPropertyAccessExpression(LG(e.left, t, r), i) : N.createElementAccessExpression(LG(e.left, t, r), N.createStringLiteral(i, r === 0));
  }
  function mje(e) {
    switch (e) {
      case 0:
      case 3:
      case 2:
        return !0;
      default:
        return !1;
    }
  }
  function hje(e, t) {
    const r = nr(e, (i) => {
      switch (i.kind) {
        case 284:
          return !0;
        case 43:
        case 31:
        case 79:
        case 208:
          return !1;
        default:
          return "quit";
      }
    });
    if (r) {
      const i = !!bs(r, 31, t), c = r.parent.openingElement.tagName.getText(t) + (i ? "" : ">"), f = rd(r.tagName), d = {
        name: c,
        kind: "class",
        kindModifiers: void 0,
        sortText: lu.LocationPriority
      };
      return { isGlobalCompletion: !1, isMemberCompletion: !0, isNewIdentifierLocation: !1, optionalReplacementSpan: f, entries: [d] };
    }
  }
  function gje(e, t, r, i, o) {
    QQ(e).forEach((s, c) => {
      if (s === t)
        return;
      const f = ta(c);
      !r.has(f) && P_(f, i) && (r.add(f), gv(o, {
        name: f,
        kind: "warning",
        kindModifiers: "",
        sortText: lu.JavascriptIdentifiers,
        isFromUncheckedFile: !0
      }, O6));
    });
  }
  function gte(e, t, r) {
    return typeof r == "object" ? I1(r) + "n" : Ha(r) ? yw(e, t, r) : JSON.stringify(r);
  }
  function yje(e, t, r) {
    return { name: gte(e, t, r), kind: "string", kindModifiers: "", sortText: lu.LocationPriority };
  }
  function vje(e, t, r, i, o, s, c, f, d, y, h, E, A, L, I, O, k, G, V, H, te, X, Y, P) {
    let de, re = B$(r), ye, ae, W = vte(E), ce, me, ve;
    const Te = d.getTypeChecker(), ee = E && sje(E), Qe = E && rje(E) || h;
    if (E && nje(E))
      de = h ? `this${ee ? "?." : ""}[${_Se(c, V, y)}]` : `this${ee ? "?." : "."}${y}`;
    else if ((Qe || ee) && L) {
      de = Qe ? h ? `[${_Se(c, V, y)}]` : `[${y}]` : y, (ee || L.questionDotToken) && (de = `?.${de}`);
      const Ve = bs(L, 24, c) || bs(L, 28, c);
      if (!Ve)
        return;
      const Be = xa(y, L.name.text) ? L.name.end : Ve.end;
      re = hc(Ve.getStart(c), Be);
    }
    if (I && (de === void 0 && (de = y), de = `{${de}}`, typeof I != "boolean" && (re = rd(I, c))), E && oje(E) && L) {
      de === void 0 && (de = y);
      const Ve = Ac(L.pos, c);
      let Be = "";
      Ve && u9(Ve.end, Ve.parent, c) && (Be = ";"), Be += `(await ${L.expression.getText()})`, de = h ? `${Be}${de}` : `${Be}${ee ? "?." : "."}${de}`;
      const Oe = ai(L.parent, TC) ? L.parent : L.expression;
      re = hc(Oe.getStart(c), L.end);
    }
    if (rL(E) && (ce = [Rf(E.moduleSpecifier)], O && ({ insertText: de, replacementSpan: re } = Cje(y, O, E, k, c, G, V), ae = V.includeCompletionsWithSnippetText ? !0 : void 0)), (E == null ? void 0 : E.kind) === 64 && (me = !0), V.includeCompletionsWithClassMemberSnippets && V.includeCompletionsWithInsertText && H === 3 && bje(e, o, c)) {
      let Ve;
      ({ insertText: de, isSnippet: ae, importAdder: Ve, replacementSpan: re } = dSe(f, d, G, V, y, e, o, s, i, te)), t = lu.ClassMemberSnippets, Ve != null && Ve.hasFixes() && (me = !0, W = "ClassMemberSnippet/");
    }
    if (E && iSe(E) && ({ insertText: de, isSnippet: ae, labelDetails: ve } = E, V.useLabelDetailsInCompletionEntries || (y = y + ve.detail, ve = void 0), W = "ObjectLiteralMethodSnippet/", t = lu.SortBelow(t)), X && !Y && V.includeCompletionsWithSnippetText && V.jsxAttributeCompletionStyle && V.jsxAttributeCompletionStyle !== "none" && !(nm(o.parent) && o.parent.initializer)) {
      let Ve = V.jsxAttributeCompletionStyle === "braces";
      const Be = Te.getTypeOfSymbolAtLocation(e, o);
      V.jsxAttributeCompletionStyle === "auto" && !(Be.flags & 528) && !(Be.flags & 1048576 && nn(Be.types, (qe) => !!(qe.flags & 528))) && (Be.flags & 402653316 || Be.flags & 1048576 && Yn(Be.types, (qe) => !!(qe.flags & 402686084 || zye(qe))) ? (de = `${ST(y)}=${yw(c, V, "$1")}`, ae = !0) : Ve = !0), Ve && (de = `${ST(y)}={$1}`, ae = !0);
    }
    if (!(de !== void 0 && !V.includeCompletionsWithInsertText))
      return (N6(E) || rL(E)) && (ye = fSe(E), me = !O), {
        name: y,
        kind: Ny.getSymbolKind(Te, e, o),
        kindModifiers: Ny.getSymbolModifiers(Te, e),
        sortText: t,
        source: W,
        hasAction: me ? !0 : void 0,
        isRecommended: Lje(e, A, Te) || void 0,
        insertText: de,
        replacementSpan: re,
        sourceDisplay: ce,
        labelDetails: ve,
        isSnippet: ae,
        isPackageJsonImport: aje(E) || void 0,
        isImportStatementCompletion: !!O || void 0,
        data: ye,
        ...P ? { symbol: e } : void 0
      };
  }
  function bje(e, t, r) {
    return fr(t) ? !1 : !!(e.flags & 106500) && (di(t) || t.parent && t.parent.parent && Uc(t.parent) && t === t.parent.name && t.parent.getLastToken(r) === t.parent.name && di(t.parent.parent) || t.parent && IC(t) && di(t.parent));
  }
  function dSe(e, t, r, i, o, s, c, f, d, y) {
    const h = nr(c, di);
    if (!h)
      return { insertText: o };
    let E, A, L = o;
    const I = t.getTypeChecker(), O = c.getSourceFile(), k = yte({
      removeComments: !0,
      module: r.module,
      target: r.target,
      omitTrailingSemicolon: !1,
      newLine: m6(ib(e, y == null ? void 0 : y.options))
    }), G = Hu.createImportAdder(O, t, i, e);
    let V;
    if (i.includeCompletionsWithSnippetText) {
      E = !0;
      const de = N.createEmptyStatement();
      V = N.createBlock([de], !0), aJ(de, { kind: 0, order: 0 });
    } else
      V = N.createBlock([], !0);
    let H = 0;
    const { modifiers: te, span: X } = Eje(d, O, f), Y = !!(te & 256), P = [];
    return Hu.addNewNodeForMemberSymbol(s, h, O, { program: t, host: e }, i, G, (de) => {
      let re = 0;
      Y && (re |= 256), Uc(de) && I.getMemberOverrideModifierStatus(h, de, s) === 1 && (re |= 16384), P.length || (H = de.modifierFlagsCache | re | te), de = N.updateModifiers(de, H), P.push(de);
    }, V, Hu.PreserveOptionalFlags.Property, Y), P.length && (A = X, y ? L = k.printAndFormatSnippetList(131073, N.createNodeArray(P), O, y) : L = k.printSnippetList(131073, N.createNodeArray(P), O)), { insertText: L, isSnippet: E, importAdder: G, replacementSpan: A };
  }
  function Eje(e, t, r) {
    if (!e || ol(t, r).line > ol(t, e.getEnd()).line)
      return { modifiers: 0 };
    let i = 0, o, s;
    return (s = Tje(e)) && (i |= ux(s), o = rd(e)), to(e.parent) && (i |= Gm(e.parent.modifiers) & 126975, o = rd(e.parent)), { modifiers: i, span: o };
  }
  function Tje(e) {
    if (fo(e))
      return e.kind;
    if (je(e)) {
      const t = U0(e);
      if (t && py(t))
        return t;
    }
  }
  function Sje(e, t, r, i, o, s, c, f) {
    const d = c.includeCompletionsWithSnippetText || void 0;
    let y = t;
    const h = r.getSourceFile(), E = xje(e, r, h, i, o, c);
    if (!E)
      return;
    const A = yte({
      removeComments: !0,
      module: s.module,
      target: s.target,
      omitTrailingSemicolon: !1,
      newLine: m6(ib(o, f == null ? void 0 : f.options))
    });
    f ? y = A.printAndFormatSnippetList(80, N.createNodeArray([E], !0), h, f) : y = A.printSnippetList(80, N.createNodeArray([E], !0), h);
    const L = j1({
      removeComments: !0,
      module: s.module,
      target: s.target,
      omitTrailingSemicolon: !0
    }), I = N.createMethodSignature(void 0, "", E.questionToken, E.typeParameters, E.parameters, E.type), O = { detail: L.printNode(4, I, h) };
    return { isSnippet: d, insertText: y, labelDetails: O };
  }
  function xje(e, t, r, i, o, s) {
    const c = e.getDeclarations();
    if (!(c && c.length))
      return;
    const f = i.getTypeChecker(), d = c[0], y = wl(ka(d), !1), h = f.getWidenedType(f.getTypeOfSymbolAtLocation(e, t)), A = 33554432 | (xp(r, s) === 0 ? 268435456 : 0);
    switch (d.kind) {
      case 168:
      case 169:
      case 170:
      case 171: {
        let L = h.flags & 1048576 && h.types.length < 10 ? f.getUnionType(h.types, 2) : h;
        if (L.flags & 1048576) {
          const V = lr(L.types, (H) => f.getSignaturesOfType(H, 0).length > 0);
          if (V.length === 1)
            L = V[0];
          else
            return;
        }
        if (f.getSignaturesOfType(L, 0).length !== 1)
          return;
        const O = f.typeToTypeNode(L, t, A, Hu.getNoopSymbolTrackerWithResolver({ program: i, host: o }));
        if (!O || !Ch(O))
          return;
        let k;
        if (s.includeCompletionsWithSnippetText) {
          const V = N.createEmptyStatement();
          k = N.createBlock([V], !0), aJ(V, { kind: 0, order: 0 });
        } else
          k = N.createBlock([], !0);
        const G = O.parameters.map((V) => N.createParameterDeclaration(void 0, V.dotDotDotToken, V.name, void 0, void 0, V.initializer));
        return N.createMethodDeclaration(void 0, void 0, y, void 0, void 0, G, void 0, k);
      }
      default:
        return;
    }
  }
  function yte(e) {
    let t;
    const r = gr.createWriter(X0(e)), i = j1(e, r), o = {
      ...r,
      write: (A) => s(A, () => r.write(A)),
      nonEscapingWrite: r.write,
      writeLiteral: (A) => s(A, () => r.writeLiteral(A)),
      writeStringLiteral: (A) => s(A, () => r.writeStringLiteral(A)),
      writeSymbol: (A, L) => s(A, () => r.writeSymbol(A, L)),
      writeParameter: (A) => s(A, () => r.writeParameter(A)),
      writeComment: (A) => s(A, () => r.writeComment(A)),
      writeProperty: (A) => s(A, () => r.writeProperty(A))
    };
    return {
      printSnippetList: c,
      printAndFormatSnippetList: d,
      printNode: y,
      printAndFormatNode: E
    };
    function s(A, L) {
      const I = ST(A);
      if (I !== A) {
        const O = r.getTextPos();
        L();
        const k = r.getTextPos();
        t = Fn(t || (t = []), { newText: I, span: { start: O, length: k - O } });
      } else
        L();
    }
    function c(A, L, I) {
      const O = f(A, L, I);
      return t ? gr.applyChanges(O, t) : O;
    }
    function f(A, L, I) {
      return t = void 0, o.clear(), i.writeList(A, L, I, o), o.getText();
    }
    function d(A, L, I, O) {
      const k = {
        text: f(A, L, I),
        getLineAndCharacterOfPosition(te) {
          return ol(this, te);
        }
      }, G = E9(O, I), V = ca(L, (te) => {
        const X = gr.assignPositionsToNode(te);
        return Cc.formatNodeGivenIndentation(X, k, I.languageVariant, 0, 0, { ...O, options: G });
      }), H = t ? sy(va(V, t), (te, X) => j4(te.span, X.span)) : V;
      return gr.applyChanges(k.text, H);
    }
    function y(A, L, I) {
      const O = h(A, L, I);
      return t ? gr.applyChanges(O, t) : O;
    }
    function h(A, L, I) {
      return t = void 0, o.clear(), i.writeNode(A, L, I, o), o.getText();
    }
    function E(A, L, I, O) {
      const k = {
        text: h(A, L, I),
        getLineAndCharacterOfPosition(X) {
          return ol(this, X);
        }
      }, G = E9(O, I), V = gr.assignPositionsToNode(L), H = Cc.formatNodeGivenIndentation(V, k, I.languageVariant, 0, 0, { ...O, options: G }), te = t ? sy(va(H, t), (X, Y) => j4(X.span, Y.span)) : H;
      return gr.applyChanges(k.text, te);
    }
  }
  function fSe(e) {
    const t = e.fileName ? void 0 : V_(e.moduleSymbol.name), r = e.isFromPackageJson ? !0 : void 0;
    return rL(e) ? {
      exportName: e.exportName,
      exportMapKey: e.exportMapKey,
      moduleSpecifier: e.moduleSpecifier,
      ambientModuleName: t,
      fileName: e.fileName,
      isPackageJsonImport: r
    } : {
      exportName: e.exportName,
      exportMapKey: e.exportMapKey,
      fileName: e.fileName,
      ambientModuleName: e.fileName ? void 0 : V_(e.moduleSymbol.name),
      isPackageJsonImport: e.isFromPackageJson ? !0 : void 0
    };
  }
  function Aje(e, t, r) {
    const i = e.exportName === "default", o = !!e.isPackageJsonImport;
    return oSe(e) ? {
      kind: 32,
      exportName: e.exportName,
      exportMapKey: e.exportMapKey,
      moduleSpecifier: e.moduleSpecifier,
      symbolName: t,
      fileName: e.fileName,
      moduleSymbol: r,
      isDefaultExport: i,
      isFromPackageJson: o
    } : {
      kind: 4,
      exportName: e.exportName,
      exportMapKey: e.exportMapKey,
      symbolName: t,
      fileName: e.fileName,
      moduleSymbol: r,
      isDefaultExport: i,
      isFromPackageJson: o
    };
  }
  function Cje(e, t, r, i, o, s, c) {
    const f = t.replacementSpan, d = yw(o, c, ST(r.moduleSpecifier)), y = r.isDefaultExport ? 1 : r.exportName === "export=" ? 2 : 0, h = c.includeCompletionsWithSnippetText ? "$1" : "", E = Hu.getImportKind(o, y, s, !0), A = t.couldBeTypeOnlyImportSpecifier, L = t.isTopLevelTypeOnly ? ` ${yo(154)} ` : " ", I = A ? `${yo(154)} ` : "", O = i ? ";" : "";
    switch (E) {
      case 3:
        return { replacementSpan: f, insertText: `import${L}${ST(e)}${h} = require(${d})${O}` };
      case 1:
        return { replacementSpan: f, insertText: `import${L}${ST(e)}${h} from ${d}${O}` };
      case 2:
        return { replacementSpan: f, insertText: `import${L}* as ${ST(e)} from ${d}${O}` };
      case 0:
        return { replacementSpan: f, insertText: `import${L}{ ${I}${ST(e)}${h} } from ${d}${O}` };
    }
  }
  function _Se(e, t, r) {
    return /^\d+$/.test(r) ? r : yw(e, t, r);
  }
  function Lje(e, t, r) {
    return e === t || !!(e.flags & 1048576) && r.getExportSymbolOfSymbol(e) === t;
  }
  function vte(e) {
    if (N6(e))
      return V_(e.moduleSymbol.name);
    if (rL(e))
      return e.moduleSpecifier;
    if ((e == null ? void 0 : e.kind) === 1)
      return "ThisProperty/";
    if ((e == null ? void 0 : e.kind) === 64)
      return "TypeOnlyAlias/";
  }
  function bte(e, t, r, i, o, s, c, f, d, y, h, E, A, L, I, O, k, G, V, H, te, X, Y, P, de, re = !1) {
    var ye;
    const ae = il(), W = Kje(o), ce = d9(c), me = d.getTypeChecker(), ve = /* @__PURE__ */ new Map();
    for (let ee = 0; ee < e.length; ee++) {
      const Qe = e[ee], Ve = X == null ? void 0 : X[ee], Be = kG(Qe, y, Ve, E, !!G);
      if (!Be || ve.get(Be.name) && (!Ve || !iSe(Ve)) || E === 1 && Y && !Te(Qe, Y))
        continue;
      const { name: qe, needsConvertPropertyAccess: Oe } = Be, Me = (ye = Y == null ? void 0 : Y[bo(Qe)]) != null ? ye : lu.LocationPriority, Ye = Yje(Qe, me) ? lu.Deprecated(Me) : Me, We = vje(Qe, Ye, r, i, o, s, c, f, d, qe, Oe, Ve, te, k, V, H, ce, L, A, E, I, P, de, re);
      if (!We)
        continue;
      const Fe = (!Ve || rSe(Ve)) && !(Qe.parent === void 0 && !kt(Qe.declarations, (st) => st.getSourceFile() === o.getSourceFile()));
      ve.set(qe, Fe), gv(t, We, O6, !0);
    }
    return h("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (il() - ae)), {
      has: (ee) => ve.has(ee),
      add: (ee) => ve.set(ee, !0)
    };
    function Te(ee, Qe) {
      let Ve = ee.flags;
      if (!qi(o)) {
        if (Bl(o.parent))
          return !0;
        if (W && ee.valueDeclaration === W)
          return !1;
        const Be = cf(ee, me);
        if (c.externalModuleIndicator && !L.allowUmdGlobalAccess && Qe[bo(ee)] === lu.GlobalsOrKeywords && (Qe[bo(Be)] === lu.AutoImportSuggestions || Qe[bo(Be)] === lu.LocationPriority))
          return !1;
        if (Ve |= ak(Be), OF(o))
          return !!(Ve & 1920);
        if (O)
          return Ate(ee, me);
      }
      return !!(Ve & 111551);
    }
  }
  function Ije(e) {
    const t = kje(e);
    if (t.length)
      return { isGlobalCompletion: !1, isMemberCompletion: !1, isNewIdentifierLocation: !1, entries: t };
  }
  function kje(e) {
    const t = [], r = /* @__PURE__ */ new Map();
    let i = e;
    for (; i && !Ka(i); ) {
      if (R1(i)) {
        const o = i.label.text;
        r.has(o) || (r.set(o, !0), t.push({
          name: o,
          kindModifiers: "",
          kind: "label",
          sortText: lu.LocationPriority
        }));
      }
      i = i.parent;
    }
    return t;
  }
  function pSe(e, t, r, i, o, s, c) {
    if (o.source === "SwitchCases/")
      return { type: "cases" };
    if (o.data) {
      const H = hSe(o.name, o.data, e, s);
      if (H) {
        const { contextToken: te, previousToken: X } = IG(i, r);
        return {
          type: "symbol",
          symbol: H.symbol,
          location: Df(r, i),
          previousToken: X,
          contextToken: te,
          isJsxInitializer: !1,
          isTypeOnlyLocation: !1,
          origin: H.origin
        };
      }
    }
    const f = e.getCompilerOptions(), d = mSe(e, t, r, f, i, { includeCompletionsForModuleExports: !0, includeCompletionsWithInsertText: !0 }, o, s, void 0);
    if (!d)
      return { type: "none" };
    if (d.kind !== 0)
      return { type: "request", request: d };
    const { symbols: y, literals: h, location: E, completionKind: A, symbolToOriginInfoMap: L, contextToken: I, previousToken: O, isJsxInitializer: k, isTypeOnlyLocation: G } = d, V = nn(h, (H) => gte(r, c, H) === o.name);
    return V !== void 0 ? { type: "literal", literal: V } : Jt(y, (H, te) => {
      const X = L[te], Y = kG(H, ts(f), X, A, d.isJsxIdentifierExpected);
      return Y && Y.name === o.name && (o.source === "ClassMemberSnippet/" && H.flags & 106500 || o.source === "ObjectLiteralMethodSnippet/" && H.flags & 8196 || vte(X) === o.source) ? { type: "symbol", symbol: H, location: E, origin: X, contextToken: I, previousToken: O, isJsxInitializer: k, isTypeOnlyLocation: G } : void 0;
    }) || { type: "none" };
  }
  function wje(e, t, r, i, o, s, c, f, d) {
    const y = e.getTypeChecker(), h = e.getCompilerOptions(), { name: E, source: A, data: L } = o, { previousToken: I, contextToken: O } = IG(i, r);
    if (qT(r, i, I))
      return PG.getStringLiteralCompletionDetails(E, r, i, I, y, h, s, d, f);
    const k = pSe(e, t, r, i, o, s, f);
    switch (k.type) {
      case "request": {
        const { request: G } = k;
        switch (G.kind) {
          case 1:
            return lb.getJSDocTagNameCompletionDetails(E);
          case 2:
            return lb.getJSDocTagCompletionDetails(E);
          case 3:
            return lb.getJSDocParameterNameCompletionDetails(E);
          case 4:
            return kt(G.keywordCompletions, (V) => V.name === E) ? Ete(E, "keyword", 5) : void 0;
          default:
            return D.assertNever(G);
        }
      }
      case "symbol": {
        const { symbol: G, location: V, contextToken: H, origin: te, previousToken: X } = k, { codeActions: Y, sourceDisplay: P } = Dje(E, V, H, te, G, e, s, h, r, i, X, c, f, L, A, d), de = mte(te) ? te.symbolName : G.name;
        return Tte(G, de, y, r, V, d, Y, P);
      }
      case "literal": {
        const { literal: G } = k;
        return Ete(gte(r, f, G), "string", typeof G == "string" ? 8 : 7);
      }
      case "cases": {
        const { entry: G, importAdder: V } = uSe(O.parent, r, f, e.getCompilerOptions(), s, e, void 0);
        if (V.hasFixes()) {
          const H = gr.ChangeTracker.with({ host: s, formatContext: c, preferences: f }, V.writeFixes);
          return {
            name: G.name,
            kind: "",
            kindModifiers: "",
            displayParts: [],
            sourceDisplay: void 0,
            codeActions: [{
              changes: H,
              description: qx([_.Includes_imports_of_types_referenced_by_0, E])
            }]
          };
        }
        return {
          name: G.name,
          kind: "",
          kindModifiers: "",
          displayParts: [],
          sourceDisplay: void 0
        };
      }
      case "none":
        return wte().some((G) => G.name === E) ? Ete(E, "keyword", 5) : void 0;
      default:
        D.assertNever(k);
    }
  }
  function Ete(e, t, r) {
    return P6(e, "", t, [Id(e, r)]);
  }
  function Tte(e, t, r, i, o, s, c, f) {
    const { displayParts: d, documentation: y, symbolKind: h, tags: E } = r.runWithCancellationToken(s, (A) => Ny.getSymbolDisplayPartsDocumentationAndSymbolKind(A, e, i, o, o, 7));
    return P6(t, Ny.getSymbolModifiers(r, e), h, d, y, E, c, f);
  }
  function P6(e, t, r, i, o, s, c, f) {
    return { name: e, kindModifiers: t, kind: r, displayParts: i, documentation: o, tags: s, codeActions: c, source: f, sourceDisplay: f };
  }
  function Dje(e, t, r, i, o, s, c, f, d, y, h, E, A, L, I, O) {
    if (L != null && L.moduleSpecifier && h && xSe(r || h).replacementSpan)
      return { codeActions: void 0, sourceDisplay: [Rf(L.moduleSpecifier)] };
    if (I === "ClassMemberSnippet/") {
      const { importAdder: Y } = dSe(c, s, f, A, e, o, t, y, r, E);
      if (Y)
        return {
          sourceDisplay: void 0,
          codeActions: [{
            changes: gr.ChangeTracker.with({ host: c, formatContext: E, preferences: A }, Y.writeFixes),
            description: qx([_.Includes_imports_of_types_referenced_by_0, e])
          }]
        };
    }
    if (rSe(i)) {
      const Y = Hu.getPromoteTypeOnlyCompletionAction(d, i.declaration.name, s, c, E, A);
      return D.assertIsDefined(Y, "Expected to have a code action for promoting type-only alias"), { codeActions: [Y], sourceDisplay: void 0 };
    }
    if (!i || !(N6(i) || rL(i)))
      return { codeActions: void 0, sourceDisplay: void 0 };
    const k = i.isFromPackageJson ? c.getPackageJsonAutoImportProvider().getTypeChecker() : s.getTypeChecker(), { moduleSymbol: G } = i, V = k.getMergedSymbol(cf(o.exportSymbol || o, k)), H = (r == null ? void 0 : r.kind) === 29 && Qu(r.parent), { moduleSpecifier: te, codeAction: X } = Hu.getImportCompletionAction(V, G, L == null ? void 0 : L.exportMapKey, d, e, H, c, s, E, h && je(h) ? h.getStart(d) : y, A, O);
    return D.assert(!(L != null && L.moduleSpecifier) || te === L.moduleSpecifier), { sourceDisplay: [Rf(te)], codeActions: [X] };
  }
  function Rje(e, t, r, i, o, s, c) {
    const f = pSe(e, t, r, i, o, s, c);
    return f.type === "symbol" ? f.symbol : void 0;
  }
  function Nje(e, t, r) {
    return Jt(t && (t.isUnion() ? t.types : [t]), (i) => {
      const o = i && i.symbol;
      return o && o.flags & 424 && !vde(o) ? Ste(o, e, r) : void 0;
    });
  }
  function Oje(e, t, r, i) {
    const { parent: o } = e;
    switch (e.kind) {
      case 79:
        return s9(e, i);
      case 63:
        switch (o.kind) {
          case 257:
            return i.getContextualType(o.initializer);
          case 223:
            return i.getTypeAtLocation(o.left);
          case 288:
            return i.getContextualTypeForJsxAttribute(o);
          default:
            return;
        }
      case 103:
        return i.getContextualType(o);
      case 82:
        const s = ai(o, Mk);
        return s ? oQ(s, i) : void 0;
      case 18:
        return Pk(o) && !Ay(o.parent) && !Rx(o.parent) ? i.getContextualTypeForJsxAttribute(o.parent) : void 0;
      default:
        const c = aP.getArgumentInfoForCompletions(e, t, r);
        return c ? i.getContextualTypeForArgumentAtIndex(c.invocation, c.argumentIndex + (e.kind === 27 ? 1 : 0)) : l9(e.kind) && br(o) && l9(o.operatorToken.kind) ? i.getTypeAtLocation(o.left) : i.getContextualType(e);
    }
  }
  function Ste(e, t, r) {
    const i = r.getAccessibleSymbolChain(e, t, 67108863, !1);
    return i ? us(i) : e.parent && (Pje(e.parent) ? e : Ste(e.parent, t, r));
  }
  function Pje(e) {
    var t;
    return !!((t = e.declarations) != null && t.some((r) => r.kind === 308));
  }
  function mSe(e, t, r, i, o, s, c, f, d, y) {
    const h = e.getTypeChecker(), E = cSe(r, i);
    let A = il(), L = aa(r, o);
    t("getCompletionData: Get current token: " + (il() - A)), A = il();
    const I = ky(r, o, L);
    t("getCompletionData: Is inside comment: " + (il() - A));
    let O = !1, k = !1;
    if (I) {
      if (Hye(r, o)) {
        if (r.text.charCodeAt(o - 1) === 64)
          return { kind: 1 };
        {
          const Re = T_(o, r);
          if (!/[^\*|\s(/)]/.test(r.text.substring(Re, o)))
            return { kind: 2 };
        }
      }
      const Z = Gje(L, o);
      if (Z) {
        if (Z.tagName.pos <= o && o <= Z.tagName.end)
          return { kind: 1 };
        const Re = sn(Z);
        if (Re && (L = aa(r, o), (!L || !_g(L) && (L.parent.kind !== 351 || L.parent.name !== L)) && (O = Pe(Re))), !O && rm(Z) && (Al(Z.name) || Z.name.pos <= o && o <= Z.name.end))
          return { kind: 3, tag: Z };
      }
      if (!O) {
        t("Returning an empty list because completion was inside a regular comment or plain text part of a JsDoc comment.");
        return;
      }
    }
    A = il();
    const G = !O && Zu(r), V = IG(o, r), H = V.previousToken;
    let te = V.contextToken;
    t("getCompletionData: Get previous token: " + (il() - A));
    let X = L, Y, P = !1, de = !1, re = !1, ye = !1, ae = !1, W = !1, ce, me = Df(r, o), ve = 0, Te = !1, ee = 0;
    if (te) {
      const Z = xSe(te);
      if (Z.keywordCompletion) {
        if (Z.isKeywordOnlyCompletion)
          return {
            kind: 4,
            keywordCompletions: [dje(Z.keywordCompletion)],
            isNewIdentifierLocation: Z.isNewIdentifierLocation
          };
        ve = _je(Z.keywordCompletion);
      }
      if (Z.replacementSpan && s.includeCompletionsForImportStatements && s.includeCompletionsWithInsertText && (ee |= 2, ce = Z, Te = Z.isNewIdentifierLocation), !Z.replacementSpan && an(te))
        return t("Returning an empty list because completion was requested in an invalid position."), ve ? sSe(ve, G, Ar()) : void 0;
      let Re = te.parent;
      if (te.kind === 24 || te.kind === 28)
        switch (P = te.kind === 24, de = te.kind === 28, Re.kind) {
          case 208:
            Y = Re, X = Y.expression;
            const q = sk(Y);
            if (Al(q) || (no(X) || Ka(X)) && X.end === te.pos && X.getChildCount(r) && qo(X.getChildren(r)).kind !== 21)
              return;
            break;
          case 163:
            X = Re.left;
            break;
          case 264:
            X = Re.name;
            break;
          case 202:
            X = Re;
            break;
          case 233:
            X = Re.getFirstToken(r), D.assert(X.kind === 100 || X.kind === 103);
            break;
          default:
            return;
        }
      else if (!ce) {
        if (Re && Re.kind === 208 && (te = Re, Re = Re.parent), L.parent === me)
          switch (L.kind) {
            case 31:
              (L.parent.kind === 281 || L.parent.kind === 283) && (me = L);
              break;
            case 43:
              L.parent.kind === 282 && (me = L);
              break;
          }
        switch (Re.kind) {
          case 284:
            te.kind === 43 && (ye = !0, me = te);
            break;
          case 223:
            if (!SSe(Re))
              break;
          case 282:
          case 281:
          case 283:
            W = !0, te.kind === 29 && (re = !0, me = te);
            break;
          case 291:
          case 290:
            (H.kind === 19 || H.kind === 79 && H.parent.kind === 288) && (W = !0);
            break;
          case 288:
            if (Re.initializer === H && H.end < o) {
              W = !0;
              break;
            }
            switch (H.kind) {
              case 63:
                ae = !0;
                break;
              case 79:
                W = !0, Re !== H.parent && !Re.initializer && bs(Re, 63, r) && (ae = H);
            }
            break;
        }
      }
    }
    const Qe = il();
    let Ve = 5, Be = !1, qe = !1, Oe = [], Me;
    const Ye = [], We = [], Fe = /* @__PURE__ */ new Map(), st = vn(), Ct = Lm((Z) => Wx(Z ? f.getPackageJsonAutoImportProvider() : e, f));
    if (P || de)
      Qt();
    else if (re)
      Oe = h.getJsxIntrinsicTagNamesAt(me), D.assertEachIsDefined(Oe, "getJsxIntrinsicTagNames() should all be defined"), Zt(), Ve = 1, ve = 0;
    else if (ye) {
      const Z = te.parent.parent.openingElement.tagName, Re = h.getSymbolAtLocation(Z);
      Re && (Oe = [Re]), Ve = 1, ve = 0;
    } else if (!Zt())
      return ve ? sSe(ve, G, Te) : void 0;
    t("getCompletionData: Semantic work: " + (il() - Qe));
    const Et = H && Oje(H, o, r, h), Vt = ia(Et && (Et.isUnion() ? Et.types : [Et]), (Z) => Z.isLiteral() && !(Z.flags & 1024) ? Z.value : void 0), tt = H && Et && Nje(H, Et, h);
    return {
      kind: 0,
      symbols: Oe,
      completionKind: Ve,
      isInSnippetScope: k,
      propertyAccessToConvert: Y,
      isNewIdentifierLocation: Te,
      location: me,
      keywordFilters: ve,
      literals: Vt,
      symbolToOriginInfoMap: Ye,
      recommendedCompletion: tt,
      previousToken: H,
      contextToken: te,
      isJsxInitializer: ae,
      insideJsDocTagTypeExpression: O,
      symbolToSortTextMap: We,
      isTypeOnlyLocation: st,
      isJsxIdentifierExpected: W,
      isRightOfOpenTag: re,
      isRightOfDotOrQuestionDot: P || de,
      importStatementCompletion: ce,
      hasUnresolvedAutoImports: qe,
      flags: ee
    };
    function at(Z) {
      switch (Z.kind) {
        case 344:
        case 351:
        case 345:
        case 347:
        case 349:
        case 352:
        case 353:
          return !0;
        case 348:
          return !!Z.constraint;
        default:
          return !1;
      }
    }
    function sn(Z) {
      if (at(Z)) {
        const Re = Ep(Z) ? Z.constraint : Z.typeExpression;
        return Re && Re.kind === 312 ? Re : void 0;
      }
      if (LC(Z) || RJ(Z))
        return Z.class;
    }
    function Qt() {
      Ve = 2;
      const Z = j0(X), Re = O || Z && !X.isTypeOf || yh(X.parent) || n6(te, r, h), q = OF(X);
      if (rf(X) || Z || Fr(X)) {
        const Rt = Jl(X.parent);
        Rt && (Te = !0);
        let gt = h.getSymbolAtLocation(X);
        if (gt && (gt = cf(gt, h), gt.flags & 1920)) {
          const ft = h.getExportsOfModule(gt);
          D.assertEachIsDefined(ft, "getExportsOfModule() should all be defined");
          const _n = (Ai) => h.isValidPropertyAccess(Z ? X : X.parent, Ai.name), $n = (Ai) => Ate(Ai, h), oi = Rt ? (Ai) => {
            var Ci;
            return !!(Ai.flags & 1920) && !((Ci = Ai.declarations) != null && Ci.every((ji) => ji.parent === X.parent));
          } : q ? (Ai) => $n(Ai) || _n(Ai) : Re ? $n : _n;
          for (const Ai of ft)
            oi(Ai) && Oe.push(Ai);
          if (!Re && gt.declarations && gt.declarations.some((Ai) => Ai.kind !== 308 && Ai.kind !== 264 && Ai.kind !== 263)) {
            let Ai = h.getTypeOfSymbolAtLocation(gt, X).getNonOptionalType(), Ci = !1;
            if (Ai.isNullableType()) {
              const ji = P && !de && s.includeAutomaticOptionalChainCompletions !== !1;
              (ji || de) && (Ai = Ai.getNonNullableType(), ji && (Ci = !0));
            }
            On(Ai, !!(X.flags & 32768), Ci);
          }
          return;
        }
      }
      if (!Re) {
        h.tryGetThisTypeAt(X, !1);
        let Rt = h.getTypeAtLocation(X).getNonOptionalType(), gt = !1;
        if (Rt.isNullableType()) {
          const ft = P && !de && s.includeAutomaticOptionalChainCompletions !== !1;
          (ft || de) && (Rt = Rt.getNonNullableType(), ft && (gt = !0));
        }
        On(Rt, !!(X.flags & 32768), gt);
      }
    }
    function On(Z, Re, q) {
      Te = !!Z.getStringIndexType(), de && kt(Z.getCallSignatures()) && (Te = !0);
      const Rt = X.kind === 202 ? X : X.parent;
      if (E)
        for (const gt of Z.getApparentProperties())
          h.isValidPropertyAccessForCompletions(Rt, Z, gt) && jn(gt, !1, q);
      else
        Oe.push(...lr(RG(Z, h), (gt) => h.isValidPropertyAccessForCompletions(Rt, Z, gt)));
      if (Re && s.includeCompletionsWithInsertText) {
        const gt = h.getPromisedTypeOfPromise(Z);
        if (gt)
          for (const ft of gt.getApparentProperties())
            h.isValidPropertyAccessForCompletions(Rt, gt, ft) && jn(ft, !0, q);
      }
    }
    function jn(Z, Re, q) {
      var Rt;
      const gt = Jt(Z.declarations, (oi) => ai(ka(oi), As));
      if (gt) {
        const oi = In(gt.expression), Ai = oi && h.getSymbolAtLocation(oi), Ci = Ai && Ste(Ai, te, h);
        if (Ci && vp(Fe, bo(Ci))) {
          const ji = Oe.length;
          Oe.push(Ci);
          const mo = Ci.parent;
          if (!mo || !a6(mo) || h.tryGetMemberInModuleExportsAndProperties(Ci.name, mo) !== Ci)
            Ye[ji] = { kind: $n(2) };
          else {
            const To = Gc(V_(mo.name)) ? (Rt = zM(mo)) == null ? void 0 : Rt.fileName : void 0, { moduleSpecifier: io } = (Me || (Me = Hu.createImportSpecifierResolver(r, e, f, s))).getModuleSpecifierForBestExportInfo([{
              exportKind: 0,
              moduleFileName: To,
              isFromPackageJson: !1,
              moduleSymbol: mo,
              symbol: Ci,
              targetFlags: cf(Ci, h).flags
            }], o, mx(me)) || {};
            if (io) {
              const ua = {
                kind: $n(6),
                moduleSymbol: mo,
                isDefaultExport: !1,
                symbolName: Ci.name,
                exportName: Ci.name,
                fileName: To,
                moduleSpecifier: io
              };
              Ye[ji] = ua;
            }
          }
        } else
          s.includeCompletionsWithInsertText && (_n(Z), ft(Z), Oe.push(Z));
      } else
        _n(Z), ft(Z), Oe.push(Z);
      function ft(oi) {
        zje(oi) && (We[bo(oi)] = lu.LocalDeclarationPriority);
      }
      function _n(oi) {
        s.includeCompletionsWithInsertText && (Re && vp(Fe, bo(oi)) ? Ye[Oe.length] = { kind: $n(8) } : q && (Ye[Oe.length] = { kind: 16 }));
      }
      function $n(oi) {
        return q ? oi | 16 : oi;
      }
    }
    function In(Z) {
      return je(Z) ? Z : Fr(Z) ? In(Z.expression) : void 0;
    }
    function Zt() {
      return (we() || yt() || $i() || Nt() || Ce() || _r() || pt() || Ii() || (Qi(), 1)) === 1;
    }
    function _r() {
      return ie(te) ? (Ve = 5, Te = !0, ve = 4, 1) : 0;
    }
    function Ii() {
      const Z = j(te), Re = Z && h.getContextualType(Z.attributes);
      if (!Re)
        return 0;
      const q = Z && h.getContextualType(Z.attributes, 4);
      return Oe = va(Oe, K(DG(Re, q, Z.attributes, h), Z.attributes.properties)), ue(), Ve = 3, Te = !1, 1;
    }
    function $i() {
      return ce ? (Te = !0, rr(), 1) : 0;
    }
    function Qi() {
      ve = he(te) ? 5 : 1, Ve = 1, Te = Ar(), H !== te && D.assert(!!H, "Expected 'contextToken' to be defined when different from 'previousToken'.");
      const Z = H !== te ? H.getStart() : o, Re = Rn(te, Z, r) || r;
      k = At(Re);
      const q = (st ? 0 : 111551) | 788968 | 1920 | 2097152, Rt = H && !mx(H);
      Oe = va(Oe, h.getSymbolsInScope(Re, q)), D.assertEachIsDefined(Oe, "getSymbolsInScope() should all be defined");
      for (let gt = 0; gt < Oe.length; gt++) {
        const ft = Oe[gt];
        if (!h.isArgumentsSymbol(ft) && !kt(ft.declarations, (_n) => _n.getSourceFile() === r) && (We[bo(ft)] = lu.GlobalsOrKeywords), Rt && !(ft.flags & 111551)) {
          const _n = ft.declarations && nn(ft.declarations, bW);
          if (_n) {
            const $n = { kind: 64, declaration: _n };
            Ye[gt] = $n;
          }
        }
      }
      if (s.includeCompletionsWithInsertText && Re.kind !== 308) {
        const gt = h.tryGetThisTypeAt(Re, !1, di(Re.parent) ? Re : void 0);
        if (gt && !Wje(gt, r, h))
          for (const ft of RG(gt, h))
            Ye[Oe.length] = { kind: 1 }, Oe.push(ft), We[bo(ft)] = lu.SuggestedClassMembers;
      }
      rr(), st && (ve = te && iT(te.parent) ? 6 : 7);
    }
    function Or() {
      return ce ? !0 : Be || !s.includeCompletionsForModuleExports ? !1 : r.externalModuleIndicator || r.commonJsModuleIndicator || H$(e.getCompilerOptions()) ? !0 : $ye(e);
    }
    function At(Z) {
      switch (Z.kind) {
        case 308:
        case 225:
        case 291:
        case 238:
          return !0;
        default:
          return wa(Z);
      }
    }
    function vn() {
      return O || !!ce && _1(me.parent) || !Wt(te) && (n6(te, r, h) || yh(me) || fn(te));
    }
    function Wt(Z) {
      return Z && (Z.kind === 112 && (Z.parent.kind === 183 || EC(Z.parent)) || Z.kind === 129 && Z.parent.kind === 179);
    }
    function fn(Z) {
      if (Z) {
        const Re = Z.parent.kind;
        switch (Z.kind) {
          case 58:
            return Re === 169 || Re === 168 || Re === 166 || Re === 257 || XS(Re);
          case 63:
            return Re === 262;
          case 128:
            return Re === 231;
          case 29:
            return Re === 180 || Re === 213;
          case 94:
            return Re === 165;
          case 150:
            return Re === 235;
        }
      }
      return !1;
    }
    function rr() {
      var Z, Re;
      if (!Or() || (D.assert(!(c != null && c.data), "Should not run 'collectAutoImports' when faster path is available via `data`"), c && !c.source))
        return;
      ee |= 1;
      const Rt = H === te && ce ? "" : H && je(H) ? H.text.toLowerCase() : "", gt = (Z = f.getModuleSpecifierCache) == null ? void 0 : Z.call(f), ft = h6(r, f, e, s, y), _n = (Re = f.getPackageJsonAutoImportProvider) == null ? void 0 : Re.call(f), $n = c ? void 0 : bw(r, s, f);
      aSe("collectAutoImports", f, Me || (Me = Hu.createImportSpecifierResolver(r, e, f, s)), e, o, s, !!ce, mx(me), (Ai) => {
        ft.search(r.path, re, (Ci, ji) => {
          if (!P_(Ci, ts(f.getCompilationSettings())) || !c && ax(Ci) || !st && !ce && !(ji & 111551) || st && !(ji & 790504))
            return !1;
          const mo = Ci.charCodeAt(0);
          return re && (mo < 65 || mo > 90) ? !1 : c ? !0 : ISe(Ci, Rt);
        }, (Ci, ji, mo, To) => {
          if (c && !kt(Ci, (_i) => c.source === V_(_i.moduleSymbol.name)) || (Ci = lr(Ci, oi), !Ci.length))
            return;
          const io = Ai.tryResolve(Ci, mo) || {};
          if (io === "failed")
            return;
          let ua = Ci[0], Hi;
          io !== "skipped" && ({ exportInfo: ua = Ci[0], moduleSpecifier: Hi } = io);
          const Xr = ua.exportKind === 1, ss = Xr && tC(ua.symbol) || ua.symbol;
          cr(ss, {
            kind: Hi ? 32 : 4,
            moduleSpecifier: Hi,
            symbolName: ji,
            exportMapKey: To,
            exportName: ua.exportKind === 2 ? "export=" : ua.symbol.name,
            fileName: ua.moduleFileName,
            isDefaultExport: Xr,
            moduleSymbol: ua.moduleSymbol,
            isFromPackageJson: ua.isFromPackageJson
          });
        }), qe = Ai.skippedAny(), ee |= Ai.resolvedAny() ? 8 : 0, ee |= Ai.resolvedBeyondLimit() ? 16 : 0;
      });
      function oi(Ai) {
        const Ci = ai(Ai.moduleSymbol.valueDeclaration, qi);
        if (!Ci) {
          const ji = V_(Ai.moduleSymbol.name);
          return jT.nodeCoreModules.has(ji) && xa(ji, "node:") !== b9(r, e) ? !1 : $n ? $n.allowsImportingAmbientModule(Ai.moduleSymbol, Ct(Ai.isFromPackageJson)) : !0;
        }
        return vQ(Ai.isFromPackageJson ? _n : e, r, Ci, s, $n, Ct(Ai.isFromPackageJson), gt);
      }
    }
    function cr(Z, Re) {
      const q = bo(Z);
      We[q] !== lu.GlobalsOrKeywords && (Ye[Oe.length] = Re, We[q] = ce ? lu.LocationPriority : lu.AutoImportSuggestions, Oe.push(Z));
    }
    function Pi(Z, Re) {
      fr(me) || Z.forEach((q) => {
        if (!hi(q))
          return;
        const Rt = kG(q, ts(i), void 0, 0, !1);
        if (!Rt)
          return;
        const { name: gt } = Rt, ft = Sje(q, gt, Re, e, f, i, s, d);
        if (!ft)
          return;
        const _n = { kind: 128, ...ft };
        ee |= 32, Ye[Oe.length] = _n, Oe.push(q);
      });
    }
    function hi(Z) {
      return !!(Z.flags & 8196);
    }
    function Rn(Z, Re, q) {
      let Rt = Z;
      for (; Rt && !I$(Rt, Re, q); )
        Rt = Rt.parent;
      return Rt;
    }
    function an(Z) {
      const Re = il(), q = Hr(Z) || He(Z) || Ut(Z) || Pn(Z) || P7(Z);
      return t("getCompletionsAtPosition: isCompletionListBlocker: " + (il() - Re)), q;
    }
    function Pn(Z) {
      if (Z.kind === 11)
        return !0;
      if (Z.kind === 31 && Z.parent) {
        if (me === Z.parent && (me.kind === 283 || me.kind === 282))
          return !1;
        if (Z.parent.kind === 283)
          return me.parent.kind !== 283;
        if (Z.parent.kind === 284 || Z.parent.kind === 282)
          return !!Z.parent.parent && Z.parent.parent.kind === 281;
      }
      return !1;
    }
    function Ar() {
      if (te) {
        const Z = te.parent.kind, Re = wG(te);
        switch (Re) {
          case 27:
            return Z === 210 || Z === 173 || Z === 211 || Z === 206 || Z === 223 || Z === 181 || Z === 207;
          case 20:
            return Z === 210 || Z === 173 || Z === 211 || Z === 214 || Z === 193;
          case 22:
            return Z === 206 || Z === 178 || Z === 164;
          case 142:
          case 143:
          case 100:
            return !0;
          case 24:
            return Z === 264;
          case 18:
            return Z === 260 || Z === 207;
          case 63:
            return Z === 257 || Z === 223;
          case 15:
            return Z === 225;
          case 16:
            return Z === 236;
          case 132:
            return Z === 171 || Z === 300;
          case 41:
            return Z === 171;
        }
        if (M6(Re))
          return !0;
      }
      return !1;
    }
    function Hr(Z) {
      return (uJ(Z) || EW(Z)) && (Q8(Z, o) || o === Z.end && (!!Z.isUnterminated || uJ(Z)));
    }
    function we() {
      const Z = jje(te);
      if (!Z)
        return 0;
      const q = (DO(Z.parent) ? Z.parent : void 0) || Z, Rt = TSe(q, h);
      if (!Rt)
        return 0;
      const gt = h.getTypeFromTypeNode(q), ft = RG(Rt, h), _n = RG(gt, h), $n = /* @__PURE__ */ new Set();
      return _n.forEach((oi) => $n.add(oi.escapedName)), Oe = va(Oe, lr(ft, (oi) => !$n.has(oi.escapedName))), Ve = 0, Te = !0, 1;
    }
    function yt() {
      const Z = Oe.length, Re = Mje(te);
      if (!Re)
        return 0;
      Ve = 0;
      let q, Rt;
      if (Re.kind === 207) {
        const gt = qje(Re, h);
        if (gt === void 0)
          return Re.flags & 33554432 ? 2 : (Be = !0, 0);
        const ft = h.getContextualType(Re, 4), _n = (ft || gt).getStringIndexType(), $n = (ft || gt).getNumberIndexType();
        if (Te = !!_n || !!$n, q = DG(gt, ft, Re, h), Rt = Re.properties, q.length === 0 && !$n)
          return Be = !0, 0;
      } else {
        D.assert(Re.kind === 203), Te = !1;
        const gt = Fm(Re.parent);
        if (!BA(gt))
          return D.fail("Root declaration is not variable-like.");
        let ft = kv(gt) || !!Zc(gt) || gt.parent.parent.kind === 247;
        if (!ft && gt.kind === 166 && (vt(gt.parent) ? ft = !!h.getContextualType(gt.parent) : (gt.parent.kind === 171 || gt.parent.kind === 175) && (ft = vt(gt.parent.parent) && !!h.getContextualType(gt.parent.parent))), ft) {
          const _n = h.getTypeAtLocation(Re);
          if (!_n)
            return 2;
          q = h.getPropertiesOfType(_n).filter(($n) => h.isPropertyAccessible(Re, !1, !1, _n, $n)), Rt = Re.elements;
        }
      }
      if (q && q.length > 0) {
        const gt = Sn(q, D.checkDefined(Rt));
        Oe = va(Oe, gt), ue(), Re.kind === 207 && s.includeCompletionsWithObjectLiteralMethodSnippets && s.includeCompletionsWithInsertText && (zt(Z), Pi(gt, Re));
      }
      return 1;
    }
    function Nt() {
      if (!te)
        return 0;
      const Z = te.kind === 18 || te.kind === 27 ? ai(te.parent, iq) : YF(te) ? ai(te.parent.parent, iq) : void 0;
      if (!Z)
        return 0;
      YF(te) || (ve = 8);
      const { moduleSpecifier: Re } = Z.kind === 272 ? Z.parent.parent : Z.parent;
      if (!Re)
        return Te = !0, Z.kind === 272 ? 2 : 0;
      const q = h.getSymbolAtLocation(Re);
      if (!q)
        return Te = !0, 2;
      Ve = 3, Te = !1;
      const Rt = h.getExportsAndPropertiesOfModule(q), gt = new Set(Z.elements.filter((_n) => !Pe(_n)).map((_n) => (_n.propertyName || _n.name).escapedText)), ft = Rt.filter((_n) => _n.escapedName !== "default" && !gt.has(_n.escapedName));
      return Oe = va(Oe, ft), ft.length || (ve = 0), 1;
    }
    function Ce() {
      var Z;
      const Re = te && (te.kind === 18 || te.kind === 27) ? ai(te.parent, J_) : void 0;
      if (!Re)
        return 0;
      const q = nr(Re, Im(qi, Jl));
      return Ve = 5, Te = !1, (Z = q.locals) == null || Z.forEach((Rt, gt) => {
        var ft, _n;
        Oe.push(Rt), (_n = (ft = q.symbol) == null ? void 0 : ft.exports) != null && _n.has(gt) && (We[bo(Rt)] = lu.OptionalMember);
      }), 1;
    }
    function pt() {
      const Z = Vje(r, te, me, o);
      if (!Z)
        return 0;
      if (Ve = 3, Te = !0, ve = te.kind === 41 ? 0 : di(Z) ? 2 : 3, !di(Z))
        return 1;
      const Re = te.kind === 26 ? te.parent.parent : te.parent;
      let q = Uc(Re) ? Mu(Re) : 0;
      if (te.kind === 79 && !Pe(te))
        switch (te.getText()) {
          case "private":
            q = q | 8;
            break;
          case "static":
            q = q | 32;
            break;
          case "override":
            q = q | 16384;
            break;
        }
      if (Il(Re) && (q |= 32), !(q & 8)) {
        const Rt = di(Z) && q & 16384 ? XE(Xp(Z)) : WI(Z), gt = ca(Rt, (ft) => {
          const _n = h.getTypeAtLocation(ft);
          return q & 32 ? (_n == null ? void 0 : _n.symbol) && h.getPropertiesOfType(h.getTypeOfSymbolAtLocation(_n.symbol, Z)) : _n && h.getPropertiesOfType(_n);
        });
        Oe = va(Oe, it(gt, Z.members, q)), ze(Oe, (ft, _n) => {
          const $n = ft == null ? void 0 : ft.valueDeclaration;
          if ($n && Uc($n) && $n.name && As($n.name)) {
            const oi = {
              kind: 512,
              symbolName: h.symbolToString(ft)
            };
            Ye[_n] = oi;
          }
        });
      }
      return 1;
    }
    function _e(Z) {
      return !!Z.parent && Ba(Z.parent) && ql(Z.parent.parent) && (II(Z.kind) || _g(Z));
    }
    function ie(Z) {
      if (Z) {
        const Re = Z.parent;
        switch (Z.kind) {
          case 20:
          case 27:
            return ql(Z.parent) ? Z.parent : void 0;
          default:
            if (_e(Z))
              return Re.parent;
        }
      }
    }
    function he(Z) {
      if (Z) {
        let Re;
        const q = nr(Z.parent, (Rt) => di(Rt) ? "quit" : Qs(Rt) && Re === Rt.body ? !0 : (Re = Rt, !1));
        return q && q;
      }
    }
    function j(Z) {
      if (Z) {
        const Re = Z.parent;
        switch (Z.kind) {
          case 31:
          case 30:
          case 43:
          case 79:
          case 208:
          case 289:
          case 288:
          case 290:
            if (Re && (Re.kind === 282 || Re.kind === 283)) {
              if (Z.kind === 31) {
                const q = Ac(Z.pos, r, void 0);
                if (!Re.typeArguments || q && q.kind === 43)
                  break;
              }
              return Re;
            } else if (Re.kind === 288)
              return Re.parent.parent;
            break;
          case 10:
            if (Re && (Re.kind === 288 || Re.kind === 290))
              return Re.parent.parent;
            break;
          case 19:
            if (Re && Re.kind === 291 && Re.parent && Re.parent.kind === 288)
              return Re.parent.parent.parent;
            if (Re && Re.kind === 290)
              return Re.parent.parent;
            break;
        }
      }
    }
    function He(Z) {
      const Re = Z.parent, q = Re.kind;
      switch (Z.kind) {
        case 27:
          return q === 257 || cn(Z) || q === 240 || q === 263 || Xe(q) || q === 261 || q === 204 || q === 262 || di(Re) && !!Re.typeParameters && Re.typeParameters.end >= Z.pos;
        case 24:
          return q === 204;
        case 58:
          return q === 205;
        case 22:
          return q === 204;
        case 20:
          return q === 295 || Xe(q);
        case 18:
          return q === 263;
        case 29:
          return q === 260 || q === 228 || q === 261 || q === 262 || XS(q);
        case 124:
          return q === 169 && !di(Re.parent);
        case 25:
          return q === 166 || !!Re.parent && Re.parent.kind === 204;
        case 123:
        case 121:
        case 122:
          return q === 166 && !ql(Re.parent);
        case 128:
          return q === 273 || q === 278 || q === 271;
        case 137:
        case 151:
          return !NG(Z);
        case 79:
          if (q === 273 && Z === Re.name && Z.text === "type")
            return !1;
          break;
        case 84:
        case 92:
        case 118:
        case 98:
        case 113:
        case 100:
        case 119:
        case 85:
        case 138:
          return !0;
        case 154:
          return q !== 273;
        case 41:
          return Ka(Z.parent) && !ac(Z.parent);
      }
      if (M6(wG(Z)) && NG(Z) || _e(Z) && (!je(Z) || II(wG(Z)) || Pe(Z)))
        return !1;
      switch (wG(Z)) {
        case 126:
        case 84:
        case 85:
        case 136:
        case 92:
        case 98:
        case 118:
        case 119:
        case 121:
        case 122:
        case 123:
        case 124:
        case 113:
          return !0;
        case 132:
          return to(Z.parent);
      }
      if (nr(Z.parent, di) && Z === H && Ze(Z, o))
        return !1;
      const gt = q0(Z.parent, 169);
      if (gt && Z !== H && di(H.parent.parent) && o <= H.end) {
        if (Ze(Z, H.end))
          return !1;
        if (Z.kind !== 63 && (L8(gt) || jM(gt)))
          return !0;
      }
      return _g(Z) && !t_(Z.parent) && !nm(Z.parent) && !(di(Z.parent) && (Z !== H || o > H.end));
    }
    function Ze(Z, Re) {
      return Z.kind !== 63 && (Z.kind === 26 || !g_(Z.end, Re, r));
    }
    function Xe(Z) {
      return XS(Z) && Z !== 173;
    }
    function Ut(Z) {
      if (Z.kind === 8) {
        const Re = Z.getFullText();
        return Re.charAt(Re.length - 1) === ".";
      }
      return !1;
    }
    function cn(Z) {
      return Z.parent.kind === 258 && !n6(Z, r, h);
    }
    function Sn(Z, Re) {
      if (Re.length === 0)
        return Z;
      const q = /* @__PURE__ */ new Set(), Rt = /* @__PURE__ */ new Set();
      for (const ft of Re) {
        if (ft.kind !== 299 && ft.kind !== 300 && ft.kind !== 205 && ft.kind !== 171 && ft.kind !== 174 && ft.kind !== 175 && ft.kind !== 301 || Pe(ft))
          continue;
        let _n;
        if (Ox(ft))
          Er(ft, q);
        else if (_s(ft) && ft.propertyName)
          ft.propertyName.kind === 79 && (_n = ft.propertyName.escapedText);
        else {
          const $n = ka(ft);
          _n = $n && G_($n) ? qI($n) : void 0;
        }
        _n !== void 0 && Rt.add(_n);
      }
      const gt = Z.filter((ft) => !Rt.has(ft.escapedName));
      return mt(q, gt), gt;
    }
    function Er(Z, Re) {
      const q = Z.expression, Rt = h.getSymbolAtLocation(q), gt = Rt && h.getTypeOfSymbolAtLocation(Rt, q), ft = gt && gt.properties;
      ft && ft.forEach((_n) => {
        Re.add(_n.name);
      });
    }
    function ue() {
      Oe.forEach((Z) => {
        var Re;
        if (Z.flags & 16777216) {
          const q = bo(Z);
          We[q] = (Re = We[q]) != null ? Re : lu.OptionalMember;
        }
      });
    }
    function mt(Z, Re) {
      if (Z.size !== 0)
        for (const q of Re)
          Z.has(q.name) && (We[bo(q)] = lu.MemberDeclaredBySpreadAssignment);
    }
    function zt(Z) {
      var Re;
      for (let q = Z; q < Oe.length; q++) {
        const Rt = Oe[q], gt = bo(Rt), ft = Ye == null ? void 0 : Ye[q], _n = ts(i), $n = kG(Rt, _n, ft, 0, !1);
        if ($n) {
          const oi = (Re = We[gt]) != null ? Re : lu.LocationPriority, { name: Ai } = $n;
          We[gt] = lu.ObjectLiteralProperty(oi, Ai);
        }
      }
    }
    function it(Z, Re, q) {
      const Rt = /* @__PURE__ */ new Set();
      for (const gt of Re) {
        if (gt.kind !== 169 && gt.kind !== 171 && gt.kind !== 174 && gt.kind !== 175 || Pe(gt) || Gd(gt, 8) || Ja(gt) !== !!(q & 32))
          continue;
        const ft = T1(gt.name);
        ft && Rt.add(ft);
      }
      return Z.filter((gt) => !Rt.has(gt.escapedName) && !!gt.declarations && !(Qf(gt) & 8) && !(gt.valueDeclaration && $u(gt.valueDeclaration)));
    }
    function K(Z, Re) {
      const q = /* @__PURE__ */ new Set(), Rt = /* @__PURE__ */ new Set();
      for (const ft of Re)
        Pe(ft) || (ft.kind === 288 ? q.add(ft.name.escapedText) : IT(ft) && Er(ft, Rt));
      const gt = Z.filter((ft) => !q.has(ft.escapedName));
      return mt(Rt, gt), gt;
    }
    function Pe(Z) {
      return Z.getStart(r) <= o && o <= Z.getEnd();
    }
  }
  function Mje(e) {
    if (e) {
      const { parent: t } = e;
      switch (e.kind) {
        case 18:
        case 27:
          if (Ls(t) || Hm(t))
            return t;
          break;
        case 41:
          return ac(t) ? ai(t.parent, Ls) : void 0;
        case 79:
          return e.text === "async" && t_(e.parent) ? e.parent.parent : void 0;
      }
    }
  }
  function IG(e, t) {
    const r = Ac(e, t);
    return r && e <= r.end && (og(r) || Ad(r.kind)) ? { contextToken: Ac(r.getFullStart(), t, void 0), previousToken: r } : { contextToken: r, previousToken: r };
  }
  function hSe(e, t, r, i) {
    const o = t.isPackageJsonImport ? i.getPackageJsonAutoImportProvider() : r, s = o.getTypeChecker(), c = t.ambientModuleName ? s.tryFindAmbientModule(t.ambientModuleName) : t.fileName ? s.getMergedSymbol(D.checkDefined(o.getSourceFile(t.fileName)).symbol) : void 0;
    if (!c)
      return;
    let f = t.exportName === "export=" ? s.resolveExternalModuleSymbol(c) : s.tryGetMemberInModuleExportsAndProperties(t.exportName, c);
    return f ? (f = t.exportName === "default" && tC(f) || f, { symbol: f, origin: Aje(t, e, c) }) : void 0;
  }
  function kG(e, t, r, i, o) {
    if (lje(r))
      return;
    const s = ije(r) ? r.symbolName : e.name;
    if (s === void 0 || e.flags & 1536 && mN(s.charCodeAt(0)) || FN(e))
      return;
    const c = { name: s, needsConvertPropertyAccess: !1 };
    if (P_(s, t, o ? 1 : 0) || e.valueDeclaration && $u(e.valueDeclaration))
      return c;
    switch (i) {
      case 3:
        return mte(r) ? { name: r.symbolName, needsConvertPropertyAccess: !1 } : void 0;
      case 0:
        return { name: JSON.stringify(s), needsConvertPropertyAccess: !1 };
      case 2:
      case 1:
        return s.charCodeAt(0) === 32 ? void 0 : { name: s, needsConvertPropertyAccess: !0 };
      case 5:
      case 4:
        return c;
      default:
        D.assertNever(i);
    }
  }
  function gSe(e, t) {
    if (!t)
      return ySe(e);
    const r = e + 8 + 1;
    return F6[r] || (F6[r] = ySe(e).filter((i) => !Fje(ZE(i.name))));
  }
  function ySe(e) {
    return F6[e] || (F6[e] = wte().filter((t) => {
      const r = ZE(t.name);
      switch (e) {
        case 0:
          return !1;
        case 1:
          return bSe(r) || r === 136 || r === 142 || r === 154 || r === 143 || r === 126 || pw(r) && r !== 155;
        case 5:
          return bSe(r);
        case 2:
          return M6(r);
        case 3:
          return vSe(r);
        case 4:
          return II(r);
        case 6:
          return pw(r) || r === 85;
        case 7:
          return pw(r);
        case 8:
          return r === 154;
        default:
          return D.assertNever(e);
      }
    }));
  }
  function Fje(e) {
    switch (e) {
      case 126:
      case 131:
      case 160:
      case 134:
      case 136:
      case 92:
      case 159:
      case 117:
      case 138:
      case 118:
      case 140:
      case 141:
      case 142:
      case 143:
      case 144:
      case 148:
      case 149:
      case 161:
      case 121:
      case 122:
      case 123:
      case 146:
      case 152:
      case 153:
      case 154:
      case 156:
      case 157:
        return !0;
      default:
        return !1;
    }
  }
  function vSe(e) {
    return e === 146;
  }
  function M6(e) {
    switch (e) {
      case 126:
      case 127:
      case 135:
      case 137:
      case 151:
      case 132:
      case 136:
      case 161:
        return !0;
      default:
        return TW(e);
    }
  }
  function bSe(e) {
    return e === 132 || e === 133 || e === 128 || e === 150 || e === 154 || !S3(e) && !M6(e);
  }
  function wG(e) {
    var t;
    return je(e) ? (t = U0(e)) != null ? t : 0 : e.kind;
  }
  function Bje(e, t) {
    const r = [];
    if (e) {
      const i = e.getSourceFile(), o = e.parent, s = i.getLineAndCharacterOfPosition(e.end).line, c = i.getLineAndCharacterOfPosition(t).line;
      (Wc(o) || eu(o) && o.moduleSpecifier) && e === o.moduleSpecifier && s === c && r.push({
        name: yo(130),
        kind: "keyword",
        kindModifiers: "",
        sortText: lu.GlobalsOrKeywords
      });
    }
    return r;
  }
  function Gje(e, t) {
    return nr(e, (r) => DI(r) && $8(r, t) ? !0 : qm(r) ? "quit" : !1);
  }
  function DG(e, t, r, i) {
    const o = t && t !== e, s = o && !(t.flags & 3) ? i.getUnionType([e, t]) : e, c = Uje(s, r, i);
    return s.isClass() && ESe(c) ? [] : o ? lr(c, f) : c;
    function f(d) {
      return Le(d.declarations) ? kt(d.declarations, (y) => y.parent !== r) : !0;
    }
  }
  function Uje(e, t, r) {
    return e.isUnion() ? r.getAllPossiblePropertiesOfTypes(lr(e.types, (i) => !(i.flags & 134348796 || r.isArrayLikeType(i) || r.isTypeInvalidDueToUnionDiscriminant(i, t) || r.typeHasCallOrConstructSignatures(i) || i.isClass() && ESe(i.getApparentProperties())))) : e.getApparentProperties();
  }
  function ESe(e) {
    return kt(e, (t) => !!(Qf(t) & 24));
  }
  function RG(e, t) {
    return e.isUnion() ? D.checkEachDefined(t.getAllPossiblePropertiesOfTypes(e.types), "getAllPossiblePropertiesOfTypes() should all be defined") : D.checkEachDefined(e.getApparentProperties(), "getApparentProperties() should all be defined");
  }
  function Vje(e, t, r, i) {
    var o;
    switch (r.kind) {
      case 354:
        return ai(r.parent, dx);
      case 1:
        const s = ai(tl(oo(r.parent, qi).statements), dx);
        if (s && !bs(s, 19, e))
          return s;
        break;
      case 79: {
        if (U0(r) || to(r.parent) && r.parent.initializer === r)
          return;
        if (NG(r))
          return nr(r, dx);
      }
    }
    if (t) {
      if (r.kind === 135 || je(t) && to(t.parent) && di(r))
        return nr(t, di);
      switch (t.kind) {
        case 63:
          return;
        case 26:
        case 19:
          return NG(r) && r.parent.name === r ? r.parent.parent : ai(r, dx);
        case 18:
        case 27:
          return ai(t.parent, dx);
        default:
          if (dx(r)) {
            if (ol(e, t.getEnd()).line !== ol(e, i).line)
              return r;
            const s = di(t.parent.parent) ? M6 : vSe;
            return s(t.kind) || t.kind === 41 || je(t) && s((o = U0(t)) != null ? o : 0) ? t.parent.parent : void 0;
          }
          return;
      }
    }
  }
  function jje(e) {
    if (!e)
      return;
    const t = e.parent;
    switch (e.kind) {
      case 18:
        if (uf(t))
          return t;
        break;
      case 26:
      case 27:
      case 79:
        if (t.kind === 168 && uf(t.parent))
          return t.parent;
        break;
    }
  }
  function TSe(e, t) {
    if (!e)
      return;
    if (Gi(e) && HM(e.parent))
      return t.getTypeArgumentConstraint(e);
    const r = TSe(e.parent, t);
    if (r)
      switch (e.kind) {
        case 168:
          return t.getTypeOfPropertyOfContextualType(r, e.symbol.escapedName);
        case 190:
        case 184:
        case 189:
          return r;
      }
  }
  function NG(e) {
    return e.parent && FM(e.parent) && dx(e.parent.parent);
  }
  function Hje(e, t, r, i) {
    switch (t) {
      case ".":
      case "@":
        return !0;
      case '"':
      case "'":
      case "`":
        return !!r && hve(r) && i === r.getStart(e) + 1;
      case "#":
        return !!r && Ni(r) && !!xc(r);
      case "<":
        return !!r && r.kind === 29 && (!br(r.parent) || SSe(r.parent));
      case "/":
        return !!r && (xs(r) ? !!CN(r) : r.kind === 43 && Dx(r.parent));
      case " ":
        return !!r && Lk(r) && r.parent.kind === 308;
      default:
        return D.assertNever(t);
    }
  }
  function SSe({ left: e }) {
    return Al(e);
  }
  function Wje(e, t, r) {
    const i = r.resolveName("self", void 0, 111551, !1);
    if (i && r.getTypeOfSymbolAtLocation(i, t) === e)
      return !0;
    const o = r.resolveName("global", void 0, 111551, !1);
    if (o && r.getTypeOfSymbolAtLocation(o, t) === e)
      return !0;
    const s = r.resolveName("globalThis", void 0, 111551, !1);
    return !!(s && r.getTypeOfSymbolAtLocation(s, t) === e);
  }
  function zje(e) {
    return !!(e.valueDeclaration && Mu(e.valueDeclaration) & 32 && di(e.valueDeclaration.parent));
  }
  function qje(e, t) {
    const r = t.getContextualType(e);
    if (r)
      return r;
    const i = Dv(e.parent);
    if (br(i) && i.operatorToken.kind === 63 && e === i.left)
      return t.getTypeAtLocation(i);
    if (vt(i))
      return t.getContextualType(i);
  }
  function xSe(e) {
    var t, r, i;
    let o, s = !1;
    const c = f();
    return {
      isKeywordOnlyCompletion: s,
      keywordCompletion: o,
      isNewIdentifierLocation: !!(c || o === 154),
      isTopLevelTypeOnly: !!((r = (t = ai(c, Wc)) == null ? void 0 : t.importClause) != null && r.isTypeOnly) || !!((i = ai(c, su)) != null && i.isTypeOnly),
      couldBeTypeOnlyImportSpecifier: !!c && CSe(c, e),
      replacementSpan: Jje(c)
    };
    function f() {
      const d = e.parent;
      if (su(d))
        return o = e.kind === 154 ? void 0 : 154, xte(d.moduleReference) ? d : void 0;
      if (CSe(d, e) && LSe(d.parent))
        return d;
      if (xy(d) || Gv(d)) {
        if (!d.parent.isTypeOnly && (e.kind === 18 || e.kind === 100 || e.kind === 27) && (o = 154), LSe(d))
          if (e.kind === 19 || e.kind === 79)
            s = !0, o = 158;
          else
            return d.parent.parent;
        return;
      }
      if (Lk(e) && qi(d))
        return o = 154, e;
      if (Lk(e) && Wc(d))
        return o = 154, xte(d.moduleSpecifier) ? d : void 0;
    }
  }
  function Jje(e) {
    var t, r, i;
    if (!e)
      return;
    const o = (t = nr(e, Im(Wc, su))) != null ? t : e, s = o.getSourceFile();
    if (bT(o, s))
      return rd(o, s);
    D.assert(o.kind !== 100 && o.kind !== 273);
    const c = o.kind === 269 ? (i = ASe((r = o.importClause) == null ? void 0 : r.namedBindings)) != null ? i : o.moduleSpecifier : o.moduleReference, f = {
      pos: o.getFirstToken().getStart(),
      end: c.pos
    };
    if (bT(f, s))
      return qv(f);
  }
  function ASe(e) {
    var t;
    return nn((t = ai(e, xy)) == null ? void 0 : t.elements, (r) => {
      var i;
      return !r.propertyName && ax(r.name.text) && ((i = Ac(r.name.pos, e.getSourceFile(), e)) == null ? void 0 : i.kind) !== 27;
    });
  }
  function CSe(e, t) {
    return Ld(e) && (e.isTypeOnly || t === e.name && YF(t));
  }
  function LSe(e) {
    if (!xte(e.parent.parent.moduleSpecifier) || e.parent.name)
      return !1;
    if (xy(e)) {
      const t = ASe(e);
      return (t ? e.elements.indexOf(t) : e.elements.length) < 2;
    }
    return !0;
  }
  function xte(e) {
    var t;
    return Al(e) ? !0 : !((t = ai(zm(e) ? e.expression : e, xs)) != null && t.text);
  }
  function Kje(e) {
    return nr(e, (r) => uT(r) || Xje(r) || Xa(r) ? "quit" : Ki(r));
  }
  function Xje(e) {
    return e.parent && Js(e.parent) && e.parent.body === e;
  }
  function Ate(e, t, r = /* @__PURE__ */ new Map()) {
    return i(e) || i(cf(e.exportSymbol || e, t));
    function i(o) {
      return !!(o.flags & 788968) || t.isUnknownSymbol(o) || !!(o.flags & 1536) && vp(r, bo(o)) && t.getExportsOfModule(o).some((s) => Ate(s, t, r));
    }
  }
  function Yje(e, t) {
    const r = cf(e, t).declarations;
    return !!Le(r) && Yn(r, v9);
  }
  function ISe(e, t) {
    if (t.length === 0)
      return !0;
    let r = !1, i, o = 0;
    const s = e.length;
    for (let c = 0; c < s; c++) {
      const f = e.charCodeAt(c), d = t.charCodeAt(o);
      if ((f === d || f === $je(d)) && (r || (r = i === void 0 || 97 <= i && i <= 122 && 65 <= f && f <= 90 || i === 95 && f !== 95), r && o++, o === t.length))
        return !0;
      i = f;
    }
    return !1;
  }
  function $je(e) {
    return 97 <= e && e <= 122 ? e - 32 : e;
  }
  var OG, Cte, lu, Lte, Ite, kte, F6, wte, Qje = C({
    "src/services/completions.ts"() {
      $r(), Mte(), OG = 100, Cte = 1e3, lu = {
        LocalDeclarationPriority: "10",
        LocationPriority: "11",
        OptionalMember: "12",
        MemberDeclaredBySpreadAssignment: "13",
        SuggestedClassMembers: "14",
        GlobalsOrKeywords: "15",
        AutoImportSuggestions: "16",
        ClassMemberSnippets: "17",
        JavascriptIdentifiers: "18",
        Deprecated(e) {
          return "z" + e;
        },
        ObjectLiteralProperty(e, t) {
          return `${e}\0${t}\0`;
        },
        SortBelow(e) {
          return e + "1";
        }
      }, Lte = /* @__PURE__ */ ((e) => (e.ThisProperty = "ThisProperty/", e.ClassMemberSnippet = "ClassMemberSnippet/", e.TypeOnlyAlias = "TypeOnlyAlias/", e.ObjectLiteralMethodSnippet = "ObjectLiteralMethodSnippet/", e.SwitchCases = "SwitchCases/", e))(Lte || {}), Ite = /* @__PURE__ */ ((e) => (e[e.ThisType = 1] = "ThisType", e[e.SymbolMember = 2] = "SymbolMember", e[e.Export = 4] = "Export", e[e.Promise = 8] = "Promise", e[e.Nullable = 16] = "Nullable", e[e.ResolvedExport = 32] = "ResolvedExport", e[e.TypeOnlyAlias = 64] = "TypeOnlyAlias", e[e.ObjectLiteralMethod = 128] = "ObjectLiteralMethod", e[e.Ignore = 256] = "Ignore", e[e.ComputedPropertyName = 512] = "ComputedPropertyName", e[e.SymbolMemberNoExport = 2] = "SymbolMemberNoExport", e[e.SymbolMemberExport = 6] = "SymbolMemberExport", e))(Ite || {}), kte = /* @__PURE__ */ ((e) => (e[e.ObjectPropertyDeclaration = 0] = "ObjectPropertyDeclaration", e[e.Global = 1] = "Global", e[e.PropertyAccess = 2] = "PropertyAccess", e[e.MemberLike = 3] = "MemberLike", e[e.String = 4] = "String", e[e.None = 5] = "None", e))(kte || {}), F6 = [], wte = Ed(() => {
        const e = [];
        for (let t = 81; t <= 162; t++)
          e.push({
            name: yo(t),
            kind: "keyword",
            kindModifiers: "",
            sortText: lu.GlobalsOrKeywords
          });
        return e;
      });
    }
  });
  function Dte() {
    const e = /* @__PURE__ */ new Map();
    function t(r) {
      const i = e.get(r.name);
      (!i || Pte[i.kind] < Pte[r.kind]) && e.set(r.name, r);
    }
    return {
      add: t,
      has: e.has.bind(e),
      values: e.values.bind(e)
    };
  }
  function Zje(e, t, r, i, o, s, c, f, d) {
    if (Kye(e, t)) {
      const y = mHe(e, t, i, o);
      return y && kSe(y);
    }
    if (qT(e, t, r)) {
      if (!r || !xs(r))
        return;
      const y = DSe(e, r, t, s.getTypeChecker(), i, o, f);
      return eHe(y, r, e, o, s, c, i, f, t, d);
    }
  }
  function eHe(e, t, r, i, o, s, c, f, d, y) {
    if (e === void 0)
      return;
    const h = G$(t);
    switch (e.kind) {
      case 0:
        return kSe(e.paths);
      case 1: {
        const E = bj();
        return bte(e.symbols, E, t, t, r, d, r, i, o, 99, s, 4, f, c, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, y), { isGlobalCompletion: !1, isMemberCompletion: !0, isNewIdentifierLocation: e.hasIndexSignature, optionalReplacementSpan: h, entries: E };
      }
      case 2: {
        const E = e.types.map((A) => ({
          name: A.value,
          kindModifiers: "",
          kind: "string",
          sortText: lu.LocationPriority,
          replacementSpan: B$(t)
        }));
        return { isGlobalCompletion: !1, isMemberCompletion: !1, isNewIdentifierLocation: e.isNewIdentifier, optionalReplacementSpan: h, entries: E };
      }
      default:
        return D.assertNever(e);
    }
  }
  function tHe(e, t, r, i, o, s, c, f, d) {
    if (!i || !xs(i))
      return;
    const y = DSe(t, i, r, o, s, c, d);
    return y && nHe(e, i, y, t, o, f);
  }
  function nHe(e, t, r, i, o, s) {
    switch (r.kind) {
      case 0: {
        const c = nn(r.paths, (f) => f.name === e);
        return c && P6(e, wSe(c.extension), c.kind, [Rf(e)]);
      }
      case 1: {
        const c = nn(r.symbols, (f) => f.name === e);
        return c && Tte(c, c.name, o, i, t, s);
      }
      case 2:
        return nn(r.types, (c) => c.value === e) ? P6(e, "", "string", [Rf(e)]) : void 0;
      default:
        return D.assertNever(r);
    }
  }
  function kSe(e) {
    return { isGlobalCompletion: !1, isMemberCompletion: !1, isNewIdentifierLocation: !0, entries: e.map(({ name: o, kind: s, span: c, extension: f }) => ({ name: o, kind: s, kindModifiers: wSe(f), sortText: lu.LocationPriority, replacementSpan: c })) };
  }
  function wSe(e) {
    switch (e) {
      case ".d.ts":
        return ".d.ts";
      case ".js":
        return ".js";
      case ".json":
        return ".json";
      case ".jsx":
        return ".jsx";
      case ".ts":
        return ".ts";
      case ".tsx":
        return ".tsx";
      case ".d.mts":
        return ".d.mts";
      case ".mjs":
        return ".mjs";
      case ".mts":
        return ".mts";
      case ".d.cts":
        return ".d.cts";
      case ".cjs":
        return ".cjs";
      case ".cts":
        return ".cts";
      case ".tsbuildinfo":
        return D.fail("Extension .tsbuildinfo is unsupported.");
      case void 0:
        return "";
      default:
        return D.assertNever(e);
    }
  }
  function DSe(e, t, r, i, o, s, c) {
    const f = RSe(t.parent);
    switch (f.kind) {
      case 198: {
        const A = RSe(f.parent);
        switch (A.kind) {
          case 230:
          case 180: {
            const O = nr(f, (k) => k.parent === A);
            return O ? { kind: 2, types: B6(i.getTypeArgumentConstraint(O)), isNewIdentifier: !1 } : void 0;
          }
          case 196:
            const { indexType: L, objectType: I } = A;
            return $8(L, r) ? NSe(i.getTypeFromTypeNode(I)) : void 0;
          case 202:
            return { kind: 0, paths: PSe(e, t, o, s, i, c) };
          case 189: {
            if (!q_(A.parent))
              return;
            const O = rHe(A, f);
            return { kind: 2, types: B6(i.getTypeArgumentConstraint(A)).filter((G) => !jr(O, G.value)), isNewIdentifier: !1 };
          }
          default:
            return;
        }
      }
      case 299:
        return Ls(f.parent) && f.name === t ? aHe(i, f.parent) : d() || d(0);
      case 209: {
        const { expression: A, argumentExpression: L } = f;
        return t === js(L) ? NSe(i.getTypeAtLocation(A)) : void 0;
      }
      case 210:
      case 211:
      case 288:
        if (!vHe(t) && !lf(f)) {
          const A = aP.getArgumentInfoForCompletions(f.kind === 288 ? f.parent : t, r, e);
          return A && iHe(A.invocation, t, A, i) || d();
        }
      case 269:
      case 275:
      case 280:
        return { kind: 0, paths: PSe(e, t, o, s, i, c) };
      case 292:
        const y = T9(i, f.parent.clauses), h = d();
        return h ? { kind: 2, types: h.types.filter((A) => !y.hasValue(A.value)), isNewIdentifier: !1 } : void 0;
      default:
        return d();
    }
    function d(y = 4) {
      const h = B6(s9(t, i, y));
      if (h.length)
        return { kind: 2, types: h, isNewIdentifier: !1 };
    }
  }
  function RSe(e) {
    switch (e.kind) {
      case 193:
        return DN(e);
      case 214:
        return Dv(e);
      default:
        return e;
    }
  }
  function rHe(e, t) {
    return ia(e.types, (r) => r !== t && Z0(r) && jo(r.literal) ? r.literal.text : void 0);
  }
  function iHe(e, t, r, i) {
    let o = !1;
    const s = /* @__PURE__ */ new Map(), c = [], f = Qu(e) ? D.checkDefined(nr(t.parent, nm)) : t;
    i.getResolvedSignatureForStringLiteralCompletions(e, f, c);
    const d = ca(c, (y) => {
      if (!Eu(y) && r.argumentCount > y.parameters.length)
        return;
      let h = y.getTypeParameterAtPosition(r.argumentIndex);
      if (Qu(e)) {
        const E = i.getTypeOfPropertyOfType(h, f.name.text);
        E && (h = E);
      }
      return o = o || !!(h.flags & 4), B6(h, s);
    });
    return Le(d) ? { kind: 2, types: d, isNewIdentifier: o } : void 0;
  }
  function NSe(e) {
    return e && {
      kind: 1,
      symbols: lr(e.getApparentProperties(), (t) => !(t.valueDeclaration && $u(t.valueDeclaration))),
      hasIndexSignature: aQ(e)
    };
  }
  function aHe(e, t) {
    const r = e.getContextualType(t);
    if (!r)
      return;
    const i = e.getContextualType(t, 4);
    return {
      kind: 1,
      symbols: DG(r, i, t, e),
      hasIndexSignature: aQ(r)
    };
  }
  function B6(e, t = /* @__PURE__ */ new Map()) {
    return e ? (e = j$(e), e.isUnion() ? ca(e.types, (r) => B6(r, t)) : e.isStringLiteral() && !(e.flags & 1024) && vp(t, e.value) ? [e] : rt) : rt;
  }
  function iL(e, t, r) {
    return { name: e, kind: t, extension: r };
  }
  function Rte(e) {
    return iL(e, "directory", void 0);
  }
  function OSe(e, t, r) {
    const i = gHe(e, t), o = e.length === 0 ? void 0 : wc(t, e.length);
    return r.map(({ name: s, kind: c, extension: f }) => Math.max(s.indexOf(Ms), s.indexOf(OR)) !== -1 ? { name: s, kind: c, extension: f, span: o } : { name: s, kind: c, extension: f, span: i });
  }
  function PSe(e, t, r, i, o, s) {
    return OSe(t.text, t.getStart(e) + 1, oHe(e, t, r, i, o, s));
  }
  function oHe(e, t, r, i, o, s) {
    const c = Qc(t.text), f = xs(t) ? Tp(e, t) : void 0, d = e.path, y = mi(d), h = Nte(r, 1, e, o, s, f);
    return yHe(c) || !r.baseUrl && (km(c) || Tle(c)) ? sHe(c, y, r, i, d, h) : dHe(c, y, f, r, i, h, o);
  }
  function Nte(e, t, r, i, o, s) {
    return {
      extensionsToSearch: No(lHe(e, i)),
      referenceKind: t,
      importingSourceFile: r,
      endingPreference: o == null ? void 0 : o.importModuleSpecifierEnding,
      resolutionMode: s
    };
  }
  function sHe(e, t, r, i, o, s) {
    return r.rootDirs ? uHe(r.rootDirs, e, t, s, r, i, o) : Ro(Rw(e, t, s, i, !1, o).values());
  }
  function lHe(e, t) {
    const r = t ? ia(t.getAmbientModules(), (s) => {
      const c = s.name.slice(1, -1);
      if (!(!c.startsWith("*.") || c.includes("/")))
        return c.slice(1);
    }) : [], i = [...fk(e), r], o = vl(e);
    return QF(o) ? rO(e, i) : i;
  }
  function cHe(e, t, r, i) {
    e = e.map((s) => Jo(km(s) ? s : Bi(t, s)));
    const o = Jt(e, (s) => Ev(s, r, t, i) ? r.substr(s.length) : void 0);
    return mA([...e.map((s) => Bi(s, o)), r], BS, Nu);
  }
  function uHe(e, t, r, i, o, s, c) {
    const f = o.project || s.getCurrentDirectory(), d = !(s.useCaseSensitiveFileNames && s.useCaseSensitiveFileNames()), y = cHe(e, f, r, d);
    return ca(y, (h) => Ro(Rw(t, h, i, s, !0, c).values()));
  }
  function Rw(e, t, r, i, o, s, c = Dte()) {
    var f;
    e === void 0 && (e = ""), e = Qc(e), vv(e) || (e = mi(e)), e === "" && (e = "." + Ms), e = Ou(e);
    const d = bv(t, e), y = vv(d) ? d : mi(d);
    if (!o) {
      const L = vve(y, i);
      if (L) {
        const O = nk(L, i).typesVersions;
        if (typeof O == "object") {
          const k = (f = x5(O)) == null ? void 0 : f.paths;
          if (k) {
            const G = mi(L), V = d.slice(Ou(G).length);
            if (FSe(c, V, G, r, i, k))
              return c;
          }
        }
      }
    }
    const h = !(i.useCaseSensitiveFileNames && i.useCaseSensitiveFileNames());
    if (!p9(i, y))
      return c;
    const E = lQ(i, y, r.extensionsToSearch, void 0, ["./*"]);
    if (E)
      for (let L of E) {
        if (L = Jo(L), s && QE(L, s, t, h) === 0)
          continue;
        const { name: I, extension: O } = MSe(mu(L), i.getCompilationSettings(), r);
        c.add(iL(I, "script", O));
      }
    const A = f9(i, y);
    if (A)
      for (const L of A) {
        const I = mu(Jo(L));
        I !== "@types" && c.add(Rte(I));
      }
    return c;
  }
  function MSe(e, t, r) {
    const i = B1.tryGetRealFileNameForNonJsDeclarationFileName(e);
    if (i)
      return { name: i, extension: Sh(i) };
    if (r.referenceKind === 0)
      return { name: e, extension: Sh(e) };
    const o = gq(r.endingPreference, r.resolutionMode, t, r.importingSourceFile);
    if (o === 3) {
      if (Tc(e, i7))
        return { name: e, extension: Sh(e) };
      const c = B1.tryGetJSExtensionForFile(e, t);
      return c ? { name: L1(e, c), extension: c } : { name: e, extension: Sh(e) };
    }
    if ((o === 0 || o === 1) && Tc(e, [".js", ".jsx", ".ts", ".tsx", ".d.ts"]))
      return { name: Ud(e), extension: Sh(e) };
    const s = B1.tryGetJSExtensionForFile(e, t);
    return s ? { name: L1(e, s), extension: s } : { name: e, extension: Sh(e) };
  }
  function FSe(e, t, r, i, o, s) {
    const c = (d) => s[d], f = (d, y) => {
      const h = aC(d), E = aC(y), A = typeof h == "object" ? h.prefix.length : d.length, L = typeof E == "object" ? E.prefix.length : y.length;
      return Ws(L, A);
    };
    return BSe(e, t, r, i, o, tg(s), c, f);
  }
  function BSe(e, t, r, i, o, s, c, f) {
    let d = [], y;
    for (const h of s) {
      if (h === ".")
        continue;
      const E = h.replace(/^\.\//, ""), A = c(h);
      if (A) {
        const L = aC(E);
        if (!L)
          continue;
        const I = typeof L == "object" && q4(L, t);
        I && (y === void 0 || f(h, y) === -1) && (y = h, d = d.filter((k) => !k.matchedPattern)), (typeof L == "string" || y === void 0 || f(h, y) !== 1) && d.push({
          matchedPattern: I,
          results: fHe(E, A, t, r, i, o).map(({ name: k, kind: G, extension: V }) => iL(k, G, V))
        });
      }
    }
    return d.forEach((h) => h.results.forEach((E) => e.add(E))), y !== void 0;
  }
  function dHe(e, t, r, i, o, s, c) {
    const { baseUrl: f, paths: d } = i, y = Dte(), h = vl(i);
    if (f) {
      const A = i.project || o.getCurrentDirectory(), L = Jo(Bi(A, f));
      Rw(e, L, s, o, !1, void 0, y), d && FSe(y, e, L, s, o, d);
    }
    const E = USe(e);
    for (const A of pHe(e, E, c))
      y.add(iL(A, "external module name", void 0));
    if (HSe(o, i, t, E, s, y), QF(h)) {
      let A = !1;
      if (E === void 0)
        for (const L of hHe(o, t)) {
          const I = iL(L, "external module name", void 0);
          y.has(I.name) || (A = !0, y.add(I));
        }
      if (!A) {
        let L = (I) => {
          const O = Bi(I, "node_modules");
          p9(o, O) && Rw(e, O, s, o, !1, void 0, y);
        };
        if (E && lq(i)) {
          const I = L;
          L = (O) => {
            const k = ld(e);
            k.shift();
            let G = k.shift();
            if (!G)
              return I(O);
            if (xa(G, "@")) {
              const te = k.shift();
              if (!te)
                return I(O);
              G = Bi(G, te);
            }
            const V = Bi(O, "node_modules", G), H = Bi(V, "package.json");
            if (_9(o, H)) {
              const X = nk(H, o).exports;
              if (X) {
                if (typeof X != "object" || X === null)
                  return;
                const Y = tg(X), P = k.join("/") + (k.length && vv(e) ? "/" : ""), de = r === 99 ? ["node", "import", "types"] : ["node", "require", "types"];
                BSe(y, P, V, s, o, Y, (re) => XE(GSe(X[re], de)), GK);
                return;
              }
            }
            return I(O);
          };
        }
        rg(t, L);
      }
    }
    return Ro(y.values());
  }
  function GSe(e, t) {
    if (typeof e == "string")
      return e;
    if (e && typeof e == "object" && !Va(e)) {
      for (const r in e)
        if (r === "default" || t.indexOf(r) > -1 || y8(t, r)) {
          const i = e[r];
          return GSe(i, t);
        }
    }
  }
  function USe(e) {
    return Ote(e) ? vv(e) ? e : mi(e) : void 0;
  }
  function fHe(e, t, r, i, o, s) {
    if (!ic(e, "*"))
      return pu(e, "*") ? rt : d(e, "script");
    const c = e.slice(0, e.length - 1), f = Dj(r, c);
    if (f === void 0)
      return e[e.length - 2] === "/" ? d(c, "directory") : ca(t, (h) => {
        var E;
        return (E = VSe("", i, h, o, s)) == null ? void 0 : E.map(({ name: A, ...L }) => ({ name: c + A, ...L }));
      });
    return ca(t, (y) => VSe(f, i, y, o, s));
    function d(y, h) {
      return xa(y, r) ? [{ name: $E(y), kind: h, extension: void 0 }] : rt;
    }
  }
  function VSe(e, t, r, i, o) {
    if (!o.readDirectory)
      return;
    const s = aC(r);
    if (s === void 0 || Ha(s))
      return;
    const c = bv(s.prefix), f = vv(s.prefix) ? c : mi(c), d = vv(s.prefix) ? "" : mu(c), y = Ote(e), h = y ? vv(e) ? e : mi(e) : void 0, E = y ? Bi(f, d + h) : f, A = Jo(s.suffix), L = Jo(Bi(t, E)), I = y ? L : Ou(L) + d, O = A ? "**/*" + A : "./*", k = ia(lQ(o, L, i.extensionsToSearch, void 0, [O]), (H) => {
      const te = V(H);
      if (te) {
        if (Ote(te))
          return Rte(ld(jSe(te))[1]);
        const { name: X, extension: Y } = MSe(te, o.getCompilationSettings(), i);
        return iL(X, "script", Y);
      }
    }), G = A ? rt : ia(f9(o, L), (H) => H === "node_modules" ? void 0 : Rte(H));
    return [...k, ...G];
    function V(H) {
      const te = _He(Jo(H), I, A);
      return te === void 0 ? void 0 : jSe(te);
    }
  }
  function _He(e, t, r) {
    return xa(e, t) && ic(e, r) ? e.slice(t.length, e.length - r.length) : void 0;
  }
  function jSe(e) {
    return e[0] === Ms ? e.slice(1) : e;
  }
  function pHe(e, t, r) {
    const o = r.getAmbientModules().map((s) => V_(s.name)).filter((s) => xa(s, e) && s.indexOf("*") < 0);
    if (t !== void 0) {
      const s = Ou(t);
      return o.map((c) => lI(c, s));
    }
    return o;
  }
  function mHe(e, t, r, i) {
    const o = aa(e, t), s = ph(e.text, o.pos), c = s && nn(s, (I) => t >= I.pos && t <= I.end);
    if (!c)
      return;
    const f = e.text.slice(c.pos, t), d = WSe.exec(f);
    if (!d)
      return;
    const [, y, h, E] = d, A = mi(e.path), L = h === "path" ? Rw(E, A, Nte(r, 0, e), i, !0, e.path) : h === "types" ? HSe(i, r, A, USe(E), Nte(r, 1, e)) : D.fail();
    return OSe(E, c.pos + y.length, Ro(L.values()));
  }
  function HSe(e, t, r, i, o, s = Dte()) {
    const c = /* @__PURE__ */ new Map(), f = m9(() => m8(t, e)) || rt;
    for (const y of f)
      d(y);
    for (const y of cQ(r, e)) {
      const h = Bi(mi(y), "node_modules/@types");
      d(h);
    }
    return s;
    function d(y) {
      if (p9(e, y))
        for (const h of f9(e, y)) {
          const E = O5(h);
          if (!(t.types && !jr(t.types, E)))
            if (i === void 0)
              c.has(E) || (s.add(iL(E, "external module name", void 0)), c.set(E, !0));
            else {
              const A = Bi(y, h), L = dq(i, E, J0(e));
              L !== void 0 && Rw(L, A, o, e, !1, void 0, s);
            }
        }
    }
  }
  function hHe(e, t) {
    if (!e.readFile || !e.fileExists)
      return rt;
    const r = [];
    for (const i of cQ(t, e)) {
      const o = nk(i, e);
      for (const s of zSe) {
        const c = o[s];
        if (c)
          for (const f in c)
            Ps(c, f) && !xa(f, "@types/") && r.push(f);
      }
    }
    return r;
  }
  function gHe(e, t) {
    const r = Math.max(e.lastIndexOf(Ms), e.lastIndexOf(OR)), i = r !== -1 ? r + 1 : 0, o = e.length - i;
    return o === 0 || P_(e.substr(i, o), 99) ? void 0 : wc(t + i, o);
  }
  function yHe(e) {
    if (e && e.length >= 2 && e.charCodeAt(0) === 46) {
      const t = e.length >= 3 && e.charCodeAt(1) === 46 ? 2 : 1, r = e.charCodeAt(t);
      return r === 47 || r === 92;
    }
    return !1;
  }
  function Ote(e) {
    return pu(e, Ms);
  }
  function vHe(e) {
    return no(e.parent) && Yc(e.parent.arguments) === e && je(e.parent.expression) && e.parent.expression.escapedText === "require";
  }
  var Pte, WSe, zSe, bHe = C({
    "src/services/stringCompletions.ts"() {
      $r(), Mte(), Pte = {
        directory: 0,
        script: 1,
        "external module name": 2
      }, WSe = /^(\/\/\/\s*<reference\s+(path|types)\s*=\s*(?:'|"))([^\3"]*)$/, zSe = ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"];
    }
  }), PG = {};
  ne(PG, {
    getStringLiteralCompletionDetails: () => tHe,
    getStringLiteralCompletions: () => Zje
  });
  var EHe = C({
    "src/services/_namespaces/ts.Completions.StringCompletions.ts"() {
      bHe();
    }
  }), n2 = {};
  ne(n2, {
    CompletionKind: () => kte,
    CompletionSource: () => Lte,
    SortText: () => lu,
    StringCompletions: () => PG,
    SymbolOriginInfoKind: () => Ite,
    createCompletionDetails: () => P6,
    createCompletionDetailsForSymbol: () => Tte,
    getCompletionEntriesFromSymbols: () => bte,
    getCompletionEntryDetails: () => wje,
    getCompletionEntrySymbol: () => Rje,
    getCompletionsAtPosition: () => cje,
    getPropertiesForObjectExpression: () => DG,
    moduleSpecifierResolutionCacheAttemptLimit: () => Cte,
    moduleSpecifierResolutionLimit: () => OG
  });
  var Mte = C({
    "src/services/_namespaces/ts.Completions.ts"() {
      Qje(), EHe();
    }
  });
  function Fte(e, t, r, i) {
    const o = AHe(e, r, i);
    return (s, c, f) => {
      const { directImports: d, indirectUsers: y } = THe(e, t, o, c, r, i);
      return { indirectUsers: y, ...SHe(d, s, c.exportKind, r, f) };
    };
  }
  function THe(e, t, r, { exportingModuleSymbol: i, exportKind: o }, s, c) {
    const f = JC(), d = JC(), y = [], h = !!i.globalExports, E = h ? void 0 : [];
    return L(i), { directImports: y, indirectUsers: A() };
    function A() {
      if (h)
        return e;
      if (i.declarations)
        for (const H of i.declarations)
          h1(H) && t.has(H.getSourceFile().fileName) && G(H);
      return E.map(Zn);
    }
    function L(H) {
      const te = V(H);
      if (te) {
        for (const X of te)
          if (f(X))
            switch (c && c.throwIfCancellationRequested(), X.kind) {
              case 210:
                if (lf(X)) {
                  I(X);
                  break;
                }
                if (!h) {
                  const P = X.parent;
                  if (o === 2 && P.kind === 257) {
                    const { name: de } = P;
                    if (de.kind === 79) {
                      y.push(de);
                      break;
                    }
                  }
                }
                break;
              case 79:
                break;
              case 268:
                k(X, X.name, Yr(X, 1), !1);
                break;
              case 269:
                y.push(X);
                const Y = X.importClause && X.importClause.namedBindings;
                Y && Y.kind === 271 ? k(X, Y.name, !1, !0) : !h && nx(X) && G(G6(X));
                break;
              case 275:
                X.exportClause ? X.exportClause.kind === 277 ? G(G6(X), !0) : y.push(X) : L(wHe(X, s));
                break;
              case 202:
                !h && X.isTypeOf && !X.qualifier && O(X) && G(X.getSourceFile(), !0), y.push(X);
                break;
              default:
                D.failBadSyntaxKind(X, "Unexpected import kind.");
            }
      }
    }
    function I(H) {
      const te = nr(H, MG) || H.getSourceFile();
      G(te, !!O(H, !0));
    }
    function O(H, te = !1) {
      return nr(H, (X) => te && MG(X) ? "quit" : K_(X) && kt(X.modifiers, B7));
    }
    function k(H, te, X, Y) {
      if (o === 2)
        Y || y.push(H);
      else if (!h) {
        const P = G6(H);
        D.assert(P.kind === 308 || P.kind === 264), X || xHe(P, te, s) ? G(P, !0) : G(P);
      }
    }
    function G(H, te = !1) {
      if (D.assert(!h), !d(H) || (E.push(H), !te))
        return;
      const Y = s.getMergedSymbol(H.symbol);
      if (!Y)
        return;
      D.assert(!!(Y.flags & 1536));
      const P = V(Y);
      if (P)
        for (const de of P)
          gg(de) || G(G6(de), !0);
    }
    function V(H) {
      return r.get(bo(H).toString());
    }
  }
  function SHe(e, t, r, i, o) {
    const s = [], c = [];
    function f(A, L) {
      s.push([A, L]);
    }
    if (e)
      for (const A of e)
        d(A);
    return { importSearches: s, singleReferences: c };
    function d(A) {
      if (A.kind === 268) {
        Gte(A) && y(A.name);
        return;
      }
      if (A.kind === 79) {
        y(A);
        return;
      }
      if (A.kind === 202) {
        if (A.qualifier) {
          const O = Lf(A.qualifier);
          O.escapedText === Ml(t) && c.push(O);
        } else
          r === 2 && c.push(A.argument.literal);
        return;
      }
      if (A.moduleSpecifier.kind !== 10)
        return;
      if (A.kind === 275) {
        A.exportClause && J_(A.exportClause) && h(A.exportClause);
        return;
      }
      const { name: L, namedBindings: I } = A.importClause || { name: void 0, namedBindings: void 0 };
      if (I)
        switch (I.kind) {
          case 271:
            y(I.name);
            break;
          case 272:
            (r === 0 || r === 1) && h(I);
            break;
          default:
            D.assertNever(I);
        }
      if (L && (r === 1 || r === 2) && (!o || L.escapedText === t9(t))) {
        const O = i.getSymbolAtLocation(L);
        f(L, O);
      }
    }
    function y(A) {
      r === 2 && (!o || E(A.escapedText)) && f(A, i.getSymbolAtLocation(A));
    }
    function h(A) {
      if (A)
        for (const L of A.elements) {
          const { name: I, propertyName: O } = L;
          if (E((O || I).escapedText))
            if (O)
              c.push(O), (!o || I.escapedText === t.escapedName) && f(I, i.getSymbolAtLocation(I));
            else {
              const k = L.kind === 278 && L.propertyName ? i.getExportSpecifierLocalTargetSymbol(L) : i.getSymbolAtLocation(I);
              f(I, k);
            }
        }
    }
    function E(A) {
      return A === t.escapedName || r !== 0 && A === "default";
    }
  }
  function xHe(e, t, r) {
    const i = r.getSymbolAtLocation(t);
    return !!JSe(e, (o) => {
      if (!eu(o))
        return;
      const { exportClause: s, moduleSpecifier: c } = o;
      return !c && s && J_(s) && s.elements.some((f) => r.getExportSpecifierLocalTargetSymbol(f) === i);
    });
  }
  function qSe(e, t, r) {
    var i;
    const o = [], s = e.getTypeChecker();
    for (const c of t) {
      const f = r.valueDeclaration;
      if ((f == null ? void 0 : f.kind) === 308) {
        for (const d of c.referencedFiles)
          e.getSourceFileFromReference(c, d) === f && o.push({ kind: "reference", referencingFile: c, ref: d });
        for (const d of c.typeReferenceDirectives) {
          const y = (i = e.getResolvedTypeReferenceDirectives().get(d.fileName, d.resolutionMode || c.impliedNodeFormat)) == null ? void 0 : i.resolvedTypeReferenceDirective;
          y !== void 0 && y.resolvedFileName === f.fileName && o.push({ kind: "reference", referencingFile: c, ref: d });
        }
      }
      KSe(c, (d, y) => {
        s.getSymbolAtLocation(y) === r && o.push({ kind: "import", literal: y });
      });
    }
    return o;
  }
  function AHe(e, t, r) {
    const i = /* @__PURE__ */ new Map();
    for (const o of e)
      r && r.throwIfCancellationRequested(), KSe(o, (s, c) => {
        const f = t.getSymbolAtLocation(c);
        if (f) {
          const d = bo(f).toString();
          let y = i.get(d);
          y || i.set(d, y = []), y.push(s);
        }
      });
    return i;
  }
  function JSe(e, t) {
    return ze(e.kind === 308 ? e.statements : e.body.statements, (r) => t(r) || MG(r) && ze(r.body && r.body.statements, t));
  }
  function KSe(e, t) {
    if (e.externalModuleIndicator || e.imports !== void 0)
      for (const r of e.imports)
        t(AN(r), r);
    else
      JSe(e, (r) => {
        switch (r.kind) {
          case 275:
          case 269: {
            const i = r;
            i.moduleSpecifier && jo(i.moduleSpecifier) && t(i, i.moduleSpecifier);
            break;
          }
          case 268: {
            const i = r;
            Gte(i) && t(i, i.moduleReference.expression);
            break;
          }
        }
      });
  }
  function XSe(e, t, r, i) {
    return i ? o() : o() || s();
    function o() {
      var d;
      const { parent: y } = e, h = y.parent;
      if (t.exportSymbol)
        return y.kind === 208 ? (d = t.declarations) != null && d.some((L) => L === y) && br(h) ? A(h, !1) : void 0 : c(t.exportSymbol, f(y));
      {
        const L = LHe(y, e);
        if (L && Yr(L, 1))
          return su(L) && L.moduleReference === e ? i ? void 0 : { kind: 0, symbol: r.getSymbolAtLocation(L.name) } : c(t, f(L));
        if (Ih(y))
          return c(t, 0);
        if (Bl(y))
          return E(y);
        if (Bl(h))
          return E(h);
        if (br(y))
          return A(y, !0);
        if (br(h))
          return A(h, !0);
        if (DJ(y) || AJ(y))
          return c(t, 0);
      }
      function E(L) {
        if (!L.symbol.parent)
          return;
        const I = L.isExportEquals ? 2 : 1;
        return { kind: 1, symbol: t, exportInfo: { exportingModuleSymbol: L.symbol.parent, exportKind: I } };
      }
      function A(L, I) {
        let O;
        switch (Cl(L)) {
          case 1:
            O = 0;
            break;
          case 2:
            O = 2;
            break;
          default:
            return;
        }
        const k = I ? r.getSymbolAtLocation(Ede(oo(L.left, ll))) : t;
        return k && c(k, O);
      }
    }
    function s() {
      if (!IHe(e))
        return;
      let y = r.getImmediateAliasedSymbol(t);
      if (!y || (y = kHe(y, r), y.escapedName === "export=" && (y = CHe(y, r), y === void 0)))
        return;
      const h = t9(y);
      if (h === void 0 || h === "default" || h === t.escapedName)
        return { kind: 0, symbol: y };
    }
    function c(d, y) {
      const h = Bte(d, y, r);
      return h && { kind: 1, symbol: d, exportInfo: h };
    }
    function f(d) {
      return Yr(d, 1024) ? 1 : 0;
    }
  }
  function CHe(e, t) {
    var r, i;
    if (e.flags & 2097152)
      return t.getImmediateAliasedSymbol(e);
    const o = D.checkDefined(e.valueDeclaration);
    if (Bl(o))
      return (r = ai(o.expression, Rm)) == null ? void 0 : r.symbol;
    if (br(o))
      return (i = ai(o.right, Rm)) == null ? void 0 : i.symbol;
    if (qi(o))
      return o.symbol;
  }
  function LHe(e, t) {
    const r = Ki(e) ? e : _s(e) ? SA(e) : void 0;
    return r ? e.name !== t || xC(r.parent) ? void 0 : uc(r.parent.parent) ? r.parent.parent : void 0 : e;
  }
  function IHe(e) {
    const { parent: t } = e;
    switch (t.kind) {
      case 268:
        return t.name === e && Gte(t);
      case 273:
        return !t.propertyName;
      case 270:
      case 271:
        return D.assert(t.name === e), !0;
      case 205:
        return fr(e) && b1(t.parent.parent);
      default:
        return !1;
    }
  }
  function Bte(e, t, r) {
    const i = e.parent;
    if (!i)
      return;
    const o = r.getMergedSymbol(i);
    return a6(o) ? { exportingModuleSymbol: o, exportKind: t } : void 0;
  }
  function kHe(e, t) {
    if (e.declarations)
      for (const r of e.declarations) {
        if (dd(r) && !r.propertyName && !r.parent.parent.moduleSpecifier)
          return t.getExportSpecifierLocalTargetSymbol(r) || e;
        if (Fr(r) && vh(r.expression) && !Ni(r.name))
          return t.getSymbolAtLocation(r);
        if (t_(r) && br(r.parent.parent) && Cl(r.parent.parent) === 2)
          return t.getExportSpecifierLocalTargetSymbol(r.name);
      }
    return e;
  }
  function wHe(e, t) {
    return t.getMergedSymbol(G6(e).symbol);
  }
  function G6(e) {
    if (e.kind === 210)
      return e.getSourceFile();
    const { parent: t } = e;
    return t.kind === 308 ? t : (D.assert(t.kind === 265), oo(t.parent, MG));
  }
  function MG(e) {
    return e.kind === 264 && e.name.kind === 10;
  }
  function Gte(e) {
    return e.moduleReference.kind === 280 && e.moduleReference.expression.kind === 10;
  }
  var Ute, Vte, DHe = C({
    "src/services/importTracker.ts"() {
      $r(), Ute = /* @__PURE__ */ ((e) => (e[e.Named = 0] = "Named", e[e.Default = 1] = "Default", e[e.ExportEquals = 2] = "ExportEquals", e))(Ute || {}), Vte = /* @__PURE__ */ ((e) => (e[e.Import = 0] = "Import", e[e.Export = 1] = "Export", e))(Vte || {});
    }
  });
  function wh(e, t = 1) {
    return {
      kind: t,
      node: e.name || e,
      context: RHe(e)
    };
  }
  function YSe(e) {
    return e && e.kind === void 0;
  }
  function RHe(e) {
    if (vu(e))
      return J1(e);
    if (e.parent) {
      if (!vu(e.parent) && !Bl(e.parent)) {
        if (fr(e)) {
          const r = br(e.parent) ? e.parent : ll(e.parent) && br(e.parent.parent) && e.parent.parent.left === e.parent ? e.parent.parent : void 0;
          if (r && Cl(r) !== 0)
            return J1(r);
        }
        if (kh(e.parent) || Dx(e.parent))
          return e.parent.parent;
        if (wx(e.parent) || R1(e.parent) || CI(e.parent))
          return e.parent;
        if (xs(e)) {
          const r = CN(e);
          if (r) {
            const i = nr(r, (o) => vu(o) || wa(o) || DI(o));
            return vu(i) ? J1(i) : i;
          }
        }
        const t = nr(e, As);
        return t ? J1(t.parent) : void 0;
      }
      if (e.parent.name === e || ql(e.parent) || Bl(e.parent) || (JS(e.parent) || _s(e.parent)) && e.parent.propertyName === e || e.kind === 88 && Yr(e.parent, 1025))
        return J1(e.parent);
    }
  }
  function J1(e) {
    if (e)
      switch (e.kind) {
        case 257:
          return !Uu(e.parent) || e.parent.declarations.length !== 1 ? e : uc(e.parent.parent) ? e.parent.parent : kA(e.parent.parent) ? J1(e.parent.parent) : e.parent;
        case 205:
          return J1(e.parent.parent);
        case 273:
          return e.parent.parent.parent;
        case 278:
        case 271:
          return e.parent.parent;
        case 270:
        case 277:
          return e.parent;
        case 223:
          return ou(e.parent) ? e.parent : e;
        case 247:
        case 246:
          return {
            start: e.initializer,
            end: e.expression
          };
        case 299:
        case 300:
          return wy(e.parent) ? J1(nr(e.parent, (t) => br(t) || kA(t))) : e;
        default:
          return e;
      }
  }
  function jte(e, t, r) {
    if (!r)
      return;
    const i = YSe(r) ? V6(r.start, t, r.end) : V6(r, t);
    return i.start !== e.start || i.length !== e.length ? { contextSpan: i } : void 0;
  }
  function NHe(e, t, r, i, o) {
    const s = Df(i, o), c = { use: 1 }, f = eS.getReferencedSymbolsForNode(o, s, e, r, t, c), d = e.getTypeChecker(), y = eS.getAdjustedNode(s, c), h = OHe(y) ? d.getSymbolAtLocation(y) : void 0;
    return !f || !f.length ? void 0 : ia(f, ({ definition: E, references: A }) => E && {
      definition: d.runWithCancellationToken(t, (L) => FHe(E, L, s)),
      references: A.map((L) => GHe(L, h))
    });
  }
  function OHe(e) {
    return e.kind === 88 || !!RN(e) || NN(e) || e.kind === 135 && ql(e.parent);
  }
  function PHe(e, t, r, i, o) {
    const s = Df(i, o);
    let c;
    const f = $Se(e, t, r, s, o);
    if (s.parent.kind === 208 || s.parent.kind === 205 || s.parent.kind === 209 || s.kind === 106)
      c = f && [...f];
    else if (f) {
      const y = Lj(f), h = /* @__PURE__ */ new Map();
      for (; !y.isEmpty(); ) {
        const E = y.dequeue();
        if (!vp(h, ps(E.node)))
          continue;
        c = Fn(c, E);
        const A = $Se(e, t, r, E.node, E.node.pos);
        A && y.enqueue(...A);
      }
    }
    const d = e.getTypeChecker();
    return jt(c, (y) => VHe(y, d));
  }
  function $Se(e, t, r, i, o) {
    if (i.kind === 308)
      return;
    const s = e.getTypeChecker();
    if (i.parent.kind === 300) {
      const c = [];
      return eS.getReferenceEntriesForShorthandPropertyAssignment(i, s, (f) => c.push(wh(f))), c;
    } else if (i.kind === 106 || ud(i.parent)) {
      const c = s.getSymbolAtLocation(i);
      return c.valueDeclaration && [wh(c.valueDeclaration)];
    } else
      return QSe(o, i, e, r, t, { implementations: !0, use: 1 });
  }
  function MHe(e, t, r, i, o, s, c) {
    return jt(ZSe(eS.getReferencedSymbolsForNode(o, i, e, r, t, s)), (f) => c(f, i, e.getTypeChecker()));
  }
  function QSe(e, t, r, i, o, s = {}, c = new Set(i.map((f) => f.fileName))) {
    return ZSe(eS.getReferencedSymbolsForNode(e, t, r, i, o, s, c));
  }
  function ZSe(e) {
    return e && ca(e, (t) => t.references);
  }
  function FHe(e, t, r) {
    const i = (() => {
      switch (e.type) {
        case 0: {
          const { symbol: h } = e, { displayParts: E, kind: A } = exe(h, t, r), L = E.map((k) => k.text).join(""), I = h.declarations && Yc(h.declarations), O = I ? ka(I) || I : r;
          return {
            ...U6(O),
            name: L,
            kind: A,
            displayParts: E,
            context: J1(I)
          };
        }
        case 1: {
          const { node: h } = e;
          return { ...U6(h), name: h.text, kind: "label", displayParts: [Id(h.text, 17)] };
        }
        case 2: {
          const { node: h } = e, E = yo(h.kind);
          return { ...U6(h), name: E, kind: "keyword", displayParts: [{ text: E, kind: "keyword" }] };
        }
        case 3: {
          const { node: h } = e, E = t.getSymbolAtLocation(h), A = E && Ny.getSymbolDisplayPartsDocumentationAndSymbolKind(t, E, h.getSourceFile(), WT(h), h).displayParts || [Rf("this")];
          return { ...U6(h), name: "this", kind: "var", displayParts: A };
        }
        case 4: {
          const { node: h } = e;
          return {
            ...U6(h),
            name: h.text,
            kind: "var",
            displayParts: [Id(Sc(h), 8)]
          };
        }
        case 5:
          return {
            textSpan: qv(e.reference),
            sourceFile: e.file,
            name: e.reference.fileName,
            kind: "string",
            displayParts: [Id(`"${e.reference.fileName}"`, 8)]
          };
        default:
          return D.assertNever(e);
      }
    })(), { sourceFile: o, textSpan: s, name: c, kind: f, displayParts: d, context: y } = i;
    return {
      containerKind: "",
      containerName: "",
      fileName: o.fileName,
      kind: f,
      name: c,
      textSpan: s,
      displayParts: d,
      ...jte(s, o, y)
    };
  }
  function U6(e) {
    const t = e.getSourceFile();
    return {
      sourceFile: t,
      textSpan: V6(As(e) ? e.expression : e, t)
    };
  }
  function exe(e, t, r) {
    const i = eS.getIntersectingMeaningFromDeclarations(r, e), o = e.declarations && Yc(e.declarations) || r, { displayParts: s, symbolKind: c } = Ny.getSymbolDisplayPartsDocumentationAndSymbolKind(t, e, o.getSourceFile(), o, o, i);
    return { displayParts: s, kind: c };
  }
  function BHe(e, t, r, i) {
    return { ...FG(e), ...i && UHe(e, t, r) };
  }
  function GHe(e, t) {
    const r = txe(e);
    return t ? {
      ...r,
      isDefinition: e.kind !== 0 && rxe(e.node, t)
    } : r;
  }
  function txe(e) {
    const t = FG(e);
    if (e.kind === 0)
      return { ...t, isWriteAccess: !1 };
    const { kind: r, node: i } = e;
    return {
      ...t,
      isWriteAccess: nxe(i),
      isInString: r === 2 ? !0 : void 0
    };
  }
  function FG(e) {
    if (e.kind === 0)
      return { textSpan: e.textSpan, fileName: e.fileName };
    {
      const t = e.node.getSourceFile(), r = V6(e.node, t);
      return {
        textSpan: r,
        fileName: t.fileName,
        ...jte(r, t, e.context)
      };
    }
  }
  function UHe(e, t, r) {
    if (e.kind !== 0 && je(t)) {
      const { node: i, kind: o } = e, s = i.parent, c = t.text, f = t_(s);
      if (f || l6(s) && s.name === i && s.dotDotDotToken === void 0) {
        const d = { prefixText: c + ": " }, y = { suffixText: ": " + c };
        if (o === 3)
          return d;
        if (o === 4)
          return y;
        if (f) {
          const h = s.parent;
          return Ls(h) && br(h.parent) && vh(h.parent.left) ? d : y;
        } else
          return d;
      } else if (Ld(s) && !s.propertyName) {
        const d = dd(t.parent) ? r.getExportSpecifierLocalTargetSymbol(t.parent) : r.getSymbolAtLocation(t);
        return jr(d.declarations, s) ? { prefixText: c + " as " } : am;
      } else if (dd(s) && !s.propertyName)
        return t === e.node || r.getSymbolAtLocation(t) === r.getSymbolAtLocation(e.node) ? { prefixText: c + " as " } : { suffixText: " as " + c };
    }
    return am;
  }
  function VHe(e, t) {
    const r = FG(e);
    if (e.kind !== 0) {
      const { node: i } = e;
      return {
        ...r,
        ...jHe(i, t)
      };
    } else
      return { ...r, kind: "", displayParts: [] };
  }
  function jHe(e, t) {
    const r = t.getSymbolAtLocation(vu(e) && e.name ? e.name : e);
    return r ? exe(r, t, e) : e.kind === 207 ? {
      kind: "interface",
      displayParts: [Tu(20), Rf("object literal"), Tu(21)]
    } : e.kind === 228 ? {
      kind: "local class",
      displayParts: [Tu(20), Rf("anonymous local class"), Tu(21)]
    } : { kind: z1(e), displayParts: [] };
  }
  function HHe(e) {
    const t = FG(e);
    if (e.kind === 0)
      return {
        fileName: t.fileName,
        span: {
          textSpan: t.textSpan,
          kind: "reference"
        }
      };
    const r = nxe(e.node), i = {
      textSpan: t.textSpan,
      kind: r ? "writtenReference" : "reference",
      isInString: e.kind === 2 ? !0 : void 0,
      ...t.contextSpan && { contextSpan: t.contextSpan }
    };
    return { fileName: t.fileName, span: i };
  }
  function V6(e, t, r) {
    let i = e.getStart(t), o = (r || e).getEnd();
    return xs(e) && o - i > 2 && (D.assert(r === void 0), i += 1, o -= 1), hc(i, o);
  }
  function Hte(e) {
    return e.kind === 0 ? e.textSpan : V6(e.node, e.node.getSourceFile());
  }
  function nxe(e) {
    const t = RN(e);
    return !!t && WHe(t) || e.kind === 88 || ok(e);
  }
  function rxe(e, t) {
    var r;
    if (!t)
      return !1;
    const i = RN(e) || (e.kind === 88 ? e.parent : NN(e) || e.kind === 135 && ql(e.parent) ? e.parent.parent : void 0), o = i && br(i) ? i.left : void 0;
    return !!(i && ((r = t.declarations) != null && r.some((s) => s === i || s === o)));
  }
  function WHe(e) {
    if (e.flags & 16777216)
      return !0;
    switch (e.kind) {
      case 223:
      case 205:
      case 260:
      case 228:
      case 88:
      case 263:
      case 302:
      case 278:
      case 270:
      case 268:
      case 273:
      case 261:
      case 341:
      case 349:
      case 288:
      case 264:
      case 267:
      case 271:
      case 277:
      case 166:
      case 300:
      case 262:
      case 165:
        return !0;
      case 299:
        return !wy(e.parent);
      case 259:
      case 215:
      case 173:
      case 171:
      case 174:
      case 175:
        return !!e.body;
      case 257:
      case 169:
        return !!e.initializer || xC(e.parent);
      case 170:
      case 168:
      case 351:
      case 344:
        return !1;
      default:
        return D.failBadSyntaxKind(e);
    }
  }
  var Wte, zte, qte, eS, zHe = C({
    "src/services/findAllReferences.ts"() {
      $r(), ixe(), Wte = /* @__PURE__ */ ((e) => (e[e.Symbol = 0] = "Symbol", e[e.Label = 1] = "Label", e[e.Keyword = 2] = "Keyword", e[e.This = 3] = "This", e[e.String = 4] = "String", e[e.TripleSlashReference = 5] = "TripleSlashReference", e))(Wte || {}), zte = /* @__PURE__ */ ((e) => (e[e.Span = 0] = "Span", e[e.Node = 1] = "Node", e[e.StringLiteral = 2] = "StringLiteral", e[e.SearchedLocalFoundProperty = 3] = "SearchedLocalFoundProperty", e[e.SearchedPropertyFoundLocal = 4] = "SearchedPropertyFoundLocal", e))(zte || {}), qte = /* @__PURE__ */ ((e) => (e[e.Other = 0] = "Other", e[e.References = 1] = "References", e[e.Rename = 2] = "Rename", e))(qte || {}), ((e) => {
        function t(we, yt, Nt, Ce, pt, _e = {}, ie = new Set(Ce.map((he) => he.fileName))) {
          var he, j, He;
          if (yt = r(yt, _e), qi(yt)) {
            const ue = Ow.getReferenceAtPosition(yt, we, Nt);
            if (!(ue != null && ue.file))
              return;
            const mt = Nt.getTypeChecker().getMergedSymbol(ue.file.symbol);
            if (mt)
              return y(Nt, mt, !1, Ce, ie);
            const zt = Nt.getFileIncludeReasons();
            return zt ? [{
              definition: { type: 5, reference: ue.reference, file: yt },
              references: o(ue.file, zt, Nt) || rt
            }] : void 0;
          }
          if (!_e.implementations) {
            const ue = E(yt, Ce, pt);
            if (ue)
              return ue;
          }
          const Ze = Nt.getTypeChecker(), Xe = Ze.getSymbolAtLocation(ql(yt) && yt.parent.name || yt);
          if (!Xe) {
            if (!_e.implementations && xs(yt)) {
              if (n9(yt)) {
                const ue = Nt.getFileIncludeReasons(), mt = (He = (j = (he = yt.getSourceFile().resolvedModules) == null ? void 0 : he.get(yt.text, Tp(yt.getSourceFile(), yt))) == null ? void 0 : j.resolvedModule) == null ? void 0 : He.resolvedFileName, zt = mt ? Nt.getSourceFile(mt) : void 0;
                if (zt)
                  return [{ definition: { type: 4, node: yt }, references: o(zt, ue, Nt) || rt }];
              }
              return At(yt, Ce, Ze, pt);
            }
            return;
          }
          if (Xe.escapedName === "export=")
            return y(Nt, Xe.parent, !1, Ce, ie);
          const Ut = c(Xe, Nt, Ce, pt, _e, ie);
          if (Ut && !(Xe.flags & 33554432))
            return Ut;
          const cn = s(yt, Xe, Ze), Sn = cn && c(cn, Nt, Ce, pt, _e, ie), Er = A(Xe, yt, Ce, ie, Ze, pt, _e);
          return f(Nt, Ut, Er, Sn);
        }
        e.getReferencedSymbolsForNode = t;
        function r(we, yt) {
          return yt.use === 1 ? we = k$(we) : yt.use === 2 && (we = HF(we)), we;
        }
        e.getAdjustedNode = r;
        function i(we, yt, Nt, Ce = new Set(Nt.map((pt) => pt.fileName))) {
          var pt, _e;
          const ie = (pt = yt.getSourceFile(we)) == null ? void 0 : pt.symbol;
          if (ie)
            return ((_e = y(yt, ie, !1, Nt, Ce)[0]) == null ? void 0 : _e.references) || rt;
          const he = yt.getFileIncludeReasons(), j = yt.getSourceFile(we);
          return j && he && o(j, he, yt) || rt;
        }
        e.getReferencesForFileName = i;
        function o(we, yt, Nt) {
          let Ce;
          const pt = yt.get(we.path) || rt;
          for (const _e of pt)
            if (rb(_e)) {
              const ie = Nt.getSourceFileByPath(_e.file), he = ow(Nt.getSourceFileByPath, _e);
              UC(he) && (Ce = Fn(Ce, {
                kind: 0,
                fileName: ie.fileName,
                textSpan: qv(he)
              }));
            }
          return Ce;
        }
        function s(we, yt, Nt) {
          if (we.parent && FO(we.parent)) {
            const Ce = Nt.getAliasedSymbol(yt), pt = Nt.getMergedSymbol(Ce);
            if (Ce !== pt)
              return pt;
          }
        }
        function c(we, yt, Nt, Ce, pt, _e) {
          const ie = we.flags & 1536 && we.declarations && nn(we.declarations, qi);
          if (!ie)
            return;
          const he = we.exports.get("export="), j = y(yt, we, !!he, Nt, _e);
          if (!he || !_e.has(ie.fileName))
            return j;
          const He = yt.getTypeChecker();
          return we = cf(he, He), f(yt, j, A(we, void 0, Nt, _e, He, Ce, pt));
        }
        function f(we, ...yt) {
          let Nt;
          for (const Ce of yt)
            if (!(!Ce || !Ce.length)) {
              if (!Nt) {
                Nt = Ce;
                continue;
              }
              for (const pt of Ce) {
                if (!pt.definition || pt.definition.type !== 0) {
                  Nt.push(pt);
                  continue;
                }
                const _e = pt.definition.symbol, ie = vi(Nt, (j) => !!j.definition && j.definition.type === 0 && j.definition.symbol === _e);
                if (ie === -1) {
                  Nt.push(pt);
                  continue;
                }
                const he = Nt[ie];
                Nt[ie] = {
                  definition: he.definition,
                  references: he.references.concat(pt.references).sort((j, He) => {
                    const Ze = d(we, j), Xe = d(we, He);
                    if (Ze !== Xe)
                      return Ws(Ze, Xe);
                    const Ut = Hte(j), cn = Hte(He);
                    return Ut.start !== cn.start ? Ws(Ut.start, cn.start) : Ws(Ut.length, cn.length);
                  })
                };
              }
            }
          return Nt;
        }
        function d(we, yt) {
          const Nt = yt.kind === 0 ? we.getSourceFile(yt.fileName) : yt.node.getSourceFile();
          return we.getSourceFiles().indexOf(Nt);
        }
        function y(we, yt, Nt, Ce, pt) {
          D.assert(!!yt.valueDeclaration);
          const _e = ia(qSe(we, Ce, yt), (he) => {
            if (he.kind === "import") {
              const j = he.literal.parent;
              if (Z0(j)) {
                const He = oo(j.parent, gg);
                if (Nt && !He.qualifier)
                  return;
              }
              return wh(he.literal);
            } else
              return {
                kind: 0,
                fileName: he.referencingFile.fileName,
                textSpan: qv(he.ref)
              };
          });
          if (yt.declarations)
            for (const he of yt.declarations)
              switch (he.kind) {
                case 308:
                  break;
                case 264:
                  pt.has(he.getSourceFile().fileName) && _e.push(wh(he.name));
                  break;
                default:
                  D.assert(!!(yt.flags & 33554432), "Expected a module symbol to be declared by a SourceFile or ModuleDeclaration.");
              }
          const ie = yt.exports.get("export=");
          if (ie != null && ie.declarations)
            for (const he of ie.declarations) {
              const j = he.getSourceFile();
              if (pt.has(j.fileName)) {
                const He = br(he) && Fr(he.left) ? he.left.expression : Bl(he) ? D.checkDefined(bs(he, 93, j)) : ka(he) || he;
                _e.push(wh(He));
              }
            }
          return _e.length ? [{ definition: { type: 0, symbol: yt }, references: _e }] : rt;
        }
        function h(we) {
          return we.kind === 146 && Ax(we.parent) && we.parent.operator === 146;
        }
        function E(we, yt, Nt) {
          if (pw(we.kind))
            return we.kind === 114 && Lx(we.parent) || we.kind === 146 && !h(we) ? void 0 : Ve(yt, we.kind, Nt, we.kind === 146 ? h : void 0);
          if (FA(we.parent) && we.parent.name === we)
            return Qe(yt, Nt);
          if (Ex(we) && Il(we.parent))
            return [{ definition: { type: 2, node: we }, references: [wh(we)] }];
          if (Y8(we)) {
            const Ce = FF(we.parent, we.text);
            return Ce && Te(Ce.parent, Ce);
          } else if (b$(we))
            return Te(we.parent, we);
          if (qC(we))
            return Or(we, yt, Nt);
          if (we.kind === 106)
            return $i(we);
        }
        function A(we, yt, Nt, Ce, pt, _e, ie) {
          const he = yt && O(we, yt, pt, !Hr(ie)) || we, j = yt ? Pi(yt, he) : 7, He = [], Ze = new V(Nt, Ce, yt ? I(yt) : 0, pt, _e, j, ie, He), Xe = !Hr(ie) || !he.declarations ? void 0 : nn(he.declarations, dd);
          if (Xe)
            Ye(Xe.name, he, Xe, Ze.createSearch(yt, we, void 0), Ze, !0, !0);
          else if (yt && yt.kind === 88 && he.escapedName === "default" && he.parent)
            Et(yt, he, Ze), H(yt, he, { exportingModuleSymbol: he.parent, exportKind: 1 }, Ze);
          else {
            const Ut = Ze.createSearch(yt, he, void 0, { allSearchSymbols: yt ? vn(he, yt, pt, ie.use === 2, !!ie.providePrefixAndSuffixTextForRename, !!ie.implementations) : [he] });
            L(he, Ze, Ut);
          }
          return He;
        }
        function L(we, yt, Nt) {
          const Ce = re(we);
          if (Ce)
            qe(Ce, Ce.getSourceFile(), Nt, yt, !(qi(Ce) && !jr(yt.sourceFiles, Ce)));
          else
            for (const pt of yt.sourceFiles)
              yt.cancellationToken.throwIfCancellationRequested(), P(pt, Nt, yt);
        }
        function I(we) {
          switch (we.kind) {
            case 173:
            case 135:
              return 1;
            case 79:
              if (di(we.parent))
                return D.assert(we.parent.name === we), 2;
            default:
              return 0;
          }
        }
        function O(we, yt, Nt, Ce) {
          const { parent: pt } = yt;
          return dd(pt) && Ce ? We(yt, we, pt, Nt) : Jt(we.declarations, (_e) => {
            if (!_e.parent) {
              if (we.flags & 33554432)
                return;
              D.fail(`Unexpected symbol at ${D.formatSyntaxKind(yt.kind)}: ${D.formatSymbol(we)}`);
            }
            return uf(_e.parent) && Sx(_e.parent.parent) ? Nt.getPropertyOfType(Nt.getTypeFromTypeNode(_e.parent.parent), we.name) : void 0;
          });
        }
        let k;
        ((we) => {
          we[we.None = 0] = "None", we[we.Constructor = 1] = "Constructor", we[we.Class = 2] = "Class";
        })(k || (k = {}));
        function G(we) {
          if (!(we.flags & 33555968))
            return;
          const yt = we.declarations && nn(we.declarations, (Nt) => !qi(Nt) && !Jl(Nt));
          return yt && yt.symbol;
        }
        class V {
          constructor(yt, Nt, Ce, pt, _e, ie, he, j) {
            this.sourceFiles = yt, this.sourceFilesSet = Nt, this.specialSearchKind = Ce, this.checker = pt, this.cancellationToken = _e, this.searchMeaning = ie, this.options = he, this.result = j, this.inheritsFromCache = /* @__PURE__ */ new Map(), this.markSeenContainingTypeReference = JC(), this.markSeenReExportRHS = JC(), this.symbolIdToReferences = [], this.sourceFileToSeenSymbols = [];
          }
          includesSourceFile(yt) {
            return this.sourceFilesSet.has(yt.fileName);
          }
          getImportSearches(yt, Nt) {
            return this.importTracker || (this.importTracker = Fte(this.sourceFiles, this.sourceFilesSet, this.checker, this.cancellationToken)), this.importTracker(yt, Nt, this.options.use === 2);
          }
          createSearch(yt, Nt, Ce, pt = {}) {
            const {
              text: _e = V_(Ml(tC(Nt) || G(Nt) || Nt)),
              allSearchSymbols: ie = [Nt]
            } = pt, he = sl(_e), j = this.options.implementations && yt ? Ar(yt, Nt, this.checker) : void 0;
            return { symbol: Nt, comingFrom: Ce, text: _e, escapedText: he, parents: j, allSearchSymbols: ie, includes: (He) => jr(ie, He) };
          }
          referenceAdder(yt) {
            const Nt = bo(yt);
            let Ce = this.symbolIdToReferences[Nt];
            return Ce || (Ce = this.symbolIdToReferences[Nt] = [], this.result.push({ definition: { type: 0, symbol: yt }, references: Ce })), (pt, _e) => Ce.push(wh(pt, _e));
          }
          addStringOrCommentReference(yt, Nt) {
            this.result.push({
              definition: void 0,
              references: [{ kind: 0, fileName: yt, textSpan: Nt }]
            });
          }
          markSearchedSymbols(yt, Nt) {
            const Ce = ps(yt), pt = this.sourceFileToSeenSymbols[Ce] || (this.sourceFileToSeenSymbols[Ce] = /* @__PURE__ */ new Set());
            let _e = !1;
            for (const ie of Nt)
              _e = hv(pt, bo(ie)) || _e;
            return _e;
          }
        }
        function H(we, yt, Nt, Ce) {
          const { importSearches: pt, singleReferences: _e, indirectUsers: ie } = Ce.getImportSearches(yt, Nt);
          if (_e.length) {
            const he = Ce.referenceAdder(yt);
            for (const j of _e)
              X(j, Ce) && he(j);
          }
          for (const [he, j] of pt)
            Be(he.getSourceFile(), Ce.createSearch(he, j, 1), Ce);
          if (ie.length) {
            let he;
            switch (Nt.exportKind) {
              case 0:
                he = Ce.createSearch(we, yt, 1);
                break;
              case 1:
                he = Ce.options.use === 2 ? void 0 : Ce.createSearch(we, yt, 1, { text: "default" });
                break;
            }
            if (he)
              for (const j of ie)
                P(j, he, Ce);
          }
        }
        function te(we, yt, Nt, Ce, pt, _e, ie, he) {
          const j = Fte(we, new Set(we.map((Ut) => Ut.fileName)), yt, Nt), { importSearches: He, indirectUsers: Ze, singleReferences: Xe } = j(Ce, { exportKind: ie ? 1 : 0, exportingModuleSymbol: pt }, !1);
          for (const [Ut] of He)
            he(Ut);
          for (const Ut of Xe)
            je(Ut) && gg(Ut.parent) && he(Ut);
          for (const Ut of Ze)
            for (const cn of me(Ut, ie ? "default" : _e)) {
              const Sn = yt.getSymbolAtLocation(cn), Er = kt(Sn == null ? void 0 : Sn.declarations, (ue) => !!ai(ue, Bl));
              je(cn) && !JS(cn.parent) && (Sn === Ce || Er) && he(cn);
            }
        }
        e.eachExportReference = te;
        function X(we, yt) {
          return Oe(we, yt) ? yt.options.use !== 2 ? !0 : je(we) ? !(JS(we.parent) && we.escapedText === "default") : !1 : !1;
        }
        function Y(we, yt) {
          if (we.declarations)
            for (const Nt of we.declarations) {
              const Ce = Nt.getSourceFile();
              Be(Ce, yt.createSearch(Nt, we, 0), yt, yt.includesSourceFile(Ce));
            }
        }
        function P(we, yt, Nt) {
          QQ(we).get(yt.escapedText) !== void 0 && Be(we, yt, Nt);
        }
        function de(we, yt) {
          return wy(we.parent.parent) ? yt.getPropertySymbolOfDestructuringAssignment(we) : void 0;
        }
        function re(we) {
          const { declarations: yt, flags: Nt, parent: Ce, valueDeclaration: pt } = we;
          if (pt && (pt.kind === 215 || pt.kind === 228))
            return pt;
          if (!yt)
            return;
          if (Nt & 8196) {
            const he = nn(yt, (j) => Gd(j, 8) || $u(j));
            return he ? q0(he, 260) : void 0;
          }
          if (yt.some(l6))
            return;
          const _e = Ce && !(we.flags & 262144);
          if (_e && !(a6(Ce) && !Ce.globalExports))
            return;
          let ie;
          for (const he of yt) {
            const j = WT(he);
            if (ie && ie !== j || !j || j.kind === 308 && !sf(j))
              return;
            if (ie = j, Bs(ie)) {
              let He;
              for (; He = bz(ie); )
                ie = He;
            }
          }
          return _e ? ie.getSourceFile() : ie;
        }
        function ye(we, yt, Nt, Ce = Nt) {
          return ae(we, yt, Nt, () => !0, Ce) || !1;
        }
        e.isSymbolReferencedInFile = ye;
        function ae(we, yt, Nt, Ce, pt = Nt) {
          const _e = nf(we.parent, we.parent.parent) ? us(yt.getSymbolsOfParameterPropertyDeclaration(we.parent, we.text)) : yt.getSymbolAtLocation(we);
          if (_e)
            for (const ie of me(Nt, _e.name, pt)) {
              if (!je(ie) || ie === we || ie.escapedText !== we.escapedText)
                continue;
              const he = yt.getSymbolAtLocation(ie);
              if (he === _e || yt.getShorthandAssignmentValueSymbol(ie.parent) === _e || dd(ie.parent) && We(ie, he, ie.parent, yt) === _e) {
                const j = Ce(ie);
                if (j)
                  return j;
              }
            }
        }
        e.eachSymbolReferenceInFile = ae;
        function W(we, yt) {
          return lr(me(yt, we), (pt) => !!RN(pt)).reduce((pt, _e) => {
            const ie = Ce(_e);
            return !kt(pt.declarationNames) || ie === pt.depth ? (pt.declarationNames.push(_e), pt.depth = ie) : ie < pt.depth && (pt.declarationNames = [_e], pt.depth = ie), pt;
          }, { depth: 1 / 0, declarationNames: [] }).declarationNames;
          function Ce(pt) {
            let _e = 0;
            for (; pt; )
              pt = WT(pt), _e++;
            return _e;
          }
        }
        e.getTopMostDeclarationNamesInFile = W;
        function ce(we, yt, Nt, Ce) {
          if (!we.name || !je(we.name))
            return !1;
          const pt = D.checkDefined(Nt.getSymbolAtLocation(we.name));
          for (const _e of yt)
            for (const ie of me(_e, pt.name)) {
              if (!je(ie) || ie === we.name || ie.escapedText !== we.name.escapedText)
                continue;
              const he = MF(ie), j = no(he.parent) && he.parent.expression === he ? he.parent : void 0, He = Nt.getSymbolAtLocation(ie);
              if (He && Nt.getRootSymbols(He).some((Ze) => Ze === pt) && Ce(ie, j))
                return !0;
            }
          return !1;
        }
        e.someSignatureUsage = ce;
        function me(we, yt, Nt = we) {
          return ve(we, yt, Nt).map((Ce) => Df(we, Ce));
        }
        function ve(we, yt, Nt = we) {
          const Ce = [];
          if (!yt || !yt.length)
            return Ce;
          const pt = we.text, _e = pt.length, ie = yt.length;
          let he = pt.indexOf(yt, Nt.pos);
          for (; he >= 0 && !(he > Nt.end); ) {
            const j = he + ie;
            (he === 0 || !G0(pt.charCodeAt(he - 1), 99)) && (j === _e || !G0(pt.charCodeAt(j), 99)) && Ce.push(he), he = pt.indexOf(yt, he + ie + 1);
          }
          return Ce;
        }
        function Te(we, yt) {
          const Nt = we.getSourceFile(), Ce = yt.text, pt = ia(me(Nt, Ce, we), (_e) => _e === yt || Y8(_e) && FF(_e, Ce) === yt ? wh(_e) : void 0);
          return [{ definition: { type: 1, node: yt }, references: pt }];
        }
        function ee(we, yt) {
          switch (we.kind) {
            case 80:
              if (tb(we.parent))
                return !0;
            case 79:
              return we.text.length === yt.length;
            case 14:
            case 10: {
              const Nt = we;
              return (BF(Nt) || x$(we) || wye(we) || no(we.parent) && ex(we.parent) && we.parent.arguments[1] === we) && Nt.text.length === yt.length;
            }
            case 8:
              return BF(we) && we.text.length === yt.length;
            case 88:
              return yt.length === 7;
            default:
              return !1;
          }
        }
        function Qe(we, yt) {
          const Nt = ca(we, (Ce) => (yt.throwIfCancellationRequested(), ia(me(Ce, "meta", Ce), (pt) => {
            const _e = pt.parent;
            if (FA(_e))
              return wh(_e);
          })));
          return Nt.length ? [{ definition: { type: 2, node: Nt[0].node }, references: Nt }] : void 0;
        }
        function Ve(we, yt, Nt, Ce) {
          const pt = ca(we, (_e) => (Nt.throwIfCancellationRequested(), ia(me(_e, yo(yt), _e), (ie) => {
            if (ie.kind === yt && (!Ce || Ce(ie)))
              return wh(ie);
          })));
          return pt.length ? [{ definition: { type: 2, node: pt[0].node }, references: pt }] : void 0;
        }
        function Be(we, yt, Nt, Ce = !0) {
          return Nt.cancellationToken.throwIfCancellationRequested(), qe(we, we, yt, Nt, Ce);
        }
        function qe(we, yt, Nt, Ce, pt) {
          if (Ce.markSearchedSymbols(yt, Nt.allSearchSymbols))
            for (const _e of ve(yt, Nt.text, we))
              Me(yt, _e, Nt, Ce, pt);
        }
        function Oe(we, yt) {
          return !!(HT(we) & yt.searchMeaning);
        }
        function Me(we, yt, Nt, Ce, pt) {
          const _e = Df(we, yt);
          if (!ee(_e, Nt.text)) {
            !Ce.options.implementations && (Ce.options.findInStrings && qT(we, yt) || Ce.options.findInComments && Xye(we, yt)) && Ce.addStringOrCommentReference(we.fileName, wc(yt, Nt.text.length));
            return;
          }
          if (!Oe(_e, Ce))
            return;
          let ie = Ce.checker.getSymbolAtLocation(_e);
          if (!ie)
            return;
          const he = _e.parent;
          if (Ld(he) && he.propertyName === _e)
            return;
          if (dd(he)) {
            D.assert(_e.kind === 79), Ye(_e, ie, he, Nt, Ce, pt);
            return;
          }
          const j = cr(Nt, ie, _e, Ce);
          if (!j) {
            Ct(ie, Nt, Ce);
            return;
          }
          switch (Ce.specialSearchKind) {
            case 0:
              pt && Et(_e, j, Ce);
              break;
            case 1:
              Vt(_e, we, Nt, Ce);
              break;
            case 2:
              tt(_e, Nt, Ce);
              break;
            default:
              D.assertNever(Ce.specialSearchKind);
          }
          fr(_e) && _s(_e.parent) && b1(_e.parent.parent.parent) && (ie = _e.parent.symbol, !ie) || st(_e, ie, Nt, Ce);
        }
        function Ye(we, yt, Nt, Ce, pt, _e, ie) {
          D.assert(!ie || !!pt.options.providePrefixAndSuffixTextForRename, "If alwaysGetReferences is true, then prefix/suffix text must be enabled");
          const { parent: he, propertyName: j, name: He } = Nt, Ze = he.parent, Xe = We(we, yt, Nt, pt.checker);
          if (!ie && !Ce.includes(Xe))
            return;
          if (j ? we === j ? (Ze.moduleSpecifier || Ut(), _e && pt.options.use !== 2 && pt.markSeenReExportRHS(He) && Et(He, D.checkDefined(Nt.symbol), pt)) : pt.markSeenReExportRHS(we) && Ut() : pt.options.use === 2 && He.escapedText === "default" || Ut(), !Hr(pt.options) || ie) {
            const Sn = we.escapedText === "default" || Nt.name.escapedText === "default" ? 1 : 0, Er = D.checkDefined(Nt.symbol), ue = Bte(Er, Sn, pt.checker);
            ue && H(we, Er, ue, pt);
          }
          if (Ce.comingFrom !== 1 && Ze.moduleSpecifier && !j && !Hr(pt.options)) {
            const cn = pt.checker.getExportSpecifierLocalTargetSymbol(Nt);
            cn && Y(cn, pt);
          }
          function Ut() {
            _e && Et(we, Xe, pt);
          }
        }
        function We(we, yt, Nt, Ce) {
          return Fe(we, Nt) && Ce.getExportSpecifierLocalTargetSymbol(Nt) || yt;
        }
        function Fe(we, yt) {
          const { parent: Nt, propertyName: Ce, name: pt } = yt;
          return D.assert(Ce === we || pt === we), Ce ? Ce === we : !Nt.parent.moduleSpecifier;
        }
        function st(we, yt, Nt, Ce) {
          const pt = XSe(we, yt, Ce.checker, Nt.comingFrom === 1);
          if (!pt)
            return;
          const { symbol: _e } = pt;
          pt.kind === 0 ? Hr(Ce.options) || Y(_e, Ce) : H(we, _e, pt.exportInfo, Ce);
        }
        function Ct({ flags: we, valueDeclaration: yt }, Nt, Ce) {
          const pt = Ce.checker.getShorthandAssignmentValueSymbol(yt), _e = yt && ka(yt);
          !(we & 33554432) && _e && Nt.includes(pt) && Et(_e, pt, Ce);
        }
        function Et(we, yt, Nt) {
          const { kind: Ce, symbol: pt } = "kind" in yt ? yt : { kind: void 0, symbol: yt };
          if (Nt.options.use === 2 && we.kind === 88)
            return;
          const _e = Nt.referenceAdder(pt);
          Nt.options.implementations ? In(we, _e, Nt) : _e(we, Ce);
        }
        function Vt(we, yt, Nt, Ce) {
          cw(we) && Et(we, Nt.symbol, Ce);
          const pt = () => Ce.referenceAdder(Nt.symbol);
          if (di(we.parent))
            D.assert(we.kind === 88 || we.parent.name === we), at(Nt.symbol, yt, pt());
          else {
            const _e = Pn(we);
            _e && (Qt(_e, pt()), jn(_e, Ce));
          }
        }
        function tt(we, yt, Nt) {
          Et(we, yt.symbol, Nt);
          const Ce = we.parent;
          if (Nt.options.use === 2 || !di(Ce))
            return;
          D.assert(Ce.name === we);
          const pt = Nt.referenceAdder(yt.symbol);
          for (const _e of Ce.members)
            LA(_e) && Ja(_e) && _e.body && _e.body.forEachChild(function ie(he) {
              he.kind === 108 ? pt(he) : !Ka(he) && !di(he) && he.forEachChild(ie);
            });
        }
        function at(we, yt, Nt) {
          const Ce = sn(we);
          if (Ce && Ce.declarations)
            for (const pt of Ce.declarations) {
              const _e = bs(pt, 135, yt);
              D.assert(pt.kind === 173 && !!_e), Nt(_e);
            }
          we.exports && we.exports.forEach((pt) => {
            const _e = pt.valueDeclaration;
            if (_e && _e.kind === 171) {
              const ie = _e.body;
              ie && an(ie, 108, (he) => {
                cw(he) && Nt(he);
              });
            }
          });
        }
        function sn(we) {
          return we.members && we.members.get("__constructor");
        }
        function Qt(we, yt) {
          const Nt = sn(we.symbol);
          if (Nt && Nt.declarations)
            for (const Ce of Nt.declarations) {
              D.assert(Ce.kind === 173);
              const pt = Ce.body;
              pt && an(pt, 106, (_e) => {
                y$(_e) && yt(_e);
              });
            }
        }
        function On(we) {
          return !!sn(we.symbol);
        }
        function jn(we, yt) {
          if (On(we))
            return;
          const Nt = we.symbol, Ce = yt.createSearch(void 0, Nt, void 0);
          L(Nt, yt, Ce);
        }
        function In(we, yt, Nt) {
          if (_g(we) && hi(we.parent)) {
            yt(we);
            return;
          }
          if (we.kind !== 79)
            return;
          we.parent.kind === 300 && Rn(we, Nt.checker, yt);
          const Ce = Zt(we);
          if (Ce) {
            yt(Ce);
            return;
          }
          const pt = nr(we, (he) => !Cd(he.parent) && !Gi(he.parent) && !rT(he.parent)), _e = pt.parent;
          if (jM(_e) && _e.type === pt && Nt.markSeenContainingTypeReference(_e))
            if (kv(_e))
              ie(_e.initializer);
            else if (Ka(_e) && _e.body) {
              const he = _e.body;
              he.kind === 238 ? cT(he, (j) => {
                j.expression && ie(j.expression);
              }) : ie(he);
            } else
              iT(_e) && ie(_e.expression);
          function ie(he) {
            _r(he) && yt(he);
          }
        }
        function Zt(we) {
          return je(we) || Fr(we) ? Zt(we.parent) : Sy(we) ? ai(we.parent.parent, di) : void 0;
        }
        function _r(we) {
          switch (we.kind) {
            case 214:
              return _r(we.expression);
            case 216:
            case 215:
            case 207:
            case 228:
            case 206:
              return !0;
            default:
              return !1;
          }
        }
        function Ii(we, yt, Nt, Ce) {
          if (we === yt)
            return !0;
          const pt = bo(we) + "," + bo(yt), _e = Nt.get(pt);
          if (_e !== void 0)
            return _e;
          Nt.set(pt, !1);
          const ie = !!we.declarations && we.declarations.some((he) => WI(he).some((j) => {
            const He = Ce.getTypeAtLocation(j);
            return !!He && !!He.symbol && Ii(He.symbol, yt, Nt, Ce);
          }));
          return Nt.set(pt, ie), ie;
        }
        function $i(we) {
          let yt = uN(we, !1);
          if (!yt)
            return;
          let Nt = 32;
          switch (yt.kind) {
            case 169:
            case 168:
            case 171:
            case 170:
            case 173:
            case 174:
            case 175:
              Nt &= Nv(yt), yt = yt.parent;
              break;
            default:
              return;
          }
          const Ce = yt.getSourceFile(), pt = ia(me(Ce, "super", yt), (_e) => {
            if (_e.kind !== 106)
              return;
            const ie = uN(_e, !1);
            return ie && Ja(ie) === !!Nt && ie.parent.symbol === yt.symbol ? wh(_e) : void 0;
          });
          return [{ definition: { type: 0, symbol: yt.symbol }, references: pt }];
        }
        function Qi(we) {
          return we.kind === 79 && we.parent.kind === 166 && we.parent.name === we;
        }
        function Or(we, yt, Nt) {
          let Ce = Sd(we, !1, !1), pt = 32;
          switch (Ce.kind) {
            case 171:
            case 170:
              if (B_(Ce)) {
                pt &= Nv(Ce), Ce = Ce.parent;
                break;
              }
            case 169:
            case 168:
            case 173:
            case 174:
            case 175:
              pt &= Nv(Ce), Ce = Ce.parent;
              break;
            case 308:
              if (Zl(Ce) || Qi(we))
                return;
            case 259:
            case 215:
              break;
            default:
              return;
          }
          const _e = ca(Ce.kind === 308 ? yt : [Ce.getSourceFile()], (he) => (Nt.throwIfCancellationRequested(), me(he, "this", qi(Ce) ? he : Ce).filter((j) => {
            if (!qC(j))
              return !1;
            const He = Sd(j, !1, !1);
            if (!Rm(He))
              return !1;
            switch (Ce.kind) {
              case 215:
              case 259:
                return Ce.symbol === He.symbol;
              case 171:
              case 170:
                return B_(Ce) && Ce.symbol === He.symbol;
              case 228:
              case 260:
              case 207:
                return He.parent && Rm(He.parent) && Ce.symbol === He.parent.symbol && Ja(He) === !!pt;
              case 308:
                return He.kind === 308 && !Zl(He) && !Qi(j);
            }
          }))).map((he) => wh(he));
          return [{
            definition: { type: 3, node: Jt(_e, (he) => Ba(he.node.parent) ? he.node : void 0) || we },
            references: _e
          }];
        }
        function At(we, yt, Nt, Ce) {
          const pt = jF(we, Nt), _e = ca(yt, (ie) => (Ce.throwIfCancellationRequested(), ia(me(ie, we.text), (he) => {
            if (xs(he) && he.text === we.text)
              if (pt) {
                const j = jF(he, Nt);
                if (pt !== Nt.getStringType() && pt === j)
                  return wh(he, 2);
              } else
                return bx(he) && !bT(he, ie) ? void 0 : wh(he, 2);
          })));
          return [{
            definition: { type: 4, node: we },
            references: _e
          }];
        }
        function vn(we, yt, Nt, Ce, pt, _e) {
          const ie = [];
          return Wt(we, yt, Nt, Ce, !(Ce && pt), (he, j, He) => {
            He && rr(we) !== rr(He) && (He = void 0), ie.push(He || j || he);
          }, () => !_e), ie;
        }
        function Wt(we, yt, Nt, Ce, pt, _e, ie) {
          const he = T6(yt);
          if (he) {
            const Sn = Nt.getShorthandAssignmentValueSymbol(yt.parent);
            if (Sn && Ce)
              return _e(Sn, void 0, void 0, 3);
            const Er = Nt.getContextualType(he.parent), ue = Er && Jt(H9(he, Nt, Er, !0), (K) => Ut(K, 4));
            if (ue)
              return ue;
            const mt = de(yt, Nt), zt = mt && _e(mt, void 0, void 0, 4);
            if (zt)
              return zt;
            const it = Sn && _e(Sn, void 0, void 0, 3);
            if (it)
              return it;
          }
          const j = s(yt, we, Nt);
          if (j) {
            const Sn = _e(j, void 0, void 0, 1);
            if (Sn)
              return Sn;
          }
          const He = Ut(we);
          if (He)
            return He;
          if (we.valueDeclaration && nf(we.valueDeclaration, we.valueDeclaration.parent)) {
            const Sn = Nt.getSymbolsOfParameterPropertyDeclaration(oo(we.valueDeclaration, Ba), we.name);
            return D.assert(Sn.length === 2 && !!(Sn[0].flags & 1) && !!(Sn[1].flags & 4)), Ut(we.flags & 1 ? Sn[1] : Sn[0]);
          }
          const Ze = xl(we, 278);
          if (!Ce || Ze && !Ze.propertyName) {
            const Sn = Ze && Nt.getExportSpecifierLocalTargetSymbol(Ze);
            if (Sn) {
              const Er = _e(Sn, void 0, void 0, 1);
              if (Er)
                return Er;
            }
          }
          if (!Ce) {
            let Sn;
            return pt ? Sn = l6(yt.parent) ? r9(Nt, yt.parent) : void 0 : Sn = cn(we, Nt), Sn && Ut(Sn, 4);
          }
          if (D.assert(Ce), pt) {
            const Sn = cn(we, Nt);
            return Sn && Ut(Sn, 4);
          }
          function Ut(Sn, Er) {
            return Jt(Nt.getRootSymbols(Sn), (ue) => _e(Sn, ue, void 0, Er) || (ue.parent && ue.parent.flags & 96 && ie(ue) ? fn(ue.parent, ue.name, Nt, (mt) => _e(Sn, ue, mt, Er)) : void 0));
          }
          function cn(Sn, Er) {
            const ue = xl(Sn, 205);
            if (ue && l6(ue))
              return r9(Er, ue);
          }
        }
        function fn(we, yt, Nt, Ce) {
          const pt = /* @__PURE__ */ new Map();
          return _e(we);
          function _e(ie) {
            if (!(!(ie.flags & 96) || !vp(pt, bo(ie))))
              return Jt(ie.declarations, (he) => Jt(WI(he), (j) => {
                const He = Nt.getTypeAtLocation(j), Ze = He && He.symbol && Nt.getPropertyOfType(He, yt);
                return He && Ze && (Jt(Nt.getRootSymbols(Ze), Ce) || _e(He.symbol));
              }));
          }
        }
        function rr(we) {
          return we.valueDeclaration ? !!(Mu(we.valueDeclaration) & 32) : !1;
        }
        function cr(we, yt, Nt, Ce) {
          const { checker: pt } = Ce;
          return Wt(yt, Nt, pt, !1, Ce.options.use !== 2 || !!Ce.options.providePrefixAndSuffixTextForRename, (_e, ie, he, j) => (he && rr(yt) !== rr(he) && (he = void 0), we.includes(he || ie || _e) ? { symbol: ie && !(Ll(_e) & 6) ? ie : _e, kind: j } : void 0), (_e) => !(we.parents && !we.parents.some((ie) => Ii(_e.parent, ie, Ce.inheritsFromCache, pt))));
        }
        function Pi(we, yt) {
          let Nt = HT(we);
          const { declarations: Ce } = yt;
          if (Ce) {
            let pt;
            do {
              pt = Nt;
              for (const _e of Ce) {
                const ie = K8(_e);
                ie & Nt && (Nt |= ie);
              }
            } while (Nt !== pt);
          }
          return Nt;
        }
        e.getIntersectingMeaningFromDeclarations = Pi;
        function hi(we) {
          return we.flags & 16777216 ? !(nd(we) || em(we)) : BA(we) ? kv(we) : Qs(we) ? !!we.body : di(we) || ZR(we);
        }
        function Rn(we, yt, Nt) {
          const Ce = yt.getSymbolAtLocation(we), pt = yt.getShorthandAssignmentValueSymbol(Ce.valueDeclaration);
          if (pt)
            for (const _e of pt.getDeclarations())
              K8(_e) & 1 && Nt(_e);
        }
        e.getReferenceEntriesForShorthandPropertyAssignment = Rn;
        function an(we, yt, Nt) {
          Ma(we, (Ce) => {
            Ce.kind === yt && Nt(Ce), an(Ce, yt, Nt);
          });
        }
        function Pn(we) {
          return Jz(MF(we).parent);
        }
        function Ar(we, yt, Nt) {
          const Ce = zC(we) ? we.parent : void 0, pt = Ce && Nt.getTypeAtLocation(Ce.expression), _e = ia(pt && (pt.isUnionOrIntersection() ? pt.types : pt.symbol === yt.parent ? void 0 : [pt]), (ie) => ie.symbol && ie.symbol.flags & 96 ? ie.symbol : void 0);
          return _e.length === 0 ? void 0 : _e;
        }
        function Hr(we) {
          return we.use === 2 && we.providePrefixAndSuffixTextForRename;
        }
      })(eS || (eS = {}));
    }
  }), ul = {};
  ne(ul, {
    Core: () => eS,
    DefinitionKind: () => Wte,
    EntryKind: () => zte,
    ExportKind: () => Ute,
    FindReferencesUse: () => qte,
    ImportExport: () => Vte,
    createImportTracker: () => Fte,
    findModuleReferences: () => qSe,
    findReferenceOrRenameEntries: () => MHe,
    findReferencedSymbols: () => NHe,
    getContextNode: () => J1,
    getExportInfo: () => Bte,
    getImplementationsAtPosition: () => PHe,
    getImportOrExportSymbol: () => XSe,
    getReferenceEntriesForNode: () => QSe,
    getTextSpanOfEntry: () => Hte,
    isContextWithStartAndEndNode: () => YSe,
    isDeclarationOfSymbol: () => rxe,
    nodeEntry: () => wh,
    toContextSpan: () => jte,
    toHighlightSpan: () => HHe,
    toReferenceEntry: () => txe,
    toRenameLocation: () => BHe
  });
  var ixe = C({
    "src/services/_namespaces/ts.FindAllReferences.ts"() {
      DHe(), zHe();
    }
  });
  function axe(e, t, r, i, o) {
    var s, c;
    const f = sxe(t, r, e), d = f && [eWe(f.reference.fileName, f.fileName, f.unverified)] || rt;
    if (f != null && f.file)
      return d;
    const y = Df(t, r);
    if (y === t)
      return;
    const { parent: h } = y, E = e.getTypeChecker();
    if (y.kind === 161 || je(y) && J7(h) && h.tagName === y)
      return JHe(E, y) || rt;
    if (Y8(y)) {
      const k = FF(y.parent, y.text);
      return k ? [Kte(E, k, "label", y.text, void 0)] : void 0;
    }
    if (y.kind === 105) {
      const k = nr(y.parent, (G) => Il(G) ? "quit" : Qs(G));
      return k ? [j6(E, k)] : void 0;
    }
    if (y.kind === 133) {
      const k = nr(y, (V) => Qs(V));
      return k && kt(k.modifiers, (V) => V.kind === 132) ? [j6(E, k)] : void 0;
    }
    if (y.kind === 125) {
      const k = nr(y, (V) => Qs(V));
      return k && k.asteriskToken ? [j6(E, k)] : void 0;
    }
    if (Ex(y) && Il(y.parent)) {
      const k = y.parent.parent, { symbol: G, failedAliasResolution: V } = BG(k, E, o), H = lr(k.members, Il), te = G ? E.symbolToString(G, k) : "", X = y.getSourceFile();
      return jt(H, (Y) => {
        let { pos: P } = $p(Y);
        return P = Ko(X.text, P), Kte(E, Y, "constructor", "static {}", te, !1, V, { start: P, length: 6 });
      });
    }
    let { symbol: A, failedAliasResolution: L } = BG(y, E, o), I = y;
    if (i && L) {
      const k = ze([y, ...(A == null ? void 0 : A.declarations) || rt], (V) => nr(V, tue)), G = k && xN(k);
      G && ({ symbol: A, failedAliasResolution: L } = BG(G, E, o), I = G);
    }
    if (!A && n9(I)) {
      const k = (c = (s = t.resolvedModules) == null ? void 0 : s.get(I.text, Tp(t, I))) == null ? void 0 : c.resolvedModule;
      if (k)
        return [{
          name: I.text,
          fileName: k.resolvedFileName,
          containerName: void 0,
          containerKind: void 0,
          kind: "script",
          textSpan: wc(0, 0),
          failedAliasResolution: L,
          isAmbient: fd(k.resolvedFileName),
          unverified: I !== y
        }];
    }
    if (!A)
      return va(d, $He(y, E));
    if (i && Yn(A.declarations, (k) => k.getSourceFile().fileName === t.fileName))
      return;
    const O = nWe(E, y);
    if (O && !(Qu(y.parent) && rWe(O))) {
      const k = j6(E, O, L);
      if (E.getRootSymbols(A).some((G) => qHe(G, O)))
        return [k];
      {
        const G = aL(E, A, y, L, O) || rt;
        return y.kind === 106 ? [k, ...G] : [...G, k];
      }
    }
    if (y.parent.kind === 300) {
      const k = E.getShorthandAssignmentValueSymbol(A.valueDeclaration), G = k != null && k.declarations ? k.declarations.map((V) => Nw(V, E, k, y, !1, L)) : rt;
      return va(G, oxe(E, y) || rt);
    }
    if (yl(y) && _s(h) && Hm(h.parent) && y === (h.propertyName || h.name)) {
      const k = s6(y), G = E.getTypeAtLocation(h.parent);
      return k === void 0 ? rt : ca(G.isUnion() ? G.types : [G], (V) => {
        const H = V.getProperty(k);
        return H && aL(E, H, y);
      });
    }
    return va(d, oxe(E, y) || aL(E, A, y, L));
  }
  function qHe(e, t) {
    var r;
    return e === t.symbol || e === t.symbol.parent || ed(t.parent) || !YS(t.parent) && e === ((r = ai(t.parent, Rm)) == null ? void 0 : r.symbol);
  }
  function oxe(e, t) {
    const r = T6(t);
    if (r) {
      const i = r && e.getContextualType(r.parent);
      if (i)
        return ca(H9(r, e, i, !1), (o) => aL(e, o, t));
    }
  }
  function JHe(e, t) {
    const r = nr(t, Uc);
    if (!(r && r.name))
      return;
    const i = nr(r, di);
    if (!i)
      return;
    const o = Xp(i);
    if (!o)
      return;
    const s = js(o.expression), c = Gu(s) ? s.symbol : e.getSymbolAtLocation(s);
    if (!c)
      return;
    const f = ta(OA(r.name)), d = gc(r) ? e.getPropertyOfType(e.getTypeOfSymbol(c), f) : e.getPropertyOfType(e.getDeclaredTypeOfSymbol(c), f);
    if (d)
      return aL(e, d, t);
  }
  function sxe(e, t, r) {
    var i, o, s, c;
    const f = oL(e.referencedFiles, t);
    if (f) {
      const h = r.getSourceFileFromReference(e, f);
      return h && { reference: f, fileName: h.fileName, file: h, unverified: !1 };
    }
    const d = oL(e.typeReferenceDirectives, t);
    if (d) {
      const h = (i = r.getResolvedTypeReferenceDirectives().get(d.fileName, d.resolutionMode || e.impliedNodeFormat)) == null ? void 0 : i.resolvedTypeReferenceDirective, E = h && r.getSourceFile(h.resolvedFileName);
      return E && { reference: d, fileName: E.fileName, file: E, unverified: !1 };
    }
    const y = oL(e.libReferenceDirectives, t);
    if (y) {
      const h = r.getLibFileFromReference(y);
      return h && { reference: y, fileName: h.fileName, file: h, unverified: !1 };
    }
    if ((o = e.resolvedModules) != null && o.size()) {
      const h = fw(e, t);
      if (n9(h) && Gc(h.text) && e.resolvedModules.has(h.text, Tp(e, h))) {
        const E = (c = (s = e.resolvedModules.get(h.text, Tp(e, h))) == null ? void 0 : s.resolvedModule) == null ? void 0 : c.resolvedFileName, A = E || bv(mi(e.fileName), h.text);
        return {
          file: r.getSourceFile(A),
          fileName: A,
          reference: {
            pos: h.getStart(),
            end: h.getEnd(),
            fileName: h.text
          },
          unverified: !E
        };
      }
    }
  }
  function KHe(e, t, r) {
    const i = Df(t, r);
    if (i === t)
      return;
    if (FA(i.parent) && i.parent.name === i)
      return Jte(e.getTypeAtLocation(i.parent), e, i.parent, !1);
    const { symbol: o, failedAliasResolution: s } = BG(i, e, !1);
    if (!o)
      return;
    const c = e.getTypeOfSymbolAtLocation(o, i), f = XHe(o, c, e), d = f && Jte(f, e, i, s), y = d && d.length !== 0 ? d : Jte(c, e, i, s);
    return y.length ? y : !(o.flags & 111551) && o.flags & 788968 ? aL(e, cf(o, e), i, s) : void 0;
  }
  function Jte(e, t, r, i) {
    return ca(e.isUnion() && !(e.flags & 32) ? e.types : [e], (o) => o.symbol && aL(t, o.symbol, r, i));
  }
  function XHe(e, t, r) {
    if (t.symbol === e || e.valueDeclaration && t.symbol && Ki(e.valueDeclaration) && e.valueDeclaration.initializer === t.symbol.valueDeclaration) {
      const i = t.getCallSignatures();
      if (i.length === 1)
        return r.getReturnTypeOfSignature(us(i));
    }
  }
  function YHe(e, t, r) {
    const i = axe(e, t, r);
    if (!i || i.length === 0)
      return;
    const o = oL(t.referencedFiles, r) || oL(t.typeReferenceDirectives, r) || oL(t.libReferenceDirectives, r);
    if (o)
      return { definitions: i, textSpan: qv(o) };
    const s = Df(t, r), c = wc(s.getStart(), s.getWidth());
    return { definitions: i, textSpan: c };
  }
  function $He(e, t) {
    return ia(t.getIndexInfosAtLocation(e), (r) => r.declaration && j6(t, r.declaration));
  }
  function BG(e, t, r) {
    const i = t.getSymbolAtLocation(e);
    let o = !1;
    if (i != null && i.declarations && i.flags & 2097152 && !r && QHe(e, i.declarations[0])) {
      const s = t.getAliasedSymbol(i);
      if (s.declarations)
        return { symbol: s };
      o = !0;
    }
    return { symbol: i, failedAliasResolution: o };
  }
  function QHe(e, t) {
    return e.kind !== 79 ? !1 : e.parent === t ? !0 : t.kind !== 271;
  }
  function ZHe(e) {
    if (!jI(e))
      return !1;
    const t = nr(e, (r) => ed(r) ? !0 : jI(r) ? !1 : "quit");
    return !!t && Cl(t) === 5;
  }
  function aL(e, t, r, i, o) {
    const s = lr(t.declarations, (E) => E !== o), c = lr(s, (E) => !ZHe(E)), f = kt(c) ? c : s;
    return d() || y() || jt(f, (E) => Nw(E, e, t, r, !1, i));
    function d() {
      if (t.flags & 32 && !(t.flags & 19) && (cw(r) || r.kind === 135)) {
        const E = nn(s, di) || D.fail("Expected declaration to have at least one class-like declaration");
        return h(E.members, !0);
      }
    }
    function y() {
      return v$(r) || A$(r) ? h(s, !1) : void 0;
    }
    function h(E, A) {
      if (!E)
        return;
      const L = E.filter(A ? ql : Ka), I = L.filter((O) => !!O.body);
      return L.length ? I.length !== 0 ? I.map((O) => Nw(O, e, t, r)) : [Nw(qo(L), e, t, r, !1, i)] : void 0;
    }
  }
  function Nw(e, t, r, i, o, s) {
    const c = t.symbolToString(r), f = Ny.getSymbolKind(t, r, i), d = r.parent ? t.symbolToString(r.parent, i) : "";
    return Kte(t, e, f, c, d, o, s);
  }
  function Kte(e, t, r, i, o, s, c, f) {
    const d = t.getSourceFile();
    if (!f) {
      const y = ka(t) || t;
      f = rd(y, d);
    }
    return {
      fileName: d.fileName,
      textSpan: f,
      kind: r,
      name: i,
      containerKind: void 0,
      containerName: o,
      ...ul.toContextSpan(f, d, ul.getContextNode(t)),
      isLocal: !Xte(e, t),
      isAmbient: !!(t.flags & 16777216),
      unverified: s,
      failedAliasResolution: c
    };
  }
  function Xte(e, t) {
    if (e.isDeclarationVisible(t))
      return !0;
    if (!t.parent)
      return !1;
    if (kv(t.parent) && t.parent.initializer === t)
      return Xte(e, t.parent);
    switch (t.kind) {
      case 169:
      case 174:
      case 175:
      case 171:
        if (Gd(t, 8))
          return !1;
      case 173:
      case 299:
      case 300:
      case 207:
      case 228:
      case 216:
      case 215:
        return Xte(e, t.parent);
      default:
        return !1;
    }
  }
  function j6(e, t, r) {
    return Nw(t, e, t.symbol, t, !1, r);
  }
  function oL(e, t) {
    return nn(e, (r) => CM(r, t));
  }
  function eWe(e, t, r) {
    return {
      fileName: t,
      textSpan: hc(0, 0),
      kind: "script",
      name: e,
      containerName: void 0,
      containerKind: void 0,
      unverified: r
    };
  }
  function tWe(e) {
    const t = nr(e, (i) => !zC(i)), r = t == null ? void 0 : t.parent;
    return r && YS(r) && d3(r) === t ? r : void 0;
  }
  function nWe(e, t) {
    const r = tWe(t), i = r && e.getResolvedSignature(r);
    return ai(i && i.declaration, (o) => Ka(o) && !Ch(o));
  }
  function rWe(e) {
    switch (e.kind) {
      case 173:
      case 182:
      case 177:
        return !0;
      default:
        return !1;
    }
  }
  var iWe = C({
    "src/services/goToDefinition.ts"() {
      $r();
    }
  }), Ow = {};
  ne(Ow, {
    createDefinitionInfo: () => Nw,
    findReferenceInPosition: () => oL,
    getDefinitionAndBoundSpan: () => YHe,
    getDefinitionAtPosition: () => axe,
    getReferenceAtPosition: () => sxe,
    getTypeDefinitionAtPosition: () => KHe
  });
  var aWe = C({
    "src/services/_namespaces/ts.GoToDefinition.ts"() {
      iWe();
    }
  });
  function oWe(e) {
    return e.includeInlayParameterNameHints === "literals" || e.includeInlayParameterNameHints === "all";
  }
  function sWe(e) {
    return e.includeInlayParameterNameHints === "literals";
  }
  function lWe(e) {
    const { file: t, program: r, span: i, cancellationToken: o, preferences: s } = e, c = t.text, f = r.getCompilerOptions(), d = r.getTypeChecker(), y = [];
    return h(t), y;
    function h(me) {
      if (!(!me || me.getFullWidth() === 0)) {
        switch (me.kind) {
          case 264:
          case 260:
          case 261:
          case 259:
          case 228:
          case 215:
          case 171:
          case 216:
            o.throwIfCancellationRequested();
        }
        if (LM(i, me.pos, me.getFullWidth()) && !(Gi(me) && !Sy(me)))
          return s.includeInlayVariableTypeHints && Ki(me) || s.includeInlayPropertyDeclarationTypeHints && to(me) ? G(me) : s.includeInlayEnumMemberValueHints && O1(me) ? O(me) : oWe(s) && (no(me) || D1(me)) ? V(me) : (s.includeInlayFunctionParameterTypeHints && Qs(me) && Y3(me) && de(me), s.includeInlayFunctionLikeReturnTypeHints && E(me) && Y(me)), Ma(me, h);
      }
    }
    function E(me) {
      return Js(me) || Bs(me) || yc(me) || ac(me) || z_(me);
    }
    function A(me, ve, Te) {
      y.push({
        text: `${Te ? "..." : ""}${ye(me, GG)}:`,
        position: ve,
        kind: "Parameter",
        whitespaceAfter: !0
      });
    }
    function L(me, ve) {
      y.push({
        text: `: ${ye(me, GG)}`,
        position: ve,
        kind: "Type",
        whitespaceBefore: !0
      });
    }
    function I(me, ve) {
      y.push({
        text: `= ${ye(me, GG)}`,
        position: ve,
        kind: "Enum",
        whitespaceBefore: !0
      });
    }
    function O(me) {
      if (me.initializer)
        return;
      const ve = d.getConstantValue(me);
      ve !== void 0 && I(ve.toString(), me.end);
    }
    function k(me) {
      return me.symbol && me.symbol.flags & 1536;
    }
    function G(me) {
      if (!me.initializer || Xa(me.name) || Ki(me) && !ce(me) || Zc(me))
        return;
      const Te = d.getTypeAtLocation(me);
      if (k(Te))
        return;
      const ee = ae(Te);
      if (ee) {
        if (s.includeInlayVariableTypeHintsWhenTypeMatchesName === !1 && FS(me.name.getText(), ee))
          return;
        L(ee, me.name.end);
      }
    }
    function V(me) {
      const ve = me.arguments;
      if (!ve || !ve.length)
        return;
      const Te = [], ee = d.getResolvedSignatureForSignatureHelp(me, Te);
      if (!(!ee || !Te.length))
        for (let Qe = 0; Qe < ve.length; ++Qe) {
          const Ve = ve[Qe], Be = js(Ve);
          if (sWe(s) && !X(Be))
            continue;
          const qe = d.getParameterIdentifierNameAtPosition(ee, Qe);
          if (qe) {
            const [Oe, Me] = qe;
            if (!(s.includeInlayParameterNameHintsWhenArgumentMatchesName || !H(Be, Oe)) && !Me)
              continue;
            const We = ta(Oe);
            if (te(Be, We))
              continue;
            A(We, Ve.getStart(), Me);
          }
        }
    }
    function H(me, ve) {
      return je(me) ? me.text === ve : Fr(me) ? me.name.text === ve : !1;
    }
    function te(me, ve) {
      if (!P_(ve, f.target, QN(t.scriptKind)))
        return !1;
      const Te = ph(c, me.pos);
      if (!(Te != null && Te.length))
        return !1;
      const ee = lxe(ve);
      return kt(Te, (Qe) => ee.test(c.substring(Qe.pos, Qe.end)));
    }
    function X(me) {
      switch (me.kind) {
        case 221: {
          const ve = me.operand;
          return nT(ve) || je(ve) && yk(ve.escapedText);
        }
        case 110:
        case 95:
        case 104:
        case 14:
        case 225:
          return !0;
        case 79: {
          const ve = me.escapedText;
          return W(ve) || yk(ve);
        }
      }
      return nT(me);
    }
    function Y(me) {
      if (Js(me) && !bs(me, 20, t) || yp(me) || !me.body)
        return;
      const Te = d.getSignatureFromDeclaration(me);
      if (!Te)
        return;
      const ee = d.getReturnTypeOfSignature(Te);
      if (k(ee))
        return;
      const Qe = ae(ee);
      Qe && L(Qe, P(me));
    }
    function P(me) {
      const ve = bs(me, 21, t);
      return ve ? ve.end : me.parameters.end;
    }
    function de(me) {
      const ve = d.getSignatureFromDeclaration(me);
      if (ve)
        for (let Te = 0; Te < me.parameters.length && Te < ve.parameters.length; ++Te) {
          const ee = me.parameters[Te];
          if (!ce(ee) || Zc(ee))
            continue;
          const Ve = re(ve.parameters[Te]);
          Ve && L(Ve, ee.questionToken ? ee.questionToken.end : ee.name.end);
        }
    }
    function re(me) {
      const ve = me.valueDeclaration;
      if (!ve || !Ba(ve))
        return;
      const Te = d.getTypeOfSymbolAtLocation(me, ve);
      if (!k(Te))
        return ae(Te);
    }
    function ye(me, ve) {
      return me.length > ve ? me.substr(0, ve - 3) + "..." : me;
    }
    function ae(me) {
      const Te = H1();
      return NI((ee) => {
        const Qe = d.typeToTypeNode(me, void 0, 71286784);
        D.assertIsDefined(Qe, "should always get typenode"), Te.writeNode(4, Qe, t, ee);
      });
    }
    function W(me) {
      return me === "undefined";
    }
    function ce(me) {
      if ((hT(me) || Ki(me) && ug(me)) && me.initializer) {
        const ve = js(me.initializer);
        return !(X(ve) || D1(ve) || Ls(ve) || iT(ve));
      }
      return !0;
    }
  }
  var GG, lxe, cWe = C({
    "src/services/inlayHints.ts"() {
      $r(), GG = 30, lxe = (e) => new RegExp(`^\\s?/\\*\\*?\\s?${e}\\s?\\*\\/\\s?$`);
    }
  }), Yte = {};
  ne(Yte, {
    provideInlayHints: () => lWe
  });
  var uWe = C({
    "src/services/_namespaces/ts.InlayHints.ts"() {
      cWe();
    }
  });
  function dWe(e, t) {
    const r = [];
    return J$(e, (i) => {
      for (const o of _We(i)) {
        const s = qm(o) && o.tags && nn(o.tags, (f) => f.kind === 330 && (f.tagName.escapedText === "inheritDoc" || f.tagName.escapedText === "inheritdoc"));
        if (o.comment === void 0 && !s || qm(o) && i.kind !== 349 && i.kind !== 341 && o.tags && o.tags.some((f) => f.kind === 349 || f.kind === 341) && !o.tags.some((f) => f.kind === 344 || f.kind === 345))
          continue;
        let c = o.comment ? r2(o.comment, t) : [];
        s && s.comment && (c = c.concat(r2(s.comment, t))), jr(r, c, fWe) || r.push(c);
      }
    }), No(la(r, [YC()]));
  }
  function fWe(e, t) {
    return es(e, t, (r, i) => r.kind === i.kind && r.text === i.text);
  }
  function _We(e) {
    switch (e.kind) {
      case 344:
      case 351:
        return [e];
      case 341:
      case 349:
        return [e, e.parent];
      default:
        return vz(e);
    }
  }
  function pWe(e, t) {
    const r = [];
    return J$(e, (i) => {
      const o = d1(i);
      if (!(o.some((s) => s.kind === 349 || s.kind === 341) && !o.some((s) => s.kind === 344 || s.kind === 345)))
        for (const s of o)
          r.push({ name: s.tagName.text, text: mWe(s, t) });
    }), r;
  }
  function r2(e, t) {
    return typeof e == "string" ? [Rf(e)] : ca(e, (r) => r.kind === 324 ? [Rf(r.text)] : cve(r, t));
  }
  function mWe(e, t) {
    const { comment: r, kind: i } = e, o = hWe(i);
    switch (i) {
      case 352:
        const f = e.typeExpression;
        return f ? s(f) : r === void 0 ? void 0 : r2(r, t);
      case 332:
        return s(e.class);
      case 331:
        return s(e.class);
      case 348:
        const d = e, y = [];
        if (d.constraint && y.push(Rf(d.constraint.getText())), Le(d.typeParameters)) {
          Le(y) && y.push(bl());
          const E = d.typeParameters[d.typeParameters.length - 1];
          ze(d.typeParameters, (A) => {
            y.push(o(A.getText())), E !== A && y.push(Tu(27), bl());
          });
        }
        return r && y.push(bl(), ...r2(r, t)), y;
      case 347:
      case 353:
        return s(e.typeExpression);
      case 349:
      case 341:
      case 351:
      case 344:
      case 350:
        const { name: h } = e;
        return h ? s(h) : r === void 0 ? void 0 : r2(r, t);
      default:
        return r === void 0 ? void 0 : r2(r, t);
    }
    function s(f) {
      return c(f.getText());
    }
    function c(f) {
      return r ? f.match(/^https?$/) ? [Rf(f), ...r2(r, t)] : [o(f), bl(), ...r2(r, t)] : [Rf(f)];
    }
  }
  function hWe(e) {
    switch (e) {
      case 344:
        return ive;
      case 351:
        return ave;
      case 348:
        return sve;
      case 349:
      case 341:
        return ove;
      default:
        return Rf;
    }
  }
  function gWe() {
    return uxe || (uxe = jt(Qte, (e) => ({
      name: e,
      kind: "keyword",
      kindModifiers: "",
      sortText: n2.SortText.LocationPriority
    })));
  }
  function yWe() {
    return dxe || (dxe = jt(Qte, (e) => ({
      name: `@${e}`,
      kind: "keyword",
      kindModifiers: "",
      sortText: n2.SortText.LocationPriority
    })));
  }
  function cxe(e) {
    return {
      name: e,
      kind: "",
      kindModifiers: "",
      displayParts: [Rf(e)],
      documentation: rt,
      tags: void 0,
      codeActions: void 0
    };
  }
  function vWe(e) {
    if (!je(e.name))
      return rt;
    const t = e.name.text, r = e.parent, i = r.parent;
    return Ka(i) ? ia(i.parameters, (o) => {
      if (!je(o.name))
        return;
      const s = o.name.text;
      if (!(r.tags.some((c) => c !== e && rm(c) && je(c.name) && c.name.escapedText === s) || t !== void 0 && !xa(s, t)))
        return { name: s, kind: "parameter", kindModifiers: "", sortText: n2.SortText.LocationPriority };
    }) : [];
  }
  function bWe(e) {
    return {
      name: e,
      kind: "parameter",
      kindModifiers: "",
      displayParts: [Rf(e)],
      documentation: rt,
      tags: void 0,
      codeActions: void 0
    };
  }
  function EWe(e, t, r, i) {
    const o = aa(t, r), s = nr(o, qm);
    if (s && (s.comment !== void 0 || Le(s.tags)))
      return;
    const c = o.getStart(t);
    if (!s && c < r)
      return;
    const f = AWe(o, i);
    if (!f)
      return;
    const { commentOwner: d, parameters: y, hasReturn: h } = f, E = xf(d) && d.jsDoc ? d.jsDoc : void 0, A = tl(E);
    if (d.getStart(t) < r || A && s && A !== s)
      return;
    const L = TWe(t, r), I = px(t.fileName), O = (y ? SWe(y || [], I, L, e) : "") + (h ? xWe(L, e) : ""), k = "/**", G = " */", V = (E || []).some((H) => !!H.tags);
    if (O && !V) {
      const H = k + e + L + " * ", te = c === r ? e + L : "";
      return { newText: H + e + O + L + G + te, caretOffset: H.length };
    }
    return { newText: k + G, caretOffset: 3 };
  }
  function TWe(e, t) {
    const { text: r } = e, i = T_(t, e);
    let o = i;
    for (; o <= t && Dm(r.charCodeAt(o)); o++)
      ;
    return r.slice(i, o);
  }
  function SWe(e, t, r, i) {
    return e.map(({ name: o, dotDotDotToken: s }, c) => {
      const f = o.kind === 79 ? o.text : "param" + c;
      return `${r} * @param ${t ? s ? "{...any} " : "{any} " : ""}${f}${i}`;
    }).join("");
  }
  function xWe(e, t) {
    return `${e} * @returns${t}`;
  }
  function AWe(e, t) {
    return Gce(e, (r) => $te(r, t));
  }
  function $te(e, t) {
    switch (e.kind) {
      case 259:
      case 215:
      case 171:
      case 173:
      case 170:
      case 216:
        const r = e;
        return { commentOwner: e, parameters: r.parameters, hasReturn: H6(r, t) };
      case 299:
        return $te(e.initializer, t);
      case 260:
      case 261:
      case 263:
      case 302:
      case 262:
        return { commentOwner: e };
      case 168: {
        const o = e;
        return o.type && Ch(o.type) ? { commentOwner: e, parameters: o.type.parameters, hasReturn: H6(o.type, t) } : { commentOwner: e };
      }
      case 240: {
        const s = e.declarationList.declarations, c = s.length === 1 && s[0].initializer ? CWe(s[0].initializer) : void 0;
        return c ? { commentOwner: e, parameters: c.parameters, hasReturn: H6(c, t) } : { commentOwner: e };
      }
      case 308:
        return "quit";
      case 264:
        return e.parent.kind === 264 ? void 0 : { commentOwner: e };
      case 241:
        return $te(e.expression, t);
      case 223: {
        const o = e;
        return Cl(o) === 0 ? "quit" : Ka(o.right) ? { commentOwner: e, parameters: o.right.parameters, hasReturn: H6(o.right, t) } : { commentOwner: e };
      }
      case 169:
        const i = e.initializer;
        if (i && (Bs(i) || Js(i)))
          return { commentOwner: e, parameters: i.parameters, hasReturn: H6(i, t) };
    }
  }
  function H6(e, t) {
    return !!(t != null && t.generateReturnInDocTemplate) && (Ch(e) || Js(e) && vt(e.body) || Qs(e) && e.body && co(e.body) && !!cT(e.body, (r) => r));
  }
  function CWe(e) {
    for (; e.kind === 214; )
      e = e.expression;
    switch (e.kind) {
      case 215:
      case 216:
        return e;
      case 228:
        return nn(e.members, ql);
    }
  }
  var Qte, uxe, dxe, fxe, LWe = C({
    "src/services/jsDoc.ts"() {
      $r(), Qte = [
        "abstract",
        "access",
        "alias",
        "argument",
        "async",
        "augments",
        "author",
        "borrows",
        "callback",
        "class",
        "classdesc",
        "constant",
        "constructor",
        "constructs",
        "copyright",
        "default",
        "deprecated",
        "description",
        "emits",
        "enum",
        "event",
        "example",
        "exports",
        "extends",
        "external",
        "field",
        "file",
        "fileoverview",
        "fires",
        "function",
        "generator",
        "global",
        "hideconstructor",
        "host",
        "ignore",
        "implements",
        "inheritdoc",
        "inner",
        "instance",
        "interface",
        "kind",
        "lends",
        "license",
        "link",
        "linkcode",
        "linkplain",
        "listens",
        "member",
        "memberof",
        "method",
        "mixes",
        "module",
        "name",
        "namespace",
        "overload",
        "override",
        "package",
        "param",
        "private",
        "prop",
        "property",
        "protected",
        "public",
        "readonly",
        "requires",
        "returns",
        "satisfies",
        "see",
        "since",
        "static",
        "summary",
        "template",
        "this",
        "throws",
        "todo",
        "tutorial",
        "type",
        "typedef",
        "var",
        "variation",
        "version",
        "virtual",
        "yields"
      ], fxe = cxe;
    }
  }), lb = {};
  ne(lb, {
    getDocCommentTemplateAtPosition: () => EWe,
    getJSDocParameterNameCompletionDetails: () => bWe,
    getJSDocParameterNameCompletions: () => vWe,
    getJSDocTagCompletionDetails: () => cxe,
    getJSDocTagCompletions: () => yWe,
    getJSDocTagNameCompletionDetails: () => fxe,
    getJSDocTagNameCompletions: () => gWe,
    getJsDocCommentsFromDeclarations: () => dWe,
    getJsDocTagsFromDeclarations: () => pWe
  });
  var IWe = C({
    "src/services/_namespaces/ts.JsDoc.ts"() {
      LWe();
    }
  });
  function kWe(e, t, r, i, o, s) {
    const c = gr.ChangeTracker.fromContext({ host: r, formatContext: t, preferences: o }), f = s === "SortAndCombine" || s === "All", d = f, y = s === "RemoveUnused" || s === "All", h = Zte(e, e.statements.filter(Wc)), E = qWe(o, f ? () => mxe(h, o) === 2 : void 0), A = (I) => (y && (I = DWe(I, e, i)), d && (I = _xe(I, E, e)), f && (I = sy(I, (O, k) => ine(O, k, E))), I);
    if (h.forEach((I) => L(I, A)), s !== "RemoveUnused") {
      const I = e.statements.filter(eu);
      L(I, (O) => ene(O, E));
    }
    for (const I of e.statements.filter(Pu)) {
      if (!I.body)
        continue;
      if (Zte(e, I.body.statements.filter(Wc)).forEach((k) => L(k, A)), s !== "RemoveUnused") {
        const k = I.body.statements.filter(eu);
        L(k, (G) => ene(G, E));
      }
    }
    return c.getChanges();
    function L(I, O) {
      if (Le(I) === 0)
        return;
      o9(I[0]);
      const k = d ? oI(I, (H) => W6(H.moduleSpecifier)) : [I], G = f ? sy(k, (H, te) => nne(H[0].moduleSpecifier, te[0].moduleSpecifier, E)) : k, V = ca(G, (H) => W6(H[0].moduleSpecifier) ? O(H) : H);
      if (V.length === 0)
        c.deleteNodes(e, I, {
          leadingTriviaOption: gr.LeadingTriviaOption.Exclude,
          trailingTriviaOption: gr.TrailingTriviaOption.Include
        }, !0);
      else {
        const H = {
          leadingTriviaOption: gr.LeadingTriviaOption.Exclude,
          trailingTriviaOption: gr.TrailingTriviaOption.Include,
          suffix: ib(r, t.options)
        };
        c.replaceNodeWithNodes(e, I[0], V, H);
        const te = c.nodeHasTrailingComment(e, I[0], H);
        c.deleteNodes(e, I.slice(1), {
          trailingTriviaOption: gr.TrailingTriviaOption.Include
        }, te);
      }
    }
  }
  function Zte(e, t) {
    const r = dy(e.languageVersion, !1, e.languageVariant), i = [];
    let o = 0;
    for (const s of t)
      i[o] && wWe(e, s, r) && o++, i[o] || (i[o] = []), i[o].push(s);
    return i;
  }
  function wWe(e, t, r) {
    const i = t.getFullStart(), o = t.getStart();
    r.setText(e.text, i, o - i);
    let s = 0;
    for (; r.getTokenPos() < o; )
      if (r.scan() === 4 && (s++, s >= 2))
        return !0;
    return !1;
  }
  function DWe(e, t, r) {
    const i = r.getTypeChecker(), o = r.getCompilerOptions(), s = i.getJsxNamespace(t), c = i.getJsxFragmentFactory(t), f = !!(t.transformFlags & 2), d = [];
    for (const h of e) {
      const { importClause: E, moduleSpecifier: A } = h;
      if (!E) {
        d.push(h);
        continue;
      }
      let { name: L, namedBindings: I } = E;
      if (L && !y(L) && (L = void 0), I)
        if (Gv(I))
          y(I.name) || (I = void 0);
        else {
          const O = I.elements.filter((k) => y(k.name));
          O.length < I.elements.length && (I = O.length ? N.updateNamedImports(I, O) : void 0);
        }
      L || I ? d.push(Pw(h, L, I)) : RWe(t, A) && (t.isDeclarationFile ? d.push(N.createImportDeclaration(h.modifiers, void 0, A, void 0)) : d.push(h));
    }
    return d;
    function y(h) {
      return f && (h.text === s || c && h.text === c) && mQ(o.jsx) || ul.Core.isSymbolReferencedInFile(h, i, t);
    }
  }
  function RWe(e, t) {
    const r = jo(t) && t.text;
    return Ha(r) && kt(e.moduleAugmentations, (i) => jo(i) && i.text === r);
  }
  function W6(e) {
    return e !== void 0 && xs(e) ? e.text : void 0;
  }
  function NWe(e, t, r) {
    const i = UG(t);
    return _xe(e, i, r);
  }
  function _xe(e, t, r) {
    if (e.length === 0)
      return e;
    const { importWithoutClause: i, typeOnlyImports: o, regularImports: s } = OWe(e), c = [];
    i && c.push(i);
    for (const f of [s, o]) {
      const d = f === o, { defaultImports: y, namespaceImports: h, namedImports: E } = f;
      if (!d && y.length === 1 && h.length === 1 && E.length === 0) {
        const te = y[0];
        c.push(Pw(te, te.importClause.name, h[0].importClause.namedBindings));
        continue;
      }
      const A = sy(h, (te, X) => t(te.importClause.namedBindings.name.text, X.importClause.namedBindings.name.text));
      for (const te of A)
        c.push(Pw(te, void 0, te.importClause.namedBindings));
      const L = Yc(y), I = Yc(E), O = L ?? I;
      if (!O)
        continue;
      let k;
      const G = [];
      if (y.length === 1)
        k = y[0].importClause.name;
      else
        for (const te of y)
          G.push(N.createImportSpecifier(!1, N.createIdentifier("default"), te.importClause.name));
      G.push(...jWe(E));
      const V = N.createNodeArray(pxe(G, t), I == null ? void 0 : I.importClause.namedBindings.elements.hasTrailingComma), H = V.length === 0 ? k ? void 0 : N.createNamedImports(rt) : I ? N.updateNamedImports(I.importClause.namedBindings, V) : N.createNamedImports(V);
      r && H && (I != null && I.importClause.namedBindings) && !bT(I.importClause.namedBindings, r) && or(H, 2), d && k && H ? (c.push(Pw(O, k, void 0)), c.push(Pw(I ?? O, void 0, H))) : c.push(Pw(O, k, H));
    }
    return c;
  }
  function OWe(e) {
    let t;
    const r = { defaultImports: [], namespaceImports: [], namedImports: [] }, i = { defaultImports: [], namespaceImports: [], namedImports: [] };
    for (const o of e) {
      if (o.importClause === void 0) {
        t = t || o;
        continue;
      }
      const s = o.importClause.isTypeOnly ? r : i, { name: c, namedBindings: f } = o.importClause;
      c && s.defaultImports.push(o), f && (Gv(f) ? s.namespaceImports.push(o) : s.namedImports.push(o));
    }
    return {
      importWithoutClause: t,
      typeOnlyImports: r,
      regularImports: i
    };
  }
  function PWe(e, t) {
    const r = UG(t);
    return ene(e, r);
  }
  function ene(e, t) {
    if (e.length === 0)
      return e;
    const { exportWithoutClause: r, namedExports: i, typeOnlyExports: o } = c(e), s = [];
    r && s.push(r);
    for (const f of [i, o]) {
      if (f.length === 0)
        continue;
      const d = [];
      d.push(...ca(f, (E) => E.exportClause && J_(E.exportClause) ? E.exportClause.elements : rt));
      const y = pxe(d, t), h = f[0];
      s.push(N.updateExportDeclaration(h, h.modifiers, h.isTypeOnly, h.exportClause && (J_(h.exportClause) ? N.updateNamedExports(h.exportClause, y) : N.updateNamespaceExport(h.exportClause, h.exportClause.name)), h.moduleSpecifier, h.assertClause));
    }
    return s;
    function c(f) {
      let d;
      const y = [], h = [];
      for (const E of f)
        E.exportClause === void 0 ? d = d || E : E.isTypeOnly ? h.push(E) : y.push(E);
      return {
        exportWithoutClause: d,
        namedExports: y,
        typeOnlyExports: h
      };
    }
  }
  function Pw(e, t, r) {
    return N.updateImportDeclaration(e, e.modifiers, N.updateImportClause(e.importClause, e.importClause.isTypeOnly, t, r), e.moduleSpecifier, e.assertClause);
  }
  function pxe(e, t) {
    return sy(e, (r, i) => tne(r, i, t));
  }
  function tne(e, t, r) {
    return r1(e.isTypeOnly, t.isTypeOnly) || r(e.name.text, t.name.text);
  }
  function MWe(e, t, r) {
    const i = UG(!!r);
    return nne(e, t, i);
  }
  function nne(e, t, r) {
    const i = e === void 0 ? void 0 : W6(e), o = t === void 0 ? void 0 : W6(t);
    return r1(i === void 0, o === void 0) || r1(Gc(i), Gc(o)) || r(i, o);
  }
  function rne(e) {
    var t;
    switch (e.kind) {
      case 268:
        return (t = ai(e.moduleReference, zm)) == null ? void 0 : t.expression;
      case 269:
        return e.moduleSpecifier;
      case 240:
        return e.declarationList.declarations[0].initializer.arguments[0];
    }
  }
  function FWe(e, t) {
    return mxe(Zte(e, e.statements.filter(Wc)), t);
  }
  function mxe(e, t) {
    const r = i2(t, !1), i = i2(t, !0);
    let o = 3, s = !1;
    for (const c of e) {
      if (c.length > 1) {
        const d = G4(c, (y) => {
          var h, E;
          return (E = (h = ai(y.moduleSpecifier, jo)) == null ? void 0 : h.text) != null ? E : "";
        }, r, i);
        if (d && (o &= d, s = !0), !o)
          return o;
      }
      const f = nn(c, (d) => {
        var y, h;
        return ((h = ai((y = d.importClause) == null ? void 0 : y.namedBindings, xy)) == null ? void 0 : h.elements.length) > 1;
      });
      if (f) {
        const d = ane(f.importClause.namedBindings.elements, t);
        if (d && (o &= d, s = !0), !o)
          return o;
      }
      if (o !== 3)
        return o;
    }
    return s ? 0 : o;
  }
  function BWe(e, t) {
    const r = i2(t, !1), i = i2(t, !0);
    return G4(e, (o) => W6(rne(o)) || "", r, i);
  }
  function GWe(e, t, r) {
    const i = yv(e, t, ml, (o, s) => ine(o, s, r));
    return i < 0 ? ~i : i;
  }
  function UWe(e, t, r) {
    const i = yv(e, t, ml, (o, s) => tne(o, s, r));
    return i < 0 ? ~i : i;
  }
  function ine(e, t, r) {
    return nne(rne(e), rne(t), r) || VWe(e, t);
  }
  function VWe(e, t) {
    return Ws(hxe(e), hxe(t));
  }
  function hxe(e) {
    var t;
    switch (e.kind) {
      case 269:
        return e.importClause ? e.importClause.isTypeOnly ? 1 : ((t = e.importClause.namedBindings) == null ? void 0 : t.kind) === 271 ? 2 : e.importClause.name ? 3 : 4 : 0;
      case 268:
        return 5;
      case 240:
        return 6;
    }
  }
  function jWe(e) {
    return ca(e, (t) => jt(HWe(t), (r) => r.name && r.propertyName && r.name.escapedText === r.propertyName.escapedText ? N.updateImportSpecifier(r, r.isTypeOnly, void 0, r.name) : r));
  }
  function HWe(e) {
    var t;
    return (t = e.importClause) != null && t.namedBindings && xy(e.importClause.namedBindings) ? e.importClause.namedBindings.elements : void 0;
  }
  function UG(e) {
    return e ? Ose : Nu;
  }
  function WWe(e, t) {
    var r, i, o;
    const s = zWe(t), c = (r = t.organizeImportsCaseFirst) != null ? r : !1, f = (i = t.organizeImportsNumericCollation) != null ? i : !1, d = (o = t.organizeImportsAccentCollation) != null ? o : !0, y = e ? d ? "accent" : "base" : d ? "variant" : "case";
    return new Intl.Collator(s, {
      usage: "sort",
      caseFirst: c || "false",
      sensitivity: y,
      numeric: f
    }).compare;
  }
  function zWe(e) {
    let t = e.organizeImportsLocale;
    t === "auto" && (t = Pse()), t === void 0 && (t = "en");
    const r = Intl.Collator.supportedLocalesOf(t);
    return r.length ? r[0] : "en";
  }
  function i2(e, t) {
    var r;
    return ((r = e.organizeImportsCollation) != null ? r : "ordinal") === "unicode" ? WWe(t, e) : UG(t);
  }
  function qWe(e, t) {
    var r;
    const i = typeof e.organizeImportsIgnoreCase == "boolean" ? e.organizeImportsIgnoreCase : (r = t == null ? void 0 : t()) != null ? r : !1;
    return i2(e, i);
  }
  var gxe, ane, JWe = C({
    "src/services/organizeImports.ts"() {
      $r(), gxe = class {
        has([e, t]) {
          return this._lastPreferences !== t || !this._cache ? !1 : this._cache.has(e);
        }
        get([e, t]) {
          if (!(this._lastPreferences !== t || !this._cache))
            return this._cache.get(e);
        }
        set([e, t], r) {
          var i;
          this._lastPreferences !== t && (this._lastPreferences = t, this._cache = void 0), (i = this._cache) != null || (this._cache = /* @__PURE__ */ new WeakMap()), this._cache.set(e, r);
        }
      }, ane = Rse((e, t) => {
        if (!Tse(e, (o, s) => r1(o.isTypeOnly, s.isTypeOnly)))
          return 0;
        const r = i2(t, !1), i = i2(t, !0);
        return G4(e, (o) => o.name.text, r, i);
      }, new gxe());
    }
  }), $_ = {};
  ne($_, {
    coalesceExports: () => PWe,
    coalesceImports: () => NWe,
    compareImportOrExportSpecifiers: () => tne,
    compareImportsOrRequireStatements: () => ine,
    compareModuleSpecifiers: () => MWe,
    detectImportDeclarationSorting: () => BWe,
    detectImportSpecifierSorting: () => ane,
    detectSorting: () => FWe,
    getImportDeclarationInsertionIndex: () => GWe,
    getImportSpecifierInsertionIndex: () => UWe,
    getOrganizeImportsComparer: () => i2,
    organizeImports: () => kWe
  });
  var KWe = C({
    "src/services/_namespaces/ts.OrganizeImports.ts"() {
      JWe();
    }
  });
  function XWe(e, t) {
    const r = [];
    return YWe(e, t, r), $We(e, r), r.sort((i, o) => i.textSpan.start - o.textSpan.start);
  }
  function YWe(e, t, r) {
    let i = 40, o = 0;
    const s = [...e.statements, e.endOfFileToken], c = s.length;
    for (; o < c; ) {
      for (; o < c && !lT(s[o]); )
        f(s[o]), o++;
      if (o === c)
        break;
      const d = o;
      for (; o < c && lT(s[o]); )
        f(s[o]), o++;
      const y = o - 1;
      y !== d && r.push(z6(bs(s[d], 100, e).getStart(e), s[y].getEnd(), "imports"));
    }
    function f(d) {
      var y;
      if (i === 0)
        return;
      t.throwIfCancellationRequested(), (vu(d) || uc(d) || bp(d) || lg(d) || d.kind === 1) && vxe(d, e, t, r), Ka(d) && br(d.parent) && Fr(d.parent.left) && vxe(d.parent.left, e, t, r), (co(d) || tm(d)) && one(d.statements.end, e, t, r), (di(d) || nd(d)) && one(d.members.end, e, t, r);
      const h = QWe(d, e);
      h && r.push(h), i--, no(d) ? (i++, f(d.expression), i--, d.arguments.forEach(f), (y = d.typeArguments) == null || y.forEach(f)) : CT(d) && d.elseStatement && CT(d.elseStatement) ? (f(d.expression), f(d.thenStatement), i++, f(d.elseStatement), i--) : d.forEachChild(f), i++;
    }
  }
  function $We(e, t) {
    const r = [], i = e.getLineStarts();
    for (const o of i) {
      const s = e.getLineEndOfPosition(o), c = e.text.substring(o, s), f = yxe(c);
      if (!(!f || ky(e, o)))
        if (f[1]) {
          const d = r.pop();
          d && (d.textSpan.length = s - d.textSpan.start, d.hintSpan.length = s - d.textSpan.start, t.push(d));
        } else {
          const d = hc(e.text.indexOf("//", o), s);
          r.push(tS(d, "region", d, !1, f[2] || "#region"));
        }
    }
  }
  function yxe(e) {
    return e = cI(e), xa(e, "//") ? (e = a1(e.slice(2)), bxe.exec(e)) : null;
  }
  function one(e, t, r, i) {
    const o = ph(t.text, e);
    if (!o)
      return;
    let s = -1, c = -1, f = 0;
    const d = t.getFullText();
    for (const { kind: h, pos: E, end: A } of o)
      switch (r.throwIfCancellationRequested(), h) {
        case 2:
          const L = d.slice(E, A);
          if (yxe(L)) {
            y(), f = 0;
            break;
          }
          f === 0 && (s = E), c = A, f++;
          break;
        case 3:
          y(), i.push(z6(E, A, "comment")), f = 0;
          break;
        default:
          D.assertNever(h);
      }
    y();
    function y() {
      f > 1 && i.push(z6(s, c, "comment"));
    }
  }
  function vxe(e, t, r, i) {
    vx(e) || one(e.pos, t, r, i);
  }
  function z6(e, t, r) {
    return tS(hc(e, t), r);
  }
  function QWe(e, t) {
    switch (e.kind) {
      case 238:
        if (Ka(e.parent))
          return ZWe(e.parent, e, t);
        switch (e.parent.kind) {
          case 243:
          case 246:
          case 247:
          case 245:
          case 242:
          case 244:
          case 251:
          case 295:
            return h(e.parent);
          case 255:
            const L = e.parent;
            if (L.tryBlock === e)
              return h(e.parent);
            if (L.finallyBlock === e) {
              const I = bs(L, 96, t);
              if (I)
                return h(I);
            }
          default:
            return tS(rd(e, t), "code");
        }
      case 265:
        return h(e.parent);
      case 260:
      case 228:
      case 261:
      case 263:
      case 266:
      case 184:
      case 203:
        return h(e);
      case 186:
        return h(e, !1, !gC(e.parent), 22);
      case 292:
      case 293:
        return E(e.statements);
      case 207:
        return y(e);
      case 206:
        return y(e, 22);
      case 281:
        return s(e);
      case 285:
        return c(e);
      case 282:
      case 283:
        return f(e.attributes);
      case 225:
      case 14:
        return d(e);
      case 204:
        return h(e, !1, !_s(e.parent), 22);
      case 216:
        return o(e);
      case 210:
        return i(e);
      case 214:
        return A(e);
      case 272:
      case 276:
      case 296:
        return r(e);
    }
    function r(L) {
      if (!L.elements.length)
        return;
      const I = bs(L, 18, t), O = bs(L, 19, t);
      if (!(!I || !O || g_(I.pos, O.pos, t)))
        return VG(I, O, L, t, !1, !1);
    }
    function i(L) {
      if (!L.arguments.length)
        return;
      const I = bs(L, 20, t), O = bs(L, 21, t);
      if (!(!I || !O || g_(I.pos, O.pos, t)))
        return VG(I, O, L, t, !1, !0);
    }
    function o(L) {
      if (co(L.body) || Vd(L.body) || g_(L.body.getFullStart(), L.body.getEnd(), t))
        return;
      const I = hc(L.body.getFullStart(), L.body.getEnd());
      return tS(I, "code", rd(L));
    }
    function s(L) {
      const I = hc(L.openingElement.getStart(t), L.closingElement.getEnd()), O = L.openingElement.tagName.getText(t), k = "<" + O + ">...</" + O + ">";
      return tS(I, "code", I, !1, k);
    }
    function c(L) {
      const I = hc(L.openingFragment.getStart(t), L.closingFragment.getEnd());
      return tS(I, "code", I, !1, "<>...</>");
    }
    function f(L) {
      if (L.properties.length !== 0)
        return z6(L.getStart(t), L.getEnd(), "code");
    }
    function d(L) {
      if (!(L.kind === 14 && L.text.length === 0))
        return z6(L.getStart(t), L.getEnd(), "code");
    }
    function y(L, I = 18) {
      return h(L, !1, !Bu(L.parent) && !no(L.parent), I);
    }
    function h(L, I = !1, O = !0, k = 18, G = k === 18 ? 19 : 23) {
      const V = bs(e, k, t), H = bs(e, G, t);
      return V && H && VG(V, H, L, t, I, O);
    }
    function E(L) {
      return L.length ? tS(qv(L), "code") : void 0;
    }
    function A(L) {
      if (g_(L.getStart(), L.getEnd(), t))
        return;
      const I = hc(L.getStart(), L.getEnd());
      return tS(I, "code", rd(L));
    }
  }
  function ZWe(e, t, r) {
    const i = eze(e, t, r), o = bs(t, 19, r);
    return i && o && VG(i, o, e, r, e.kind !== 216);
  }
  function VG(e, t, r, i, o = !1, s = !0) {
    const c = hc(s ? e.getFullStart() : e.getStart(i), t.getEnd());
    return tS(c, "code", rd(r, i), o);
  }
  function tS(e, t, r = e, i = !1, o = "...") {
    return { textSpan: e, kind: t, hintSpan: r, bannerText: o, autoCollapse: i };
  }
  function eze(e, t, r) {
    if (hde(e.parameters, r)) {
      const i = bs(e, 20, r);
      if (i)
        return i;
    }
    return bs(t, 18, r);
  }
  var bxe, tze = C({
    "src/services/outliningElementsCollector.ts"() {
      $r(), bxe = /^#(end)?region(?:\s+(.*))?(?:\r)?$/;
    }
  }), sne = {};
  ne(sne, {
    collectElements: () => XWe
  });
  var nze = C({
    "src/services/_namespaces/ts.OutliningElementsCollector.ts"() {
      tze();
    }
  });
  function Tg(e, t) {
    jG.set(e, t);
  }
  function rze(e) {
    return Ro(u_(jG.values(), (t) => {
      var r;
      return e.cancellationToken && e.cancellationToken.isCancellationRequested() || !((r = t.kinds) != null && r.some((i) => $v(i, e.kind))) ? void 0 : t.getAvailableActions(e);
    }));
  }
  function ize(e, t, r) {
    const i = jG.get(t);
    return i && i.getEditsForAction(e, r);
  }
  var jG, aze = C({
    "src/services/refactorProvider.ts"() {
      $r(), Rh(), jG = /* @__PURE__ */ new Map();
    }
  });
  function Exe(e, t = !0) {
    const { file: r, program: i } = e, o = zx(e), s = aa(r, o.start), c = s.parent && Nv(s.parent) & 1 && t ? s.parent : c6(s, r, o);
    if (!c || !qi(c.parent) && !(tm(c.parent) && Pu(c.parent.parent)))
      return { error: Oo(_.Could_not_find_export_statement) };
    const f = i.getTypeChecker(), d = dze(c.parent, f), y = Nv(c) || (Bl(c) && !c.isExportEquals ? 1025 : 0), h = !!(y & 1024);
    if (!(y & 1) || !h && d.exports.has("default"))
      return { error: Oo(_.This_file_already_has_a_default_export) };
    const E = (A) => je(A) && f.getSymbolAtLocation(A) ? void 0 : { error: Oo(_.Can_only_convert_named_export) };
    switch (c.kind) {
      case 259:
      case 260:
      case 261:
      case 263:
      case 262:
      case 264: {
        const A = c;
        return A.name ? E(A.name) || { exportNode: A, exportName: A.name, wasDefault: h, exportingModuleSymbol: d } : void 0;
      }
      case 240: {
        const A = c;
        if (!(A.declarationList.flags & 2) || A.declarationList.declarations.length !== 1)
          return;
        const L = us(A.declarationList.declarations);
        return L.initializer ? (D.assert(!h, "Can't have a default flag here"), E(L.name) || { exportNode: A, exportName: L.name, wasDefault: h, exportingModuleSymbol: d }) : void 0;
      }
      case 274: {
        const A = c;
        return A.isExportEquals ? void 0 : E(A.expression) || { exportNode: A, exportName: A.expression, wasDefault: h, exportingModuleSymbol: d };
      }
      default:
        return;
    }
  }
  function oze(e, t, r, i, o) {
    sze(e, r, i, t.getTypeChecker()), lze(t, r, i, o);
  }
  function sze(e, { wasDefault: t, exportNode: r, exportName: i }, o, s) {
    if (t)
      if (Bl(r) && !r.isExportEquals) {
        const c = r.expression, f = Txe(c.text, c.text);
        o.replaceNode(e, r, N.createExportDeclaration(void 0, !1, N.createNamedExports([f])));
      } else
        o.delete(e, D.checkDefined(KC(r, 88), "Should find a default keyword in modifier list"));
    else {
      const c = D.checkDefined(KC(r, 93), "Should find an export keyword in modifier list");
      switch (r.kind) {
        case 259:
        case 260:
        case 261:
          o.insertNodeAfter(e, c, N.createToken(88));
          break;
        case 240:
          const f = us(r.declarationList.declarations);
          if (!ul.Core.isSymbolReferencedInFile(i, s, e) && !f.type) {
            o.replaceNode(e, r, N.createExportDefault(D.checkDefined(f.initializer, "Initializer was previously known to be present")));
            break;
          }
        case 263:
        case 262:
        case 264:
          o.deleteModifier(e, c), o.insertNodeAfter(e, r, N.createExportDefault(N.createIdentifier(i.text)));
          break;
        default:
          D.fail(`Unexpected exportNode kind ${r.kind}`);
      }
    }
  }
  function lze(e, { wasDefault: t, exportName: r, exportingModuleSymbol: i }, o, s) {
    const c = e.getTypeChecker(), f = D.checkDefined(c.getSymbolAtLocation(r), "Export name should resolve to a symbol");
    ul.Core.eachExportReference(e.getSourceFiles(), c, s, f, i, r.text, t, (d) => {
      if (r === d)
        return;
      const y = d.getSourceFile();
      t ? cze(y, d, o, r.text) : uze(y, d, o);
    });
  }
  function cze(e, t, r, i) {
    const { parent: o } = t;
    switch (o.kind) {
      case 208:
        r.replaceNode(e, t, N.createIdentifier(i));
        break;
      case 273:
      case 278: {
        const c = o;
        r.replaceNode(e, c, lne(i, c.name.text));
        break;
      }
      case 270: {
        const c = o;
        D.assert(c.name === t, "Import clause name should match provided ref");
        const f = lne(i, t.text), { namedBindings: d } = c;
        if (!d)
          r.replaceNode(e, t, N.createNamedImports([f]));
        else if (d.kind === 271) {
          r.deleteRange(e, { pos: t.getStart(e), end: d.getStart(e) });
          const y = jo(c.parent.moduleSpecifier) ? z$(c.parent.moduleSpecifier, e) : 1, h = Dy(void 0, [lne(i, t.text)], c.parent.moduleSpecifier, y);
          r.insertNodeAfter(e, c.parent, h);
        } else
          r.delete(e, t), r.insertNodeAtEndOfList(e, d.elements, f);
        break;
      }
      case 202:
        const s = o;
        r.replaceNode(e, o, N.createImportTypeNode(s.argument, s.assertions, N.createIdentifier(i), s.typeArguments, s.isTypeOf));
        break;
      default:
        D.failBadSyntaxKind(o);
    }
  }
  function uze(e, t, r) {
    const i = t.parent;
    switch (i.kind) {
      case 208:
        r.replaceNode(e, t, N.createIdentifier("default"));
        break;
      case 273: {
        const o = N.createIdentifier(i.name.text);
        i.parent.elements.length === 1 ? r.replaceNode(e, i.parent, o) : (r.delete(e, i), r.insertNodeBefore(e, i.parent, o));
        break;
      }
      case 278: {
        r.replaceNode(e, i, Txe("default", i.name.text));
        break;
      }
      default:
        D.assertNever(i, `Unexpected parent kind ${i.kind}`);
    }
  }
  function lne(e, t) {
    return N.createImportSpecifier(!1, e === t ? void 0 : N.createIdentifier(e), N.createIdentifier(t));
  }
  function Txe(e, t) {
    return N.createExportSpecifier(!1, e === t ? void 0 : N.createIdentifier(e), N.createIdentifier(t));
  }
  function dze(e, t) {
    if (qi(e))
      return e.symbol;
    const r = e.parent.symbol;
    return r.valueDeclaration && h1(r.valueDeclaration) ? t.getMergedSymbol(r) : r;
  }
  var HG, q6, J6, fze = C({
    "src/services/refactors/convertExport.ts"() {
      $r(), Rh(), HG = "Convert export", q6 = {
        name: "Convert default export to named export",
        description: _.Convert_default_export_to_named_export.message,
        kind: "refactor.rewrite.export.named"
      }, J6 = {
        name: "Convert named export to default export",
        description: _.Convert_named_export_to_default_export.message,
        kind: "refactor.rewrite.export.default"
      }, Tg(HG, {
        kinds: [
          q6.kind,
          J6.kind
        ],
        getAvailableActions: function(t) {
          const r = Exe(t, t.triggerReason === "invoked");
          if (!r)
            return rt;
          if (!Dh(r)) {
            const i = r.wasDefault ? q6 : J6;
            return [{ name: HG, description: i.description, actions: [i] }];
          }
          return t.preferences.provideRefactorNotApplicableReason ? [
            { name: HG, description: _.Convert_default_export_to_named_export.message, actions: [
              { ...q6, notApplicableReason: r.error },
              { ...J6, notApplicableReason: r.error }
            ] }
          ] : rt;
        },
        getEditsForAction: function(t, r) {
          D.assert(r === q6.name || r === J6.name, "Unexpected action name");
          const i = Exe(t);
          return D.assert(i && !Dh(i), "Expected applicable refactor info"), { edits: gr.ChangeTracker.with(t, (s) => oze(t.file, t.program, i, s, t.cancellationToken)), renameFilename: void 0, renameLocation: void 0 };
        }
      });
    }
  });
  function Sxe(e, t = !0) {
    const { file: r } = e, i = zx(e), o = aa(r, i.start), s = t ? nr(o, Wc) : c6(o, r, i);
    if (!s || !Wc(s))
      return { error: "Selection is not an import declaration." };
    const c = i.start + i.length, f = zT(s, s.parent, r);
    if (f && c > f.getStart())
      return;
    const { importClause: d } = s;
    return d ? d.namedBindings ? d.namedBindings.kind === 271 ? { convertTo: 0, import: d.namedBindings } : xxe(e.program, d) ? { convertTo: 1, import: d.namedBindings } : { convertTo: 2, import: d.namedBindings } : { error: Oo(_.Could_not_find_namespace_import_or_named_imports) } : { error: Oo(_.Could_not_find_import_clause) };
  }
  function xxe(e, t) {
    return ET(e.getCompilerOptions()) && hze(t.parent.moduleSpecifier, e.getTypeChecker());
  }
  function _ze(e, t, r, i) {
    const o = t.getTypeChecker();
    i.convertTo === 0 ? pze(e, o, r, i.import, ET(t.getCompilerOptions())) : Cxe(e, t, r, i.import, i.convertTo === 1);
  }
  function pze(e, t, r, i, o) {
    let s = !1;
    const c = [], f = /* @__PURE__ */ new Map();
    ul.Core.eachSymbolReferenceInFile(i.name, t, e, (E) => {
      if (!Sce(E.parent))
        s = !0;
      else {
        const A = Axe(E.parent).text;
        t.resolveName(A, E, 67108863, !0) && f.set(A, !0), D.assert(mze(E.parent) === E, "Parent expression should match id"), c.push(E.parent);
      }
    });
    const d = /* @__PURE__ */ new Map();
    for (const E of c) {
      const A = Axe(E).text;
      let L = d.get(A);
      L === void 0 && d.set(A, L = f.has(A) ? KT(A, e) : A), r.replaceNode(e, E, N.createIdentifier(L));
    }
    const y = [];
    d.forEach((E, A) => {
      y.push(N.createImportSpecifier(!1, E === A ? void 0 : N.createIdentifier(A), N.createIdentifier(E)));
    });
    const h = i.parent.parent;
    s && !o ? r.insertNodeAfter(e, h, cne(h, void 0, y)) : r.replaceNode(e, h, cne(h, s ? N.createIdentifier(i.name.text) : void 0, y));
  }
  function Axe(e) {
    return Fr(e) ? e.name : e.right;
  }
  function mze(e) {
    return Fr(e) ? e.expression : e.left;
  }
  function Cxe(e, t, r, i, o = xxe(t, i.parent)) {
    const s = t.getTypeChecker(), c = i.parent.parent, { moduleSpecifier: f } = c, d = /* @__PURE__ */ new Set();
    i.elements.forEach((I) => {
      const O = s.getSymbolAtLocation(I.name);
      O && d.add(O);
    });
    const y = f && jo(f) ? Hu.moduleSpecifierToValidIdentifier(f.text, 99) : "module";
    function h(I) {
      return !!ul.Core.eachSymbolReferenceInFile(I.name, s, e, (O) => {
        const k = s.resolveName(y, O, 67108863, !0);
        return k ? d.has(k) ? dd(O.parent) : !0 : !1;
      });
    }
    const A = i.elements.some(h) ? KT(y, e) : y, L = /* @__PURE__ */ new Set();
    for (const I of i.elements) {
      const O = (I.propertyName || I.name).text;
      ul.Core.eachSymbolReferenceInFile(I.name, s, e, (k) => {
        const G = N.createPropertyAccessExpression(N.createIdentifier(A), O);
        t_(k.parent) ? r.replaceNode(e, k.parent, N.createPropertyAssignment(k.text, G)) : dd(k.parent) ? L.add(I) : r.replaceNode(e, k, G);
      });
    }
    if (r.replaceNode(e, i, o ? N.createIdentifier(A) : N.createNamespaceImport(N.createIdentifier(A))), L.size) {
      const I = Ro(L.values(), (O) => N.createImportSpecifier(O.isTypeOnly, O.propertyName && N.createIdentifier(O.propertyName.text), N.createIdentifier(O.name.text)));
      r.insertNodeAfter(e, i.parent.parent, cne(c, void 0, I));
    }
  }
  function hze(e, t) {
    const r = t.resolveExternalModuleName(e);
    if (!r)
      return !1;
    const i = t.resolveExternalModuleSymbol(r);
    return r !== i;
  }
  function cne(e, t, r) {
    return N.createImportDeclaration(void 0, N.createImportClause(!1, t, r && r.length ? N.createNamedImports(r) : void 0), e.moduleSpecifier, void 0);
  }
  var WG, K6, gze = C({
    "src/services/refactors/convertImport.ts"() {
      $r(), Rh(), WG = "Convert import", K6 = {
        0: {
          name: "Convert namespace import to named imports",
          description: _.Convert_namespace_import_to_named_imports.message,
          kind: "refactor.rewrite.import.named"
        },
        2: {
          name: "Convert named imports to namespace import",
          description: _.Convert_named_imports_to_namespace_import.message,
          kind: "refactor.rewrite.import.namespace"
        },
        1: {
          name: "Convert named imports to default import",
          description: _.Convert_named_imports_to_default_import.message,
          kind: "refactor.rewrite.import.default"
        }
      }, Tg(WG, {
        kinds: MS(K6).map((e) => e.kind),
        getAvailableActions: function(t) {
          const r = Sxe(t, t.triggerReason === "invoked");
          if (!r)
            return rt;
          if (!Dh(r)) {
            const i = K6[r.convertTo];
            return [{ name: WG, description: i.description, actions: [i] }];
          }
          return t.preferences.provideRefactorNotApplicableReason ? MS(K6).map((i) => ({
            name: WG,
            description: i.description,
            actions: [{ ...i, notApplicableReason: r.error }]
          })) : rt;
        },
        getEditsForAction: function(t, r) {
          D.assert(kt(MS(K6), (s) => s.name === r), "Unexpected action name");
          const i = Sxe(t);
          return D.assert(i && !Dh(i), "Expected applicable refactor info"), { edits: gr.ChangeTracker.with(t, (s) => _ze(t.file, t.program, s, i)), renameFilename: void 0, renameLocation: void 0 };
        }
      });
    }
  });
  function Lxe(e, t = !0) {
    const { file: r, startPosition: i } = e, o = Zu(r), s = aa(r, i), c = KF(zx(e)), f = c.pos === c.end && t, d = nr(s, (L) => L.parent && Gi(L) && !cb(c, L.parent, r) && (f || L$(s, r, c.pos, c.end)));
    if (!d || !Gi(d))
      return { error: Oo(_.Selection_is_not_a_valid_type_node) };
    const y = e.program.getTypeChecker(), h = Tze(d, o);
    if (h === void 0)
      return { error: Oo(_.No_type_could_be_extracted_from_this_type_node) };
    const E = yze(y, d, h, r);
    if (!E)
      return { error: Oo(_.No_type_could_be_extracted_from_this_type_node) };
    const A = une(y, d);
    return { isJS: o, selection: d, enclosingNode: h, typeParameters: E, typeElements: A };
  }
  function une(e, t) {
    if (t)
      if (DO(t)) {
        const r = [], i = /* @__PURE__ */ new Map();
        for (const o of t.types) {
          const s = une(e, o);
          if (!s || !s.every((c) => c.name && vp(i, s6(c.name))))
            return;
          Ti(r, s);
        }
        return r;
      } else {
        if (xx(t))
          return une(e, t.type);
        if (uf(t))
          return t.members;
      }
  }
  function cb(e, t, r) {
    return Z8(e, Ko(r.text, t.pos), t.end);
  }
  function yze(e, t, r, i) {
    const o = [];
    return s(t) ? void 0 : o;
    function s(c) {
      if (q_(c)) {
        if (je(c.typeName)) {
          const f = c.typeName, d = e.resolveName(f.text, f, 262144, !0);
          for (const y of (d == null ? void 0 : d.declarations) || rt)
            if (Fl(y) && y.getSourceFile() === i) {
              if (y.name.escapedText === f.escapedText && cb(y, t, i))
                return !0;
              if (cb(r, y, i) && !cb(t, y, i)) {
                d_(o, y);
                break;
              }
            }
        }
      } else if (vC(c)) {
        const f = nr(c, (d) => yC(d) && cb(d.extendsType, c, i));
        if (!f || !cb(t, f, i))
          return !0;
      } else if (G7(c) || U7(c)) {
        const f = nr(c.parent, Ka);
        if (f && f.type && cb(f.type, c, i) && !cb(t, f, i))
          return !0;
      } else if (kk(c)) {
        if (je(c.exprName)) {
          const f = e.resolveName(c.exprName.text, c.exprName, 111551, !1);
          if (f != null && f.valueDeclaration && cb(r, f.valueDeclaration, i) && !cb(t, f.valueDeclaration, i))
            return !0;
        } else if (yT(c.exprName.left) && !cb(t, c.parent, i))
          return !0;
      }
      return i && gC(c) && ol(i, c.pos).line === ol(i, c.end).line && or(c, 1), Ma(c, s);
    }
  }
  function vze(e, t, r, i) {
    const { enclosingNode: o, selection: s, typeParameters: c } = i, f = N.createTypeAliasDeclaration(void 0, r, c.map((d) => N.updateTypeParameterDeclaration(d, d.modifiers, d.name, d.constraint, void 0)), s);
    e.insertNodeBefore(t, o, oJ(f), !0), e.replaceNode(t, s, N.createTypeReferenceNode(r, c.map((d) => N.createTypeReferenceNode(d.name, void 0))), { leadingTriviaOption: gr.LeadingTriviaOption.Exclude, trailingTriviaOption: gr.TrailingTriviaOption.ExcludeWhitespace });
  }
  function bze(e, t, r, i) {
    var o;
    const { enclosingNode: s, selection: c, typeParameters: f, typeElements: d } = i, y = N.createInterfaceDeclaration(void 0, r, f, void 0, d);
    ht(y, (o = d[0]) == null ? void 0 : o.parent), e.insertNodeBefore(t, s, oJ(y), !0), e.replaceNode(t, c, N.createTypeReferenceNode(r, f.map((h) => N.createTypeReferenceNode(h.name, void 0))), { leadingTriviaOption: gr.LeadingTriviaOption.Exclude, trailingTriviaOption: gr.TrailingTriviaOption.ExcludeWhitespace });
  }
  function Eze(e, t, r, i, o) {
    var s;
    const { enclosingNode: c, selection: f, typeParameters: d } = o;
    or(f, 7168);
    const y = N.createJSDocTypedefTag(N.createIdentifier("typedef"), N.createJSDocTypeExpression(f), N.createIdentifier(i)), h = [];
    ze(d, (A) => {
      const L = xA(A), I = N.createTypeParameterDeclaration(void 0, A.name), O = N.createJSDocTemplateTag(N.createIdentifier("template"), L && oo(L, wT), [I]);
      h.push(O);
    });
    const E = N.createJSDocComment(void 0, N.createNodeArray(va(h, [y])));
    if (qm(c)) {
      const A = c.getStart(r), L = ib(t.host, (s = t.formatContext) == null ? void 0 : s.options);
      e.insertNodeAt(r, c.getStart(r), E, {
        suffix: L + L + r.text.slice(eQ(r.text, A - 1), A)
      });
    } else
      e.insertNodeBefore(r, c, E, !0);
    e.replaceNode(r, f, N.createTypeReferenceNode(i, d.map((A) => N.createTypeReferenceNode(A.name, void 0))));
  }
  function Tze(e, t) {
    return nr(e, wa) || (t ? nr(e, qm) : void 0);
  }
  var zG, X6, Y6, $6, Sze = C({
    "src/services/refactors/extractType.ts"() {
      $r(), Rh(), zG = "Extract type", X6 = {
        name: "Extract to type alias",
        description: Oo(_.Extract_to_type_alias),
        kind: "refactor.extract.type"
      }, Y6 = {
        name: "Extract to interface",
        description: Oo(_.Extract_to_interface),
        kind: "refactor.extract.interface"
      }, $6 = {
        name: "Extract to typedef",
        description: Oo(_.Extract_to_typedef),
        kind: "refactor.extract.typedef"
      }, Tg(zG, {
        kinds: [
          X6.kind,
          Y6.kind,
          $6.kind
        ],
        getAvailableActions: function(t) {
          const r = Lxe(t, t.triggerReason === "invoked");
          return r ? Dh(r) ? t.preferences.provideRefactorNotApplicableReason ? [{
            name: zG,
            description: Oo(_.Extract_type),
            actions: [
              { ...$6, notApplicableReason: r.error },
              { ...X6, notApplicableReason: r.error },
              { ...Y6, notApplicableReason: r.error }
            ]
          }] : rt : [{
            name: zG,
            description: Oo(_.Extract_type),
            actions: r.isJS ? [$6] : Fn([X6], r.typeElements && Y6)
          }] : rt;
        },
        getEditsForAction: function(t, r) {
          const { file: i } = t, o = Lxe(t);
          D.assert(o && !Dh(o), "Expected to find a range to extract");
          const s = KT("NewType", i), c = gr.ChangeTracker.with(t, (y) => {
            switch (r) {
              case X6.name:
                return D.assert(!o.isJS, "Invalid actionName/JS combo"), vze(y, i, s, o);
              case $6.name:
                return D.assert(o.isJS, "Invalid actionName/JS combo"), Eze(y, t, i, s, o);
              case Y6.name:
                return D.assert(!o.isJS && !!o.typeElements, "Invalid actionName/JS combo"), bze(y, i, s, o);
              default:
                D.fail("Unexpected action name");
            }
          }), f = i.fileName, d = _6(c, f, s, !1);
          return { edits: c, renameFilename: f, renameLocation: d };
        }
      });
    }
  });
  function Dh(e) {
    return e.error !== void 0;
  }
  function $v(e, t) {
    return t ? e.substr(0, t.length) === t : !0;
  }
  var xze = C({
    "src/services/refactors/helpers.ts"() {
    }
  });
  function Aze(e) {
    const { file: t } = e, r = KF(zx(e)), { statements: i } = t, o = vi(i, (f) => f.end > r.pos);
    if (o === -1)
      return;
    const s = i[o];
    if (gu(s) && s.name && df(s.name, r))
      return { toMove: [i[o]], afterLast: i[o + 1] };
    if (r.pos > s.getStart(t))
      return;
    const c = vi(i, (f) => f.end > r.end, o);
    if (!(c !== -1 && (c === 0 || i[c].getStart(t) < r.end)))
      return {
        toMove: i.slice(o, c === -1 ? i.length : c),
        afterLast: c === -1 ? void 0 : i[c]
      };
  }
  function Cze(e, t, r, i, o, s) {
    const c = t.getTypeChecker(), f = Hze(e, r.all, c), d = mi(e.fileName), y = lO(e.fileName), h = Bi(d, Vze(jze(f.oldFileImportsFromNewFile, f.movedSymbols), y, d, o)) + y;
    i.createNewFile(e, h, wze(e, f, i, r, t, o, h, s)), kze(t, i, e.fileName, h, J0(o));
  }
  function Ixe(e) {
    const t = Aze(e);
    if (t === void 0)
      return;
    const r = [], i = [], { toMove: o, afterLast: s } = t;
    return vj(o, Lze, (c, f) => {
      for (let d = c; d < f; d++)
        r.push(o[d]);
      i.push({ first: o[c], afterLast: s });
    }), r.length === 0 ? void 0 : { all: r, ranges: i };
  }
  function Lze(e) {
    return !Ize(e) && !gp(e);
  }
  function Ize(e) {
    switch (e.kind) {
      case 269:
        return !0;
      case 268:
        return !Yr(e, 1);
      case 240:
        return e.declarationList.declarations.every((t) => !!t.initializer && xd(t.initializer, !0));
      default:
        return !1;
    }
  }
  function kze(e, t, r, i, o) {
    const s = e.getCompilerOptions().configFile;
    if (!s)
      return;
    const c = Jo(Bi(r, "..", i)), f = NR(s.fileName, c, o), d = s.statements[0] && ai(s.statements[0].expression, Ls), y = d && nn(d.properties, (h) => zc(h) && jo(h.name) && h.name.text === "files");
    y && Bu(y.initializer) && t.insertNodeInListAfter(s, qo(y.initializer.elements), N.createStringLiteral(f), y.initializer.elements);
  }
  function wze(e, t, r, i, o, s, c, f) {
    const d = o.getTypeChecker(), y = X4(e.statements, gp);
    if (e.externalModuleIndicator === void 0 && e.commonJsModuleIndicator === void 0 && t.oldImportsNeededByNewFile.size() === 0)
      return kxe(e, i.ranges, r), [...y, ...i.all];
    const h = !!e.externalModuleIndicator, E = xp(e, f), A = Mze(e, t.oldFileImportsFromNewFile, c, o, s, h, E);
    A && i9(r, e, A, !0, f), Dze(e, i.all, r, t.unusedImportsFromOldFile, d), kxe(e, i.ranges, r), Rze(r, o, s, e, t.movedSymbols, c);
    const L = Uze(e, t.oldImportsNeededByNewFile, t.newFileImportsFromOldFile, r, d, o, s, h, E), I = Fze(e, i.all, t.oldFileImportsFromNewFile, h);
    return L.length && I.length ? [
      ...y,
      ...L,
      4,
      ...I
    ] : [
      ...y,
      ...L,
      ...I
    ];
  }
  function kxe(e, t, r) {
    for (const { first: i, afterLast: o } of t)
      r.deleteNodeRangeExcludingEnd(e, i, o);
  }
  function Dze(e, t, r, i, o) {
    for (const s of e.statements)
      jr(t, s) || dne(s, (c) => Nxe(e, c, r, (f) => i.has(o.getSymbolAtLocation(f))));
  }
  function Rze(e, t, r, i, o, s) {
    const c = t.getTypeChecker();
    for (const f of t.getSourceFiles())
      if (f !== i)
        for (const d of f.statements)
          dne(d, (y) => {
            if (c.getSymbolAtLocation(wxe(y)) !== i.symbol)
              return;
            const h = (O) => {
              const k = _s(O.parent) ? r9(c, O.parent) : cf(c.getSymbolAtLocation(O), c);
              return !!k && o.has(k);
            };
            Nxe(f, y, e, h);
            const E = bv(mi(i.path), s), A = F5(t.getCompilerOptions(), f, f.path, E, Wx(t, r)), L = Mxe(y, N.createStringLiteral(A), h);
            L && e.insertNodeAfter(f, d, L);
            const I = Nze(y);
            I && Oze(e, f, c, o, A, I, y);
          });
  }
  function Nze(e) {
    switch (e.kind) {
      case 269:
        return e.importClause && e.importClause.namedBindings && e.importClause.namedBindings.kind === 271 ? e.importClause.namedBindings.name : void 0;
      case 268:
        return e.name;
      case 257:
        return ai(e.name, je);
      default:
        return D.assertNever(e, `Unexpected node kind ${e.kind}`);
    }
  }
  function Oze(e, t, r, i, o, s, c) {
    const f = Hu.moduleSpecifierToValidIdentifier(o, 99);
    let d = !1;
    const y = [];
    if (ul.Core.eachSymbolReferenceInFile(s, r, t, (h) => {
      Fr(h.parent) && (d = d || !!r.resolveName(f, h, 67108863, !0), i.has(r.getSymbolAtLocation(h.parent.name)) && y.push(h));
    }), y.length) {
      const h = d ? KT(f, t) : f;
      for (const E of y)
        e.replaceNode(t, E, N.createIdentifier(h));
      e.insertNodeAfter(t, c, Pze(c, f, o));
    }
  }
  function Pze(e, t, r) {
    const i = N.createIdentifier(t), o = N.createStringLiteral(r);
    switch (e.kind) {
      case 269:
        return N.createImportDeclaration(void 0, N.createImportClause(!1, void 0, N.createNamespaceImport(i)), o, void 0);
      case 268:
        return N.createImportEqualsDeclaration(void 0, !1, i, N.createExternalModuleReference(o));
      case 257:
        return N.createVariableDeclaration(i, void 0, void 0, fne(o));
      default:
        return D.assertNever(e, `Unexpected node kind ${e.kind}`);
    }
  }
  function wxe(e) {
    return e.kind === 269 ? e.moduleSpecifier : e.kind === 268 ? e.moduleReference.expression : e.initializer.arguments[0];
  }
  function dne(e, t) {
    if (Wc(e))
      jo(e.moduleSpecifier) && t(e);
    else if (su(e))
      zm(e.moduleReference) && xs(e.moduleReference.expression) && t(e);
    else if (uc(e))
      for (const r of e.declarationList.declarations)
        r.initializer && xd(r.initializer, !0) && t(r);
  }
  function Mze(e, t, r, i, o, s, c) {
    let f;
    const d = [];
    return t.forEach((y) => {
      y.escapedName === "default" ? f = N.createIdentifier(e9(y)) : d.push(y.name);
    }), Dxe(e, f, d, r, i, o, s, c);
  }
  function Dxe(e, t, r, i, o, s, c, f) {
    const d = bv(mi(e.path), i), y = F5(o.getCompilerOptions(), e, e.path, d, Wx(o, s));
    if (c) {
      const h = r.map((E) => N.createImportSpecifier(!1, void 0, N.createIdentifier(E)));
      return Zye(t, h, y, f);
    } else {
      D.assert(!t, "No default import should exist");
      const h = r.map((E) => N.createBindingElement(void 0, void 0, E));
      return h.length ? Rxe(N.createObjectBindingPattern(h), void 0, fne(N.createStringLiteral(y))) : void 0;
    }
  }
  function Rxe(e, t, r, i = 2) {
    return N.createVariableStatement(void 0, N.createVariableDeclarationList([N.createVariableDeclaration(e, void 0, t, r)], i));
  }
  function fne(e) {
    return N.createCallExpression(N.createIdentifier("require"), void 0, [e]);
  }
  function Fze(e, t, r, i) {
    return ca(t, (o) => {
      if (Jze(o) && !Hxe(e, o, i) && Uxe(o, (s) => {
        var c;
        return r.has(D.checkDefined((c = ai(s, Rm)) == null ? void 0 : c.symbol));
      })) {
        const s = Yze(o, i);
        if (s)
          return s;
      }
      return o;
    });
  }
  function Nxe(e, t, r, i) {
    switch (t.kind) {
      case 269:
        Bze(e, t, r, i);
        break;
      case 268:
        i(t.name) && r.delete(e, t);
        break;
      case 257:
        Gze(e, t, r, i);
        break;
      default:
        D.assertNever(t, `Unexpected import decl kind ${t.kind}`);
    }
  }
  function Bze(e, t, r, i) {
    if (!t.importClause)
      return;
    const { name: o, namedBindings: s } = t.importClause, c = !o || i(o), f = !s || (s.kind === 271 ? i(s.name) : s.elements.length !== 0 && s.elements.every((d) => i(d.name)));
    if (c && f)
      r.delete(e, t);
    else if (o && c && r.delete(e, o), s) {
      if (f)
        r.replaceNode(e, t.importClause, N.updateImportClause(t.importClause, t.importClause.isTypeOnly, o, void 0));
      else if (s.kind === 272)
        for (const d of s.elements)
          i(d.name) && r.delete(e, d);
    }
  }
  function Gze(e, t, r, i) {
    const { name: o } = t;
    switch (o.kind) {
      case 79:
        i(o) && (t.initializer && xd(t.initializer, !0) ? r.delete(e, Uu(t.parent) && Le(t.parent.declarations) === 1 ? t.parent.parent : t) : r.delete(e, o));
        break;
      case 204:
        break;
      case 203:
        if (o.elements.every((s) => je(s.name) && i(s.name)))
          r.delete(e, Uu(t.parent) && t.parent.declarations.length === 1 ? t.parent.parent : t);
        else
          for (const s of o.elements)
            je(s.name) && i(s.name) && r.delete(e, s.name);
        break;
    }
  }
  function Uze(e, t, r, i, o, s, c, f, d) {
    const y = [];
    for (const L of e.statements)
      dne(L, (I) => {
        Fn(y, Mxe(I, wxe(I), (O) => t.has(o.getSymbolAtLocation(O))));
      });
    let h;
    const E = [], A = JC();
    return r.forEach((L) => {
      if (L.declarations)
        for (const I of L.declarations) {
          if (!Bxe(I))
            continue;
          const O = Kze(I);
          if (!O)
            continue;
          const k = jxe(I);
          A(k) && Xze(e, k, O, i, f), Yr(I, 1024) ? h = O : E.push(O.text);
        }
    }), Fn(y, Dxe(e, h, E, mu(e.fileName), s, c, f, d)), y;
  }
  function Vze(e, t, r, i) {
    let o = e;
    for (let s = 1; ; s++) {
      const c = Bi(r, o + t);
      if (!i.fileExists(c))
        return o;
      o = `${e}.${s}`;
    }
  }
  function jze(e, t) {
    return e.forEachEntry(e9) || t.forEachEntry(e9) || "newFile";
  }
  function Hze(e, t, r) {
    const i = new Fw(), o = new Fw(), s = new Fw(), c = nn(t, (E) => !!(E.transformFlags & 2)), f = h(c);
    f && o.add(f);
    for (const E of t)
      Uxe(E, (A) => {
        i.add(D.checkDefined(ou(A) ? r.getSymbolAtLocation(A.expression.left) : A.symbol, "Need a symbol here"));
      });
    for (const E of t)
      Fxe(E, r, (A) => {
        if (A.declarations)
          for (const L of A.declarations)
            Oxe(L) ? o.add(A) : Bxe(L) && qze(L) === e && !i.has(A) && s.add(A);
      });
    const d = o.clone(), y = new Fw();
    for (const E of e.statements)
      jr(t, E) || (f && E.transformFlags & 2 && d.delete(f), Fxe(E, r, (A) => {
        i.has(A) && y.add(A), d.delete(A);
      }));
    return { movedSymbols: i, newFileImportsFromOldFile: s, oldFileImportsFromNewFile: y, oldImportsNeededByNewFile: o, unusedImportsFromOldFile: d };
    function h(E) {
      if (E === void 0)
        return;
      const A = r.getJsxNamespace(E), L = r.resolveName(A, E, 1920, !0);
      return L && kt(L.declarations, Oxe) ? L : void 0;
    }
  }
  function Oxe(e) {
    switch (e.kind) {
      case 268:
      case 273:
      case 270:
      case 271:
        return !0;
      case 257:
        return Pxe(e);
      case 205:
        return Ki(e.parent.parent) && Pxe(e.parent.parent);
      default:
        return !1;
    }
  }
  function Pxe(e) {
    return qi(e.parent.parent.parent) && !!e.initializer && xd(e.initializer, !0);
  }
  function Mxe(e, t, r) {
    switch (e.kind) {
      case 269: {
        const i = e.importClause;
        if (!i)
          return;
        const o = i.name && r(i.name) ? i.name : void 0, s = i.namedBindings && Wze(i.namedBindings, r);
        return o || s ? N.createImportDeclaration(void 0, N.createImportClause(i.isTypeOnly, o, s), t, void 0) : void 0;
      }
      case 268:
        return r(e.name) ? e : void 0;
      case 257: {
        const i = zze(e.name, r);
        return i ? Rxe(i, e.type, fne(t), e.parent.flags) : void 0;
      }
      default:
        return D.assertNever(e, `Unexpected import kind ${e.kind}`);
    }
  }
  function Wze(e, t) {
    if (e.kind === 271)
      return t(e.name) ? e : void 0;
    {
      const r = e.elements.filter((i) => t(i.name));
      return r.length ? N.createNamedImports(r) : void 0;
    }
  }
  function zze(e, t) {
    switch (e.kind) {
      case 79:
        return t(e) ? e : void 0;
      case 204:
        return e;
      case 203: {
        const r = e.elements.filter((i) => i.propertyName || !je(i.name) || t(i.name));
        return r.length ? N.createObjectBindingPattern(r) : void 0;
      }
    }
  }
  function Fxe(e, t, r) {
    e.forEachChild(function i(o) {
      if (je(o) && !_g(o)) {
        const s = t.getSymbolAtLocation(o);
        s && r(s);
      } else
        o.forEachChild(i);
    });
  }
  function Bxe(e) {
    return Gxe(e) && qi(e.parent) || Ki(e) && qi(e.parent.parent.parent);
  }
  function qze(e) {
    return Ki(e) ? e.parent.parent.parent : e.parent;
  }
  function Jze(e) {
    return D.assert(qi(e.parent), "Node parent should be a SourceFile"), Gxe(e) || uc(e);
  }
  function Gxe(e) {
    switch (e.kind) {
      case 259:
      case 260:
      case 264:
      case 263:
      case 262:
      case 261:
      case 268:
        return !0;
      default:
        return !1;
    }
  }
  function Uxe(e, t) {
    switch (e.kind) {
      case 259:
      case 260:
      case 264:
      case 263:
      case 262:
      case 261:
      case 268:
        return t(e);
      case 240:
        return Jt(e.declarationList.declarations, (r) => Vxe(r.name, t));
      case 241: {
        const { expression: r } = e;
        return br(r) && Cl(r) === 1 ? t(e) : void 0;
      }
    }
  }
  function Vxe(e, t) {
    switch (e.kind) {
      case 79:
        return t(oo(e.parent, (r) => Ki(r) || _s(r)));
      case 204:
      case 203:
        return Jt(e.elements, (r) => Rc(r) ? void 0 : Vxe(r.name, t));
      default:
        return D.assertNever(e, `Unexpected name kind ${e.kind}`);
    }
  }
  function Kze(e) {
    return ou(e) ? ai(e.expression.left.name, je) : ai(e.name, je);
  }
  function jxe(e) {
    switch (e.kind) {
      case 257:
        return e.parent.parent;
      case 205:
        return jxe(oo(e.parent.parent, (t) => Ki(t) || _s(t)));
      default:
        return e;
    }
  }
  function Xze(e, t, r, i, o) {
    if (!Hxe(e, t, o, r))
      if (o)
        ou(t) || i.insertExportModifier(e, t);
      else {
        const s = _ne(t);
        s.length !== 0 && i.insertNodesAfter(e, t, s.map(Wxe));
      }
  }
  function Hxe(e, t, r, i) {
    var o;
    return r ? !ou(t) && Yr(t, 1) || !!(i && ((o = e.symbol.exports) != null && o.has(i.escapedText))) : !!e.symbol && !!e.symbol.exports && _ne(t).some((s) => e.symbol.exports.has(sl(s)));
  }
  function Yze(e, t) {
    return t ? [$ze(e)] : Qze(e);
  }
  function $ze(e) {
    const t = K_(e) ? va([N.createModifier(93)], eT(e)) : void 0;
    switch (e.kind) {
      case 259:
        return N.updateFunctionDeclaration(e, t, e.asteriskToken, e.name, e.typeParameters, e.parameters, e.type, e.body);
      case 260:
        const r = Mx(e) ? Sv(e) : void 0;
        return N.updateClassDeclaration(e, va(r, t), e.name, e.typeParameters, e.heritageClauses, e.members);
      case 240:
        return N.updateVariableStatement(e, t, e.declarationList);
      case 264:
        return N.updateModuleDeclaration(e, t, e.name, e.body);
      case 263:
        return N.updateEnumDeclaration(e, t, e.name, e.members);
      case 262:
        return N.updateTypeAliasDeclaration(e, t, e.name, e.typeParameters, e.type);
      case 261:
        return N.updateInterfaceDeclaration(e, t, e.name, e.typeParameters, e.heritageClauses, e.members);
      case 268:
        return N.updateImportEqualsDeclaration(e, t, e.isTypeOnly, e.name, e.moduleReference);
      case 241:
        return D.fail();
      default:
        return D.assertNever(e, `Unexpected declaration kind ${e.kind}`);
    }
  }
  function Qze(e) {
    return [e, ..._ne(e).map(Wxe)];
  }
  function _ne(e) {
    switch (e.kind) {
      case 259:
      case 260:
        return [e.name.text];
      case 240:
        return ia(e.declarationList.declarations, (t) => je(t.name) ? t.name.text : void 0);
      case 264:
      case 263:
      case 262:
      case 261:
      case 268:
        return rt;
      case 241:
        return D.fail("Can't export an ExpressionStatement");
      default:
        return D.assertNever(e, `Unexpected decl kind ${e.kind}`);
    }
  }
  function Wxe(e) {
    return N.createExpressionStatement(N.createBinaryExpression(N.createPropertyAccessExpression(N.createIdentifier("exports"), N.createIdentifier(e)), 63, N.createIdentifier(e)));
  }
  var Mw, qG, JG, Fw, Zze = C({
    "src/services/refactors/moveToNewFile.ts"() {
      Gme(), $r(), Rh(), Mw = "Move to a new file", qG = Oo(_.Move_to_a_new_file), JG = {
        name: Mw,
        description: qG,
        kind: "refactor.move.newFile"
      }, Tg(Mw, {
        kinds: [JG.kind],
        getAvailableActions: function(t) {
          const r = Ixe(t);
          return t.preferences.allowTextChangesInNewFiles && r ? [{ name: Mw, description: qG, actions: [JG] }] : t.preferences.provideRefactorNotApplicableReason ? [{
            name: Mw,
            description: qG,
            actions: [{ ...JG, notApplicableReason: Oo(_.Selection_is_not_a_valid_statement_or_statements) }]
          }] : rt;
        },
        getEditsForAction: function(t, r) {
          D.assert(r === Mw, "Wrong refactor invoked");
          const i = D.checkDefined(Ixe(t));
          return { edits: gr.ChangeTracker.with(t, (s) => Cze(t.file, t.program, i, s, t.host, t.preferences)), renameFilename: void 0, renameLocation: void 0 };
        }
      }), Fw = class {
        constructor() {
          this.map = /* @__PURE__ */ new Map();
        }
        add(e) {
          this.map.set(String(bo(e)), e);
        }
        has(e) {
          return this.map.has(String(bo(e)));
        }
        delete(e) {
          this.map.delete(String(bo(e)));
        }
        forEach(e) {
          this.map.forEach(e);
        }
        forEachEntry(e) {
          return of(this.map, e);
        }
        clone() {
          const e = new Fw();
          return nN(this.map, e.map), e;
        }
        size() {
          return this.map.size;
        }
      };
    }
  });
  function eqe(e) {
    const { file: t, startPosition: r, program: i } = e;
    return qxe(t, r, i) ? [{
      name: KG,
      description: pne,
      actions: [mne]
    }] : rt;
  }
  function tqe(e) {
    const { file: t, startPosition: r, program: i } = e, o = qxe(t, r, i);
    if (!o)
      return;
    const s = i.getTypeChecker(), c = o[o.length - 1];
    let f = c;
    switch (c.kind) {
      case 170: {
        f = N.updateMethodSignature(c, c.modifiers, c.name, c.questionToken, c.typeParameters, y(o), c.type);
        break;
      }
      case 171: {
        f = N.updateMethodDeclaration(c, c.modifiers, c.asteriskToken, c.name, c.questionToken, c.typeParameters, y(o), c.type, c.body);
        break;
      }
      case 176: {
        f = N.updateCallSignature(c, c.typeParameters, y(o), c.type);
        break;
      }
      case 173: {
        f = N.updateConstructorDeclaration(c, c.modifiers, y(o), c.body);
        break;
      }
      case 177: {
        f = N.updateConstructSignature(c, c.typeParameters, y(o), c.type);
        break;
      }
      case 259: {
        f = N.updateFunctionDeclaration(c, c.modifiers, c.asteriskToken, c.name, c.typeParameters, y(o), c.type, c.body);
        break;
      }
      default:
        return D.failBadSyntaxKind(c, "Unhandled signature kind in overload list conversion refactoring");
    }
    if (f === c)
      return;
    return { renameFilename: void 0, renameLocation: void 0, edits: gr.ChangeTracker.with(e, (A) => {
      A.replaceNodeRange(t, o[0], o[o.length - 1], f);
    }) };
    function y(A) {
      const L = A[A.length - 1];
      return Qs(L) && L.body && (A = A.slice(0, A.length - 1)), N.createNodeArray([
        N.createParameterDeclaration(void 0, N.createToken(25), "args", void 0, N.createUnionTypeNode(jt(A, h)))
      ]);
    }
    function h(A) {
      const L = jt(A.parameters, E);
      return or(N.createTupleTypeNode(L), kt(L, (I) => !!Le(fC(I))) ? 0 : 1);
    }
    function E(A) {
      D.assert(je(A.name));
      const L = ht(N.createNamedTupleMember(A.dotDotDotToken, A.name, A.questionToken, A.type || N.createKeywordTypeNode(131)), A), I = A.symbol && A.symbol.getDocumentationComment(s);
      if (I) {
        const O = J0e(I);
        O.length && w1(L, [{
          text: `*
${O.split(`
`).map((k) => ` * ${k}`).join(`
`)}
 `,
          kind: 3,
          pos: -1,
          end: -1,
          hasTrailingNewLine: !0,
          hasLeadingNewline: !0
        }]);
      }
      return L;
    }
  }
  function zxe(e) {
    switch (e.kind) {
      case 170:
      case 171:
      case 176:
      case 173:
      case 177:
      case 259:
        return !0;
    }
    return !1;
  }
  function qxe(e, t, r) {
    const i = aa(e, t), o = nr(i, zxe);
    if (!o || Qs(o) && o.body && $8(o.body, t))
      return;
    const s = r.getTypeChecker(), c = o.symbol;
    if (!c)
      return;
    const f = c.declarations;
    if (Le(f) <= 1 || !Yn(f, (A) => Zn(A) === e) || !zxe(f[0]))
      return;
    const d = f[0].kind;
    if (!Yn(f, (A) => A.kind === d))
      return;
    const y = f;
    if (kt(y, (A) => !!A.typeParameters || kt(A.parameters, (L) => !!L.modifiers || !je(L.name))))
      return;
    const h = ia(y, (A) => s.getSignatureFromDeclaration(A));
    if (Le(h) !== Le(f))
      return;
    const E = s.getReturnTypeOfSignature(h[0]);
    if (Yn(h, (A) => s.getReturnTypeOfSignature(A) === E))
      return y;
  }
  var KG, pne, mne, nqe = C({
    "src/services/refactors/convertOverloadListToSingleSignature.ts"() {
      $r(), Rh(), KG = "Convert overload list to single signature", pne = _.Convert_overload_list_to_single_signature.message, mne = {
        name: KG,
        description: pne,
        kind: "refactor.rewrite.function.overloadList"
      }, Tg(KG, {
        kinds: [mne.kind],
        getEditsForAction: tqe,
        getAvailableActions: eqe
      });
    }
  });
  function rqe(e) {
    const { file: t, startPosition: r, triggerReason: i } = e, o = Jxe(t, r, i === "invoked");
    return o ? Dh(o) ? e.preferences.provideRefactorNotApplicableReason ? [{
      name: XG,
      description: hne,
      actions: [
        { ...Q6, notApplicableReason: o.error },
        { ...Bw, notApplicableReason: o.error }
      ]
    }] : rt : [{
      name: XG,
      description: hne,
      actions: [
        o.addBraces ? Q6 : Bw
      ]
    }] : rt;
  }
  function iqe(e, t) {
    const { file: r, startPosition: i } = e, o = Jxe(r, i);
    D.assert(o && !Dh(o), "Expected applicable refactor info");
    const { expression: s, returnStatement: c, func: f } = o;
    let d;
    if (t === Q6.name) {
      const h = N.createReturnStatement(s);
      d = N.createBlock([h], !0), $C(s, h, r, 3, !0);
    } else if (t === Bw.name && c) {
      const h = s || N.createVoidZero();
      d = iQ(h) ? N.createParenthesizedExpression(h) : h, p6(c, d, r, 3, !1), $C(c, d, r, 3, !1), gw(c, d, r, 3, !1);
    } else
      D.fail("invalid action");
    return { renameFilename: void 0, renameLocation: void 0, edits: gr.ChangeTracker.with(e, (h) => {
      h.replaceNode(r, f.body, d);
    }) };
  }
  function Jxe(e, t, r = !0, i) {
    const o = aa(e, t), s = Cf(o);
    if (!s)
      return {
        error: Oo(_.Could_not_find_a_containing_arrow_function)
      };
    if (!Js(s))
      return {
        error: Oo(_.Containing_function_is_not_an_arrow_function)
      };
    if (!(!df(s, o) || df(s.body, o) && !r)) {
      if ($v(Q6.kind, i) && vt(s.body))
        return { func: s, addBraces: !0, expression: s.body };
      if ($v(Bw.kind, i) && co(s.body) && s.body.statements.length === 1) {
        const c = us(s.body.statements);
        if (bp(c))
          return { func: s, addBraces: !1, expression: c.expression, returnStatement: c };
      }
    }
  }
  var XG, hne, Q6, Bw, aqe = C({
    "src/services/refactors/addOrRemoveBracesToArrowFunction.ts"() {
      $r(), Rh(), XG = "Add or remove braces in an arrow function", hne = _.Add_or_remove_braces_in_an_arrow_function.message, Q6 = {
        name: "Add braces to arrow function",
        description: _.Add_braces_to_arrow_function.message,
        kind: "refactor.rewrite.arrow.braces.add"
      }, Bw = {
        name: "Remove braces from arrow function",
        description: _.Remove_braces_from_arrow_function.message,
        kind: "refactor.rewrite.arrow.braces.remove"
      }, Tg(XG, {
        kinds: [Bw.kind],
        getEditsForAction: iqe,
        getAvailableActions: rqe
      });
    }
  }), oqe = {}, sqe = C({
    "src/services/_namespaces/ts.refactor.addOrRemoveBracesToArrowFunction.ts"() {
      nqe(), aqe();
    }
  });
  function lqe(e) {
    const { file: t, startPosition: r, program: i, kind: o } = e, s = Xxe(t, r, i);
    if (!s)
      return rt;
    const { selectedVariableDeclaration: c, func: f } = s, d = [], y = [];
    if ($v(Uw.kind, o)) {
      const h = c || Js(f) && Ki(f.parent) ? void 0 : Oo(_.Could_not_convert_to_named_function);
      h ? y.push({ ...Uw, notApplicableReason: h }) : d.push(Uw);
    }
    if ($v(Gw.kind, o)) {
      const h = !c && Js(f) ? void 0 : Oo(_.Could_not_convert_to_anonymous_function);
      h ? y.push({ ...Gw, notApplicableReason: h }) : d.push(Gw);
    }
    if ($v(Vw.kind, o)) {
      const h = Bs(f) ? void 0 : Oo(_.Could_not_convert_to_arrow_function);
      h ? y.push({ ...Vw, notApplicableReason: h }) : d.push(Vw);
    }
    return [{
      name: gne,
      description: Qxe,
      actions: d.length === 0 && e.preferences.provideRefactorNotApplicableReason ? y : d
    }];
  }
  function cqe(e, t) {
    const { file: r, startPosition: i, program: o } = e, s = Xxe(r, i, o);
    if (!s)
      return;
    const { func: c } = s, f = [];
    switch (t) {
      case Gw.name:
        f.push(..._qe(e, c));
        break;
      case Uw.name:
        const d = fqe(c);
        if (!d)
          return;
        f.push(...pqe(e, c, d));
        break;
      case Vw.name:
        if (!Bs(c))
          return;
        f.push(...mqe(e, c));
        break;
      default:
        return D.fail("invalid action");
    }
    return { renameFilename: void 0, renameLocation: void 0, edits: f };
  }
  function Kxe(e) {
    let t = !1;
    return e.forEachChild(function r(i) {
      if (qC(i)) {
        t = !0;
        return;
      }
      !di(i) && !yc(i) && !Bs(i) && Ma(i, r);
    }), t;
  }
  function Xxe(e, t, r) {
    const i = aa(e, t), o = r.getTypeChecker(), s = dqe(e, o, i.parent);
    if (s && !Kxe(s.body) && !o.containsArgumentsReference(s))
      return { selectedVariableDeclaration: !0, func: s };
    const c = Cf(i);
    if (c && (Bs(c) || Js(c)) && !df(c.body, i) && !Kxe(c.body) && !o.containsArgumentsReference(c))
      return Bs(c) && $xe(e, o, c) ? void 0 : { selectedVariableDeclaration: !1, func: c };
  }
  function uqe(e) {
    return Ki(e) || Uu(e) && e.declarations.length === 1;
  }
  function dqe(e, t, r) {
    if (!uqe(r))
      return;
    const o = (Ki(r) ? r : us(r.declarations)).initializer;
    if (o && (Js(o) || Bs(o) && !$xe(e, t, o)))
      return o;
  }
  function Yxe(e) {
    if (vt(e)) {
      const t = N.createReturnStatement(e), r = e.getSourceFile();
      return ht(t, e), zd(t), p6(e, t, r, void 0, !0), N.createBlock([t], !0);
    } else
      return e;
  }
  function fqe(e) {
    const t = e.parent;
    if (!Ki(t) || !i3(t))
      return;
    const r = t.parent, i = r.parent;
    if (!(!Uu(r) || !uc(i) || !je(t.name)))
      return { variableDeclaration: t, variableDeclarationList: r, statement: i, name: t.name };
  }
  function _qe(e, t) {
    const { file: r } = e, i = Yxe(t.body), o = N.createFunctionExpression(t.modifiers, t.asteriskToken, void 0, t.typeParameters, t.parameters, t.type, i);
    return gr.ChangeTracker.with(e, (s) => s.replaceNode(r, t, o));
  }
  function pqe(e, t, r) {
    const { file: i } = e, o = Yxe(t.body), { variableDeclaration: s, variableDeclarationList: c, statement: f, name: d } = r;
    o9(f);
    const y = _y(s) & 1 | Mu(t), h = N.createModifiersFromModifierFlags(y), E = N.createFunctionDeclaration(Le(h) ? h : void 0, t.asteriskToken, d, t.typeParameters, t.parameters, t.type, o);
    return c.declarations.length === 1 ? gr.ChangeTracker.with(e, (A) => A.replaceNode(i, f, E)) : gr.ChangeTracker.with(e, (A) => {
      A.delete(i, s), A.insertNodeAfter(i, f, E);
    });
  }
  function mqe(e, t) {
    const { file: r } = e, o = t.body.statements[0];
    let s;
    hqe(t.body, o) ? (s = o.expression, zd(s), JT(o, s)) : s = t.body;
    const c = N.createArrowFunction(t.modifiers, t.typeParameters, t.parameters, t.type, N.createToken(38), s);
    return gr.ChangeTracker.with(e, (f) => f.replaceNode(r, t, c));
  }
  function hqe(e, t) {
    return e.statements.length === 1 && bp(t) && !!t.expression;
  }
  function $xe(e, t, r) {
    return !!r.name && ul.Core.isSymbolReferencedInFile(r.name, t, e);
  }
  var gne, Qxe, Gw, Uw, Vw, gqe = C({
    "src/services/refactors/convertArrowFunctionOrFunctionExpression.ts"() {
      $r(), Rh(), gne = "Convert arrow function or function expression", Qxe = Oo(_.Convert_arrow_function_or_function_expression), Gw = {
        name: "Convert to anonymous function",
        description: Oo(_.Convert_to_anonymous_function),
        kind: "refactor.rewrite.function.anonymous"
      }, Uw = {
        name: "Convert to named function",
        description: Oo(_.Convert_to_named_function),
        kind: "refactor.rewrite.function.named"
      }, Vw = {
        name: "Convert to arrow function",
        description: Oo(_.Convert_to_arrow_function),
        kind: "refactor.rewrite.function.arrow"
      }, Tg(gne, {
        kinds: [
          Gw.kind,
          Uw.kind,
          Vw.kind
        ],
        getEditsForAction: cqe,
        getAvailableActions: lqe
      });
    }
  }), yqe = {}, vqe = C({
    "src/services/_namespaces/ts.refactor.convertArrowFunctionOrFunctionExpression.ts"() {
      gqe();
    }
  });
  function bqe(e) {
    const { file: t, startPosition: r } = e;
    return Zu(t) || !t2e(t, r, e.program.getTypeChecker()) ? rt : [{
      name: eP,
      description: Ene,
      actions: [Tne]
    }];
  }
  function Eqe(e, t) {
    D.assert(t === eP, "Unexpected action name");
    const { file: r, startPosition: i, program: o, cancellationToken: s, host: c } = e, f = t2e(r, i, o.getTypeChecker());
    if (!f || !s)
      return;
    const d = Sqe(f, o, s);
    return d.valid ? { renameFilename: void 0, renameLocation: void 0, edits: gr.ChangeTracker.with(e, (h) => Tqe(r, o, c, h, f, d)) } : { edits: [] };
  }
  function Tqe(e, t, r, i, o, s) {
    const c = s.signature, f = jt(a2e(o, t, r), (h) => wl(h));
    if (c) {
      const h = jt(a2e(c, t, r), (E) => wl(E));
      y(c, h);
    }
    y(o, f);
    const d = cR(s.functionCalls, (h, E) => Ws(h.pos, E.pos));
    for (const h of d)
      if (h.arguments && h.arguments.length) {
        const E = wl(Nqe(o, h.arguments), !0);
        i.replaceNodeRange(Zn(h), us(h.arguments), qo(h.arguments), E, { leadingTriviaOption: gr.LeadingTriviaOption.IncludeAll, trailingTriviaOption: gr.TrailingTriviaOption.Include });
      }
    function y(h, E) {
      i.replaceNodeRangeWithNodes(e, us(h.parameters), qo(h.parameters), E, {
        joiner: ", ",
        indentation: 0,
        leadingTriviaOption: gr.LeadingTriviaOption.IncludeAll,
        trailingTriviaOption: gr.TrailingTriviaOption.Include
      });
    }
  }
  function Sqe(e, t, r) {
    const i = Pqe(e), o = ql(e) ? Oqe(e) : [], s = mA([...i, ...o], F0), c = t.getTypeChecker(), f = ca(s, (E) => ul.getReferenceEntriesForNode(-1, E, t, t.getSourceFiles(), r)), d = y(f);
    return Yn(d.declarations, (E) => jr(s, E)) || (d.valid = !1), d;
    function y(E) {
      const A = { accessExpressions: [], typeUsages: [] }, L = { functionCalls: [], declarations: [], classReferences: A, valid: !0 }, I = jt(i, h), O = jt(o, h), k = ql(e), G = jt(i, (V) => yne(V, c));
      for (const V of E) {
        if (V.kind === ul.EntryKind.Span) {
          L.valid = !1;
          continue;
        }
        if (jr(G, h(V.node))) {
          if (Lqe(V.node.parent)) {
            L.signature = V.node.parent;
            continue;
          }
          const te = e2e(V);
          if (te) {
            L.functionCalls.push(te);
            continue;
          }
        }
        const H = yne(V.node, c);
        if (H && jr(G, H)) {
          const te = vne(V);
          if (te) {
            L.declarations.push(te);
            continue;
          }
        }
        if (jr(I, h(V.node)) || cw(V.node)) {
          if (Zxe(V))
            continue;
          const X = vne(V);
          if (X) {
            L.declarations.push(X);
            continue;
          }
          const Y = e2e(V);
          if (Y) {
            L.functionCalls.push(Y);
            continue;
          }
        }
        if (k && jr(O, h(V.node))) {
          if (Zxe(V))
            continue;
          const X = vne(V);
          if (X) {
            L.declarations.push(X);
            continue;
          }
          const Y = xqe(V);
          if (Y) {
            A.accessExpressions.push(Y);
            continue;
          }
          if (Nc(e.parent)) {
            const P = Aqe(V);
            if (P) {
              A.typeUsages.push(P);
              continue;
            }
          }
        }
        L.valid = !1;
      }
      return L;
    }
    function h(E) {
      const A = c.getSymbolAtLocation(E);
      return A && dve(A, c);
    }
  }
  function yne(e, t) {
    const r = T6(e);
    if (r) {
      const i = t.getContextualTypeForObjectLiteralElement(r), o = i == null ? void 0 : i.getSymbol();
      if (o && !(Ll(o) & 6))
        return o;
    }
  }
  function Zxe(e) {
    const t = e.node;
    if (Ld(t.parent) || Wm(t.parent) || su(t.parent) || Gv(t.parent) || dd(t.parent) || Bl(t.parent))
      return t;
  }
  function vne(e) {
    if (vu(e.node.parent))
      return e.node;
  }
  function e2e(e) {
    if (e.node.parent) {
      const t = e.node, r = t.parent;
      switch (r.kind) {
        case 210:
        case 211:
          const i = ai(r, lg);
          if (i && i.expression === t)
            return i;
          break;
        case 208:
          const o = ai(r, Fr);
          if (o && o.parent && o.name === t) {
            const c = ai(o.parent, lg);
            if (c && c.expression === o)
              return c;
          }
          break;
        case 209:
          const s = ai(r, cl);
          if (s && s.parent && s.argumentExpression === t) {
            const c = ai(s.parent, lg);
            if (c && c.expression === s)
              return c;
          }
          break;
      }
    }
  }
  function xqe(e) {
    if (e.node.parent) {
      const t = e.node, r = t.parent;
      switch (r.kind) {
        case 208:
          const i = ai(r, Fr);
          if (i && i.expression === t)
            return i;
          break;
        case 209:
          const o = ai(r, cl);
          if (o && o.expression === t)
            return o;
          break;
      }
    }
  }
  function Aqe(e) {
    const t = e.node;
    if (HT(t) === 2 || JN(t.parent))
      return t;
  }
  function t2e(e, t, r) {
    const i = fw(e, t), o = mue(i);
    if (!Cqe(i) && o && Iqe(o, r) && df(o, i) && !(o.body && df(o.body, i)))
      return o;
  }
  function Cqe(e) {
    const t = nr(e, wA);
    if (t) {
      const r = nr(t, (i) => !wA(i));
      return !!r && Qs(r);
    }
    return !1;
  }
  function Lqe(e) {
    return Ah(e) && (nd(e.parent) || uf(e.parent));
  }
  function Iqe(e, t) {
    var r;
    if (!kqe(e.parameters, t))
      return !1;
    switch (e.kind) {
      case 259:
        return n2e(e) && Z6(e, t);
      case 171:
        if (Ls(e.parent)) {
          const i = yne(e.name, t);
          return ((r = i == null ? void 0 : i.declarations) == null ? void 0 : r.length) === 1 && Z6(e, t);
        }
        return Z6(e, t);
      case 173:
        return Nc(e.parent) ? n2e(e.parent) && Z6(e, t) : r2e(e.parent.parent) && Z6(e, t);
      case 215:
      case 216:
        return r2e(e.parent);
    }
    return !1;
  }
  function Z6(e, t) {
    return !!e.body && !t.isImplementationOfOverload(e);
  }
  function n2e(e) {
    return e.name ? !0 : !!KC(e, 88);
  }
  function kqe(e, t) {
    return Dqe(e) >= o2e && Yn(e, (r) => wqe(r, t));
  }
  function wqe(e, t) {
    if (gh(e)) {
      const r = t.getTypeAtLocation(e);
      if (!t.isArrayType(r) && !t.isTupleType(r))
        return !1;
    }
    return !e.modifiers && je(e.name);
  }
  function r2e(e) {
    return Ki(e) && ug(e) && je(e.name) && !e.type;
  }
  function bne(e) {
    return e.length > 0 && qC(e[0].name);
  }
  function Dqe(e) {
    return bne(e) ? e.length - 1 : e.length;
  }
  function i2e(e) {
    return bne(e) && (e = N.createNodeArray(e.slice(1), e.hasTrailingComma)), e;
  }
  function Rqe(e, t) {
    return je(t) && U_(t) === e ? N.createShorthandPropertyAssignment(e) : N.createPropertyAssignment(e, t);
  }
  function Nqe(e, t) {
    const r = i2e(e.parameters), i = gh(qo(r)), o = i ? t.slice(0, r.length - 1) : t, s = jt(o, (f, d) => {
      const y = YG(r[d]), h = Rqe(y, f);
      return zd(h.name), zc(h) && zd(h.initializer), JT(f, h), h;
    });
    if (i && t.length >= r.length) {
      const f = t.slice(r.length - 1), d = N.createPropertyAssignment(YG(qo(r)), N.createArrayLiteralExpression(f));
      s.push(d);
    }
    return N.createObjectLiteralExpression(s, !1);
  }
  function a2e(e, t, r) {
    const i = t.getTypeChecker(), o = i2e(e.parameters), s = jt(o, h), c = N.createObjectBindingPattern(s), f = E(o);
    let d;
    Yn(o, I) && (d = N.createObjectLiteralExpression());
    const y = N.createParameterDeclaration(void 0, void 0, c, void 0, f, d);
    if (bne(e.parameters)) {
      const O = e.parameters[0], k = N.createParameterDeclaration(void 0, void 0, O.name, void 0, O.type);
      return zd(k.name), JT(O.name, k.name), O.type && (zd(k.type), JT(O.type, k.type)), N.createNodeArray([k, y]);
    }
    return N.createNodeArray([y]);
    function h(O) {
      const k = N.createBindingElement(void 0, void 0, YG(O), gh(O) && I(O) ? N.createArrayLiteralExpression() : O.initializer);
      return zd(k), O.initializer && k.initializer && JT(O.initializer, k.initializer), k;
    }
    function E(O) {
      const k = jt(O, A);
      return Zp(N.createTypeLiteralNode(k), 1);
    }
    function A(O) {
      let k = O.type;
      !k && (O.initializer || gh(O)) && (k = L(O));
      const G = N.createPropertySignature(void 0, YG(O), I(O) ? N.createToken(57) : O.questionToken, k);
      return zd(G), JT(O.name, G.name), O.type && G.type && JT(O.type, G.type), G;
    }
    function L(O) {
      const k = i.getTypeAtLocation(O);
      return vw(k, O, t, r);
    }
    function I(O) {
      if (gh(O)) {
        const k = i.getTypeAtLocation(O);
        return !i.isTupleType(k);
      }
      return i.isOptionalParameter(O);
    }
  }
  function YG(e) {
    return U_(e.name);
  }
  function Oqe(e) {
    switch (e.parent.kind) {
      case 260:
        const t = e.parent;
        return t.name ? [t.name] : [D.checkDefined(KC(t, 88), "Nameless class declaration should be a default export")];
      case 228:
        const i = e.parent, o = e.parent.parent, s = i.name;
        return s ? [s, o.name] : [o.name];
    }
  }
  function Pqe(e) {
    switch (e.kind) {
      case 259:
        return e.name ? [e.name] : [D.checkDefined(KC(e, 88), "Nameless function declaration should be a default export")];
      case 171:
        return [e.name];
      case 173:
        const r = D.checkDefined(bs(e, 135, e.getSourceFile()), "Constructor declaration should have constructor keyword");
        return e.parent.kind === 228 ? [e.parent.parent.name, r] : [r];
      case 216:
        return [e.parent.name];
      case 215:
        return e.name ? [e.name, e.parent.name] : [e.parent.name];
      default:
        return D.assertNever(e, `Unexpected function declaration kind ${e.kind}`);
    }
  }
  var eP, o2e, Ene, Tne, Mqe = C({
    "src/services/refactors/convertParamsToDestructuredObject.ts"() {
      $r(), Rh(), eP = "Convert parameters to destructured object", o2e = 1, Ene = Oo(_.Convert_parameters_to_destructured_object), Tne = {
        name: eP,
        description: Ene,
        kind: "refactor.rewrite.parameters.toDestructured"
      }, Tg(eP, {
        kinds: [Tne.kind],
        getEditsForAction: Eqe,
        getAvailableActions: bqe
      });
    }
  }), Fqe = {}, Bqe = C({
    "src/services/_namespaces/ts.refactor.convertParamsToDestructuredObject.ts"() {
      Mqe();
    }
  });
  function Gqe(e) {
    const { file: t, startPosition: r } = e, i = s2e(t, r), o = Sne(i), s = { name: $G, description: QG, actions: [] };
    return br(o) && xne(o).isValidConcatenation ? (s.actions.push(ZG), [s]) : e.preferences.provideRefactorNotApplicableReason ? (s.actions.push({
      ...ZG,
      notApplicableReason: Oo(_.Can_only_convert_string_concatenation)
    }), [s]) : rt;
  }
  function s2e(e, t) {
    const r = aa(e, t), i = Sne(r);
    return !xne(i).isValidConcatenation && Vd(i.parent) && br(i.parent.parent) ? i.parent.parent : r;
  }
  function Uqe(e, t) {
    const { file: r, startPosition: i } = e, o = s2e(r, i);
    switch (t) {
      case QG:
        return { edits: Vqe(e, o) };
      default:
        return D.fail("invalid action");
    }
  }
  function Vqe(e, t) {
    const r = Sne(t), i = e.file, o = Wqe(xne(r), i), s = B0(i.text, r.end);
    if (s) {
      const c = s[s.length - 1], f = { pos: s[0].pos, end: c.end };
      return gr.ChangeTracker.with(e, (d) => {
        d.deleteRange(i, f), d.replaceNode(i, r, o);
      });
    } else
      return gr.ChangeTracker.with(e, (c) => c.replaceNode(i, r, o));
  }
  function jqe(e) {
    return e.operatorToken.kind !== 63;
  }
  function Sne(e) {
    return nr(e.parent, (r) => {
      switch (r.kind) {
        case 208:
        case 209:
          return !1;
        case 225:
        case 223:
          return !(br(r.parent) && jqe(r.parent));
        default:
          return "quit";
      }
    }) || e;
  }
  function xne(e) {
    const t = (c) => {
      if (!br(c))
        return {
          nodes: [c],
          operators: [],
          validOperators: !0,
          hasString: jo(c) || bx(c)
        };
      const { nodes: f, operators: d, hasString: y, validOperators: h } = t(c.left);
      if (!(y || jo(c.right) || V7(c.right)))
        return { nodes: [c], operators: [], hasString: !1, validOperators: !0 };
      const E = c.operatorToken.kind === 39, A = h && E;
      return f.push(c.right), d.push(c.operatorToken), { nodes: f, operators: d, hasString: !0, validOperators: A };
    }, { nodes: r, operators: i, validOperators: o, hasString: s } = t(e);
    return { nodes: r, operators: i, isValidConcatenation: o && s };
  }
  function Hqe(e) {
    return e.replace(/\\.|[$`]/g, (t) => t[0] === "\\" ? t : "\\" + t);
  }
  function l2e(e) {
    const t = mC(e) || Mfe(e) ? -2 : -1;
    return Sc(e).slice(1, t);
  }
  function c2e(e, t) {
    const r = [];
    let i = "", o = "";
    for (; e < t.length; ) {
      const s = t[e];
      if (xs(s))
        i += s.text, o += Hqe(Sc(s).slice(1, -1)), r.push(e), e++;
      else if (V7(s)) {
        i += s.head.text, o += l2e(s.head);
        break;
      } else
        break;
    }
    return [e, i, o, r];
  }
  function Wqe({ nodes: e, operators: t }, r) {
    const i = d2e(t, r), o = f2e(e, r, i), [s, c, f, d] = c2e(0, e);
    if (s === e.length) {
      const E = N.createNoSubstitutionTemplateLiteral(c, f);
      return o(d, E), E;
    }
    const y = [], h = N.createTemplateHead(c, f);
    o(d, h);
    for (let E = s; E < e.length; E++) {
      const A = zqe(e[E]);
      i(E, A);
      const [L, I, O, k] = c2e(E + 1, e);
      E = L - 1;
      const G = E === e.length - 1;
      if (V7(A)) {
        const V = jt(A.templateSpans, (H, te) => {
          u2e(H);
          const X = te === A.templateSpans.length - 1, Y = H.literal.text + (X ? I : ""), P = l2e(H.literal) + (X ? O : "");
          return N.createTemplateSpan(H.expression, G && X ? N.createTemplateTail(Y, P) : N.createTemplateMiddle(Y, P));
        });
        y.push(...V);
      } else {
        const V = G ? N.createTemplateTail(I, O) : N.createTemplateMiddle(I, O);
        o(k, V), y.push(N.createTemplateSpan(A, V));
      }
    }
    return N.createTemplateExpression(h, y);
  }
  function u2e(e) {
    const t = e.getSourceFile();
    gw(e, e.expression, t, 3, !1), p6(e.expression, e.expression, t, 3, !1);
  }
  function zqe(e) {
    return Vd(e) && (u2e(e), e = e.expression), e;
  }
  var $G, QG, ZG, d2e, f2e, qqe = C({
    "src/services/refactors/convertStringOrTemplateLiteral.ts"() {
      $r(), Rh(), $G = "Convert to template string", QG = Oo(_.Convert_to_template_string), ZG = {
        name: $G,
        description: QG,
        kind: "refactor.rewrite.string"
      }, Tg($G, {
        kinds: [ZG.kind],
        getEditsForAction: Uqe,
        getAvailableActions: Gqe
      }), d2e = (e, t) => (r, i) => {
        r < e.length && gw(e[r], i, t, 3, !1);
      }, f2e = (e, t, r) => (i, o) => {
        for (; i.length > 0; ) {
          const s = i.shift();
          gw(e[s], o, t, 3, !1), r(s, o);
        }
      };
    }
  }), Jqe = {}, Kqe = C({
    "src/services/_namespaces/ts.refactor.convertStringOrTemplateLiteral.ts"() {
      qqe();
    }
  });
  function Xqe(e) {
    const t = _2e(e, e.triggerReason === "invoked");
    return t ? Dh(t) ? e.preferences.provideRefactorNotApplicableReason ? [{
      name: tP,
      description: nU,
      actions: [{ ...rU, notApplicableReason: t.error }]
    }] : rt : [{
      name: tP,
      description: nU,
      actions: [rU]
    }] : rt;
  }
  function Yqe(e, t) {
    const r = _2e(e);
    return D.assert(r && !Dh(r), "Expected applicable refactor info"), { edits: gr.ChangeTracker.with(e, (o) => iJe(e.file, e.program.getTypeChecker(), o, r)), renameFilename: void 0, renameLocation: void 0 };
  }
  function eU(e) {
    return br(e) || SC(e);
  }
  function $qe(e) {
    return ou(e) || bp(e) || uc(e);
  }
  function tU(e) {
    return eU(e) || $qe(e);
  }
  function _2e(e, t = !0) {
    const { file: r, program: i } = e, o = zx(e), s = o.length === 0;
    if (s && !t)
      return;
    const c = aa(r, o.start), f = WF(r, o.start + o.length), d = hc(c.pos, f && f.end >= c.pos ? f.getEnd() : c.getEnd()), y = s ? nJe(c) : tJe(c, d), h = y && tU(y) ? rJe(y) : void 0;
    if (!h)
      return { error: Oo(_.Could_not_find_convertible_access_expression) };
    const E = i.getTypeChecker();
    return SC(h) ? Qqe(h, E) : Zqe(h);
  }
  function Qqe(e, t) {
    const r = e.condition, i = Cne(e.whenTrue);
    if (!i || t.isNullableType(t.getTypeAtLocation(i)))
      return { error: Oo(_.Could_not_find_convertible_access_expression) };
    if ((Fr(r) || je(r)) && Ane(r, i.expression))
      return { finalExpression: i, occurrences: [r], expression: e };
    if (br(r)) {
      const o = p2e(i.expression, r);
      return o ? { finalExpression: i, occurrences: o, expression: e } : { error: Oo(_.Could_not_find_matching_access_expressions) };
    }
  }
  function Zqe(e) {
    if (e.operatorToken.kind !== 55)
      return { error: Oo(_.Can_only_convert_logical_AND_access_chains) };
    const t = Cne(e.right);
    if (!t)
      return { error: Oo(_.Could_not_find_convertible_access_expression) };
    const r = p2e(t.expression, e.left);
    return r ? { finalExpression: t, occurrences: r, expression: e } : { error: Oo(_.Could_not_find_matching_access_expressions) };
  }
  function p2e(e, t) {
    const r = [];
    for (; br(t) && t.operatorToken.kind === 55; ) {
      const o = Ane(js(e), js(t.right));
      if (!o)
        break;
      r.push(o), e = o, t = t.left;
    }
    const i = Ane(e, t);
    return i && r.push(i), r.length > 0 ? r : void 0;
  }
  function Ane(e, t) {
    if (!(!je(t) && !Fr(t) && !cl(t)))
      return eJe(e, t) ? t : void 0;
  }
  function eJe(e, t) {
    for (; (no(e) || Fr(e) || cl(e)) && jw(e) !== jw(t); )
      e = e.expression;
    for (; Fr(e) && Fr(t) || cl(e) && cl(t); ) {
      if (jw(e) !== jw(t))
        return !1;
      e = e.expression, t = t.expression;
    }
    return je(e) && je(t) && e.getText() === t.getText();
  }
  function jw(e) {
    if (je(e) || Xf(e))
      return e.getText();
    if (Fr(e))
      return jw(e.name);
    if (cl(e))
      return jw(e.argumentExpression);
  }
  function tJe(e, t) {
    for (; e.parent; ) {
      if (tU(e) && t.length !== 0 && e.end >= t.start + t.length)
        return e;
      e = e.parent;
    }
  }
  function nJe(e) {
    for (; e.parent; ) {
      if (tU(e) && !tU(e.parent))
        return e;
      e = e.parent;
    }
  }
  function rJe(e) {
    if (eU(e))
      return e;
    if (uc(e)) {
      const t = qA(e), r = t == null ? void 0 : t.initializer;
      return r && eU(r) ? r : void 0;
    }
    return e.expression && eU(e.expression) ? e.expression : void 0;
  }
  function Cne(e) {
    if (e = js(e), br(e))
      return Cne(e.left);
    if ((Fr(e) || cl(e) || no(e)) && !yu(e))
      return e;
  }
  function m2e(e, t, r) {
    if (Fr(t) || cl(t) || no(t)) {
      const i = m2e(e, t.expression, r), o = r.length > 0 ? r[r.length - 1] : void 0, s = (o == null ? void 0 : o.getText()) === t.expression.getText();
      if (s && r.pop(), no(t))
        return s ? N.createCallChain(i, N.createToken(28), t.typeArguments, t.arguments) : N.createCallChain(i, t.questionDotToken, t.typeArguments, t.arguments);
      if (Fr(t))
        return s ? N.createPropertyAccessChain(i, N.createToken(28), t.name) : N.createPropertyAccessChain(i, t.questionDotToken, t.name);
      if (cl(t))
        return s ? N.createElementAccessChain(i, N.createToken(28), t.argumentExpression) : N.createElementAccessChain(i, t.questionDotToken, t.argumentExpression);
    }
    return t;
  }
  function iJe(e, t, r, i, o) {
    const { finalExpression: s, occurrences: c, expression: f } = i, d = c[c.length - 1], y = m2e(t, s, c);
    y && (Fr(y) || cl(y) || no(y)) && (br(f) ? r.replaceNodeRange(e, d, s, y) : SC(f) && r.replaceNode(e, f, N.createBinaryExpression(y, N.createToken(60), f.whenFalse)));
  }
  var tP, nU, rU, aJe = C({
    "src/services/refactors/convertToOptionalChainExpression.ts"() {
      $r(), Rh(), tP = "Convert to optional chain expression", nU = Oo(_.Convert_to_optional_chain_expression), rU = {
        name: tP,
        description: nU,
        kind: "refactor.rewrite.expression.optionalChain"
      }, Tg(tP, {
        kinds: [rU.kind],
        getEditsForAction: Yqe,
        getAvailableActions: Xqe
      });
    }
  }), oJe = {}, sJe = C({
    "src/services/_namespaces/ts.refactor.convertToOptionalChainExpression.ts"() {
      aJe();
    }
  });
  function h2e(e) {
    const t = e.kind, r = Lne(e.file, zx(e), e.triggerReason === "invoked"), i = r.targetRange;
    if (i === void 0) {
      if (!r.errors || r.errors.length === 0 || !e.preferences.provideRefactorNotApplicableReason)
        return rt;
      const I = [];
      return $v(s2.kind, t) && I.push({
        name: a2,
        description: s2.description,
        actions: [{ ...s2, notApplicableReason: L(r.errors) }]
      }), $v(o2.kind, t) && I.push({
        name: a2,
        description: o2.description,
        actions: [{ ...o2, notApplicableReason: L(r.errors) }]
      }), I;
    }
    const o = _Je(i, e);
    if (o === void 0)
      return rt;
    const s = [], c = /* @__PURE__ */ new Map();
    let f;
    const d = [], y = /* @__PURE__ */ new Map();
    let h, E = 0;
    for (const { functionExtraction: I, constantExtraction: O } of o) {
      if ($v(s2.kind, t)) {
        const k = I.description;
        I.errors.length === 0 ? c.has(k) || (c.set(k, !0), s.push({
          description: k,
          name: `function_scope_${E}`,
          kind: s2.kind
        })) : f || (f = {
          description: k,
          name: `function_scope_${E}`,
          notApplicableReason: L(I.errors),
          kind: s2.kind
        });
      }
      if ($v(o2.kind, t)) {
        const k = O.description;
        O.errors.length === 0 ? y.has(k) || (y.set(k, !0), d.push({
          description: k,
          name: `constant_scope_${E}`,
          kind: o2.kind
        })) : h || (h = {
          description: k,
          name: `constant_scope_${E}`,
          notApplicableReason: L(O.errors),
          kind: o2.kind
        });
      }
      E++;
    }
    const A = [];
    return s.length ? A.push({
      name: a2,
      description: Oo(_.Extract_function),
      actions: s
    }) : e.preferences.provideRefactorNotApplicableReason && f && A.push({
      name: a2,
      description: Oo(_.Extract_function),
      actions: [f]
    }), d.length ? A.push({
      name: a2,
      description: Oo(_.Extract_constant),
      actions: d
    }) : e.preferences.provideRefactorNotApplicableReason && h && A.push({
      name: a2,
      description: Oo(_.Extract_constant),
      actions: [h]
    }), A.length ? A : rt;
    function L(I) {
      let O = I[0].messageText;
      return typeof O != "string" && (O = O.messageText), O;
    }
  }
  function g2e(e, t) {
    const i = Lne(e.file, zx(e)).targetRange, o = /^function_scope_(\d+)$/.exec(t);
    if (o) {
      const c = +o[1];
      return D.assert(isFinite(c), "Expected to parse a finite number from the function scope index"), dJe(i, e, c);
    }
    const s = /^constant_scope_(\d+)$/.exec(t);
    if (s) {
      const c = +s[1];
      return D.assert(isFinite(c), "Expected to parse a finite number from the constant scope index"), fJe(i, e, c);
    }
    D.fail("Unrecognized action name");
  }
  function Lne(e, t, r = !0) {
    const { length: i } = t;
    if (i === 0 && !r)
      return { errors: [Dc(e, t.start, i, qc.cannotExtractEmpty)] };
    const o = i === 0 && r, s = Bye(e, t.start), c = WF(e, iu(t)), f = s && c && r ? lJe(s, c, e) : t, d = o ? NJe(s) : c6(s, e, f), y = o ? d : c6(c, e, f);
    let h = 0, E;
    if (!d || !y)
      return { errors: [Dc(e, t.start, i, qc.cannotExtractRange)] };
    if (d.flags & 8388608)
      return { errors: [Dc(e, t.start, i, qc.cannotExtractJSDoc)] };
    if (d.parent !== y.parent)
      return { errors: [Dc(e, t.start, i, qc.cannotExtractRange)] };
    if (d !== y) {
      if (!v2e(d.parent))
        return { errors: [Dc(e, t.start, i, qc.cannotExtractRange)] };
      const V = [];
      for (const H of d.parent.statements) {
        if (H === d || V.length) {
          const te = G(H);
          if (te)
            return { errors: te };
          V.push(H);
        }
        if (H === y)
          break;
      }
      return V.length ? { targetRange: { range: V, facts: h, thisNode: E } } : { errors: [Dc(e, t.start, i, qc.cannotExtractRange)] };
    }
    if (bp(d) && !d.expression)
      return { errors: [Dc(e, t.start, i, qc.cannotExtractRange)] };
    const A = I(d), L = O(A) || G(A);
    if (L)
      return { errors: L };
    return { targetRange: { range: cJe(A), facts: h, thisNode: E } };
    function I(V) {
      if (bp(V)) {
        if (V.expression)
          return V.expression;
      } else if (uc(V) || Uu(V)) {
        const H = uc(V) ? V.declarationList.declarations : V.declarations;
        let te = 0, X;
        for (const Y of H)
          Y.initializer && (te++, X = Y.initializer);
        if (te === 1)
          return X;
      } else if (Ki(V) && V.initializer)
        return V.initializer;
      return V;
    }
    function O(V) {
      if (je(ou(V) ? V.expression : V))
        return [Nr(V, qc.cannotExtractIdentifier)];
    }
    function k(V, H) {
      let te = V;
      for (; te !== H; ) {
        if (te.kind === 169) {
          Ja(te) && (h |= 32);
          break;
        } else if (te.kind === 166) {
          Cf(te).kind === 173 && (h |= 32);
          break;
        } else
          te.kind === 171 && Ja(te) && (h |= 32);
        te = te.parent;
      }
    }
    function G(V) {
      let H;
      if (((re) => {
        re[re.None = 0] = "None", re[re.Break = 1] = "Break", re[re.Continue = 2] = "Continue", re[re.Return = 4] = "Return";
      })(H || (H = {})), D.assert(V.pos <= V.end, "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809 (1)"), D.assert(!Qp(V.pos), "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809 (2)"), !wa(V) && !(dg(V) && y2e(V)) && !Rne(V))
        return [Nr(V, qc.statementOrExpressionExpected)];
      if (V.flags & 16777216)
        return [Nr(V, qc.cannotExtractAmbientBlock)];
      const te = xc(V);
      te && k(V, te);
      let X, Y = 4, P;
      if (de(V), h & 8) {
        const re = Sd(V, !1, !1);
        (re.kind === 259 || re.kind === 171 && re.parent.kind === 207 || re.kind === 215) && (h |= 16);
      }
      return X;
      function de(re) {
        if (X)
          return !0;
        if (vu(re)) {
          const ae = re.kind === 257 ? re.parent.parent : re;
          if (Yr(ae, 1))
            return (X || (X = [])).push(Nr(re, qc.cannotExtractExportedEntity)), !0;
        }
        switch (re.kind) {
          case 269:
            return (X || (X = [])).push(Nr(re, qc.cannotExtractImport)), !0;
          case 274:
            return (X || (X = [])).push(Nr(re, qc.cannotExtractExportedEntity)), !0;
          case 106:
            if (re.parent.kind === 210) {
              const ae = xc(re);
              if (ae === void 0 || ae.pos < t.start || ae.end >= t.start + t.length)
                return (X || (X = [])).push(Nr(re, qc.cannotExtractSuper)), !0;
            } else
              h |= 8, E = re;
            break;
          case 216:
            Ma(re, function ae(W) {
              if (qC(W))
                h |= 8, E = re;
              else {
                if (di(W) || Ka(W) && !Js(W))
                  return !1;
                Ma(W, ae);
              }
            });
          case 260:
          case 259:
            qi(re.parent) && re.parent.externalModuleIndicator === void 0 && (X || (X = [])).push(Nr(re, qc.functionWillNotBeVisibleInTheNewScope));
          case 228:
          case 215:
          case 171:
          case 173:
          case 174:
          case 175:
            return !1;
        }
        const ye = Y;
        switch (re.kind) {
          case 242:
            Y &= -5;
            break;
          case 255:
            Y = 0;
            break;
          case 238:
            re.parent && re.parent.kind === 255 && re.parent.finallyBlock === re && (Y = 4);
            break;
          case 293:
          case 292:
            Y |= 1;
            break;
          default:
            Lv(re, !1) && (Y |= 3);
            break;
        }
        switch (re.kind) {
          case 194:
          case 108:
            h |= 8, E = re;
            break;
          case 253: {
            const ae = re.label;
            (P || (P = [])).push(ae.escapedText), Ma(re, de), P.pop();
            break;
          }
          case 249:
          case 248: {
            const ae = re.label;
            ae ? jr(P, ae.escapedText) || (X || (X = [])).push(Nr(re, qc.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange)) : Y & (re.kind === 249 ? 1 : 2) || (X || (X = [])).push(Nr(re, qc.cannotExtractRangeContainingConditionalBreakOrContinueStatements));
            break;
          }
          case 220:
            h |= 4;
            break;
          case 226:
            h |= 2;
            break;
          case 250:
            Y & 4 ? h |= 1 : (X || (X = [])).push(Nr(re, qc.cannotExtractRangeContainingConditionalReturnStatement));
            break;
          default:
            Ma(re, de);
            break;
        }
        Y = ye;
      }
    }
  }
  function lJe(e, t, r) {
    const i = e.getStart(r);
    let o = t.getEnd();
    return r.text.charCodeAt(o) === 59 && o++, { start: i, length: o - i };
  }
  function cJe(e) {
    if (wa(e))
      return [e];
    if (dg(e))
      return ou(e.parent) ? [e.parent] : e;
    if (Rne(e))
      return e;
  }
  function Ine(e) {
    return Js(e) ? LW(e.body) : Qs(e) || qi(e) || tm(e) || di(e);
  }
  function uJe(e) {
    let t = Sg(e.range) ? us(e.range) : e.range;
    if (e.facts & 8 && !(e.facts & 16)) {
      const i = xc(t);
      if (i) {
        const o = nr(t, Qs);
        return o ? [o, i] : [i];
      }
    }
    const r = [];
    for (; ; )
      if (t = t.parent, t.kind === 166 && (t = nr(t, (i) => Qs(i)).parent), Ine(t) && (r.push(t), t.kind === 308))
        return r;
  }
  function dJe(e, t, r) {
    const { scopes: i, readsAndWrites: { target: o, usagesPerScope: s, functionErrorsPerScope: c, exposedVariableDeclarations: f } } = kne(e, t);
    return D.assert(!c[r].length, "The extraction went missing? How?"), t.cancellationToken.throwIfCancellationRequested(), vJe(o, i[r], s[r], f, e, t);
  }
  function fJe(e, t, r) {
    const { scopes: i, readsAndWrites: { target: o, usagesPerScope: s, constantErrorsPerScope: c, exposedVariableDeclarations: f } } = kne(e, t);
    D.assert(!c[r].length, "The extraction went missing? How?"), D.assert(f.length === 0, "Extract constant accepted a range containing a variable declaration?"), t.cancellationToken.throwIfCancellationRequested();
    const d = vt(o) ? o : o.statements[0].expression;
    return bJe(d, i[r], s[r], e.facts, t);
  }
  function _Je(e, t) {
    const { scopes: r, readsAndWrites: { functionErrorsPerScope: i, constantErrorsPerScope: o } } = kne(e, t);
    return r.map((c, f) => {
      const d = pJe(c), y = mJe(c), h = Qs(c) ? hJe(c) : di(c) ? gJe(c) : yJe(c);
      let E, A;
      return h === 1 ? (E = Th(Oo(_.Extract_to_0_in_1_scope), [d, "global"]), A = Th(Oo(_.Extract_to_0_in_1_scope), [y, "global"])) : h === 0 ? (E = Th(Oo(_.Extract_to_0_in_1_scope), [d, "module"]), A = Th(Oo(_.Extract_to_0_in_1_scope), [y, "module"])) : (E = Th(Oo(_.Extract_to_0_in_1), [d, h]), A = Th(Oo(_.Extract_to_0_in_1), [y, h])), f === 0 && !di(c) && (A = Th(Oo(_.Extract_to_0_in_enclosing_scope), [y])), {
        functionExtraction: {
          description: E,
          errors: i[f]
        },
        constantExtraction: {
          description: A,
          errors: o[f]
        }
      };
    });
  }
  function kne(e, t) {
    const { file: r } = t, i = uJe(e), o = DJe(e, r), s = RJe(e, i, o, r, t.program.getTypeChecker(), t.cancellationToken);
    return { scopes: i, readsAndWrites: s };
  }
  function pJe(e) {
    return Qs(e) ? "inner function" : di(e) ? "method" : "function";
  }
  function mJe(e) {
    return di(e) ? "readonly field" : "constant";
  }
  function hJe(e) {
    switch (e.kind) {
      case 173:
        return "constructor";
      case 215:
      case 259:
        return e.name ? `function '${e.name.text}'` : A9;
      case 216:
        return "arrow function";
      case 171:
        return `method '${e.name.getText()}'`;
      case 174:
        return `'get ${e.name.getText()}'`;
      case 175:
        return `'set ${e.name.getText()}'`;
      default:
        throw D.assertNever(e, `Unexpected scope kind ${e.kind}`);
    }
  }
  function gJe(e) {
    return e.kind === 260 ? e.name ? `class '${e.name.text}'` : "anonymous class declaration" : e.name ? `class expression '${e.name.text}'` : "anonymous class expression";
  }
  function yJe(e) {
    return e.kind === 265 ? `namespace '${e.parent.name.getText()}'` : e.externalModuleIndicator ? 0 : 1;
  }
  function vJe(e, t, { usages: r, typeParameterUsages: i, substitutions: o }, s, c, f) {
    const d = f.program.getTypeChecker(), y = ts(f.program.getCompilerOptions()), h = Hu.createImportAdder(f.file, f.program, f.preferences, f.host), E = t.getSourceFile(), A = KT(di(t) ? "newMethod" : "newFunction", E), L = fr(t), I = N.createIdentifier(A);
    let O;
    const k = [], G = [];
    let V;
    r.forEach((Oe, Me) => {
      let Ye;
      if (!L) {
        let Fe = d.getTypeOfSymbolAtLocation(Oe.symbol, Oe.node);
        Fe = d.getBaseTypeOfLiteralType(Fe), Ye = Hu.typeToAutoImportableTypeNode(d, h, Fe, t, y, 1);
      }
      const We = N.createParameterDeclaration(void 0, void 0, Me, void 0, Ye);
      k.push(We), Oe.usage === 2 && (V || (V = [])).push(Oe), G.push(N.createIdentifier(Me));
    });
    const te = Ro(i.values(), (Oe) => ({ type: Oe, declaration: TJe(Oe) })).sort(SJe), X = te.length === 0 ? void 0 : te.map((Oe) => Oe.declaration), Y = X !== void 0 ? X.map((Oe) => N.createTypeReferenceNode(Oe.name, void 0)) : void 0;
    if (vt(e) && !L) {
      const Oe = d.getContextualType(e);
      O = d.typeToTypeNode(Oe, t, 1);
    }
    const { body: P, returnValueProperty: de } = AJe(e, s, V, o, !!(c.facts & 1));
    zd(P);
    let re;
    const ye = !!(c.facts & 16);
    if (di(t)) {
      const Oe = L ? [] : [N.createModifier(121)];
      c.facts & 32 && Oe.push(N.createModifier(124)), c.facts & 4 && Oe.push(N.createModifier(132)), re = N.createMethodDeclaration(Oe.length ? Oe : void 0, c.facts & 2 ? N.createToken(41) : void 0, I, void 0, X, k, O, P);
    } else
      ye && k.unshift(N.createParameterDeclaration(void 0, void 0, "this", void 0, d.typeToTypeNode(d.getTypeAtLocation(c.thisNode), t, 1), void 0)), re = N.createFunctionDeclaration(c.facts & 4 ? [N.createToken(132)] : void 0, c.facts & 2 ? N.createToken(41) : void 0, I, X, k, O, P);
    const ae = gr.ChangeTracker.fromContext(f), W = (Sg(c.range) ? qo(c.range) : c.range).end, ce = IJe(W, t);
    ce ? ae.insertNodeBefore(f.file, ce, re, !0) : ae.insertNodeAtEndOfScope(f.file, t, re), h.writeFixes(ae);
    const me = [], ve = xJe(t, c, A);
    ye && G.unshift(N.createIdentifier("this"));
    let Te = N.createCallExpression(ye ? N.createPropertyAccessExpression(ve, "call") : ve, Y, G);
    if (c.facts & 2 && (Te = N.createYieldExpression(N.createToken(41), Te)), c.facts & 4 && (Te = N.createAwaitExpression(Te)), Dne(e) && (Te = N.createJsxExpression(void 0, Te)), s.length && !V)
      if (D.assert(!de, "Expected no returnValueProperty"), D.assert(!(c.facts & 1), "Expected RangeFacts.HasReturn flag to be unset"), s.length === 1) {
        const Oe = s[0];
        me.push(N.createVariableStatement(void 0, N.createVariableDeclarationList([N.createVariableDeclaration(wl(Oe.name), void 0, wl(Oe.type), Te)], Oe.parent.flags)));
      } else {
        const Oe = [], Me = [];
        let Ye = s[0].parent.flags, We = !1;
        for (const st of s) {
          Oe.push(N.createBindingElement(void 0, void 0, wl(st.name)));
          const Ct = d.typeToTypeNode(d.getBaseTypeOfLiteralType(d.getTypeAtLocation(st)), t, 1);
          Me.push(N.createPropertySignature(void 0, st.symbol.name, void 0, Ct)), We = We || st.type !== void 0, Ye = Ye & st.parent.flags;
        }
        const Fe = We ? N.createTypeLiteralNode(Me) : void 0;
        Fe && or(Fe, 1), me.push(N.createVariableStatement(void 0, N.createVariableDeclarationList([N.createVariableDeclaration(N.createObjectBindingPattern(Oe), void 0, Fe, Te)], Ye)));
      }
    else if (s.length || V) {
      if (s.length)
        for (const Me of s) {
          let Ye = Me.parent.flags;
          Ye & 2 && (Ye = Ye & -3 | 1), me.push(N.createVariableStatement(void 0, N.createVariableDeclarationList([N.createVariableDeclaration(Me.symbol.name, void 0, qe(Me.type))], Ye)));
        }
      de && me.push(N.createVariableStatement(void 0, N.createVariableDeclarationList([N.createVariableDeclaration(de, void 0, qe(O))], 1)));
      const Oe = wne(s, V);
      de && Oe.unshift(N.createShorthandPropertyAssignment(de)), Oe.length === 1 ? (D.assert(!de, "Shouldn't have returnValueProperty here"), me.push(N.createExpressionStatement(N.createAssignment(Oe[0].name, Te))), c.facts & 1 && me.push(N.createReturnStatement())) : (me.push(N.createExpressionStatement(N.createAssignment(N.createObjectLiteralExpression(Oe), Te))), de && me.push(N.createReturnStatement(N.createIdentifier(de))));
    } else
      c.facts & 1 ? me.push(N.createReturnStatement(Te)) : Sg(c.range) ? me.push(N.createExpressionStatement(Te)) : me.push(Te);
    Sg(c.range) ? ae.replaceNodeRangeWithNodes(f.file, us(c.range), qo(c.range), me) : ae.replaceNodeWithNodes(f.file, c.range, me);
    const ee = ae.getChanges(), Ve = (Sg(c.range) ? us(c.range) : c.range).getSourceFile().fileName, Be = _6(ee, Ve, A, !1);
    return { renameFilename: Ve, renameLocation: Be, edits: ee };
    function qe(Oe) {
      if (Oe === void 0)
        return;
      const Me = wl(Oe);
      let Ye = Me;
      for (; xx(Ye); )
        Ye = Ye.type;
      return Sx(Ye) && nn(Ye.types, (We) => We.kind === 155) ? Me : N.createUnionTypeNode([Me, N.createKeywordTypeNode(155)]);
    }
  }
  function bJe(e, t, { substitutions: r }, i, o) {
    const s = o.program.getTypeChecker(), c = t.getSourceFile(), f = Fr(e) && !di(t) && !s.resolveName(e.name.text, e, 111551, !1) && !Ni(e.name) && !U0(e.name) ? e.name.text : KT(di(t) ? "newProperty" : "newLocal", c), d = fr(t);
    let y = d || !s.isContextSensitive(e) ? void 0 : s.typeToTypeNode(s.getContextualType(e), t, 1), h = CJe(js(e), r);
    ({ variableType: y, initializer: h } = O(y, h)), zd(h);
    const E = gr.ChangeTracker.fromContext(o);
    if (di(t)) {
      D.assert(!d, "Cannot extract to a JS class");
      const k = [];
      k.push(N.createModifier(121)), i & 32 && k.push(N.createModifier(124)), k.push(N.createModifier(146));
      const G = N.createPropertyDeclaration(k, f, void 0, y, h);
      let V = N.createPropertyAccessExpression(i & 32 ? N.createIdentifier(t.name.getText()) : N.createThis(), N.createIdentifier(f));
      Dne(e) && (V = N.createJsxExpression(void 0, V));
      const H = e.pos, te = kJe(H, t);
      E.insertNodeBefore(o.file, te, G, !0), E.replaceNode(o.file, e, V);
    } else {
      const k = N.createVariableDeclaration(f, void 0, y, h), G = EJe(e, t);
      if (G) {
        E.insertNodeBefore(o.file, G, k);
        const V = N.createIdentifier(f);
        E.replaceNode(o.file, e, V);
      } else if (e.parent.kind === 241 && t === nr(e, Ine)) {
        const V = N.createVariableStatement(void 0, N.createVariableDeclarationList([k], 2));
        E.replaceNode(o.file, e.parent, V);
      } else {
        const V = N.createVariableStatement(void 0, N.createVariableDeclarationList([k], 2)), H = wJe(e, t);
        if (H.pos === 0 ? E.insertNodeAtTopOfFile(o.file, V, !1) : E.insertNodeBefore(o.file, H, V, !1), e.parent.kind === 241)
          E.delete(o.file, e.parent);
        else {
          let te = N.createIdentifier(f);
          Dne(e) && (te = N.createJsxExpression(void 0, te)), E.replaceNode(o.file, e, te);
        }
      }
    }
    const A = E.getChanges(), L = e.getSourceFile().fileName, I = _6(A, L, f, !0);
    return { renameFilename: L, renameLocation: I, edits: A };
    function O(k, G) {
      if (k === void 0)
        return { variableType: k, initializer: G };
      if (!Bs(G) && !Js(G) || G.typeParameters)
        return { variableType: k, initializer: G };
      const V = s.getTypeAtLocation(e), H = Am(s.getSignaturesOfType(V, 0));
      if (!H)
        return { variableType: k, initializer: G };
      if (H.getTypeParameters())
        return { variableType: k, initializer: G };
      const te = [];
      let X = !1;
      for (const Y of G.parameters)
        if (Y.type)
          te.push(Y);
        else {
          const P = s.getTypeAtLocation(Y);
          P === s.getAnyType() && (X = !0), te.push(N.updateParameterDeclaration(Y, Y.modifiers, Y.dotDotDotToken, Y.name, Y.questionToken, Y.type || s.typeToTypeNode(P, t, 1), Y.initializer));
        }
      if (X)
        return { variableType: k, initializer: G };
      if (k = void 0, Js(G))
        G = N.updateArrowFunction(G, K_(e) ? eT(e) : void 0, G.typeParameters, te, G.type || s.typeToTypeNode(H.getReturnType(), t, 1), G.equalsGreaterThanToken, G.body);
      else {
        if (H && H.thisParameter) {
          const Y = Yc(te);
          if (!Y || je(Y.name) && Y.name.escapedText !== "this") {
            const P = s.getTypeOfSymbolAtLocation(H.thisParameter, e);
            te.splice(0, 0, N.createParameterDeclaration(void 0, void 0, "this", void 0, s.typeToTypeNode(P, t, 1)));
          }
        }
        G = N.updateFunctionExpression(G, K_(e) ? eT(e) : void 0, G.asteriskToken, G.name, G.typeParameters, te, G.type || s.typeToTypeNode(H.getReturnType(), t, 1), G.body);
      }
      return { variableType: k, initializer: G };
    }
  }
  function EJe(e, t) {
    let r;
    for (; e !== void 0 && e !== t; ) {
      if (Ki(e) && e.initializer === r && Uu(e.parent) && e.parent.declarations.length > 1)
        return e;
      r = e, e = e.parent;
    }
  }
  function TJe(e) {
    let t;
    const r = e.symbol;
    if (r && r.declarations)
      for (const i of r.declarations)
        (t === void 0 || i.pos < t.pos) && (t = i);
    return t;
  }
  function SJe({ type: e, declaration: t }, { type: r, declaration: i }) {
    return Fse(t, i, "pos", Ws) || Nu(e.symbol ? e.symbol.getName() : "", r.symbol ? r.symbol.getName() : "") || Ws(e.id, r.id);
  }
  function xJe(e, t, r) {
    const i = N.createIdentifier(r);
    if (di(e)) {
      const o = t.facts & 32 ? N.createIdentifier(e.name.text) : N.createThis();
      return N.createPropertyAccessExpression(o, i);
    } else
      return i;
  }
  function AJe(e, t, r, i, o) {
    const s = r !== void 0 || t.length > 0;
    if (co(e) && !s && i.size === 0)
      return { body: N.createBlock(e.statements, !0), returnValueProperty: void 0 };
    let c, f = !1;
    const d = N.createNodeArray(co(e) ? e.statements.slice(0) : [wa(e) ? e : N.createReturnStatement(js(e))]);
    if (s || i.size) {
      const h = Jn(d, y, wa).slice();
      if (s && !o && wa(e)) {
        const E = wne(t, r);
        E.length === 1 ? h.push(N.createReturnStatement(E[0].name)) : h.push(N.createReturnStatement(N.createObjectLiteralExpression(E)));
      }
      return { body: N.createBlock(h, !0), returnValueProperty: c };
    } else
      return { body: N.createBlock(d, !0), returnValueProperty: void 0 };
    function y(h) {
      if (!f && bp(h) && s) {
        const E = wne(t, r);
        return h.expression && (c || (c = "__return"), E.unshift(N.createPropertyAssignment(c, lt(h.expression, y, vt)))), E.length === 1 ? N.createReturnStatement(E[0].name) : N.createReturnStatement(N.createObjectLiteralExpression(E));
      } else {
        const E = f;
        f = f || Qs(h) || di(h);
        const A = i.get(ps(h).toString()), L = A ? wl(A) : Bn(h, y, bg);
        return f = E, L;
      }
    }
  }
  function CJe(e, t) {
    return t.size ? r(e) : e;
    function r(i) {
      const o = t.get(ps(i).toString());
      return o ? wl(o) : Bn(i, r, bg);
    }
  }
  function LJe(e) {
    if (Qs(e)) {
      const t = e.body;
      if (co(t))
        return t.statements;
    } else {
      if (tm(e) || qi(e))
        return e.statements;
      if (di(e))
        return e.members;
    }
    return rt;
  }
  function IJe(e, t) {
    return nn(LJe(t), (r) => r.pos >= e && Qs(r) && !ql(r));
  }
  function kJe(e, t) {
    const r = t.members;
    D.assert(r.length > 0, "Found no members");
    let i, o = !0;
    for (const s of r) {
      if (s.pos > e)
        return i || r[0];
      if (o && !to(s)) {
        if (i !== void 0)
          return s;
        o = !1;
      }
      i = s;
    }
    return i === void 0 ? D.fail() : i;
  }
  function wJe(e, t) {
    D.assert(!di(t));
    let r;
    for (let i = e; i !== t; i = i.parent)
      Ine(i) && (r = i);
    for (let i = (r || e).parent; ; i = i.parent) {
      if (v2e(i)) {
        let o;
        for (const s of i.statements) {
          if (s.pos > e.pos)
            break;
          o = s;
        }
        return !o && Mk(i) ? (D.assert(OO(i.parent.parent), "Grandparent isn't a switch statement"), i.parent.parent) : D.checkDefined(o, "prevStatement failed to get set");
      }
      D.assert(i !== t, "Didn't encounter a block-like before encountering scope");
    }
  }
  function wne(e, t) {
    const r = jt(e, (o) => N.createShorthandPropertyAssignment(o.symbol.name)), i = jt(t, (o) => N.createShorthandPropertyAssignment(o.symbol.name));
    return r === void 0 ? i : i === void 0 ? r : r.concat(i);
  }
  function Sg(e) {
    return Va(e);
  }
  function DJe(e, t) {
    return Sg(e.range) ? { pos: us(e.range).getStart(t), end: qo(e.range).getEnd() } : e.range;
  }
  function RJe(e, t, r, i, o, s) {
    const c = /* @__PURE__ */ new Map(), f = [], d = [], y = [], h = [], E = [], A = /* @__PURE__ */ new Map(), L = [];
    let I;
    const O = Sg(e.range) ? e.range.length === 1 && ou(e.range[0]) ? e.range[0].expression : void 0 : e.range;
    let k;
    if (O === void 0) {
      const ce = e.range, me = us(ce).getStart(), ve = qo(ce).end;
      k = Dc(i, me, ve - me, qc.expressionExpected);
    } else
      o.getTypeAtLocation(O).flags & 147456 && (k = Nr(O, qc.uselessConstantType));
    for (const ce of t) {
      f.push({ usages: /* @__PURE__ */ new Map(), typeParameterUsages: /* @__PURE__ */ new Map(), substitutions: /* @__PURE__ */ new Map() }), d.push(/* @__PURE__ */ new Map()), y.push([]);
      const me = [];
      k && me.push(k), di(ce) && fr(ce) && me.push(Nr(ce, qc.cannotExtractToJSClass)), Js(ce) && !co(ce.body) && me.push(Nr(ce, qc.cannotExtractToExpressionArrowFunction)), h.push(me);
    }
    const G = /* @__PURE__ */ new Map(), V = Sg(e.range) ? N.createBlock(e.range) : e.range, H = Sg(e.range) ? us(e.range) : e.range, te = X(H);
    if (P(V), te && !Sg(e.range) && !nm(e.range)) {
      const ce = o.getContextualType(e.range);
      Y(ce);
    }
    if (c.size > 0) {
      const ce = /* @__PURE__ */ new Map();
      let me = 0;
      for (let ve = H; ve !== void 0 && me < t.length; ve = ve.parent)
        if (ve === t[me] && (ce.forEach((Te, ee) => {
          f[me].typeParameterUsages.set(ee, Te);
        }), me++), ZW(ve))
          for (const Te of Av(ve)) {
            const ee = o.getTypeAtLocation(Te);
            c.has(ee.id.toString()) && ce.set(ee.id.toString(), ee);
          }
      D.assert(me === t.length, "Should have iterated all scopes");
    }
    if (E.length) {
      const ce = QW(t[0], t[0].parent) ? t[0] : Mm(t[0]);
      Ma(ce, ye);
    }
    for (let ce = 0; ce < t.length; ce++) {
      const me = f[ce];
      if (ce > 0 && (me.usages.size > 0 || me.typeParameterUsages.size > 0)) {
        const ee = Sg(e.range) ? e.range[0] : e.range;
        h[ce].push(Nr(ee, qc.cannotAccessVariablesFromNestedScopes));
      }
      e.facts & 16 && di(t[ce]) && y[ce].push(Nr(e.thisNode, qc.cannotExtractFunctionsContainingThisToMethod));
      let ve = !1, Te;
      if (f[ce].usages.forEach((ee) => {
        ee.usage === 2 && (ve = !0, ee.symbol.flags & 106500 && ee.symbol.valueDeclaration && Gd(ee.symbol.valueDeclaration, 64) && (Te = ee.symbol.valueDeclaration));
      }), D.assert(Sg(e.range) || L.length === 0, "No variable declarations expected if something was extracted"), ve && !Sg(e.range)) {
        const ee = Nr(e.range, qc.cannotWriteInExpression);
        y[ce].push(ee), h[ce].push(ee);
      } else if (Te && ce > 0) {
        const ee = Nr(Te, qc.cannotExtractReadonlyPropertyInitializerOutsideConstructor);
        y[ce].push(ee), h[ce].push(ee);
      } else if (I) {
        const ee = Nr(I, qc.cannotExtractExportedEntity);
        y[ce].push(ee), h[ce].push(ee);
      }
    }
    return { target: V, usagesPerScope: f, functionErrorsPerScope: y, constantErrorsPerScope: h, exposedVariableDeclarations: L };
    function X(ce) {
      return !!nr(ce, (me) => ZW(me) && Av(me).length !== 0);
    }
    function Y(ce) {
      const me = o.getSymbolWalker(() => (s.throwIfCancellationRequested(), !0)), { visitedTypes: ve } = me.walkType(ce);
      for (const Te of ve)
        Te.isTypeParameter() && c.set(Te.id.toString(), Te);
    }
    function P(ce, me = 1) {
      if (te) {
        const ve = o.getTypeAtLocation(ce);
        Y(ve);
      }
      if (vu(ce) && ce.symbol && E.push(ce), ed(ce))
        P(ce.left, 2), P(ce.right);
      else if (Cce(ce))
        P(ce.operand, 2);
      else if (Fr(ce) || cl(ce))
        Ma(ce, P);
      else if (je(ce)) {
        if (!ce.parent || Cd(ce.parent) && ce !== ce.parent.left || Fr(ce.parent) && ce !== ce.parent.expression)
          return;
        de(ce, me, yh(ce));
      } else
        Ma(ce, P);
    }
    function de(ce, me, ve) {
      const Te = re(ce, me, ve);
      if (Te)
        for (let ee = 0; ee < t.length; ee++) {
          const Qe = d[ee].get(Te);
          Qe && f[ee].substitutions.set(ps(ce).toString(), Qe);
        }
    }
    function re(ce, me, ve) {
      const Te = ae(ce);
      if (!Te)
        return;
      const ee = bo(Te).toString(), Qe = G.get(ee);
      if (Qe && Qe >= me)
        return ee;
      if (G.set(ee, me), Qe) {
        for (const qe of f)
          qe.usages.get(ce.text) && qe.usages.set(ce.text, { usage: me, symbol: Te, node: ce });
        return ee;
      }
      const Ve = Te.getDeclarations(), Be = Ve && nn(Ve, (qe) => qe.getSourceFile() === i);
      if (Be && !Z8(r, Be.getStart(), Be.end)) {
        if (e.facts & 2 && me === 2) {
          const qe = Nr(ce, qc.cannotExtractRangeThatContainsWritesToReferencesLocatedOutsideOfTheTargetRangeInGenerators);
          for (const Oe of y)
            Oe.push(qe);
          for (const Oe of h)
            Oe.push(qe);
        }
        for (let qe = 0; qe < t.length; qe++) {
          const Oe = t[qe];
          if (o.resolveName(Te.name, Oe, Te.flags, !1) !== Te && !d[qe].has(ee)) {
            const Ye = W(Te.exportSymbol || Te, Oe, ve);
            if (Ye)
              d[qe].set(ee, Ye);
            else if (ve) {
              if (!(Te.flags & 262144)) {
                const We = Nr(ce, qc.typeWillNotBeVisibleInTheNewScope);
                y[qe].push(We), h[qe].push(We);
              }
            } else
              f[qe].usages.set(ce.text, { usage: me, symbol: Te, node: ce });
          }
        }
        return ee;
      }
    }
    function ye(ce) {
      if (ce === e.range || Sg(e.range) && e.range.indexOf(ce) >= 0)
        return;
      const me = je(ce) ? ae(ce) : o.getSymbolAtLocation(ce);
      if (me) {
        const ve = nn(E, (Te) => Te.symbol === me);
        if (ve)
          if (Ki(ve)) {
            const Te = ve.symbol.id.toString();
            A.has(Te) || (L.push(ve), A.set(Te, !0));
          } else
            I = I || ve;
      }
      Ma(ce, ye);
    }
    function ae(ce) {
      return ce.parent && t_(ce.parent) && ce.parent.name === ce ? o.getShorthandAssignmentValueSymbol(ce.parent) : o.getSymbolAtLocation(ce);
    }
    function W(ce, me, ve) {
      if (!ce)
        return;
      const Te = ce.getDeclarations();
      if (Te && Te.some((Qe) => Qe.parent === me))
        return N.createIdentifier(ce.name);
      const ee = W(ce.parent, me, ve);
      if (ee !== void 0)
        return ve ? N.createQualifiedName(ee, N.createIdentifier(ce.name)) : N.createPropertyAccessExpression(ee, ce.name);
    }
  }
  function NJe(e) {
    return nr(e, (t) => t.parent && y2e(t) && !br(t.parent));
  }
  function y2e(e) {
    const { parent: t } = e;
    switch (t.kind) {
      case 302:
        return !1;
    }
    switch (e.kind) {
      case 10:
        return t.kind !== 269 && t.kind !== 273;
      case 227:
      case 203:
      case 205:
        return !1;
      case 79:
        return t.kind !== 205 && t.kind !== 273 && t.kind !== 278;
    }
    return !0;
  }
  function v2e(e) {
    switch (e.kind) {
      case 238:
      case 308:
      case 265:
      case 292:
        return !0;
      default:
        return !1;
    }
  }
  function Dne(e) {
    return Rne(e) || (Ay(e) || wx(e) || Rx(e)) && (Ay(e.parent) || Rx(e.parent));
  }
  function Rne(e) {
    return jo(e) && e.parent && nm(e.parent);
  }
  var a2, o2, s2, qc, Nne, OJe = C({
    "src/services/refactors/extractSymbol.ts"() {
      $r(), Rh(), a2 = "Extract Symbol", o2 = {
        name: "Extract Constant",
        description: Oo(_.Extract_constant),
        kind: "refactor.extract.constant"
      }, s2 = {
        name: "Extract Function",
        description: Oo(_.Extract_function),
        kind: "refactor.extract.function"
      }, Tg(a2, {
        kinds: [
          o2.kind,
          s2.kind
        ],
        getEditsForAction: g2e,
        getAvailableActions: h2e
      }), ((e) => {
        function t(r) {
          return { message: r, code: 0, category: 3, key: r };
        }
        e.cannotExtractRange = t("Cannot extract range."), e.cannotExtractImport = t("Cannot extract import statement."), e.cannotExtractSuper = t("Cannot extract super call."), e.cannotExtractJSDoc = t("Cannot extract JSDoc."), e.cannotExtractEmpty = t("Cannot extract empty range."), e.expressionExpected = t("expression expected."), e.uselessConstantType = t("No reason to extract constant of type."), e.statementOrExpressionExpected = t("Statement or expression expected."), e.cannotExtractRangeContainingConditionalBreakOrContinueStatements = t("Cannot extract range containing conditional break or continue statements."), e.cannotExtractRangeContainingConditionalReturnStatement = t("Cannot extract range containing conditional return statement."), e.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange = t("Cannot extract range containing labeled break or continue with target outside of the range."), e.cannotExtractRangeThatContainsWritesToReferencesLocatedOutsideOfTheTargetRangeInGenerators = t("Cannot extract range containing writes to references located outside of the target range in generators."), e.typeWillNotBeVisibleInTheNewScope = t("Type will not visible in the new scope."), e.functionWillNotBeVisibleInTheNewScope = t("Function will not visible in the new scope."), e.cannotExtractIdentifier = t("Select more than a single identifier."), e.cannotExtractExportedEntity = t("Cannot extract exported declaration"), e.cannotWriteInExpression = t("Cannot write back side-effects when extracting an expression"), e.cannotExtractReadonlyPropertyInitializerOutsideConstructor = t("Cannot move initialization of read-only class property outside of the constructor"), e.cannotExtractAmbientBlock = t("Cannot extract code from ambient contexts"), e.cannotAccessVariablesFromNestedScopes = t("Cannot access variables from nested scopes"), e.cannotExtractToJSClass = t("Cannot extract constant to a class scope in JS"), e.cannotExtractToExpressionArrowFunction = t("Cannot extract constant to an arrow function without a block"), e.cannotExtractFunctionsContainingThisToMethod = t("Cannot extract functions containing this to method");
      })(qc || (qc = {})), Nne = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.HasReturn = 1] = "HasReturn", e[e.IsGenerator = 2] = "IsGenerator", e[e.IsAsyncFunction = 4] = "IsAsyncFunction", e[e.UsesThis = 8] = "UsesThis", e[e.UsesThisInFunction = 16] = "UsesThisInFunction", e[e.InStaticRegion = 32] = "InStaticRegion", e))(Nne || {});
    }
  }), b2e = {};
  ne(b2e, {
    Messages: () => qc,
    RangeFacts: () => Nne,
    getRangeToExtract: () => Lne,
    getRefactorActionsToExtractSymbol: () => h2e,
    getRefactorEditsToExtractSymbol: () => g2e
  });
  var PJe = C({
    "src/services/_namespaces/ts.refactor.extractSymbol.ts"() {
      OJe();
    }
  }), nP, iU, aU, MJe = C({
    "src/services/refactors/generateGetAccessorAndSetAccessor.ts"() {
      $r(), Rh(), nP = "Generate 'get' and 'set' accessors", iU = _.Generate_get_and_set_accessors.message, aU = {
        name: nP,
        description: iU,
        kind: "refactor.rewrite.property.generateAccessors"
      }, Tg(nP, {
        kinds: [aU.kind],
        getEditsForAction: function(t, r) {
          if (!t.endPosition)
            return;
          const i = Hu.getAccessorConvertiblePropertyAtPosition(t.file, t.program, t.startPosition, t.endPosition);
          D.assert(i && !Dh(i), "Expected applicable refactor info");
          const o = Hu.generateAccessorFromProperty(t.file, t.program, t.startPosition, t.endPosition, t, r);
          if (!o)
            return;
          const s = t.file.fileName, c = i.renameAccessor ? i.accessorName : i.fieldName, d = (je(c) ? 0 : -1) + _6(o, s, c.text, Ba(i.declaration));
          return { renameFilename: s, renameLocation: d, edits: o };
        },
        getAvailableActions(e) {
          if (!e.endPosition)
            return rt;
          const t = Hu.getAccessorConvertiblePropertyAtPosition(e.file, e.program, e.startPosition, e.endPosition, e.triggerReason === "invoked");
          return t ? Dh(t) ? e.preferences.provideRefactorNotApplicableReason ? [{
            name: nP,
            description: iU,
            actions: [{ ...aU, notApplicableReason: t.error }]
          }] : rt : [{
            name: nP,
            description: iU,
            actions: [aU]
          }] : rt;
        }
      });
    }
  }), FJe = {}, BJe = C({
    "src/services/_namespaces/ts.refactor.generateGetAccessorAndSetAccessor.ts"() {
      MJe();
    }
  });
  function GJe(e) {
    const t = E2e(e);
    if (t && !Dh(t))
      return { renameFilename: void 0, renameLocation: void 0, edits: gr.ChangeTracker.with(e, (i) => VJe(e.file, i, t.declaration, t.returnTypeNode)) };
  }
  function UJe(e) {
    const t = E2e(e);
    return t ? Dh(t) ? e.preferences.provideRefactorNotApplicableReason ? [{
      name: rP,
      description: oU,
      actions: [{ ...iP, notApplicableReason: t.error }]
    }] : rt : [{
      name: rP,
      description: oU,
      actions: [iP]
    }] : rt;
  }
  function VJe(e, t, r, i) {
    const o = bs(r, 21, e), s = Js(r) && o === void 0, c = s ? us(r.parameters) : o;
    c && (s && (t.insertNodeBefore(e, c, N.createToken(20)), t.insertNodeAfter(e, c, N.createToken(21))), t.insertNodeAt(e, c.end, i, { prefix: ": " }));
  }
  function E2e(e) {
    if (fr(e.file) || !$v(iP.kind, e.kind))
      return;
    const t = aa(e.file, e.startPosition), r = nr(t, (c) => co(c) || c.parent && Js(c.parent) && (c.kind === 38 || c.parent.body === c) ? "quit" : jJe(c));
    if (!r || !r.body || r.type)
      return { error: Oo(_.Return_type_must_be_inferred_from_a_function) };
    const i = e.program.getTypeChecker(), o = HJe(i, r);
    if (!o)
      return { error: Oo(_.Could_not_determine_function_return_type) };
    const s = i.typeToTypeNode(o, r, 1);
    if (s)
      return { declaration: r, returnTypeNode: s };
  }
  function jJe(e) {
    switch (e.kind) {
      case 259:
      case 215:
      case 216:
      case 171:
        return !0;
      default:
        return !1;
    }
  }
  function HJe(e, t) {
    if (e.isImplementationOfOverload(t)) {
      const i = e.getTypeAtLocation(t).getCallSignatures();
      if (i.length > 1)
        return e.getUnionType(ia(i, (o) => o.getReturnType()));
    }
    const r = e.getSignatureFromDeclaration(t);
    if (r)
      return e.getReturnTypeOfSignature(r);
  }
  var rP, oU, iP, WJe = C({
    "src/services/refactors/inferFunctionReturnType.ts"() {
      $r(), Rh(), rP = "Infer function return type", oU = _.Infer_function_return_type.message, iP = {
        name: rP,
        description: oU,
        kind: "refactor.rewrite.function.returnType"
      }, Tg(rP, {
        kinds: [iP.kind],
        getEditsForAction: GJe,
        getAvailableActions: UJe
      });
    }
  }), zJe = {}, qJe = C({
    "src/services/_namespaces/ts.refactor.inferFunctionReturnType.ts"() {
      WJe();
    }
  }), Hw = {};
  ne(Hw, {
    addOrRemoveBracesToArrowFunction: () => oqe,
    convertArrowFunctionOrFunctionExpression: () => yqe,
    convertParamsToDestructuredObject: () => Fqe,
    convertStringOrTemplateLiteral: () => Jqe,
    convertToOptionalChainExpression: () => oJe,
    doChangeNamedToNamespaceOrDefault: () => Cxe,
    extractSymbol: () => b2e,
    generateGetAccessorAndSetAccessor: () => FJe,
    getApplicableRefactors: () => rze,
    getEditsForRefactor: () => ize,
    inferFunctionReturnType: () => zJe,
    isRefactorErrorInfo: () => Dh,
    refactorKindBeginsWith: () => $v,
    registerRefactor: () => Tg
  });
  var Rh = C({
    "src/services/_namespaces/ts.refactor.ts"() {
      aze(), fze(), gze(), Sze(), xze(), Zze(), sqe(), vqe(), Bqe(), Kqe(), sJe(), PJe(), BJe(), qJe();
    }
  });
  function JJe(e, t, r, i) {
    const o = HF(Df(t, r));
    if (S2e(o)) {
      const s = KJe(o, e.getTypeChecker(), t, e, i);
      if (s)
        return s;
    }
    return sU(_.You_cannot_rename_this_element);
  }
  function KJe(e, t, r, i, o) {
    const s = t.getSymbolAtLocation(e);
    if (!s) {
      if (xs(e)) {
        const A = jF(e, t);
        if (A && (A.flags & 128 || A.flags & 1048576 && Yn(A.types, (L) => !!(L.flags & 128))))
          return One(e.text, e.text, "string", "", e, r);
      } else if (E$(e)) {
        const A = Sc(e);
        return One(A, A, "label", "", e, r);
      }
      return;
    }
    const { declarations: c } = s;
    if (!c || c.length === 0)
      return;
    if (c.some((A) => XJe(i, A)))
      return sU(_.You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library);
    if (je(e) && e.escapedText === "default" && s.parent && s.parent.flags & 1536)
      return;
    if (xs(e) && CN(e))
      return o.allowRenameOfImportPath ? $Je(e, r, s) : void 0;
    const f = YJe(r, s, t, o);
    if (f)
      return sU(f);
    const d = Ny.getSymbolKind(t, s, e), y = uve(e) || Xf(e) && e.parent.kind === 164 ? V_(U_(e)) : void 0, h = y || t.symbolToString(s), E = y || t.getFullyQualifiedName(s);
    return One(h, E, d, Ny.getSymbolModifiers(t, s), e, r);
  }
  function XJe(e, t) {
    const r = t.getSourceFile();
    return e.isSourceFileDefaultLibrary(r) && cc(r.fileName, ".d.ts");
  }
  function YJe(e, t, r, i) {
    if (!i.providePrefixAndSuffixTextForRename && t.flags & 2097152) {
      const c = t.declarations && nn(t.declarations, (f) => Ld(f));
      c && !c.propertyName && (t = r.getAliasedSymbol(t));
    }
    const { declarations: o } = t;
    if (!o)
      return;
    const s = T2e(e.path);
    if (s === void 0)
      return kt(o, (c) => Tve(c.getSourceFile().path)) ? _.You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder : void 0;
    for (const c of o) {
      const f = T2e(c.getSourceFile().path);
      if (f) {
        const d = Math.min(s.length, f.length);
        for (let y = 0; y <= d; y++)
          if (Nu(s[y], f[y]) !== 0)
            return _.You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder;
      }
    }
  }
  function T2e(e) {
    const t = ld(e), r = t.lastIndexOf("node_modules");
    if (r !== -1)
      return t.slice(0, r + 2);
  }
  function $Je(e, t, r) {
    if (!Gc(e.text))
      return sU(_.You_cannot_rename_a_module_via_a_global_import);
    const i = r.declarations && nn(r.declarations, qi);
    if (!i)
      return;
    const o = ic(e.text, "/index") || ic(e.text, "/index.js") ? void 0 : Bse(Ud(i.fileName), "/index"), s = o === void 0 ? i.fileName : o, c = o === void 0 ? "module" : "directory", f = e.text.lastIndexOf("/") + 1, d = wc(e.getStart(t) + 1 + f, e.text.length - f);
    return {
      canRename: !0,
      fileToRename: s,
      kind: c,
      displayName: s,
      fullDisplayName: s,
      kindModifiers: "",
      triggerSpan: d
    };
  }
  function One(e, t, r, i, o, s) {
    return {
      canRename: !0,
      fileToRename: void 0,
      kind: r,
      displayName: e,
      fullDisplayName: t,
      kindModifiers: i,
      triggerSpan: QJe(o, s)
    };
  }
  function sU(e) {
    return { canRename: !1, localizedErrorMessage: Oo(e) };
  }
  function QJe(e, t) {
    let r = e.getStart(t), i = e.getWidth(t);
    return xs(e) && (r += 1, i -= 2), wc(r, i);
  }
  function S2e(e) {
    switch (e.kind) {
      case 79:
      case 80:
      case 10:
      case 14:
      case 108:
        return !0;
      case 8:
        return BF(e);
      default:
        return !1;
    }
  }
  var ZJe = C({
    "src/services/rename.ts"() {
      $r();
    }
  }), lU = {};
  ne(lU, {
    getRenameInfo: () => JJe,
    nodeIsEligibleForRename: () => S2e
  });
  var eKe = C({
    "src/services/_namespaces/ts.Rename.ts"() {
      ZJe();
    }
  });
  function tKe(e, t, r, i, o) {
    const s = e.getTypeChecker(), c = WF(t, r);
    if (!c)
      return;
    const f = !!i && i.kind === "characterTyped";
    if (f && (qT(t, r, c) || ky(t, r)))
      return;
    const d = !!i && i.kind === "invoked", y = hKe(c, r, t, s, d);
    if (!y)
      return;
    o.throwIfCancellationRequested();
    const h = nKe(y, s, t, c, f);
    return o.throwIfCancellationRequested(), h ? s.runWithCancellationToken(o, (E) => h.kind === 0 ? w2e(h.candidates, h.resolvedSignature, y, t, E) : yKe(h.symbol, y, t, E)) : Zu(t) ? iKe(y, e, o) : void 0;
  }
  function nKe({ invocation: e, argumentCount: t }, r, i, o, s) {
    switch (e.kind) {
      case 0: {
        if (s && !rKe(o, e.node, i))
          return;
        const c = [], f = r.getResolvedSignatureForSignatureHelp(e.node, c, t);
        return c.length === 0 ? void 0 : { kind: 0, candidates: c, resolvedSignature: f };
      }
      case 1: {
        const { called: c } = e;
        if (s && !x2e(o, i, je(c) ? c.parent : c))
          return;
        const f = N$(c, t, r);
        if (f.length !== 0)
          return { kind: 0, candidates: f, resolvedSignature: us(f) };
        const d = r.getSymbolAtLocation(c);
        return d && { kind: 1, symbol: d };
      }
      case 2:
        return { kind: 0, candidates: [e.signature], resolvedSignature: e.signature };
      default:
        return D.assertNever(e);
    }
  }
  function rKe(e, t, r) {
    if (!lg(t))
      return !1;
    const i = t.getChildren(r);
    switch (e.kind) {
      case 20:
        return jr(i, e);
      case 27: {
        const o = VF(e);
        return !!o && jr(i, o);
      }
      case 29:
        return x2e(e, r, t.expression);
      default:
        return !1;
    }
  }
  function iKe(e, t, r) {
    if (e.invocation.kind === 2)
      return;
    const i = I2e(e.invocation), o = Fr(i) ? i.name.text : void 0, s = t.getTypeChecker();
    return o === void 0 ? void 0 : Jt(t.getSourceFiles(), (c) => Jt(c.getNamedDeclarations().get(o), (f) => {
      const d = f.symbol && s.getTypeOfSymbolAtLocation(f.symbol, f), y = d && d.getCallSignatures();
      if (y && y.length)
        return s.runWithCancellationToken(r, (h) => w2e(y, y[0], e, c, h, !0));
    }));
  }
  function x2e(e, t, r) {
    const i = e.getFullStart();
    let o = e.parent;
    for (; o; ) {
      const s = Ac(i, t, o, !0);
      if (s)
        return df(r, s);
      o = o.parent;
    }
    return D.fail("Could not find preceding token");
  }
  function aKe(e, t, r) {
    const i = C2e(e, t, r);
    return !i || i.isTypeParameterList || i.invocation.kind !== 0 ? void 0 : { invocation: i.invocation.node, argumentCount: i.argumentCount, argumentIndex: i.argumentIndex };
  }
  function A2e(e, t, r) {
    const i = oKe(e, r);
    if (!i)
      return;
    const { list: o, argumentIndex: s } = i, c = fKe(o, qT(r, t, e));
    s !== 0 && D.assertLessThan(s, c);
    const f = pKe(o, r);
    return { list: o, argumentIndex: s, argumentCount: c, argumentsSpan: f };
  }
  function oKe(e, t) {
    if (e.kind === 29 || e.kind === 20)
      return { list: gKe(e.parent, e, t), argumentIndex: 0 };
    {
      const r = VF(e);
      return r && { list: r, argumentIndex: dKe(r, e) };
    }
  }
  function C2e(e, t, r) {
    const { parent: i } = e;
    if (lg(i)) {
      const o = i, s = A2e(e, t, r);
      if (!s)
        return;
      const { list: c, argumentIndex: f, argumentCount: d, argumentsSpan: y } = s;
      return { isTypeParameterList: !!i.typeArguments && i.typeArguments.pos === c.pos, invocation: { kind: 0, node: o }, argumentsSpan: y, argumentIndex: f, argumentCount: d };
    } else {
      if (bx(e) && AT(i))
        return r6(e, t, r) ? Mne(i, 0, r) : void 0;
      if (mC(e) && i.parent.kind === 212) {
        const o = i, s = o.parent;
        D.assert(o.kind === 225);
        const c = r6(e, t, r) ? 0 : 1;
        return Mne(s, c, r);
      } else if (Ok(i) && AT(i.parent.parent)) {
        const o = i, s = i.parent.parent;
        if (dJ(e) && !r6(e, t, r))
          return;
        const c = o.parent.templateSpans.indexOf(o), f = _Ke(c, e, t, r);
        return Mne(s, f, r);
      } else if (Qu(i)) {
        const o = i.attributes.pos, s = Ko(r.text, i.attributes.end, !1);
        return {
          isTypeParameterList: !1,
          invocation: { kind: 0, node: i },
          argumentsSpan: wc(o, s - o),
          argumentIndex: 0,
          argumentCount: 1
        };
      } else {
        const o = O$(e, r);
        if (o) {
          const { called: s, nTypeArguments: c } = o, f = { kind: 1, called: s }, d = hc(s.getStart(r), e.end);
          return { isTypeParameterList: !0, invocation: f, argumentsSpan: d, argumentIndex: c, argumentCount: c + 1 };
        }
        return;
      }
    }
  }
  function sKe(e, t, r, i) {
    return lKe(e, t, r, i) || C2e(e, t, r);
  }
  function L2e(e) {
    return br(e.parent) ? L2e(e.parent) : e;
  }
  function Pne(e) {
    return br(e.left) ? Pne(e.left) + 1 : 2;
  }
  function lKe(e, t, r, i) {
    const o = cKe(e, r, t, i);
    if (!o)
      return;
    const { contextualType: s, argumentIndex: c, argumentCount: f, argumentsSpan: d } = o, y = s.getNonNullableType(), h = y.symbol;
    if (h === void 0)
      return;
    const E = tl(y.getCallSignatures());
    return E === void 0 ? void 0 : { isTypeParameterList: !1, invocation: { kind: 2, signature: E, node: e, symbol: uKe(h) }, argumentsSpan: d, argumentIndex: c, argumentCount: f };
  }
  function cKe(e, t, r, i) {
    if (e.kind !== 20 && e.kind !== 27)
      return;
    const { parent: o } = e;
    switch (o.kind) {
      case 214:
      case 171:
      case 215:
      case 216:
        const s = A2e(e, r, t);
        if (!s)
          return;
        const { argumentIndex: c, argumentCount: f, argumentsSpan: d } = s, y = ac(o) ? i.getContextualTypeForObjectLiteralElement(o) : i.getContextualType(o);
        return y && { contextualType: y, argumentIndex: c, argumentCount: f, argumentsSpan: d };
      case 223: {
        const h = L2e(o), E = i.getContextualType(h), A = e.kind === 20 ? 0 : Pne(o) - 1, L = Pne(h);
        return E && { contextualType: E, argumentIndex: A, argumentCount: L, argumentsSpan: rd(o) };
      }
      default:
        return;
    }
  }
  function uKe(e) {
    return e.name === "__type" && Jt(e.declarations, (t) => {
      var r;
      return Ch(t) ? (r = ai(t.parent, Rm)) == null ? void 0 : r.symbol : void 0;
    }) || e;
  }
  function dKe(e, t) {
    let r = 0;
    for (const i of e.getChildren()) {
      if (i === t)
        break;
      i.kind !== 27 && r++;
    }
    return r;
  }
  function fKe(e, t) {
    const r = e.getChildren();
    let i = Bc(r, (o) => o.kind !== 27);
    return !t && r.length > 0 && qo(r).kind === 27 && i++, i;
  }
  function _Ke(e, t, r, i) {
    return D.assert(r >= t.getStart(), "Assumed 'position' could not occur before node."), pce(t) ? r6(t, r, i) ? 0 : e + 2 : e + 1;
  }
  function Mne(e, t, r) {
    const i = bx(e.template) ? 1 : e.template.templateSpans.length + 1;
    return t !== 0 && D.assertLessThan(t, i), {
      isTypeParameterList: !1,
      invocation: { kind: 0, node: e },
      argumentsSpan: mKe(e, r),
      argumentIndex: t,
      argumentCount: i
    };
  }
  function pKe(e, t) {
    const r = e.getFullStart(), i = Ko(t.text, e.getEnd(), !1);
    return wc(r, i - r);
  }
  function mKe(e, t) {
    const r = e.template, i = r.getStart();
    let o = r.getEnd();
    return r.kind === 225 && qo(r.templateSpans).literal.getFullWidth() === 0 && (o = Ko(t.text, o, !1)), wc(i, o - i);
  }
  function hKe(e, t, r, i, o) {
    for (let s = e; !qi(s) && (o || !co(s)); s = s.parent) {
      D.assert(df(s.parent, s), "Not a subspan", () => `Child: ${D.formatSyntaxKind(s.kind)}, parent: ${D.formatSyntaxKind(s.parent.kind)}`);
      const c = sKe(s, t, r, i);
      if (c)
        return c;
    }
  }
  function gKe(e, t, r) {
    const i = e.getChildren(r), o = i.indexOf(t);
    return D.assert(o >= 0 && i.length > o + 1), i[o + 1];
  }
  function I2e(e) {
    return e.kind === 0 ? d3(e.node) : e.called;
  }
  function k2e(e) {
    return e.kind === 0 ? e.node : e.kind === 1 ? e.called : e.node;
  }
  function w2e(e, t, { isTypeParameterList: r, argumentCount: i, argumentsSpan: o, invocation: s, argumentIndex: c }, f, d, y) {
    var h;
    const E = k2e(s), A = s.kind === 2 ? s.symbol : d.getSymbolAtLocation(I2e(s)) || y && ((h = t.declaration) == null ? void 0 : h.symbol), L = A ? hw(d, A, y ? f : void 0, void 0) : rt, I = jt(e, (H) => bKe(H, L, r, d, E, f));
    c !== 0 && D.assertLessThan(c, i);
    let O = 0, k = 0;
    for (let H = 0; H < I.length; H++) {
      const te = I[H];
      if (e[H] === t && (O = k, te.length > 1)) {
        let X = 0;
        for (const Y of te) {
          if (Y.isVariadic || Y.parameters.length >= i) {
            O = k + X;
            break;
          }
          X++;
        }
      }
      k += te.length;
    }
    D.assert(O !== -1);
    const G = { items: Bd(I, ml), applicableSpan: o, selectedItemIndex: O, argumentIndex: c, argumentCount: i }, V = G.items[O];
    if (V.isVariadic) {
      const H = vi(V.parameters, (te) => !!te.isRest);
      -1 < H && H < V.parameters.length - 1 ? G.argumentIndex = V.parameters.length : G.argumentIndex = Math.min(G.argumentIndex, V.parameters.length - 1);
    }
    return G;
  }
  function yKe(e, { argumentCount: t, argumentsSpan: r, invocation: i, argumentIndex: o }, s, c) {
    const f = c.getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(e);
    return f ? { items: [vKe(e, f, c, k2e(i), s)], applicableSpan: r, selectedItemIndex: 0, argumentIndex: o, argumentCount: t } : void 0;
  }
  function vKe(e, t, r, i, o) {
    const s = hw(r, e), c = H1(), f = t.map((E) => D2e(E, r, i, o, c)), d = e.getDocumentationComment(r), y = e.getJsDocTags(r);
    return { isVariadic: !1, prefixDisplayParts: [...s, Tu(29)], suffixDisplayParts: [Tu(31)], separatorDisplayParts: Fne, parameters: f, documentation: d, tags: y };
  }
  function bKe(e, t, r, i, o, s) {
    const c = (r ? TKe : SKe)(e, i, o, s);
    return jt(c, ({ isVariadic: f, parameters: d, prefix: y, suffix: h }) => {
      const E = [...t, ...y], A = [...h, ...EKe(e, o, i)], L = e.getDocumentationComment(i), I = e.getJsDocTags();
      return { isVariadic: f, prefixDisplayParts: E, suffixDisplayParts: A, separatorDisplayParts: Fne, parameters: d, documentation: L, tags: I };
    });
  }
  function EKe(e, t, r) {
    return Jv((i) => {
      i.writePunctuation(":"), i.writeSpace(" ");
      const o = r.getTypePredicateOfSignature(e);
      o ? r.writeTypePredicate(o, t, void 0, i) : r.writeType(r.getReturnTypeOfSignature(e), t, void 0, i);
    });
  }
  function TKe(e, t, r, i) {
    const o = (e.target || e).typeParameters, s = H1(), c = (o || rt).map((d) => D2e(d, t, r, i, s)), f = e.thisParameter ? [t.symbolToParameterDeclaration(e.thisParameter, r, Ww)] : [];
    return t.getExpandedParameters(e).map((d) => {
      const y = N.createNodeArray([...f, ...jt(d, (E) => t.symbolToParameterDeclaration(E, r, Ww))]), h = Jv((E) => {
        s.writeList(2576, y, i, E);
      });
      return { isVariadic: !1, parameters: c, prefix: [Tu(29)], suffix: [Tu(31), ...h] };
    });
  }
  function SKe(e, t, r, i) {
    const o = H1(), s = Jv((d) => {
      if (e.typeParameters && e.typeParameters.length) {
        const y = N.createNodeArray(e.typeParameters.map((h) => t.typeParameterToDeclaration(h, r, Ww)));
        o.writeList(53776, y, i, d);
      }
    }), c = t.getExpandedParameters(e), f = t.hasEffectiveRestParameter(e) ? c.length === 1 ? (d) => !0 : (d) => {
      var y;
      return !!(d.length && ((y = ai(d[d.length - 1], Om)) == null ? void 0 : y.links.checkFlags) & 32768);
    } : (d) => !1;
    return c.map((d) => ({
      isVariadic: f(d),
      parameters: d.map((y) => xKe(y, t, r, i, o)),
      prefix: [...s, Tu(20)],
      suffix: [Tu(21)]
    }));
  }
  function xKe(e, t, r, i, o) {
    const s = Jv((d) => {
      const y = t.symbolToParameterDeclaration(e, r, Ww);
      o.writeNode(4, y, i, d);
    }), c = t.isOptionalParameter(e.valueDeclaration), f = Om(e) && !!(e.links.checkFlags & 32768);
    return { name: e.name, documentation: e.getDocumentationComment(t), displayParts: s, isOptional: c, isRest: f };
  }
  function D2e(e, t, r, i, o) {
    const s = Jv((c) => {
      const f = t.typeParameterToDeclaration(e, r, Ww);
      o.writeNode(4, f, i, c);
    });
    return { name: e.symbol.name, documentation: e.symbol.getDocumentationComment(t), displayParts: s, isOptional: !1, isRest: !1 };
  }
  var Ww, Fne, AKe = C({
    "src/services/signatureHelp.ts"() {
      $r(), Ww = 70246400, Fne = [Tu(27), bl()];
    }
  }), aP = {};
  ne(aP, {
    getArgumentInfoForCompletions: () => aKe,
    getSignatureHelpItems: () => tKe
  });
  var CKe = C({
    "src/services/_namespaces/ts.SignatureHelp.ts"() {
      AKe();
    }
  });
  function LKe(e, t) {
    var r, i;
    let o = {
      textSpan: hc(t.getFullStart(), t.getEnd())
    }, s = t;
    e:
      for (; ; ) {
        const d = kKe(s);
        if (!d.length)
          break;
        for (let y = 0; y < d.length; y++) {
          const h = d[y - 1], E = d[y], A = d[y + 1];
          if (sT(E, t, !0) > e)
            break e;
          const L = Am(B0(t.text, E.end));
          if (L && L.kind === 2 && f(L.pos, L.end), IKe(t, e, E)) {
            if (LW(E) && Qs(s) && !g_(E.getStart(t), E.getEnd(), t) && c(E.getStart(t), E.getEnd()), co(E) || Ok(E) || mC(E) || dJ(E) || h && mC(h) || Uu(E) && uc(s) || IC(E) && Uu(s) || Ki(E) && IC(s) && d.length === 1 || wT(E) || P1(E) || Bk(E)) {
              s = E;
              break;
            }
            if (Ok(s) && A && MM(A)) {
              const G = E.getFullStart() - 2, V = A.getStart() + 1;
              c(G, V);
            }
            const I = IC(E) && wKe(h) && DKe(A) && !g_(h.getStart(), A.getStart(), t);
            let O = I ? h.getEnd() : E.getStart();
            const k = I ? A.getStart() : RKe(t, E);
            if (xf(E) && ((r = E.jsDoc) != null && r.length) && c(us(E.jsDoc).getStart(), k), IC(E)) {
              const G = E.getChildren()[0];
              G && xf(G) && ((i = G.jsDoc) != null && i.length) && G.getStart() !== E.pos && (O = Math.min(O, us(G.jsDoc).getStart()));
            }
            c(O, k), (jo(E) || IA(E)) && c(O + 1, k - 1), s = E;
            break;
          }
          if (y === d.length - 1)
            break e;
        }
      }
    return o;
    function c(d, y) {
      if (d !== y) {
        const h = hc(d, y);
        (!o || !XC(h, o.textSpan) && zle(h, e)) && (o = { textSpan: h, ...o && { parent: o } });
      }
    }
    function f(d, y) {
      c(d, y);
      let h = d;
      for (; t.text.charCodeAt(h) === 47; )
        h++;
      c(h, y);
    }
  }
  function IKe(e, t, r) {
    return D.assert(r.pos <= t), t < r.end ? !0 : r.getEnd() === t ? Df(e, t).pos < r.end : !1;
  }
  function kKe(e) {
    var t;
    if (qi(e))
      return zw(e.getChildAt(0).getChildren(), R2e);
    if (Dk(e)) {
      const [r, ...i] = e.getChildren(), o = D.checkDefined(i.pop());
      D.assertEqual(r.kind, 18), D.assertEqual(o.kind, 19);
      const s = zw(i, (f) => f === e.readonlyToken || f.kind === 146 || f === e.questionToken || f.kind === 57), c = zw(s, ({ kind: f }) => f === 22 || f === 165 || f === 23);
      return [
        r,
        qw(cU(c, ({ kind: f }) => f === 58)),
        o
      ];
    }
    if (If(e)) {
      const r = zw(e.getChildren(), (c) => c === e.name || jr(e.modifiers, c)), i = ((t = r[0]) == null ? void 0 : t.kind) === 323 ? r[0] : void 0, o = i ? r.slice(1) : r, s = cU(o, ({ kind: c }) => c === 58);
      return i ? [i, qw(s)] : s;
    }
    if (Ba(e)) {
      const r = zw(e.getChildren(), (o) => o === e.dotDotDotToken || o === e.name), i = zw(r, (o) => o === r[0] || o === e.questionToken);
      return cU(i, ({ kind: o }) => o === 63);
    }
    return _s(e) ? cU(e.getChildren(), ({ kind: r }) => r === 63) : e.getChildren();
  }
  function zw(e, t) {
    const r = [];
    let i;
    for (const o of e)
      t(o) ? (i = i || [], i.push(o)) : (i && (r.push(qw(i)), i = void 0), r.push(o));
    return i && r.push(qw(i)), r;
  }
  function cU(e, t, r = !0) {
    if (e.length < 2)
      return e;
    const i = vi(e, t);
    if (i === -1)
      return e;
    const o = e.slice(0, i), s = e[i], c = qo(e), f = r && c.kind === 26, d = e.slice(i + 1, f ? e.length - 1 : void 0), y = uR([
      o.length ? qw(o) : void 0,
      s,
      d.length ? qw(d) : void 0
    ]);
    return f ? y.concat(c) : y;
  }
  function qw(e) {
    return D.assertGreaterThanOrEqual(e.length, 1), Vm(Jm.createSyntaxList(e), e[0].pos, qo(e).end);
  }
  function wKe(e) {
    const t = e && e.kind;
    return t === 18 || t === 22 || t === 20 || t === 283;
  }
  function DKe(e) {
    const t = e && e.kind;
    return t === 19 || t === 23 || t === 21 || t === 284;
  }
  function RKe(e, t) {
    switch (t.kind) {
      case 344:
      case 341:
      case 351:
      case 349:
      case 346:
        return e.getLineEndOfPosition(t.getStart());
      default:
        return t.getEnd();
    }
  }
  var R2e, NKe = C({
    "src/services/smartSelection.ts"() {
      $r(), R2e = Im(Wc, su);
    }
  }), Bne = {};
  ne(Bne, {
    getSmartSelectionRange: () => LKe
  });
  var OKe = C({
    "src/services/_namespaces/ts.SmartSelectionRange.ts"() {
      NKe();
    }
  });
  function N2e(e, t, r) {
    const i = O2e(e, t, r);
    if (i !== "")
      return i;
    const o = ak(t);
    return o & 32 ? xl(t, 228) ? "local class" : "class" : o & 384 ? "enum" : o & 524288 ? "type" : o & 64 ? "interface" : o & 262144 ? "type parameter" : o & 8 ? "enum member" : o & 2097152 ? "alias" : o & 1536 ? "module" : i;
  }
  function O2e(e, t, r) {
    const i = e.getRootSymbols(t);
    if (i.length === 1 && us(i).flags & 8192 && e.getTypeOfSymbolAtLocation(t, r).getNonNullableType().getCallSignatures().length !== 0)
      return "method";
    if (e.isUndefinedSymbol(t))
      return "var";
    if (e.isArgumentsSymbol(t))
      return "local var";
    if (r.kind === 108 && vt(r) || lx(r))
      return "parameter";
    const o = ak(t);
    if (o & 3)
      return X$(t) ? "parameter" : t.valueDeclaration && ug(t.valueDeclaration) ? "const" : ze(t.declarations, FI) ? "let" : F2e(t) ? "local var" : "var";
    if (o & 16)
      return F2e(t) ? "local function" : "function";
    if (o & 32768)
      return "getter";
    if (o & 65536)
      return "setter";
    if (o & 8192)
      return "method";
    if (o & 16384)
      return "constructor";
    if (o & 131072)
      return "index";
    if (o & 4) {
      if (o & 33554432 && t.links.checkFlags & 6) {
        const s = ze(e.getRootSymbols(t), (c) => {
          if (c.getFlags() & 98311)
            return "property";
        });
        return s || (e.getTypeOfSymbolAtLocation(t, r).getCallSignatures().length ? "method" : "property");
      }
      return "property";
    }
    return "";
  }
  function P2e(e) {
    if (e.declarations && e.declarations.length) {
      const [t, ...r] = e.declarations, i = Le(r) && v9(t) && kt(r, (s) => !v9(s)) ? 8192 : 0, o = _w(t, i);
      if (o)
        return o.split(",");
    }
    return [];
  }
  function PKe(e, t) {
    if (!t)
      return "";
    const r = new Set(P2e(t));
    if (t.flags & 2097152) {
      const i = e.getAliasedSymbol(t);
      i !== t && ze(P2e(i), (o) => {
        r.add(o);
      });
    }
    return t.flags & 16777216 && r.add("optional"), r.size > 0 ? Ro(r.values()).join(",") : "";
  }
  function M2e(e, t, r, i, o, s = HT(o), c) {
    var f;
    const d = [];
    let y = [], h = [];
    const E = ak(t);
    let A = s & 1 ? O2e(e, t, o) : "", L = !1;
    const I = o.kind === 108 && _3(o) || lx(o);
    let O, k, G, V = !1;
    if (o.kind === 108 && !I)
      return { displayParts: [Wd(108)], documentation: [], symbolKind: "primitive type", tags: void 0 };
    if (A !== "" || E & 32 || E & 2097152) {
      if (A === "getter" || A === "setter") {
        const me = nn(t.declarations, (ve) => ve.name === o);
        if (me)
          switch (me.kind) {
            case 174:
              A = "getter";
              break;
            case 175:
              A = "setter";
              break;
            case 169:
              A = "accessor";
              break;
            default:
              D.assertNever(me);
          }
        else
          A = "property";
      }
      let W;
      if (O = I ? e.getTypeAtLocation(o) : e.getTypeOfSymbolAtLocation(t, o), o.parent && o.parent.kind === 208) {
        const me = o.parent.name;
        (me === o || me && me.getFullWidth() === 0) && (o = o.parent);
      }
      let ce;
      if (lg(o) ? ce = o : (y$(o) || cw(o) || o.parent && (Qu(o.parent) || AT(o.parent)) && Ka(t.valueDeclaration)) && (ce = o.parent), ce) {
        W = e.getResolvedSignature(ce);
        const me = ce.kind === 211 || no(ce) && ce.expression.kind === 106, ve = me ? O.getConstructSignatures() : O.getCallSignatures();
        if (W && !jr(ve, W.target) && !jr(ve, W) && (W = ve.length ? ve[0] : void 0), W) {
          switch (me && E & 32 ? (A = "constructor", de(O.symbol, A)) : E & 2097152 ? (A = "alias", re(A), d.push(bl()), me && (W.flags & 4 && (d.push(Wd(126)), d.push(bl())), d.push(Wd(103)), d.push(bl())), P(t)) : de(t, A), A) {
            case "JSX attribute":
            case "property":
            case "var":
            case "const":
            case "let":
            case "parameter":
            case "local var":
              d.push(Tu(58)), d.push(bl()), !(ti(O) & 16) && O.symbol && (Ti(d, hw(e, O.symbol, i, void 0, 5)), d.push(YC())), me && (W.flags & 4 && (d.push(Wd(126)), d.push(bl())), d.push(Wd(103)), d.push(bl())), ye(W, ve, 262144);
              break;
            default:
              ye(W, ve);
          }
          L = !0, V = ve.length > 1;
        }
      } else if (A$(o) && !(E & 98304) || o.kind === 135 && o.parent.kind === 173) {
        const me = o.parent;
        if (t.declarations && nn(t.declarations, (Te) => Te === (o.kind === 135 ? me.parent : me))) {
          const Te = me.kind === 173 ? O.getNonNullableType().getConstructSignatures() : O.getNonNullableType().getCallSignatures();
          e.isImplementationOfOverload(me) ? W = Te[0] : W = e.getSignatureFromDeclaration(me), me.kind === 173 ? (A = "constructor", de(O.symbol, A)) : de(me.kind === 176 && !(O.symbol.flags & 2048 || O.symbol.flags & 4096) ? O.symbol : t, A), W && ye(W, Te), L = !0, V = Te.length > 1;
        }
      }
    }
    if (E & 32 && !L && !I && (X(), xl(t, 228) ? re("local class") : d.push(Wd(84)), d.push(bl()), P(t), ae(t, r)), E & 64 && s & 2 && (te(), d.push(Wd(118)), d.push(bl()), P(t), ae(t, r)), E & 524288 && s & 2 && (te(), d.push(Wd(154)), d.push(bl()), P(t), ae(t, r), d.push(bl()), d.push(mw(63)), d.push(bl()), Ti(d, d6(e, sg(o.parent) ? e.getTypeAtLocation(o.parent) : e.getDeclaredTypeOfSymbol(t), i, 8388608))), E & 384 && (te(), kt(t.declarations, (W) => eb(W) && y1(W)) && (d.push(Wd(85)), d.push(bl())), d.push(Wd(92)), d.push(bl()), P(t)), E & 1536 && !I) {
      te();
      const W = xl(t, 264), ce = W && W.name && W.name.kind === 79;
      d.push(Wd(ce ? 143 : 142)), d.push(bl()), P(t);
    }
    if (E & 262144 && s & 2)
      if (te(), d.push(Tu(20)), d.push(Rf("type parameter")), d.push(Tu(21)), d.push(bl()), P(t), t.parent)
        Y(), P(t.parent, i), ae(t.parent, i);
      else {
        const W = xl(t, 165);
        if (W === void 0)
          return D.fail();
        const ce = W.parent;
        if (ce)
          if (Ka(ce)) {
            Y();
            const me = e.getSignatureFromDeclaration(ce);
            ce.kind === 177 ? (d.push(Wd(103)), d.push(bl())) : ce.kind !== 176 && ce.name && P(ce.symbol), Ti(d, Q$(e, me, r, 32));
          } else
            em(ce) && (Y(), d.push(Wd(154)), d.push(bl()), P(ce.symbol), ae(ce.symbol, r));
      }
    if (E & 8) {
      A = "enum member", de(t, "enum member");
      const W = (f = t.declarations) == null ? void 0 : f[0];
      if ((W == null ? void 0 : W.kind) === 302) {
        const ce = e.getConstantValue(W);
        ce !== void 0 && (d.push(bl()), d.push(mw(63)), d.push(bl()), d.push(Id($ce(ce), typeof ce == "number" ? 7 : 8)));
      }
    }
    if (t.flags & 2097152) {
      if (te(), !L) {
        const W = e.getAliasedSymbol(t);
        if (W !== t && W.declarations && W.declarations.length > 0) {
          const ce = W.declarations[0], me = ka(ce);
          if (me) {
            const ve = YM(ce) && Yr(ce, 2), Te = t.name !== "default" && !ve, ee = M2e(e, W, Zn(ce), ce, me, s, Te ? t : W);
            d.push(...ee.displayParts), d.push(YC()), k = ee.documentation, G = ee.tags;
          } else
            k = W.getContextualDocumentationComment(ce, e), G = W.getJsDocTags(e);
        }
      }
      if (t.declarations)
        switch (t.declarations[0].kind) {
          case 267:
            d.push(Wd(93)), d.push(bl()), d.push(Wd(143));
            break;
          case 274:
            d.push(Wd(93)), d.push(bl()), d.push(Wd(t.declarations[0].isExportEquals ? 63 : 88));
            break;
          case 278:
            d.push(Wd(93));
            break;
          default:
            d.push(Wd(100));
        }
      d.push(bl()), P(t), ze(t.declarations, (W) => {
        if (W.kind === 268) {
          const ce = W;
          if (H0(ce))
            d.push(bl()), d.push(mw(63)), d.push(bl()), d.push(Wd(147)), d.push(Tu(20)), d.push(Id(Sc(VI(ce)), 8)), d.push(Tu(21));
          else {
            const me = e.getSymbolAtLocation(ce.moduleReference);
            me && (d.push(bl()), d.push(mw(63)), d.push(bl()), P(me, i));
          }
          return !0;
        }
      });
    }
    if (!L)
      if (A !== "") {
        if (O) {
          if (I ? (te(), d.push(Wd(108))) : de(t, A), A === "property" || A === "accessor" || A === "getter" || A === "setter" || A === "JSX attribute" || E & 3 || A === "local var" || A === "index" || I) {
            if (d.push(Tu(58)), d.push(bl()), O.symbol && O.symbol.flags & 262144 && A !== "index") {
              const W = Jv((ce) => {
                const me = e.typeParameterToDeclaration(O, i, Gne);
                H().writeNode(4, me, Zn(Ea(i)), ce);
              });
              Ti(d, W);
            } else
              Ti(d, d6(e, O, i));
            if (Om(t) && t.links.target && Om(t.links.target) && t.links.target.links.tupleLabelDeclaration) {
              const W = t.links.target.links.tupleLabelDeclaration;
              D.assertNode(W.name, je), d.push(bl()), d.push(Tu(20)), d.push(Rf(Mr(W.name))), d.push(Tu(21));
            }
          } else if (E & 16 || E & 8192 || E & 16384 || E & 131072 || E & 98304 || A === "method") {
            const W = O.getNonNullableType().getCallSignatures();
            W.length && (ye(W[0], W), V = W.length > 1);
          }
        }
      } else
        A = N2e(e, t, o);
    if (y.length === 0 && !V && (y = t.getContextualDocumentationComment(i, e)), y.length === 0 && E & 4 && t.parent && t.declarations && ze(t.parent.declarations, (W) => W.kind === 308))
      for (const W of t.declarations) {
        if (!W.parent || W.parent.kind !== 223)
          continue;
        const ce = e.getSymbolAtLocation(W.parent.right);
        if (ce && (y = ce.getDocumentationComment(e), h = ce.getJsDocTags(e), y.length > 0))
          break;
      }
    if (y.length === 0 && je(o) && t.valueDeclaration && _s(t.valueDeclaration)) {
      const W = t.valueDeclaration, ce = W.parent;
      if (je(W.name) && Hm(ce)) {
        const me = U_(W.name), ve = e.getTypeAtLocation(ce);
        y = Jt(ve.isUnion() ? ve.types : [ve], (Te) => {
          const ee = Te.getProperty(me);
          return ee ? ee.getDocumentationComment(e) : void 0;
        }) || rt;
      }
    }
    return h.length === 0 && !V && (h = t.getContextualJsDocTags(i, e)), y.length === 0 && k && (y = k), h.length === 0 && G && (h = G), { displayParts: d, documentation: y, symbolKind: A, tags: h.length === 0 ? void 0 : h };
    function H() {
      return H1();
    }
    function te() {
      d.length && d.push(YC()), X();
    }
    function X() {
      c && (re("alias"), d.push(bl()));
    }
    function Y() {
      d.push(bl()), d.push(Wd(101)), d.push(bl());
    }
    function P(W, ce) {
      let me;
      c && W === t && (W = c), A === "index" && (me = e.getIndexInfosOfIndexSymbol(W));
      let ve = [];
      W.flags & 131072 && me ? (W.parent && (ve = hw(e, W.parent)), ve.push(Tu(22)), me.forEach((Te, ee) => {
        ve.push(...d6(e, Te.keyType)), ee !== me.length - 1 && (ve.push(bl()), ve.push(Tu(51)), ve.push(bl()));
      }), ve.push(Tu(23))) : ve = hw(e, W, ce || r, void 0, 7), Ti(d, ve), t.flags & 16777216 && d.push(Tu(57));
    }
    function de(W, ce) {
      te(), ce && (re(ce), W && !kt(W.declarations, (me) => Js(me) || (Bs(me) || Gu(me)) && !me.name) && (d.push(bl()), P(W)));
    }
    function re(W) {
      switch (W) {
        case "var":
        case "function":
        case "let":
        case "const":
        case "constructor":
          d.push(Y$(W));
          return;
        default:
          d.push(Tu(20)), d.push(Y$(W)), d.push(Tu(21));
          return;
      }
    }
    function ye(W, ce, me = 0) {
      Ti(d, Q$(e, W, i, me | 32)), ce.length > 1 && (d.push(bl()), d.push(Tu(20)), d.push(mw(39)), d.push(Id((ce.length - 1).toString(), 7)), d.push(bl()), d.push(Rf(ce.length === 2 ? "overload" : "overloads")), d.push(Tu(21))), y = W.getDocumentationComment(e), h = W.getJsDocTags(), ce.length > 1 && y.length === 0 && h.length === 0 && (y = ce[0].getDocumentationComment(e), h = ce[0].getJsDocTags().filter((ve) => ve.name !== "deprecated"));
    }
    function ae(W, ce) {
      const me = Jv((ve) => {
        const Te = e.symbolToTypeParameterDeclarations(W, ce, Gne);
        H().writeList(53776, Te, Zn(Ea(ce)), ve);
      });
      Ti(d, me);
    }
  }
  function F2e(e) {
    return e.parent ? !1 : ze(e.declarations, (t) => {
      if (t.kind === 215)
        return !0;
      if (t.kind !== 257 && t.kind !== 259)
        return !1;
      for (let r = t.parent; !uT(r); r = r.parent)
        if (r.kind === 308 || r.kind === 265)
          return !1;
      return !0;
    });
  }
  var Gne, MKe = C({
    "src/services/symbolDisplay.ts"() {
      $r(), Gne = 70246400;
    }
  }), Ny = {};
  ne(Ny, {
    getSymbolDisplayPartsDocumentationAndSymbolKind: () => M2e,
    getSymbolKind: () => N2e,
    getSymbolModifiers: () => PKe
  });
  var FKe = C({
    "src/services/_namespaces/ts.SymbolDisplay.ts"() {
      MKe();
    }
  });
  function B2e(e) {
    const t = e.__pos;
    return D.assert(typeof t == "number"), t;
  }
  function Une(e, t) {
    D.assert(typeof t == "number"), e.__pos = t;
  }
  function G2e(e) {
    const t = e.__end;
    return D.assert(typeof t == "number"), t;
  }
  function Vne(e, t) {
    D.assert(typeof t == "number"), e.__end = t;
  }
  function U2e(e, t) {
    return Ko(e, t, !1, !0);
  }
  function BKe(e, t) {
    let r = t;
    for (; r < e.length; ) {
      const i = e.charCodeAt(r);
      if (Dm(i)) {
        r++;
        continue;
      }
      return i === 47;
    }
    return !1;
  }
  function Jw(e, t, r, i) {
    return { pos: nS(e, t, i), end: l2(e, r, i) };
  }
  function nS(e, t, r, i = !1) {
    var o, s;
    const { leadingTriviaOption: c } = r;
    if (c === 0)
      return t.getStart(e);
    if (c === 3) {
      const L = t.getStart(e), I = T_(L, e);
      return $8(t, I) ? I : L;
    }
    if (c === 2) {
      const L = az(t, e.text);
      if (L != null && L.length)
        return T_(L[0].pos, e);
    }
    const f = t.getFullStart(), d = t.getStart(e);
    if (f === d)
      return d;
    const y = T_(f, e);
    if (T_(d, e) === y)
      return c === 1 ? f : d;
    if (i) {
      const L = ((o = ph(e.text, f)) == null ? void 0 : o[0]) || ((s = B0(e.text, f)) == null ? void 0 : s[0]);
      if (L)
        return Ko(e.text, L.end, !0, !0);
    }
    const E = f > 0 ? 1 : 0;
    let A = wv(YI(e, y) + E, e);
    return A = U2e(e.text, A), wv(YI(e, A), e);
  }
  function jne(e, t, r) {
    const { end: i } = t, { trailingTriviaOption: o } = r;
    if (o === 2) {
      const s = B0(e.text, i);
      if (s) {
        const c = YI(e, t.end);
        for (const f of s) {
          if (f.kind === 2 || YI(e, f.pos) > c)
            break;
          if (YI(e, f.end) > c)
            return Ko(e.text, f.end, !0, !0);
        }
      }
    }
  }
  function l2(e, t, r) {
    var i;
    const { end: o } = t, { trailingTriviaOption: s } = r;
    if (s === 0)
      return o;
    if (s === 1) {
      const d = va(B0(e.text, o), ph(e.text, o)), y = (i = d == null ? void 0 : d[d.length - 1]) == null ? void 0 : i.end;
      return y || o;
    }
    const c = jne(e, t, r);
    if (c)
      return c;
    const f = Ko(e.text, o, !0);
    return f !== o && (s === 2 || hu(e.text.charCodeAt(f - 1))) ? f : o;
  }
  function uU(e, t) {
    return !!t && !!e.parent && (t.kind === 27 || t.kind === 26 && e.parent.kind === 207);
  }
  function GKe(e) {
    return Bs(e) || yc(e);
  }
  function UKe(e) {
    if (e.kind !== 216)
      return e;
    const t = e.parent.kind === 169 ? e.parent : e.parent.parent;
    return t.jsDoc = e.jsDoc, t;
  }
  function VKe(e, t) {
    if (e.kind === t.kind)
      switch (e.kind) {
        case 344: {
          const r = e, i = t;
          return je(r.name) && je(i.name) && r.name.escapedText === i.name.escapedText ? N.createJSDocParameterTag(void 0, i.name, !1, i.typeExpression, i.isNameFirst, r.comment) : void 0;
        }
        case 345:
          return N.createJSDocReturnTag(void 0, t.typeExpression, e.comment);
        case 347:
          return N.createJSDocTypeTag(void 0, t.typeExpression, e.comment);
      }
  }
  function Hne(e, t) {
    return Ko(e.text, nS(e, t, { leadingTriviaOption: 1 }), !1, !0);
  }
  function jKe(e, t, r, i) {
    const o = Hne(e, i);
    if (r === void 0 || g_(l2(e, t, {}), o, e))
      return o;
    const s = Ac(i.getStart(e), e);
    if (uU(t, s)) {
      const c = Ac(t.getStart(e), e);
      if (uU(r, c)) {
        const f = Ko(e.text, s.getEnd(), !0, !0);
        if (g_(c.getStart(e), s.getStart(e), e))
          return hu(e.text.charCodeAt(f - 1)) ? f - 1 : f;
        if (hu(e.text.charCodeAt(f)))
          return f;
      }
    }
    return o;
  }
  function HKe(e, t) {
    const r = bs(e, 18, t), i = bs(e, 19, t);
    return [r == null ? void 0 : r.end, i == null ? void 0 : i.end];
  }
  function dU(e) {
    return Ls(e) ? e.properties : e.members;
  }
  function WKe(e, t, r, i) {
    return oP.newFileChangesWorker(void 0, t, e, r, i);
  }
  function Wne(e, t) {
    for (let r = t.length - 1; r >= 0; r--) {
      const { span: i, newText: o } = t[r];
      e = `${e.substring(0, i.start)}${o}${e.substring(iu(i))}`;
    }
    return e;
  }
  function zKe(e) {
    return Ko(e, 0) === e.length;
  }
  function fU(e) {
    const t = Bn(e, fU, H2e, qKe, fU), r = Zs(t) ? t : Object.create(t);
    return Vm(r, B2e(e), G2e(e)), r;
  }
  function qKe(e, t, r, i, o) {
    const s = Jn(e, t, r, i, o);
    if (!s)
      return s;
    D.assert(e);
    const c = s === e ? N.createNodeArray(s.slice(0)) : s;
    return Vm(c, B2e(e), G2e(e)), c;
  }
  function V2e(e) {
    let t = 0;
    const r = HN(e), i = (ee) => {
      ee && Une(ee, t);
    }, o = (ee) => {
      ee && Vne(ee, t);
    }, s = (ee) => {
      ee && Une(ee, t);
    }, c = (ee) => {
      ee && Vne(ee, t);
    }, f = (ee) => {
      ee && Une(ee, t);
    }, d = (ee) => {
      ee && Vne(ee, t);
    };
    function y(ee, Qe) {
      if (Qe || !zKe(ee)) {
        t = r.getTextPos();
        let Ve = 0;
        for (; ag(ee.charCodeAt(ee.length - Ve - 1)); )
          Ve++;
        t -= Ve;
      }
    }
    function h(ee) {
      r.write(ee), y(ee, !1);
    }
    function E(ee) {
      r.writeComment(ee);
    }
    function A(ee) {
      r.writeKeyword(ee), y(ee, !1);
    }
    function L(ee) {
      r.writeOperator(ee), y(ee, !1);
    }
    function I(ee) {
      r.writePunctuation(ee), y(ee, !1);
    }
    function O(ee) {
      r.writeTrailingSemicolon(ee), y(ee, !1);
    }
    function k(ee) {
      r.writeParameter(ee), y(ee, !1);
    }
    function G(ee) {
      r.writeProperty(ee), y(ee, !1);
    }
    function V(ee) {
      r.writeSpace(ee), y(ee, !1);
    }
    function H(ee) {
      r.writeStringLiteral(ee), y(ee, !1);
    }
    function te(ee, Qe) {
      r.writeSymbol(ee, Qe), y(ee, !1);
    }
    function X(ee) {
      r.writeLine(ee);
    }
    function Y() {
      r.increaseIndent();
    }
    function P() {
      r.decreaseIndent();
    }
    function de() {
      return r.getText();
    }
    function re(ee) {
      r.rawWrite(ee), y(ee, !1);
    }
    function ye(ee) {
      r.writeLiteral(ee), y(ee, !0);
    }
    function ae() {
      return r.getTextPos();
    }
    function W() {
      return r.getLine();
    }
    function ce() {
      return r.getColumn();
    }
    function me() {
      return r.getIndent();
    }
    function ve() {
      return r.isAtStartOfLine();
    }
    function Te() {
      r.clear(), t = 0;
    }
    return {
      onBeforeEmitNode: i,
      onAfterEmitNode: o,
      onBeforeEmitNodeArray: s,
      onAfterEmitNodeArray: c,
      onBeforeEmitToken: f,
      onAfterEmitToken: d,
      write: h,
      writeComment: E,
      writeKeyword: A,
      writeOperator: L,
      writePunctuation: I,
      writeTrailingSemicolon: O,
      writeParameter: k,
      writeProperty: G,
      writeSpace: V,
      writeStringLiteral: H,
      writeSymbol: te,
      writeLine: X,
      increaseIndent: Y,
      decreaseIndent: P,
      getText: de,
      rawWrite: re,
      writeLiteral: ye,
      getTextPos: ae,
      getLine: W,
      getColumn: ce,
      getIndent: me,
      isAtStartOfLine: ve,
      hasTrailingComment: () => r.hasTrailingComment(),
      hasTrailingWhitespace: () => r.hasTrailingWhitespace(),
      clear: Te
    };
  }
  function JKe(e) {
    let t;
    for (const y of e.statements)
      if (gp(y))
        t = y;
      else
        break;
    let r = 0;
    const i = e.text;
    if (t)
      return r = t.end, d(), r;
    const o = SM(i);
    o !== void 0 && (r = o.length, d());
    const s = ph(i, r);
    if (!s)
      return r;
    let c, f;
    for (const y of s) {
      if (y.kind === 3) {
        if (KM(i, y.pos)) {
          c = { range: y, pinnedOrTripleSlash: !0 };
          continue;
        }
      } else if (jW(i, y.pos, y.end)) {
        c = { range: y, pinnedOrTripleSlash: !0 };
        continue;
      }
      if (c) {
        if (c.pinnedOrTripleSlash)
          break;
        const h = e.getLineAndCharacterOfPosition(y.pos).line, E = e.getLineAndCharacterOfPosition(c.range.end).line;
        if (h >= E + 2)
          break;
      }
      if (e.statements.length) {
        f === void 0 && (f = e.getLineAndCharacterOfPosition(e.statements[0].getStart()).line);
        const h = e.getLineAndCharacterOfPosition(y.end).line;
        if (f < h + 2)
          break;
      }
      c = { range: y, pinnedOrTripleSlash: !1 };
    }
    return c && (r = c.range.end, d()), r;
    function d() {
      if (r < i.length) {
        const y = i.charCodeAt(r);
        hu(y) && (r++, r < i.length && y === 13 && i.charCodeAt(r) === 10 && r++);
      }
    }
  }
  function j2e(e, t) {
    return !ky(e, t) && !qT(e, t) && !R$(e, t) && !Vye(e, t);
  }
  function KKe(e, t) {
    return (If(e) || to(e)) && FM(t) && t.name.kind === 164 || eN(e) && eN(t);
  }
  function Nh(e, t, r, i = { leadingTriviaOption: 1 }) {
    const o = nS(t, r, i), s = l2(t, r, i);
    e.deleteRange(t, { pos: o, end: s });
  }
  function Kw(e, t, r, i) {
    const o = D.checkDefined(Cc.SmartIndenter.getContainingList(i, r)), s = NA(o, i);
    if (D.assert(s !== -1), o.length === 1) {
      Nh(e, r, i);
      return;
    }
    D.assert(!t.has(i), "Deleting a node twice"), t.add(i), e.deleteRange(r, {
      pos: Hne(r, i),
      end: s === o.length - 1 ? l2(r, i, {}) : jKe(r, i, o[s - 1], o[s + 1])
    });
  }
  var zne, qne, sL, _U, oP, H2e, Jne, XKe = C({
    "src/services/textChanges.ts"() {
      $r(), zne = /* @__PURE__ */ ((e) => (e[e.Exclude = 0] = "Exclude", e[e.IncludeAll = 1] = "IncludeAll", e[e.JSDoc = 2] = "JSDoc", e[e.StartLine = 3] = "StartLine", e))(zne || {}), qne = /* @__PURE__ */ ((e) => (e[e.Exclude = 0] = "Exclude", e[e.ExcludeWhitespace = 1] = "ExcludeWhitespace", e[e.Include = 2] = "Include", e))(qne || {}), sL = {
        leadingTriviaOption: 0,
        trailingTriviaOption: 0
      }, _U = class {
        constructor(e, t) {
          this.newLineCharacter = e, this.formatContext = t, this.changes = [], this.newFiles = [], this.classesWithNodesInsertedAtStart = /* @__PURE__ */ new Map(), this.deletedNodes = [];
        }
        static fromContext(e) {
          return new _U(ib(e.host, e.formatContext.options), e.formatContext);
        }
        static with(e, t) {
          const r = _U.fromContext(e);
          return t(r), r.getChanges();
        }
        pushRaw(e, t) {
          D.assertEqual(e.fileName, t.fileName);
          for (const r of t.textChanges)
            this.changes.push({
              kind: 3,
              sourceFile: e,
              text: r.newText,
              range: KF(r.span)
            });
        }
        deleteRange(e, t) {
          this.changes.push({ kind: 0, sourceFile: e, range: t });
        }
        delete(e, t) {
          this.deletedNodes.push({ sourceFile: e, node: t });
        }
        deleteNode(e, t, r = { leadingTriviaOption: 1 }) {
          this.deleteRange(e, Jw(e, t, t, r));
        }
        deleteNodes(e, t, r = { leadingTriviaOption: 1 }, i) {
          for (const o of t) {
            const s = nS(e, o, r, i), c = l2(e, o, r);
            this.deleteRange(e, { pos: s, end: c }), i = !!jne(e, o, r);
          }
        }
        deleteModifier(e, t) {
          this.deleteRange(e, { pos: t.getStart(e), end: Ko(e.text, t.end, !0) });
        }
        deleteNodeRange(e, t, r, i = { leadingTriviaOption: 1 }) {
          const o = nS(e, t, i), s = l2(e, r, i);
          this.deleteRange(e, { pos: o, end: s });
        }
        deleteNodeRangeExcludingEnd(e, t, r, i = { leadingTriviaOption: 1 }) {
          const o = nS(e, t, i), s = r === void 0 ? e.text.length : nS(e, r, i);
          this.deleteRange(e, { pos: o, end: s });
        }
        replaceRange(e, t, r, i = {}) {
          this.changes.push({ kind: 1, sourceFile: e, range: t, options: i, node: r });
        }
        replaceNode(e, t, r, i = sL) {
          this.replaceRange(e, Jw(e, t, t, i), r, i);
        }
        replaceNodeRange(e, t, r, i, o = sL) {
          this.replaceRange(e, Jw(e, t, r, o), i, o);
        }
        replaceRangeWithNodes(e, t, r, i = {}) {
          this.changes.push({ kind: 2, sourceFile: e, range: t, options: i, nodes: r });
        }
        replaceNodeWithNodes(e, t, r, i = sL) {
          this.replaceRangeWithNodes(e, Jw(e, t, t, i), r, i);
        }
        replaceNodeWithText(e, t, r) {
          this.replaceRangeWithText(e, Jw(e, t, t, sL), r);
        }
        replaceNodeRangeWithNodes(e, t, r, i, o = sL) {
          this.replaceRangeWithNodes(e, Jw(e, t, r, o), i, o);
        }
        nodeHasTrailingComment(e, t, r = sL) {
          return !!jne(e, t, r);
        }
        nextCommaToken(e, t) {
          const r = zT(t, t.parent, e);
          return r && r.kind === 27 ? r : void 0;
        }
        replacePropertyAssignment(e, t, r) {
          const i = this.nextCommaToken(e, t) ? "" : "," + this.newLineCharacter;
          this.replaceNode(e, t, r, { suffix: i });
        }
        insertNodeAt(e, t, r, i = {}) {
          this.replaceRange(e, h_(t), r, i);
        }
        insertNodesAt(e, t, r, i = {}) {
          this.replaceRangeWithNodes(e, h_(t), r, i);
        }
        insertNodeAtTopOfFile(e, t, r) {
          this.insertAtTopOfFile(e, t, r);
        }
        insertNodesAtTopOfFile(e, t, r) {
          this.insertAtTopOfFile(e, t, r);
        }
        insertAtTopOfFile(e, t, r) {
          const i = JKe(e), o = {
            prefix: i === 0 ? void 0 : this.newLineCharacter,
            suffix: (hu(e.text.charCodeAt(i)) ? "" : this.newLineCharacter) + (r ? this.newLineCharacter : "")
          };
          Va(t) ? this.insertNodesAt(e, i, t, o) : this.insertNodeAt(e, i, t, o);
        }
        insertFirstParameter(e, t, r) {
          const i = Yc(t);
          i ? this.insertNodeBefore(e, i, r) : this.insertNodeAt(e, t.pos, r);
        }
        insertNodeBefore(e, t, r, i = !1, o = {}) {
          this.insertNodeAt(e, nS(e, t, o), r, this.getOptionsForInsertNodeBefore(t, r, i));
        }
        insertModifierAt(e, t, r, i = {}) {
          this.insertNodeAt(e, t, N.createToken(r), i);
        }
        insertModifierBefore(e, t, r) {
          return this.insertModifierAt(e, r.getStart(e), t, { suffix: " " });
        }
        insertCommentBeforeLine(e, t, r, i) {
          const o = wv(t, e), s = _ve(e.text, o), c = j2e(e, s), f = fw(e, c ? s : r), d = e.text.slice(o, s), y = `${c ? "" : this.newLineCharacter}//${i}${this.newLineCharacter}${d}`;
          this.insertText(e, f.getStart(e), y);
        }
        insertJsdocCommentBefore(e, t, r) {
          const i = t.getStart(e);
          if (t.jsDoc)
            for (const c of t.jsDoc)
              this.deleteRange(e, {
                pos: T_(c.getStart(e), e),
                end: l2(e, c, {})
              });
          const o = eQ(e.text, i - 1), s = e.text.slice(o, i);
          this.insertNodeAt(e, i, r, { suffix: this.newLineCharacter + s });
        }
        createJSDocText(e, t) {
          const r = ca(t.jsDoc, (o) => Ha(o.comment) ? N.createJSDocText(o.comment) : o.comment), i = Am(t.jsDoc);
          return i && g_(i.pos, i.end, e) && Le(r) === 0 ? void 0 : N.createNodeArray(la(r, N.createJSDocText(`
`)));
        }
        replaceJSDocComment(e, t, r) {
          this.insertJsdocCommentBefore(e, UKe(t), N.createJSDocComment(this.createJSDocText(e, t), N.createNodeArray(r)));
        }
        addJSDocTags(e, t, r) {
          const i = Bd(t.jsDoc, (s) => s.tags), o = r.filter((s) => !i.some((c, f) => {
            const d = VKe(c, s);
            return d && (i[f] = d), !!d;
          }));
          this.replaceJSDocComment(e, t, [...i, ...o]);
        }
        filterJSDocTags(e, t, r) {
          this.replaceJSDocComment(e, t, lr(Bd(t.jsDoc, (i) => i.tags), r));
        }
        replaceRangeWithText(e, t, r) {
          this.changes.push({ kind: 3, sourceFile: e, range: t, text: r });
        }
        insertText(e, t, r) {
          this.replaceRangeWithText(e, h_(t), r);
        }
        tryInsertTypeAnnotation(e, t, r) {
          var i;
          let o;
          if (Ka(t)) {
            if (o = bs(t, 21, e), !o) {
              if (!Js(t))
                return !1;
              o = us(t.parameters);
            }
          } else
            o = (i = t.kind === 257 ? t.exclamationToken : t.questionToken) != null ? i : t.name;
          return this.insertNodeAt(e, o.end, r, { prefix: ": " }), !0;
        }
        tryInsertThisTypeAnnotation(e, t, r) {
          const i = bs(t, 20, e).getStart(e) + 1, o = t.parameters.length ? ", " : "";
          this.insertNodeAt(e, i, r, { prefix: "this: ", suffix: o });
        }
        insertTypeParameters(e, t, r) {
          const i = (bs(t, 20, e) || us(t.parameters)).getStart(e);
          this.insertNodesAt(e, i, r, { prefix: "<", suffix: ">", joiner: ", " });
        }
        getOptionsForInsertNodeBefore(e, t, r) {
          return wa(e) || Uc(e) ? { suffix: r ? this.newLineCharacter + this.newLineCharacter : this.newLineCharacter } : Ki(e) ? { suffix: ", " } : Ba(e) ? Ba(t) ? { suffix: ", " } : {} : jo(e) && Wc(e.parent) || xy(e) ? { suffix: ", " } : Ld(e) ? { suffix: "," + (r ? this.newLineCharacter : " ") } : D.failBadSyntaxKind(e);
        }
        insertNodeAtConstructorStart(e, t, r) {
          const i = Yc(t.body.statements);
          !i || !t.body.multiLine ? this.replaceConstructorBody(e, t, [r, ...t.body.statements]) : this.insertNodeBefore(e, i, r);
        }
        insertNodeAtConstructorStartAfterSuperCall(e, t, r) {
          const i = nn(t.body.statements, (o) => ou(o) && MA(o.expression));
          !i || !t.body.multiLine ? this.replaceConstructorBody(e, t, [...t.body.statements, r]) : this.insertNodeAfter(e, i, r);
        }
        insertNodeAtConstructorEnd(e, t, r) {
          const i = tl(t.body.statements);
          !i || !t.body.multiLine ? this.replaceConstructorBody(e, t, [...t.body.statements, r]) : this.insertNodeAfter(e, i, r);
        }
        replaceConstructorBody(e, t, r) {
          this.replaceNode(e, t.body, N.createBlock(r, !0));
        }
        insertNodeAtEndOfScope(e, t, r) {
          const i = nS(e, t.getLastToken(), {});
          this.insertNodeAt(e, i, r, {
            prefix: hu(e.text.charCodeAt(t.getLastToken().pos)) ? this.newLineCharacter : this.newLineCharacter + this.newLineCharacter,
            suffix: this.newLineCharacter
          });
        }
        insertMemberAtStart(e, t, r) {
          this.insertNodeAtStartWorker(e, t, r);
        }
        insertNodeAtObjectStart(e, t, r) {
          this.insertNodeAtStartWorker(e, t, r);
        }
        insertNodeAtStartWorker(e, t, r) {
          var i;
          const o = (i = this.guessIndentationFromExistingMembers(e, t)) != null ? i : this.computeIndentationForNewMember(e, t);
          this.insertNodeAt(e, dU(t).pos, r, this.getInsertNodeAtStartInsertOptions(e, t, o));
        }
        guessIndentationFromExistingMembers(e, t) {
          let r, i = t;
          for (const o of dU(t)) {
            if (P3(i, o, e))
              return;
            const s = o.getStart(e), c = Cc.SmartIndenter.findFirstNonWhitespaceColumn(T_(s, e), s, e, this.formatContext.options);
            if (r === void 0)
              r = c;
            else if (c !== r)
              return;
            i = o;
          }
          return r;
        }
        computeIndentationForNewMember(e, t) {
          var r;
          const i = t.getStart(e);
          return Cc.SmartIndenter.findFirstNonWhitespaceColumn(T_(i, e), i, e, this.formatContext.options) + ((r = this.formatContext.options.indentSize) != null ? r : 4);
        }
        getInsertNodeAtStartInsertOptions(e, t, r) {
          const o = dU(t).length === 0, s = vp(this.classesWithNodesInsertedAtStart, ps(t), { node: t, sourceFile: e }), c = Ls(t) && (!p_(e) || !o), f = Ls(t) && p_(e) && o && !s;
          return {
            indentation: r,
            prefix: (f ? "," : "") + this.newLineCharacter,
            suffix: c ? "," : nd(t) && o ? ";" : ""
          };
        }
        insertNodeAfterComma(e, t, r) {
          const i = this.insertNodeAfterWorker(e, this.nextCommaToken(e, t) || t, r);
          this.insertNodeAt(e, i, r, this.getInsertNodeAfterOptions(e, t));
        }
        insertNodeAfter(e, t, r) {
          const i = this.insertNodeAfterWorker(e, t, r);
          this.insertNodeAt(e, i, r, this.getInsertNodeAfterOptions(e, t));
        }
        insertNodeAtEndOfList(e, t, r) {
          this.insertNodeAt(e, t.end, r, { prefix: ", " });
        }
        insertNodesAfter(e, t, r) {
          const i = this.insertNodeAfterWorker(e, t, us(r));
          this.insertNodesAt(e, i, r, this.getInsertNodeAfterOptions(e, t));
        }
        insertNodeAfterWorker(e, t, r) {
          return KKe(t, r) && e.text.charCodeAt(t.end - 1) !== 59 && this.replaceRange(e, h_(t.end), N.createToken(26)), l2(e, t, {});
        }
        getInsertNodeAfterOptions(e, t) {
          const r = this.getInsertNodeAfterOptionsWorker(t);
          return {
            ...r,
            prefix: t.end === e.end && wa(t) ? r.prefix ? `
${r.prefix}` : `
` : r.prefix
          };
        }
        getInsertNodeAfterOptionsWorker(e) {
          switch (e.kind) {
            case 260:
            case 264:
              return { prefix: this.newLineCharacter, suffix: this.newLineCharacter };
            case 257:
            case 10:
            case 79:
              return { prefix: ", " };
            case 299:
              return { suffix: "," + this.newLineCharacter };
            case 93:
              return { prefix: " " };
            case 166:
              return {};
            default:
              return D.assert(wa(e) || FM(e)), { suffix: this.newLineCharacter };
          }
        }
        insertName(e, t, r) {
          if (D.assert(!t.name), t.kind === 216) {
            const i = bs(t, 38, e), o = bs(t, 20, e);
            o ? (this.insertNodesAt(e, o.getStart(e), [N.createToken(98), N.createIdentifier(r)], { joiner: " " }), Nh(this, e, i)) : (this.insertText(e, us(t.parameters).getStart(e), `function ${r}(`), this.replaceRange(e, i, N.createToken(21))), t.body.kind !== 238 && (this.insertNodesAt(e, t.body.getStart(e), [N.createToken(18), N.createToken(105)], { joiner: " ", suffix: " " }), this.insertNodesAt(e, t.body.end, [N.createToken(26), N.createToken(19)], { joiner: " " }));
          } else {
            const i = bs(t, t.kind === 215 ? 98 : 84, e).end;
            this.insertNodeAt(e, i, N.createIdentifier(r), { prefix: " " });
          }
        }
        insertExportModifier(e, t) {
          this.insertText(e, t.getStart(e), "export ");
        }
        insertImportSpecifierAtIndex(e, t, r, i) {
          const o = r.elements[i - 1];
          o ? this.insertNodeInListAfter(e, o, t) : this.insertNodeBefore(e, r.elements[0], t, !g_(r.elements[0].getStart(), r.parent.parent.getStart(), e));
        }
        insertNodeInListAfter(e, t, r, i = Cc.SmartIndenter.getContainingList(t, e)) {
          if (!i) {
            D.fail("node is not a list element");
            return;
          }
          const o = NA(i, t);
          if (o < 0)
            return;
          const s = t.getEnd();
          if (o !== i.length - 1) {
            const c = aa(e, t.end);
            if (c && uU(t, c)) {
              const f = i[o + 1], d = U2e(e.text, f.getFullStart()), y = `${yo(c.kind)}${e.text.substring(c.end, d)}`;
              this.insertNodesAt(e, d, [r], { suffix: y });
            }
          } else {
            const c = t.getStart(e), f = T_(c, e);
            let d, y = !1;
            if (i.length === 1)
              d = 27;
            else {
              const h = Ac(t.pos, e);
              d = uU(t, h) ? h.kind : 27, y = T_(i[o - 1].getStart(e), e) !== f;
            }
            if (BKe(e.text, t.end) && (y = !0), y) {
              this.replaceRange(e, h_(s), N.createToken(d));
              const h = Cc.SmartIndenter.findFirstNonWhitespaceColumn(f, c, e, this.formatContext.options);
              let E = Ko(e.text, s, !0, !1);
              for (; E !== s && hu(e.text.charCodeAt(E - 1)); )
                E--;
              this.replaceRange(e, h_(E), r, { indentation: h, prefix: this.newLineCharacter });
            } else
              this.replaceRange(e, h_(s), r, { prefix: `${yo(d)} ` });
          }
        }
        parenthesizeExpression(e, t) {
          this.replaceRange(e, bq(t), N.createParenthesizedExpression(t));
        }
        finishClassesWithNodesInsertedAtStart() {
          this.classesWithNodesInsertedAtStart.forEach(({ node: e, sourceFile: t }) => {
            const [r, i] = HKe(e, t);
            if (r !== void 0 && i !== void 0) {
              const o = dU(e).length === 0, s = g_(r, i, t);
              o && s && r !== i - 1 && this.deleteRange(t, h_(r, i - 1)), s && this.insertText(t, i - 1, this.newLineCharacter);
            }
          });
        }
        finishDeleteDeclarations() {
          const e = /* @__PURE__ */ new Set();
          for (const { sourceFile: t, node: r } of this.deletedNodes)
            this.deletedNodes.some((i) => i.sourceFile === t && Dye(i.node, r)) || (Va(r) ? this.deleteRange(t, Eq(t, r)) : Jne.deleteDeclaration(this, e, t, r));
          e.forEach((t) => {
            const r = t.getSourceFile(), i = Cc.SmartIndenter.getContainingList(t, r);
            if (t !== qo(i))
              return;
            const o = ya(i, (s) => !e.has(s), i.length - 2);
            o !== -1 && this.deleteRange(r, { pos: i[o].end, end: Hne(r, i[o + 1]) });
          });
        }
        getChanges(e) {
          this.finishDeleteDeclarations(), this.finishClassesWithNodesInsertedAtStart();
          const t = oP.getTextChangesFromChanges(this.changes, this.newLineCharacter, this.formatContext, e);
          for (const { oldFile: r, fileName: i, statements: o } of this.newFiles)
            t.push(oP.newFileChanges(r, i, o, this.newLineCharacter, this.formatContext));
          return t;
        }
        createNewFile(e, t, r) {
          this.newFiles.push({ oldFile: e, fileName: t, statements: r });
        }
      }, ((e) => {
        function t(f, d, y, h) {
          return ia(oI(f, (E) => E.sourceFile.path), (E) => {
            const A = E[0].sourceFile, L = sy(E, (O, k) => O.range.pos - k.range.pos || O.range.end - k.range.end);
            for (let O = 0; O < L.length - 1; O++)
              D.assert(L[O].range.end <= L[O + 1].range.pos, "Changes overlap", () => `${JSON.stringify(L[O].range)} and ${JSON.stringify(L[O + 1].range)}`);
            const I = ia(L, (O) => {
              const k = qv(O.range), G = o(O, A, d, y, h);
              if (!(k.length === G.length && kve(A.text, G, k.start)))
                return i6(k, G);
            });
            return I.length > 0 ? { fileName: A.fileName, textChanges: I } : void 0;
          });
        }
        e.getTextChangesFromChanges = t;
        function r(f, d, y, h, E) {
          const A = i(f, hq(d), y, h, E);
          return { fileName: d, textChanges: [i6(wc(0, 0), A)], isNewFile: !0 };
        }
        e.newFileChanges = r;
        function i(f, d, y, h, E) {
          const A = y.map((O) => O === 4 ? "" : c(O, f, h).text).join(h), L = YO("any file name", A, 99, !0, d), I = Cc.formatDocument(L, E);
          return Wne(A, I) + h;
        }
        e.newFileChangesWorker = i;
        function o(f, d, y, h, E) {
          var A;
          if (f.kind === 0)
            return "";
          if (f.kind === 3)
            return f.text;
          const { options: L = {}, range: { pos: I } } = f, O = (V) => s(V, d, I, L, y, h, E), k = f.kind === 2 ? f.nodes.map((V) => gA(O(V), y)).join(((A = f.options) == null ? void 0 : A.joiner) || y) : O(f.node), G = L.indentation !== void 0 || T_(I, d) === I ? k : k.replace(/^\s+/, "");
          return (L.prefix || "") + G + (!L.suffix || ic(G, L.suffix) ? "" : L.suffix);
        }
        function s(f, d, y, { indentation: h, prefix: E, delta: A }, L, I, O) {
          const { node: k, text: G } = c(f, d, L);
          O && O(k, G);
          const V = E9(I, d), H = h !== void 0 ? h : Cc.SmartIndenter.getIndentation(y, d, V, E === L || T_(y, d) === y);
          A === void 0 && (A = Cc.SmartIndenter.shouldIndentChildNode(V, f) && V.indentSize || 0);
          const te = {
            text: G,
            getLineAndCharacterOfPosition(Y) {
              return ol(this, Y);
            }
          }, X = Cc.formatNodeGivenIndentation(k, te, d.languageVariant, H, A, { ...I, options: V });
          return Wne(G, X);
        }
        function c(f, d, y) {
          const h = V2e(y), E = m6(y);
          return j1({
            newLine: E,
            neverAsciiEscape: !0,
            preserveSourceNewlines: !0,
            terminateUnterminatedLiterals: !0
          }, h).writeNode(4, f, d, h), { text: h.getText(), node: fU(f) };
        }
        e.getNonformattedText = c;
      })(oP || (oP = {})), H2e = {
        ...bg,
        factory: hO(bg.factory.flags | 1, bg.factory.baseFactory)
      }, ((e) => {
        function t(s, c, f, d) {
          switch (d.kind) {
            case 166: {
              const L = d.parent;
              Js(L) && L.parameters.length === 1 && !bs(L, 20, f) ? s.replaceNodeWithText(f, d, "()") : Kw(s, c, f, d);
              break;
            }
            case 269:
            case 268:
              const y = f.imports.length && d === us(f.imports).parent || d === nn(f.statements, lT);
              Nh(s, f, d, {
                leadingTriviaOption: y ? 0 : xf(d) ? 2 : 3
              });
              break;
            case 205:
              const h = d.parent;
              h.kind === 204 && d !== qo(h.elements) ? Nh(s, f, d) : Kw(s, c, f, d);
              break;
            case 257:
              o(s, c, f, d);
              break;
            case 165:
              Kw(s, c, f, d);
              break;
            case 273:
              const A = d.parent;
              A.elements.length === 1 ? i(s, f, A) : Kw(s, c, f, d);
              break;
            case 271:
              i(s, f, d);
              break;
            case 26:
              Nh(s, f, d, { trailingTriviaOption: 0 });
              break;
            case 98:
              Nh(s, f, d, { leadingTriviaOption: 0 });
              break;
            case 260:
            case 259:
              Nh(s, f, d, { leadingTriviaOption: xf(d) ? 2 : 3 });
              break;
            default:
              d.parent ? Wm(d.parent) && d.parent.name === d ? r(s, f, d.parent) : no(d.parent) && jr(d.parent.arguments, d) ? Kw(s, c, f, d) : Nh(s, f, d) : Nh(s, f, d);
          }
        }
        e.deleteDeclaration = t;
        function r(s, c, f) {
          if (!f.namedBindings)
            Nh(s, c, f.parent);
          else {
            const d = f.name.getStart(c), y = aa(c, f.name.end);
            if (y && y.kind === 27) {
              const h = Ko(c.text, y.end, !1, !0);
              s.deleteRange(c, { pos: d, end: h });
            } else
              Nh(s, c, f.name);
          }
        }
        function i(s, c, f) {
          if (f.parent.name) {
            const d = D.checkDefined(aa(c, f.pos - 1));
            s.deleteRange(c, { pos: d.getStart(c), end: f.end });
          } else {
            const d = q0(f, 269);
            Nh(s, c, d);
          }
        }
        function o(s, c, f, d) {
          const { parent: y } = d;
          if (y.kind === 295) {
            s.deleteNodeRange(f, bs(y, 20, f), bs(y, 21, f));
            return;
          }
          if (y.declarations.length !== 1) {
            Kw(s, c, f, d);
            return;
          }
          const h = y.parent;
          switch (h.kind) {
            case 247:
            case 246:
              s.replaceNode(f, d, N.createObjectLiteralExpression());
              break;
            case 245:
              Nh(s, f, y);
              break;
            case 240:
              Nh(s, f, h, { leadingTriviaOption: xf(h) ? 2 : 3 });
              break;
            default:
              D.assertNever(h);
          }
        }
      })(Jne || (Jne = {}));
    }
  }), gr = {};
  ne(gr, {
    ChangeTracker: () => _U,
    LeadingTriviaOption: () => zne,
    TrailingTriviaOption: () => qne,
    applyChanges: () => Wne,
    assignPositionsToNode: () => fU,
    createWriter: () => V2e,
    deleteNode: () => Nh,
    getNewFileText: () => WKe,
    isThisTypeAnnotatable: () => GKe,
    isValidLocationToAddComment: () => j2e
  });
  var YKe = C({
    "src/services/_namespaces/ts.textChanges.ts"() {
      XKe();
    }
  }), Kne, Xne, $Ke = C({
    "src/services/formatting/formattingContext.ts"() {
      $r(), Kne = /* @__PURE__ */ ((e) => (e[e.FormatDocument = 0] = "FormatDocument", e[e.FormatSelection = 1] = "FormatSelection", e[e.FormatOnEnter = 2] = "FormatOnEnter", e[e.FormatOnSemicolon = 3] = "FormatOnSemicolon", e[e.FormatOnOpeningCurlyBrace = 4] = "FormatOnOpeningCurlyBrace", e[e.FormatOnClosingCurlyBrace = 5] = "FormatOnClosingCurlyBrace", e))(Kne || {}), Xne = class {
        constructor(e, t, r) {
          this.sourceFile = e, this.formattingRequestKind = t, this.options = r;
        }
        updateContext(e, t, r, i, o) {
          this.currentTokenSpan = D.checkDefined(e), this.currentTokenParent = D.checkDefined(t), this.nextTokenSpan = D.checkDefined(r), this.nextTokenParent = D.checkDefined(i), this.contextNode = D.checkDefined(o), this.contextNodeAllOnSameLine = void 0, this.nextNodeAllOnSameLine = void 0, this.tokensAreOnSameLine = void 0, this.contextNodeBlockIsOnOneLine = void 0, this.nextNodeBlockIsOnOneLine = void 0;
        }
        ContextNodeAllOnSameLine() {
          return this.contextNodeAllOnSameLine === void 0 && (this.contextNodeAllOnSameLine = this.NodeIsOnOneLine(this.contextNode)), this.contextNodeAllOnSameLine;
        }
        NextNodeAllOnSameLine() {
          return this.nextNodeAllOnSameLine === void 0 && (this.nextNodeAllOnSameLine = this.NodeIsOnOneLine(this.nextTokenParent)), this.nextNodeAllOnSameLine;
        }
        TokensAreOnSameLine() {
          if (this.tokensAreOnSameLine === void 0) {
            const e = this.sourceFile.getLineAndCharacterOfPosition(this.currentTokenSpan.pos).line, t = this.sourceFile.getLineAndCharacterOfPosition(this.nextTokenSpan.pos).line;
            this.tokensAreOnSameLine = e === t;
          }
          return this.tokensAreOnSameLine;
        }
        ContextNodeBlockIsOnOneLine() {
          return this.contextNodeBlockIsOnOneLine === void 0 && (this.contextNodeBlockIsOnOneLine = this.BlockIsOnOneLine(this.contextNode)), this.contextNodeBlockIsOnOneLine;
        }
        NextNodeBlockIsOnOneLine() {
          return this.nextNodeBlockIsOnOneLine === void 0 && (this.nextNodeBlockIsOnOneLine = this.BlockIsOnOneLine(this.nextTokenParent)), this.nextNodeBlockIsOnOneLine;
        }
        NodeIsOnOneLine(e) {
          const t = this.sourceFile.getLineAndCharacterOfPosition(e.getStart(this.sourceFile)).line, r = this.sourceFile.getLineAndCharacterOfPosition(e.getEnd()).line;
          return t === r;
        }
        BlockIsOnOneLine(e) {
          const t = bs(e, 18, this.sourceFile), r = bs(e, 19, this.sourceFile);
          if (t && r) {
            const i = this.sourceFile.getLineAndCharacterOfPosition(t.getEnd()).line, o = this.sourceFile.getLineAndCharacterOfPosition(r.getStart(this.sourceFile)).line;
            return i === o;
          }
          return !1;
        }
      };
    }
  });
  function Yne(e, t, r, i, o) {
    const s = t === 1 ? z2e : W2e;
    s.setText(e), s.setTextPos(r);
    let c = !0, f, d, y, h, E;
    const A = o({
      advance: L,
      readTokenInfo: X,
      readEOFTokenRange: P,
      isOnToken: de,
      isOnEOF: re,
      getCurrentLeadingTrivia: () => f,
      lastTrailingTriviaWasNewLine: () => c,
      skipToEndOf: ae,
      skipToStartOf: W,
      getStartPos: () => {
        var ce;
        return (ce = E == null ? void 0 : E.token.pos) != null ? ce : s.getTokenPos();
      }
    });
    return E = void 0, s.setText(void 0), A;
    function L() {
      E = void 0, s.getStartPos() !== r ? c = !!d && qo(d).kind === 4 : s.scan(), f = void 0, d = void 0;
      let me = s.getStartPos();
      for (; me < i; ) {
        const ve = s.getToken();
        if (!YA(ve))
          break;
        s.scan();
        const Te = {
          pos: me,
          end: s.getStartPos(),
          kind: ve
        };
        me = s.getStartPos(), f = Fn(f, Te);
      }
      y = s.getStartPos();
    }
    function I(ce) {
      switch (ce.kind) {
        case 33:
        case 71:
        case 72:
        case 49:
        case 48:
          return !0;
      }
      return !1;
    }
    function O(ce) {
      if (ce.parent)
        switch (ce.parent.kind) {
          case 288:
          case 283:
          case 284:
          case 282:
            return Ad(ce.kind) || ce.kind === 79;
        }
      return !1;
    }
    function k(ce) {
      return vx(ce) || Ay(ce) && (E == null ? void 0 : E.token.kind) === 11;
    }
    function G(ce) {
      return ce.kind === 13;
    }
    function V(ce) {
      return ce.kind === 16 || ce.kind === 17;
    }
    function H(ce) {
      return ce.parent && nm(ce.parent) && ce.parent.initializer === ce;
    }
    function te(ce) {
      return ce === 43 || ce === 68;
    }
    function X(ce) {
      D.assert(de());
      const me = I(ce) ? 1 : G(ce) ? 2 : V(ce) ? 3 : O(ce) ? 4 : k(ce) ? 5 : H(ce) ? 6 : 0;
      if (E && me === h)
        return ye(E, ce);
      s.getStartPos() !== y && (D.assert(E !== void 0), s.setTextPos(y), s.scan());
      let ve = Y(ce, me);
      const Te = gU(s.getStartPos(), s.getTextPos(), ve);
      for (d && (d = void 0); s.getStartPos() < i && (ve = s.scan(), !!YA(ve)); ) {
        const ee = gU(s.getStartPos(), s.getTextPos(), ve);
        if (d || (d = []), d.push(ee), ve === 4) {
          s.scan();
          break;
        }
      }
      return E = { leadingTrivia: f, trailingTrivia: d, token: Te }, ye(E, ce);
    }
    function Y(ce, me) {
      const ve = s.getToken();
      switch (h = 0, me) {
        case 1:
          if (ve === 31) {
            h = 1;
            const Te = s.reScanGreaterToken();
            return D.assert(ce.kind === Te), Te;
          }
          break;
        case 2:
          if (te(ve)) {
            h = 2;
            const Te = s.reScanSlashToken();
            return D.assert(ce.kind === Te), Te;
          }
          break;
        case 3:
          if (ve === 19)
            return h = 3, s.reScanTemplateToken(!1);
          break;
        case 4:
          return h = 4, s.scanJsxIdentifier();
        case 5:
          return h = 5, s.reScanJsxToken(!1);
        case 6:
          return h = 6, s.reScanJsxAttributeValue();
        case 0:
          break;
        default:
          D.assertNever(me);
      }
      return ve;
    }
    function P() {
      return D.assert(re()), gU(s.getStartPos(), s.getTextPos(), 1);
    }
    function de() {
      const ce = E ? E.token.kind : s.getToken();
      return ce !== 1 && !YA(ce);
    }
    function re() {
      return (E ? E.token.kind : s.getToken()) === 1;
    }
    function ye(ce, me) {
      return qS(me) && ce.token.kind !== me.kind && (ce.token.kind = me.kind), ce;
    }
    function ae(ce) {
      s.setTextPos(ce.end), y = s.getStartPos(), h = void 0, E = void 0, c = !1, f = void 0, d = void 0;
    }
    function W(ce) {
      s.setTextPos(ce.pos), y = s.getStartPos(), h = void 0, E = void 0, c = !1, f = void 0, d = void 0;
    }
  }
  var W2e, z2e, QKe = C({
    "src/services/formatting/formattingScanner.ts"() {
      $r(), $w(), W2e = dy(99, !1, 0), z2e = dy(99, !1, 1);
    }
  }), sP, $ne, Qne, ZKe = C({
    "src/services/formatting/rule.ts"() {
      $r(), sP = rt, $ne = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.StopProcessingSpaceActions = 1] = "StopProcessingSpaceActions", e[e.StopProcessingTokenActions = 2] = "StopProcessingTokenActions", e[e.InsertSpace = 4] = "InsertSpace", e[e.InsertNewLine = 8] = "InsertNewLine", e[e.DeleteSpace = 16] = "DeleteSpace", e[e.DeleteToken = 32] = "DeleteToken", e[e.InsertTrailingSemicolon = 64] = "InsertTrailingSemicolon", e[e.StopAction = 3] = "StopAction", e[e.ModifySpaceAction = 28] = "ModifySpaceAction", e[e.ModifyTokenAction = 96] = "ModifyTokenAction", e))($ne || {}), Qne = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.CanDeleteNewLines = 1] = "CanDeleteNewLines", e))(Qne || {});
    }
  });
  function q2e() {
    const e = [];
    for (let Y = 0; Y <= 162; Y++)
      Y !== 1 && e.push(Y);
    function t(...Y) {
      return { tokens: e.filter((P) => !Y.some((de) => de === P)), isSpecific: !1 };
    }
    const r = { tokens: e, isSpecific: !1 }, i = lL([...e, 3]), o = lL([...e, 1]), s = K2e(81, 162), c = K2e(29, 78), f = [
      101,
      102,
      162,
      128,
      140,
      150
    ], d = [45, 46, 54, 53], y = [
      8,
      9,
      79,
      20,
      22,
      18,
      108,
      103
    ], h = [79, 20, 108, 103], E = [79, 21, 23, 103], A = [79, 20, 108, 103], L = [79, 21, 23, 103], I = [2, 3], O = [79, ...S9], k = i, G = lL([79, 3, 84, 93, 100]), V = lL([21, 3, 90, 111, 96, 91]), H = [
      zr("IgnoreBeforeComment", r, I, sP, 1),
      zr("IgnoreAfterLineComment", 2, r, sP, 1),
      zr("NotSpaceBeforeColon", r, 58, [Oi, lP, $2e], 16),
      zr("SpaceAfterColon", 58, r, [Oi, lP], 4),
      zr("NoSpaceBeforeQuestionMark", r, 57, [Oi, lP, $2e], 16),
      zr("SpaceAfterQuestionMarkInConditionalOperator", 57, r, [Oi, tXe], 4),
      zr("NoSpaceAfterQuestionMark", 57, r, [Oi], 16),
      zr("NoSpaceBeforeDot", r, [24, 28], [Oi, CXe], 16),
      zr("NoSpaceAfterDot", [24, 28], r, [Oi], 16),
      zr("NoSpaceBetweenImportParenInImportType", 100, 20, [Oi, fXe], 16),
      zr("NoSpaceAfterUnaryPrefixOperator", d, y, [Oi, lP], 16),
      zr("NoSpaceAfterUnaryPreincrementOperator", 45, h, [Oi], 16),
      zr("NoSpaceAfterUnaryPredecrementOperator", 46, A, [Oi], 16),
      zr("NoSpaceBeforeUnaryPostincrementOperator", E, 45, [Oi, fAe], 16),
      zr("NoSpaceBeforeUnaryPostdecrementOperator", L, 46, [Oi, fAe], 16),
      zr("SpaceAfterPostincrementWhenFollowedByAdd", 45, 39, [Oi, Oy], 4),
      zr("SpaceAfterAddWhenFollowedByUnaryPlus", 39, 39, [Oi, Oy], 4),
      zr("SpaceAfterAddWhenFollowedByPreincrement", 39, 45, [Oi, Oy], 4),
      zr("SpaceAfterPostdecrementWhenFollowedBySubtract", 46, 40, [Oi, Oy], 4),
      zr("SpaceAfterSubtractWhenFollowedByUnaryMinus", 40, 40, [Oi, Oy], 4),
      zr("SpaceAfterSubtractWhenFollowedByPredecrement", 40, 46, [Oi, Oy], 4),
      zr("NoSpaceAfterCloseBrace", 19, [27, 26], [Oi], 16),
      zr("NewLineBeforeCloseBraceInBlockContext", i, 19, [Z2e], 8),
      zr("SpaceAfterCloseBrace", 19, t(21), [Oi, iXe], 4),
      zr("SpaceBetweenCloseBraceAndElse", 19, 91, [Oi], 4),
      zr("SpaceBetweenCloseBraceAndWhile", 19, 115, [Oi], 4),
      zr("NoSpaceBetweenEmptyBraceBrackets", 18, 19, [Oi, aAe], 16),
      zr("SpaceAfterConditionalClosingParen", 21, 22, [cP], 4),
      zr("NoSpaceBetweenFunctionKeywordAndStar", 98, 41, [nAe], 16),
      zr("SpaceAfterStarInGeneratorDeclaration", 41, 79, [nAe], 4),
      zr("SpaceAfterFunctionInFuncDecl", 98, r, [K1], 4),
      zr("NewLineAfterOpenBraceInBlockContext", 18, r, [Z2e], 8),
      zr("SpaceAfterGetSetInMember", [137, 151], 79, [K1], 4),
      zr("NoSpaceBetweenYieldKeywordAndStar", 125, 41, [Oi, dAe], 16),
      zr("SpaceBetweenYieldOrYieldStarAndOperand", [125, 41], r, [Oi, dAe], 4),
      zr("NoSpaceBetweenReturnAndSemicolon", 105, 26, [Oi], 16),
      zr("SpaceAfterCertainKeywords", [113, 109, 103, 89, 105, 112, 133], r, [Oi], 4),
      zr("SpaceAfterLetConstInVariableDeclaration", [119, 85], r, [Oi, hXe], 4),
      zr("NoSpaceBeforeOpenParenInFuncCall", r, 20, [Oi, sXe, lXe], 16),
      zr("SpaceBeforeBinaryKeywordOperator", r, f, [Oi, Oy], 4),
      zr("SpaceAfterBinaryKeywordOperator", f, r, [Oi, Oy], 4),
      zr("SpaceAfterVoidOperator", 114, r, [Oi, EXe], 4),
      zr("SpaceBetweenAsyncAndOpenParen", 132, 20, [dXe, Oi], 4),
      zr("SpaceBetweenAsyncAndFunctionKeyword", 132, [98, 79], [Oi], 4),
      zr("NoSpaceBetweenTagAndTemplateString", [79, 21], [14, 15], [Oi], 16),
      zr("SpaceBeforeJsxAttribute", r, 79, [_Xe, Oi], 4),
      zr("SpaceBeforeSlashInJsxOpeningElement", r, 43, [lAe, Oi], 4),
      zr("NoSpaceBeforeGreaterThanTokenInJsxOpeningElement", 43, 31, [lAe, Oi], 16),
      zr("NoSpaceBeforeEqualInJsxAttribute", r, 63, [sAe, Oi], 16),
      zr("NoSpaceAfterEqualInJsxAttribute", 63, r, [sAe, Oi], 16),
      zr("NoSpaceAfterModuleImport", [142, 147], 20, [Oi], 16),
      zr("SpaceAfterCertainTypeScriptKeywords", [
        126,
        127,
        84,
        136,
        88,
        92,
        93,
        94,
        137,
        117,
        100,
        118,
        142,
        143,
        121,
        123,
        122,
        146,
        151,
        124,
        154,
        158,
        141,
        138
      ], r, [Oi], 4),
      zr("SpaceBeforeCertainTypeScriptKeywords", r, [94, 117, 158], [Oi], 4),
      zr("SpaceAfterModuleName", 10, 18, [gXe], 4),
      zr("SpaceBeforeArrow", r, 38, [Oi], 4),
      zr("SpaceAfterArrow", 38, r, [Oi], 4),
      zr("NoSpaceAfterEllipsis", 25, 79, [Oi], 16),
      zr("NoSpaceAfterOptionalParameters", 57, [21, 27], [Oi, lP], 16),
      zr("NoSpaceBetweenEmptyInterfaceBraceBrackets", 18, 19, [Oi, yXe], 16),
      zr("NoSpaceBeforeOpenAngularBracket", O, 29, [Oi, uP], 16),
      zr("NoSpaceBetweenCloseParenAndAngularBracket", 21, 29, [Oi, uP], 16),
      zr("NoSpaceAfterOpenAngularBracket", 29, r, [Oi, uP], 16),
      zr("NoSpaceBeforeCloseAngularBracket", r, 31, [Oi, uP], 16),
      zr("NoSpaceAfterCloseAngularBracket", 31, [20, 22, 31, 27], [
        Oi,
        uP,
        rXe,
        bXe
      ], 16),
      zr("SpaceBeforeAt", [21, 79], 59, [Oi], 4),
      zr("NoSpaceAfterAt", 59, r, [Oi], 16),
      zr("SpaceAfterDecorator", r, [
        126,
        79,
        93,
        88,
        84,
        124,
        123,
        121,
        122,
        137,
        151,
        22,
        41
      ], [mXe], 4),
      zr("NoSpaceBeforeNonNullAssertionOperator", r, 53, [Oi, TXe], 16),
      zr("NoSpaceAfterNewKeywordOnConstructorSignature", 103, 20, [Oi, vXe], 16),
      zr("SpaceLessThanAndNonJSXTypeAnnotation", 29, 29, [Oi], 4)
    ], te = [
      zr("SpaceAfterConstructor", 135, 20, [ff("insertSpaceAfterConstructor"), Oi], 4),
      zr("NoSpaceAfterConstructor", 135, 20, [Cp("insertSpaceAfterConstructor"), Oi], 16),
      zr("SpaceAfterComma", 27, r, [ff("insertSpaceAfterCommaDelimiter"), Oi, are, cXe, uXe], 4),
      zr("NoSpaceAfterComma", 27, r, [Cp("insertSpaceAfterCommaDelimiter"), Oi, are], 16),
      zr("SpaceAfterAnonymousFunctionKeyword", [98, 41], 20, [ff("insertSpaceAfterFunctionKeywordForAnonymousFunctions"), K1], 4),
      zr("NoSpaceAfterAnonymousFunctionKeyword", [98, 41], 20, [Cp("insertSpaceAfterFunctionKeywordForAnonymousFunctions"), K1], 16),
      zr("SpaceAfterKeywordInControl", s, 20, [ff("insertSpaceAfterKeywordsInControlFlowStatements"), cP], 4),
      zr("NoSpaceAfterKeywordInControl", s, 20, [Cp("insertSpaceAfterKeywordsInControlFlowStatements"), cP], 16),
      zr("SpaceAfterOpenParen", 20, r, [ff("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), Oi], 4),
      zr("SpaceBeforeCloseParen", r, 21, [ff("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), Oi], 4),
      zr("SpaceBetweenOpenParens", 20, 20, [ff("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), Oi], 4),
      zr("NoSpaceBetweenParens", 20, 21, [Oi], 16),
      zr("NoSpaceAfterOpenParen", 20, r, [Cp("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), Oi], 16),
      zr("NoSpaceBeforeCloseParen", r, 21, [Cp("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), Oi], 16),
      zr("SpaceAfterOpenBracket", 22, r, [ff("insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets"), Oi], 4),
      zr("SpaceBeforeCloseBracket", r, 23, [ff("insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets"), Oi], 4),
      zr("NoSpaceBetweenBrackets", 22, 23, [Oi], 16),
      zr("NoSpaceAfterOpenBracket", 22, r, [Cp("insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets"), Oi], 16),
      zr("NoSpaceBeforeCloseBracket", r, 23, [Cp("insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets"), Oi], 16),
      zr("SpaceAfterOpenBrace", 18, r, [Y2e("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"), Q2e], 4),
      zr("SpaceBeforeCloseBrace", r, 19, [Y2e("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"), Q2e], 4),
      zr("NoSpaceBetweenEmptyBraceBrackets", 18, 19, [Oi, aAe], 16),
      zr("NoSpaceAfterOpenBrace", 18, r, [Zne("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"), Oi], 16),
      zr("NoSpaceBeforeCloseBrace", r, 19, [Zne("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"), Oi], 16),
      zr("SpaceBetweenEmptyBraceBrackets", 18, 19, [ff("insertSpaceAfterOpeningAndBeforeClosingEmptyBraces")], 4),
      zr("NoSpaceBetweenEmptyBraceBrackets", 18, 19, [Zne("insertSpaceAfterOpeningAndBeforeClosingEmptyBraces"), Oi], 16),
      zr("SpaceAfterTemplateHeadAndMiddle", [15, 16], r, [ff("insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces"), oAe], 4, 1),
      zr("SpaceBeforeTemplateMiddleAndTail", r, [16, 17], [ff("insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces"), Oi], 4),
      zr("NoSpaceAfterTemplateHeadAndMiddle", [15, 16], r, [Cp("insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces"), oAe], 16, 1),
      zr("NoSpaceBeforeTemplateMiddleAndTail", r, [16, 17], [Cp("insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces"), Oi], 16),
      zr("SpaceAfterOpenBraceInJsxExpression", 18, r, [ff("insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces"), Oi, mU], 4),
      zr("SpaceBeforeCloseBraceInJsxExpression", r, 19, [ff("insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces"), Oi, mU], 4),
      zr("NoSpaceAfterOpenBraceInJsxExpression", 18, r, [Cp("insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces"), Oi, mU], 16),
      zr("NoSpaceBeforeCloseBraceInJsxExpression", r, 19, [Cp("insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces"), Oi, mU], 16),
      zr("SpaceAfterSemicolonInFor", 26, r, [ff("insertSpaceAfterSemicolonInForStatements"), Oi, tre], 4),
      zr("NoSpaceAfterSemicolonInFor", 26, r, [Cp("insertSpaceAfterSemicolonInForStatements"), Oi, tre], 16),
      zr("SpaceBeforeBinaryOperator", r, c, [ff("insertSpaceBeforeAndAfterBinaryOperators"), Oi, Oy], 4),
      zr("SpaceAfterBinaryOperator", c, r, [ff("insertSpaceBeforeAndAfterBinaryOperators"), Oi, Oy], 4),
      zr("NoSpaceBeforeBinaryOperator", r, c, [Cp("insertSpaceBeforeAndAfterBinaryOperators"), Oi, Oy], 16),
      zr("NoSpaceAfterBinaryOperator", c, r, [Cp("insertSpaceBeforeAndAfterBinaryOperators"), Oi, Oy], 16),
      zr("SpaceBeforeOpenParenInFuncDecl", r, 20, [ff("insertSpaceBeforeFunctionParenthesis"), Oi, K1], 4),
      zr("NoSpaceBeforeOpenParenInFuncDecl", r, 20, [Cp("insertSpaceBeforeFunctionParenthesis"), Oi, K1], 16),
      zr("NewLineBeforeOpenBraceInControl", V, 18, [ff("placeOpenBraceOnNewLineForControlBlocks"), cP, ire], 8, 1),
      zr("NewLineBeforeOpenBraceInFunction", k, 18, [ff("placeOpenBraceOnNewLineForFunctions"), K1, ire], 8, 1),
      zr("NewLineBeforeOpenBraceInTypeScriptDeclWithBlock", G, 18, [ff("placeOpenBraceOnNewLineForFunctions"), rAe, ire], 8, 1),
      zr("SpaceAfterTypeAssertion", 31, r, [ff("insertSpaceAfterTypeAssertion"), Oi, sre], 4),
      zr("NoSpaceAfterTypeAssertion", 31, r, [Cp("insertSpaceAfterTypeAssertion"), Oi, sre], 16),
      zr("SpaceBeforeTypeAnnotation", r, [57, 58], [ff("insertSpaceBeforeTypeAnnotation"), Oi, nre], 4),
      zr("NoSpaceBeforeTypeAnnotation", r, [57, 58], [Cp("insertSpaceBeforeTypeAnnotation"), Oi, nre], 16),
      zr("NoOptionalSemicolon", 26, o, [X2e("semicolons", "remove"), xXe], 32),
      zr("OptionalSemicolon", r, o, [X2e("semicolons", "insert"), AXe], 64)
    ], X = [
      zr("NoSpaceBeforeSemicolon", r, 26, [Oi], 16),
      zr("SpaceBeforeOpenBraceInControl", V, 18, [ere("placeOpenBraceOnNewLineForControlBlocks"), cP, ore, rre], 4, 1),
      zr("SpaceBeforeOpenBraceInFunction", k, 18, [ere("placeOpenBraceOnNewLineForFunctions"), K1, pU, ore, rre], 4, 1),
      zr("SpaceBeforeOpenBraceInTypeScriptDeclWithBlock", G, 18, [ere("placeOpenBraceOnNewLineForFunctions"), rAe, ore, rre], 4, 1),
      zr("NoSpaceBeforeComma", r, 27, [Oi], 16),
      zr("NoSpaceBeforeOpenBracket", t(132, 82), 22, [Oi], 16),
      zr("NoSpaceAfterCloseBracket", 23, r, [Oi, pXe], 16),
      zr("SpaceAfterSemicolon", 26, r, [Oi], 4),
      zr("SpaceBetweenForAndAwaitKeyword", 97, 133, [Oi], 4),
      zr("SpaceBetweenStatements", [21, 90, 91, 82], r, [Oi, are, eXe], 4),
      zr("SpaceAfterTryCatchFinally", [111, 83, 96], 18, [Oi], 4)
    ];
    return [
      ...H,
      ...te,
      ...X
    ];
  }
  function zr(e, t, r, i, o, s = 0) {
    return { leftTokenRange: J2e(t), rightTokenRange: J2e(r), rule: { debugName: e, context: i, action: o, flags: s } };
  }
  function lL(e) {
    return { tokens: e, isSpecific: !0 };
  }
  function J2e(e) {
    return typeof e == "number" ? lL([e]) : Va(e) ? lL(e) : e;
  }
  function K2e(e, t, r = []) {
    const i = [];
    for (let o = e; o <= t; o++)
      jr(r, o) || i.push(o);
    return lL(i);
  }
  function X2e(e, t) {
    return (r) => r.options && r.options[e] === t;
  }
  function ff(e) {
    return (t) => t.options && Ps(t.options, e) && !!t.options[e];
  }
  function Zne(e) {
    return (t) => t.options && Ps(t.options, e) && !t.options[e];
  }
  function Cp(e) {
    return (t) => !t.options || !Ps(t.options, e) || !t.options[e];
  }
  function ere(e) {
    return (t) => !t.options || !Ps(t.options, e) || !t.options[e] || t.TokensAreOnSameLine();
  }
  function Y2e(e) {
    return (t) => !t.options || !Ps(t.options, e) || !!t.options[e];
  }
  function tre(e) {
    return e.contextNode.kind === 245;
  }
  function eXe(e) {
    return !tre(e);
  }
  function Oy(e) {
    switch (e.contextNode.kind) {
      case 223:
        return e.contextNode.operatorToken.kind !== 27;
      case 224:
      case 191:
      case 231:
      case 278:
      case 273:
      case 179:
      case 189:
      case 190:
      case 235:
        return !0;
      case 205:
      case 262:
      case 268:
      case 274:
      case 257:
      case 166:
      case 302:
      case 169:
      case 168:
        return e.currentTokenSpan.kind === 63 || e.nextTokenSpan.kind === 63;
      case 246:
      case 165:
        return e.currentTokenSpan.kind === 101 || e.nextTokenSpan.kind === 101 || e.currentTokenSpan.kind === 63 || e.nextTokenSpan.kind === 63;
      case 247:
        return e.currentTokenSpan.kind === 162 || e.nextTokenSpan.kind === 162;
    }
    return !1;
  }
  function lP(e) {
    return !Oy(e);
  }
  function $2e(e) {
    return !nre(e);
  }
  function nre(e) {
    const t = e.contextNode.kind;
    return t === 169 || t === 168 || t === 166 || t === 257 || XS(t);
  }
  function tXe(e) {
    return e.contextNode.kind === 224 || e.contextNode.kind === 191;
  }
  function rre(e) {
    return e.TokensAreOnSameLine() || pU(e);
  }
  function Q2e(e) {
    return e.contextNode.kind === 203 || e.contextNode.kind === 197 || nXe(e);
  }
  function ire(e) {
    return pU(e) && !(e.NextNodeAllOnSameLine() || e.NextNodeBlockIsOnOneLine());
  }
  function Z2e(e) {
    return eAe(e) && !(e.ContextNodeAllOnSameLine() || e.ContextNodeBlockIsOnOneLine());
  }
  function nXe(e) {
    return eAe(e) && (e.ContextNodeAllOnSameLine() || e.ContextNodeBlockIsOnOneLine());
  }
  function eAe(e) {
    return tAe(e.contextNode);
  }
  function pU(e) {
    return tAe(e.nextTokenParent);
  }
  function tAe(e) {
    if (iAe(e))
      return !0;
    switch (e.kind) {
      case 238:
      case 266:
      case 207:
      case 265:
        return !0;
    }
    return !1;
  }
  function K1(e) {
    switch (e.contextNode.kind) {
      case 259:
      case 171:
      case 170:
      case 174:
      case 175:
      case 176:
      case 215:
      case 173:
      case 216:
      case 261:
        return !0;
    }
    return !1;
  }
  function rXe(e) {
    return !K1(e);
  }
  function nAe(e) {
    return e.contextNode.kind === 259 || e.contextNode.kind === 215;
  }
  function rAe(e) {
    return iAe(e.contextNode);
  }
  function iAe(e) {
    switch (e.kind) {
      case 260:
      case 228:
      case 261:
      case 263:
      case 184:
      case 264:
      case 275:
      case 276:
      case 269:
      case 272:
        return !0;
    }
    return !1;
  }
  function iXe(e) {
    switch (e.currentTokenParent.kind) {
      case 260:
      case 264:
      case 263:
      case 295:
      case 265:
      case 252:
        return !0;
      case 238: {
        const t = e.currentTokenParent.parent;
        if (!t || t.kind !== 216 && t.kind !== 215)
          return !0;
      }
    }
    return !1;
  }
  function cP(e) {
    switch (e.contextNode.kind) {
      case 242:
      case 252:
      case 245:
      case 246:
      case 247:
      case 244:
      case 255:
      case 243:
      case 251:
      case 295:
        return !0;
      default:
        return !1;
    }
  }
  function aAe(e) {
    return e.contextNode.kind === 207;
  }
  function aXe(e) {
    return e.contextNode.kind === 210;
  }
  function oXe(e) {
    return e.contextNode.kind === 211;
  }
  function sXe(e) {
    return aXe(e) || oXe(e);
  }
  function lXe(e) {
    return e.currentTokenSpan.kind !== 27;
  }
  function cXe(e) {
    return e.nextTokenSpan.kind !== 23;
  }
  function uXe(e) {
    return e.nextTokenSpan.kind !== 21;
  }
  function dXe(e) {
    return e.contextNode.kind === 216;
  }
  function fXe(e) {
    return e.contextNode.kind === 202;
  }
  function Oi(e) {
    return e.TokensAreOnSameLine() && e.contextNode.kind !== 11;
  }
  function oAe(e) {
    return e.contextNode.kind !== 11;
  }
  function are(e) {
    return e.contextNode.kind !== 281 && e.contextNode.kind !== 285;
  }
  function mU(e) {
    return e.contextNode.kind === 291 || e.contextNode.kind === 290;
  }
  function _Xe(e) {
    return e.nextTokenParent.kind === 288;
  }
  function sAe(e) {
    return e.contextNode.kind === 288;
  }
  function lAe(e) {
    return e.contextNode.kind === 282;
  }
  function pXe(e) {
    return !K1(e) && !pU(e);
  }
  function mXe(e) {
    return e.TokensAreOnSameLine() && $f(e.contextNode) && cAe(e.currentTokenParent) && !cAe(e.nextTokenParent);
  }
  function cAe(e) {
    for (; e && vt(e); )
      e = e.parent;
    return e && e.kind === 167;
  }
  function hXe(e) {
    return e.currentTokenParent.kind === 258 && e.currentTokenParent.getStart(e.sourceFile) === e.currentTokenSpan.pos;
  }
  function ore(e) {
    return e.formattingRequestKind !== 2;
  }
  function gXe(e) {
    return e.contextNode.kind === 264;
  }
  function yXe(e) {
    return e.contextNode.kind === 184;
  }
  function vXe(e) {
    return e.contextNode.kind === 177;
  }
  function uAe(e, t) {
    if (e.kind !== 29 && e.kind !== 31)
      return !1;
    switch (t.kind) {
      case 180:
      case 213:
      case 262:
      case 260:
      case 228:
      case 261:
      case 259:
      case 215:
      case 216:
      case 171:
      case 170:
      case 176:
      case 177:
      case 210:
      case 211:
      case 230:
        return !0;
      default:
        return !1;
    }
  }
  function uP(e) {
    return uAe(e.currentTokenSpan, e.currentTokenParent) || uAe(e.nextTokenSpan, e.nextTokenParent);
  }
  function sre(e) {
    return e.contextNode.kind === 213;
  }
  function bXe(e) {
    return !sre(e);
  }
  function EXe(e) {
    return e.currentTokenSpan.kind === 114 && e.currentTokenParent.kind === 219;
  }
  function dAe(e) {
    return e.contextNode.kind === 226 && e.contextNode.expression !== void 0;
  }
  function TXe(e) {
    return e.contextNode.kind === 232;
  }
  function fAe(e) {
    return !SXe(e);
  }
  function SXe(e) {
    switch (e.contextNode.kind) {
      case 242:
      case 245:
      case 246:
      case 247:
      case 243:
      case 244:
        return !0;
      default:
        return !1;
    }
  }
  function xXe(e) {
    let t = e.nextTokenSpan.kind, r = e.nextTokenSpan.pos;
    if (YA(t)) {
      const s = e.nextTokenParent === e.currentTokenParent ? zT(e.currentTokenParent, nr(e.currentTokenParent, (c) => !c.parent), e.sourceFile) : e.nextTokenParent.getFirstToken(e.sourceFile);
      if (!s)
        return !0;
      t = s.kind, r = s.getStart(e.sourceFile);
    }
    const i = e.sourceFile.getLineAndCharacterOfPosition(e.currentTokenSpan.pos).line, o = e.sourceFile.getLineAndCharacterOfPosition(r).line;
    return i === o ? t === 19 || t === 1 : t === 237 || t === 26 ? !1 : e.contextNode.kind === 261 || e.contextNode.kind === 262 ? !If(e.currentTokenParent) || !!e.currentTokenParent.type || t !== 20 : to(e.currentTokenParent) ? !e.currentTokenParent.initializer : e.currentTokenParent.kind !== 245 && e.currentTokenParent.kind !== 239 && e.currentTokenParent.kind !== 237 && t !== 22 && t !== 20 && t !== 39 && t !== 40 && t !== 43 && t !== 13 && t !== 27 && t !== 225 && t !== 15 && t !== 14 && t !== 24;
  }
  function AXe(e) {
    return u9(e.currentTokenSpan.end, e.currentTokenParent, e.sourceFile);
  }
  function CXe(e) {
    return !Fr(e.contextNode) || !v_(e.contextNode.expression) || e.contextNode.expression.getText().indexOf(".") !== -1;
  }
  var LXe = C({
    "src/services/formatting/rules.ts"() {
      $r(), $w();
    }
  });
  function IXe(e, t) {
    return { options: e, getRules: kXe(), host: t };
  }
  function kXe() {
    return lre === void 0 && (lre = DXe(q2e())), lre;
  }
  function wXe(e) {
    let t = 0;
    return e & 1 && (t |= 28), e & 2 && (t |= 96), e & 28 && (t |= 28), e & 96 && (t |= 96), t;
  }
  function DXe(e) {
    const t = RXe(e);
    return (r) => {
      const i = t[_Ae(r.currentTokenSpan.kind, r.nextTokenSpan.kind)];
      if (i) {
        const o = [];
        let s = 0;
        for (const c of i) {
          const f = ~wXe(s);
          c.action & f && Yn(c.context, (d) => d(r)) && (o.push(c), s |= c.action);
        }
        if (o.length)
          return o;
      }
    };
  }
  function RXe(e) {
    const t = new Array(hU * hU), r = new Array(t.length);
    for (const i of e) {
      const o = i.leftTokenRange.isSpecific && i.rightTokenRange.isSpecific;
      for (const s of i.leftTokenRange.tokens)
        for (const c of i.rightTokenRange.tokens) {
          const f = _Ae(s, c);
          let d = t[f];
          d === void 0 && (d = t[f] = []), NXe(d, i.rule, o, r, f);
        }
    }
    return t;
  }
  function _Ae(e, t) {
    return D.assert(e <= 162 && t <= 162, "Must compute formatting context from tokens"), e * hU + t;
  }
  function NXe(e, t, r, i, o) {
    const s = t.action & 3 ? r ? 0 : cL.StopRulesAny : t.context !== sP ? r ? cL.ContextRulesSpecific : cL.ContextRulesAny : r ? cL.NoContextRulesSpecific : cL.NoContextRulesAny, c = i[o] || 0;
    e.splice(OXe(c, s), 0, t), i[o] = PXe(c, s);
  }
  function OXe(e, t) {
    let r = 0;
    for (let i = 0; i <= t; i += c2)
      r += e & dP, e >>= c2;
    return r;
  }
  function PXe(e, t) {
    const r = (e >> t & dP) + 1;
    return D.assert((r & dP) === r, "Adding more rules into the sub-bucket than allowed. Maximum allowed is 32 rules."), e & ~(dP << t) | r << t;
  }
  var lre, c2, dP, hU, cL, MXe = C({
    "src/services/formatting/rulesMap.ts"() {
      $r(), $w(), c2 = 5, dP = 31, hU = 163, cL = ((e) => (e[e.StopRulesSpecific = 0] = "StopRulesSpecific", e[e.StopRulesAny = c2 * 1] = "StopRulesAny", e[e.ContextRulesSpecific = c2 * 2] = "ContextRulesSpecific", e[e.ContextRulesAny = c2 * 3] = "ContextRulesAny", e[e.NoContextRulesSpecific = c2 * 4] = "NoContextRulesSpecific", e[e.NoContextRulesAny = c2 * 5] = "NoContextRulesAny", e))(cL || {});
    }
  });
  function gU(e, t, r) {
    const i = { pos: e, end: t, kind: r };
    return D.isDebugging && Object.defineProperty(i, "__debugKind", {
      get: () => D.formatSyntaxKind(r)
    }), i;
  }
  function FXe(e, t, r) {
    const i = t.getLineAndCharacterOfPosition(e).line;
    if (i === 0)
      return [];
    let o = aN(i, t);
    for (; Dm(t.text.charCodeAt(o)); )
      o--;
    hu(t.text.charCodeAt(o)) && o--;
    const s = {
      pos: wv(i - 1, t),
      end: o + 1
    };
    return fP(s, t, r, 2);
  }
  function BXe(e, t, r) {
    const i = cre(e, 26, t);
    return pAe(ure(i), t, r, 3);
  }
  function GXe(e, t, r) {
    const i = cre(e, 18, t);
    if (!i)
      return [];
    const o = i.parent, s = ure(o), c = {
      pos: T_(s.getStart(t), t),
      end: e
    };
    return fP(c, t, r, 4);
  }
  function UXe(e, t, r) {
    const i = cre(e, 19, t);
    return pAe(ure(i), t, r, 5);
  }
  function VXe(e, t) {
    const r = {
      pos: 0,
      end: e.text.length
    };
    return fP(r, e, t, 0);
  }
  function jXe(e, t, r, i) {
    const o = {
      pos: T_(e, r),
      end: t
    };
    return fP(o, r, i, 1);
  }
  function cre(e, t, r) {
    const i = Ac(e, r);
    return i && i.kind === t && e === i.getEnd() ? i : void 0;
  }
  function ure(e) {
    let t = e;
    for (; t && t.parent && t.parent.end === e.end && !HXe(t.parent, t); )
      t = t.parent;
    return t;
  }
  function HXe(e, t) {
    switch (e.kind) {
      case 260:
      case 261:
        return df(e.members, t);
      case 264:
        const r = e.body;
        return !!r && r.kind === 265 && df(r.statements, t);
      case 308:
      case 238:
      case 265:
        return df(e.statements, t);
      case 295:
        return df(e.block.statements, t);
    }
    return !1;
  }
  function WXe(e, t) {
    return r(t);
    function r(i) {
      const o = Ma(i, (s) => C$(s.getStart(t), s.end, e) && s);
      if (o) {
        const s = r(o);
        if (s)
          return s;
      }
      return i;
    }
  }
  function zXe(e, t) {
    if (!e.length)
      return o;
    const r = e.filter((s) => dw(t, s.start, s.start + s.length)).sort((s, c) => s.start - c.start);
    if (!r.length)
      return o;
    let i = 0;
    return (s) => {
      for (; ; ) {
        if (i >= r.length)
          return !1;
        const c = r[i];
        if (s.end <= c.start)
          return !1;
        if (GF(s.pos, s.end, c.start, c.start + c.length))
          return !0;
        i++;
      }
    };
    function o() {
      return !1;
    }
  }
  function qXe(e, t, r) {
    const i = e.getStart(r);
    if (i === t.pos && e.end === t.end)
      return i;
    const o = Ac(t.pos, r);
    return !o || o.end >= t.pos ? e.pos : o.end;
  }
  function JXe(e, t, r) {
    let i = -1, o;
    for (; e; ) {
      const s = r.getLineAndCharacterOfPosition(e.getStart(r)).line;
      if (i !== -1 && s !== i)
        break;
      if (Lp.shouldIndentChildNode(t, e, o, r))
        return t.indentSize;
      i = s, o = e, e = e.parent;
    }
    return 0;
  }
  function KXe(e, t, r, i, o, s) {
    const c = { pos: e.pos, end: e.end };
    return Yne(t.text, r, c.pos, c.end, (f) => mAe(c, e, i, o, f, s, 1, (d) => !1, t));
  }
  function pAe(e, t, r, i) {
    if (!e)
      return [];
    const o = {
      pos: T_(e.getStart(t), t),
      end: e.end
    };
    return fP(o, t, r, i);
  }
  function fP(e, t, r, i) {
    const o = WXe(e, t);
    return Yne(t.text, t.languageVariant, qXe(o, e, t), e.end, (s) => mAe(e, o, Lp.getIndentationForNode(o, e, t, r.options), JXe(o, r.options, t), s, r, i, zXe(t.parseDiagnostics, e), t));
  }
  function mAe(e, t, r, i, o, { options: s, getRules: c, host: f }, d, y, h) {
    var E;
    const A = new Xne(h, d, s);
    let L, I, O, k, G, V = -1;
    const H = [];
    if (o.advance(), o.isOnToken()) {
      const We = h.getLineAndCharacterOfPosition(t.getStart(h)).line;
      let Fe = We;
      $f(t) && (Fe = h.getLineAndCharacterOfPosition(HW(t, h)).line), de(t, t, We, Fe, r, i);
    }
    if (!o.isOnToken()) {
      const We = Lp.nodeWillIndentChild(s, t, void 0, h, !1) ? r + s.indentSize : r, Fe = o.getCurrentLeadingTrivia();
      Fe && (re(Fe, We, !1, (st) => ae(st, h.getLineAndCharacterOfPosition(st.pos), t, t, void 0)), s.trimTrailingWhitespace !== !1 && Ve(Fe));
    }
    if (I && o.getStartPos() >= e.end) {
      const We = o.isOnEOF() ? o.readEOFTokenRange() : o.isOnToken() ? o.readTokenInfo(t).token : void 0;
      if (We && We.pos === L) {
        const Fe = ((E = Ac(We.end, h, t)) == null ? void 0 : E.parent) || O;
        W(We, h.getLineAndCharacterOfPosition(We.pos).line, Fe, I, k, O, Fe, void 0);
      }
    }
    return H;
    function te(We, Fe, st, Ct, Et) {
      if (dw(Ct, We, Fe) || Z8(Ct, We, Fe)) {
        if (Et !== -1)
          return Et;
      } else {
        const Vt = h.getLineAndCharacterOfPosition(We).line, tt = T_(We, h), at = Lp.findFirstNonWhitespaceColumn(tt, We, h, s);
        if (Vt !== st || We === at) {
          const sn = Lp.getBaseIndentation(s);
          return sn > at ? sn : at;
        }
      }
      return -1;
    }
    function X(We, Fe, st, Ct, Et, Vt) {
      const tt = Lp.shouldIndentChildNode(s, We) ? s.indentSize : 0;
      return Vt === Fe ? {
        indentation: Fe === G ? V : Et.getIndentation(),
        delta: Math.min(s.indentSize, Et.getDelta(We) + tt)
      } : st === -1 ? We.kind === 20 && Fe === G ? { indentation: V, delta: Et.getDelta(We) } : Lp.childStartsOnTheSameLineWithElseInIfStatement(Ct, We, Fe, h) || Lp.childIsUnindentedBranchOfConditionalExpression(Ct, We, Fe, h) || Lp.argumentStartsOnSameLineAsPreviousArgument(Ct, We, Fe, h) ? { indentation: Et.getIndentation(), delta: tt } : { indentation: Et.getIndentation() + Et.getDelta(We), delta: tt } : { indentation: st, delta: tt };
    }
    function Y(We) {
      if (K_(We)) {
        const Fe = nn(We.modifiers, fo, vi(We.modifiers, Fu));
        if (Fe)
          return Fe.kind;
      }
      switch (We.kind) {
        case 260:
          return 84;
        case 261:
          return 118;
        case 259:
          return 98;
        case 263:
          return 263;
        case 174:
          return 137;
        case 175:
          return 151;
        case 171:
          if (We.asteriskToken)
            return 41;
        case 169:
        case 166:
          const Fe = ka(We);
          if (Fe)
            return Fe.kind;
      }
    }
    function P(We, Fe, st, Ct) {
      return {
        getIndentationForComment: (tt, at, sn) => {
          switch (tt) {
            case 19:
            case 23:
            case 21:
              return st + Vt(sn);
          }
          return at !== -1 ? at : st;
        },
        getIndentationForToken: (tt, at, sn, Qt) => !Qt && Et(tt, at, sn) ? st + Vt(sn) : st,
        getIndentation: () => st,
        getDelta: Vt,
        recomputeIndentation: (tt, at) => {
          Lp.shouldIndentChildNode(s, at, We, h) && (st += tt ? s.indentSize : -s.indentSize, Ct = Lp.shouldIndentChildNode(s, We) ? s.indentSize : 0);
        }
      };
      function Et(tt, at, sn) {
        switch (at) {
          case 18:
          case 19:
          case 21:
          case 91:
          case 115:
          case 59:
            return !1;
          case 43:
          case 31:
            switch (sn.kind) {
              case 283:
              case 284:
              case 282:
                return !1;
            }
            break;
          case 22:
          case 23:
            if (sn.kind !== 197)
              return !1;
            break;
        }
        return Fe !== tt && !($f(We) && at === Y(We));
      }
      function Vt(tt) {
        return Lp.nodeWillIndentChild(s, We, tt, h, !0) ? Ct : 0;
      }
    }
    function de(We, Fe, st, Ct, Et, Vt) {
      if (!dw(e, We.getStart(h), We.getEnd()))
        return;
      const tt = P(We, st, Et, Vt);
      let at = Fe;
      for (Ma(We, (jn) => {
        sn(jn, -1, We, tt, st, Ct, !1);
      }, (jn) => {
        Qt(jn, We, st, tt);
      }); o.isOnToken() && o.getStartPos() < e.end; ) {
        const jn = o.readTokenInfo(We);
        if (jn.token.end > Math.min(We.end, e.end))
          break;
        On(jn, We, tt, We);
      }
      function sn(jn, In, Zt, _r, Ii, $i, Qi, Or) {
        if (D.assert(!Zs(jn)), Al(jn) || zce(Zt, jn))
          return In;
        const At = jn.getStart(h), vn = h.getLineAndCharacterOfPosition(At).line;
        let Wt = vn;
        $f(jn) && (Wt = h.getLineAndCharacterOfPosition(HW(jn, h)).line);
        let fn = -1;
        if (Qi && df(e, Zt) && (fn = te(At, jn.end, Ii, e, In), fn !== -1 && (In = fn)), !dw(e, jn.pos, jn.end))
          return jn.end < e.pos && o.skipToEndOf(jn), In;
        if (jn.getFullWidth() === 0)
          return In;
        for (; o.isOnToken() && o.getStartPos() < e.end; ) {
          const Pi = o.readTokenInfo(We);
          if (Pi.token.end > e.end)
            return In;
          if (Pi.token.end > At) {
            Pi.token.pos > At && o.skipToStartOf(jn);
            break;
          }
          On(Pi, We, _r, We);
        }
        if (!o.isOnToken() || o.getStartPos() >= e.end)
          return In;
        if (qS(jn)) {
          const Pi = o.readTokenInfo(jn);
          if (jn.kind !== 11)
            return D.assert(Pi.token.end === jn.end, "Token end is child end"), On(Pi, We, _r, jn), In;
        }
        const rr = jn.kind === 167 ? vn : $i, cr = X(jn, vn, fn, We, _r, rr);
        return de(jn, at, vn, Wt, cr.indentation, cr.delta), at = We, Or && Zt.kind === 206 && In === -1 && (In = cr.indentation), In;
      }
      function Qt(jn, In, Zt, _r) {
        D.assert(f1(jn)), D.assert(!Zs(jn));
        const Ii = XXe(In, jn);
        let $i = _r, Qi = Zt;
        if (!dw(e, jn.pos, jn.end)) {
          jn.end < e.pos && o.skipToEndOf(jn);
          return;
        }
        if (Ii !== 0)
          for (; o.isOnToken() && o.getStartPos() < e.end; ) {
            const vn = o.readTokenInfo(In);
            if (vn.token.end > jn.pos)
              break;
            if (vn.token.kind === Ii) {
              Qi = h.getLineAndCharacterOfPosition(vn.token.pos).line, On(vn, In, _r, In);
              let Wt;
              if (V !== -1)
                Wt = V;
              else {
                const fn = T_(vn.token.pos, h);
                Wt = Lp.findFirstNonWhitespaceColumn(fn, vn.token.pos, h, s);
              }
              $i = P(In, Zt, Wt, s.indentSize);
            } else
              On(vn, In, _r, In);
          }
        let Or = -1;
        for (let vn = 0; vn < jn.length; vn++) {
          const Wt = jn[vn];
          Or = sn(Wt, Or, We, $i, Qi, Qi, !0, vn === 0);
        }
        const At = YXe(Ii);
        if (At !== 0 && o.isOnToken() && o.getStartPos() < e.end) {
          let vn = o.readTokenInfo(In);
          vn.token.kind === 27 && (On(vn, In, $i, In), vn = o.isOnToken() ? o.readTokenInfo(In) : void 0), vn && vn.token.kind === At && df(In, vn.token) && On(vn, In, $i, In, !0);
        }
      }
      function On(jn, In, Zt, _r, Ii) {
        D.assert(df(In, jn.token));
        const $i = o.lastTrailingTriviaWasNewLine();
        let Qi = !1;
        jn.leadingTrivia && ye(jn.leadingTrivia, In, at, Zt);
        let Or = 0;
        const At = df(e, jn.token), vn = h.getLineAndCharacterOfPosition(jn.token.pos);
        if (At) {
          const Wt = y(jn.token), fn = I;
          if (Or = ae(jn.token, vn, In, at, Zt), !Wt)
            if (Or === 0) {
              const rr = fn && h.getLineAndCharacterOfPosition(fn.end).line;
              Qi = $i && vn.line !== rr;
            } else
              Qi = Or === 1;
        }
        if (jn.trailingTrivia && (L = qo(jn.trailingTrivia).end, ye(jn.trailingTrivia, In, at, Zt)), Qi) {
          const Wt = At && !y(jn.token) ? Zt.getIndentationForToken(vn.line, jn.token.kind, _r, !!Ii) : -1;
          let fn = !0;
          if (jn.leadingTrivia) {
            const rr = Zt.getIndentationForComment(jn.token.kind, Wt, _r);
            fn = re(jn.leadingTrivia, rr, fn, (cr) => ce(cr.pos, rr, !1));
          }
          Wt !== -1 && fn && (ce(jn.token.pos, Wt, Or === 1), G = vn.line, V = Wt);
        }
        o.advance(), at = In;
      }
    }
    function re(We, Fe, st, Ct) {
      for (const Et of We) {
        const Vt = df(e, Et);
        switch (Et.kind) {
          case 3:
            Vt && Te(Et, Fe, !st), st = !1;
            break;
          case 2:
            st && Vt && Ct(Et), st = !1;
            break;
          case 4:
            st = !0;
            break;
        }
      }
      return st;
    }
    function ye(We, Fe, st, Ct) {
      for (const Et of We)
        if (JF(Et.kind) && df(e, Et)) {
          const Vt = h.getLineAndCharacterOfPosition(Et.pos);
          ae(Et, Vt, Fe, st, Ct);
        }
    }
    function ae(We, Fe, st, Ct, Et) {
      const Vt = y(We);
      let tt = 0;
      if (!Vt)
        if (I)
          tt = W(We, Fe.line, st, I, k, O, Ct, Et);
        else {
          const at = h.getLineAndCharacterOfPosition(e.pos);
          ee(at.line, Fe.line);
        }
      return I = We, L = We.end, O = st, k = Fe.line, tt;
    }
    function W(We, Fe, st, Ct, Et, Vt, tt, at) {
      A.updateContext(Ct, Vt, We, st, tt);
      const sn = c(A);
      let Qt = A.options.trimTrailingWhitespace !== !1, On = 0;
      return sn ? Xt(sn, (jn) => {
        if (On = Ye(jn, Ct, Et, We, Fe), at)
          switch (On) {
            case 2:
              st.getStart(h) === We.pos && at.recomputeIndentation(!1, tt);
              break;
            case 1:
              st.getStart(h) === We.pos && at.recomputeIndentation(!0, tt);
              break;
            default:
              D.assert(On === 0);
          }
        Qt = Qt && !(jn.action & 16) && jn.flags !== 1;
      }) : Qt = Qt && We.kind !== 1, Fe !== Et && Qt && ee(Et, Fe, Ct), On;
    }
    function ce(We, Fe, st) {
      const Ct = dre(Fe, s);
      if (st)
        Oe(We, 0, Ct);
      else {
        const Et = h.getLineAndCharacterOfPosition(We), Vt = wv(Et.line, h);
        (Fe !== me(Vt, Et.character) || ve(Ct, Vt)) && Oe(Vt, Et.character, Ct);
      }
    }
    function me(We, Fe) {
      let st = 0;
      for (let Ct = 0; Ct < Fe; Ct++)
        h.text.charCodeAt(We + Ct) === 9 ? st += s.tabSize - st % s.tabSize : st++;
      return st;
    }
    function ve(We, Fe) {
      return We !== h.text.substr(Fe, We.length);
    }
    function Te(We, Fe, st, Ct = !0) {
      let Et = h.getLineAndCharacterOfPosition(We.pos).line;
      const Vt = h.getLineAndCharacterOfPosition(We.end).line;
      if (Et === Vt) {
        st || ce(We.pos, Fe, !1);
        return;
      }
      const tt = [];
      let at = We.pos;
      for (let In = Et; In < Vt; In++) {
        const Zt = aN(In, h);
        tt.push({ pos: at, end: Zt }), at = wv(In + 1, h);
      }
      if (Ct && tt.push({ pos: at, end: We.end }), tt.length === 0)
        return;
      const sn = wv(Et, h), Qt = Lp.findFirstNonWhitespaceCharacterAndColumn(sn, tt[0].pos, h, s);
      let On = 0;
      st && (On = 1, Et++);
      const jn = Fe - Qt.column;
      for (let In = On; In < tt.length; In++, Et++) {
        const Zt = wv(Et, h), _r = In === 0 ? Qt : Lp.findFirstNonWhitespaceCharacterAndColumn(tt[In].pos, tt[In].end, h, s), Ii = _r.column + jn;
        if (Ii > 0) {
          const $i = dre(Ii, s);
          Oe(Zt, _r.character, $i);
        } else
          qe(Zt, _r.character);
      }
    }
    function ee(We, Fe, st) {
      for (let Ct = We; Ct < Fe; Ct++) {
        const Et = wv(Ct, h), Vt = aN(Ct, h);
        if (st && (JF(st.kind) || M$(st.kind)) && st.pos <= Vt && st.end > Vt)
          continue;
        const tt = Qe(Et, Vt);
        tt !== -1 && (D.assert(tt === Et || !Dm(h.text.charCodeAt(tt - 1))), qe(tt, Vt + 1 - tt));
      }
    }
    function Qe(We, Fe) {
      let st = Fe;
      for (; st >= We && Dm(h.text.charCodeAt(st)); )
        st--;
      return st !== Fe ? st + 1 : -1;
    }
    function Ve(We) {
      let Fe = I ? I.end : e.pos;
      for (const st of We)
        JF(st.kind) && (Fe < st.pos && Be(Fe, st.pos - 1, I), Fe = st.end + 1);
      Fe < e.end && Be(Fe, e.end, I);
    }
    function Be(We, Fe, st) {
      const Ct = h.getLineAndCharacterOfPosition(We).line, Et = h.getLineAndCharacterOfPosition(Fe).line;
      ee(Ct, Et + 1, st);
    }
    function qe(We, Fe) {
      Fe && H.push(XF(We, Fe, ""));
    }
    function Oe(We, Fe, st) {
      (Fe || st) && H.push(XF(We, Fe, st));
    }
    function Me(We, Fe) {
      Fe && H.push(XF(We, 0, Fe));
    }
    function Ye(We, Fe, st, Ct, Et) {
      const Vt = Et !== st;
      switch (We.action) {
        case 1:
          return 0;
        case 16:
          if (Fe.end !== Ct.pos)
            return qe(Fe.end, Ct.pos - Fe.end), Vt ? 2 : 0;
          break;
        case 32:
          qe(Fe.pos, Fe.end - Fe.pos);
          break;
        case 8:
          if (We.flags !== 1 && st !== Et)
            return 0;
          if (Et - st !== 1)
            return Oe(Fe.end, Ct.pos - Fe.end, ib(f, s)), Vt ? 0 : 1;
          break;
        case 4:
          if (We.flags !== 1 && st !== Et)
            return 0;
          if (Ct.pos - Fe.end !== 1 || h.text.charCodeAt(Fe.end) !== 32)
            return Oe(Fe.end, Ct.pos - Fe.end, " "), Vt ? 2 : 0;
          break;
        case 64:
          Me(Fe.end, ";");
      }
      return 0;
    }
  }
  function hAe(e, t, r, i = aa(e, t)) {
    const o = nr(i, qm);
    if (o && (i = o.parent), i.getStart(e) <= t && t < i.getEnd())
      return;
    r = r === null ? void 0 : r === void 0 ? Ac(t, e) : r;
    const c = r && B0(e.text, r.end), f = iz(i, e), d = va(c, f);
    return d && nn(d, (y) => Q8(y, t) || t === y.end && (y.kind === 2 || t === e.getFullWidth()));
  }
  function XXe(e, t) {
    switch (e.kind) {
      case 173:
      case 259:
      case 215:
      case 171:
      case 170:
      case 216:
      case 176:
      case 177:
      case 181:
      case 182:
      case 174:
      case 175:
        if (e.typeParameters === t)
          return 29;
        if (e.parameters === t)
          return 20;
        break;
      case 210:
      case 211:
        if (e.typeArguments === t)
          return 29;
        if (e.arguments === t)
          return 20;
        break;
      case 260:
      case 228:
      case 261:
      case 262:
        if (e.typeParameters === t)
          return 29;
        break;
      case 180:
      case 212:
      case 183:
      case 230:
      case 202:
        if (e.typeArguments === t)
          return 29;
        break;
      case 184:
        return 18;
    }
    return 0;
  }
  function YXe(e) {
    switch (e) {
      case 20:
        return 21;
      case 29:
        return 31;
      case 18:
        return 19;
    }
    return 0;
  }
  function dre(e, t) {
    if ((!yU || yU.tabSize !== t.tabSize || yU.indentSize !== t.indentSize) && (yU = { tabSize: t.tabSize, indentSize: t.indentSize }, Xw = Yw = void 0), t.convertTabsToSpaces) {
      let i;
      const o = Math.floor(e / t.indentSize), s = e % t.indentSize;
      return Yw || (Yw = []), Yw[o] === void 0 ? (i = o6(" ", t.indentSize * o), Yw[o] = i) : i = Yw[o], s ? i + o6(" ", s) : i;
    } else {
      const i = Math.floor(e / t.tabSize), o = e - i * t.tabSize;
      let s;
      return Xw || (Xw = []), Xw[i] === void 0 ? Xw[i] = s = o6("	", i) : s = Xw[i], o ? s + o6(" ", o) : s;
    }
  }
  var yU, Xw, Yw, $Xe = C({
    "src/services/formatting/formatting.ts"() {
      $r(), $w();
    }
  }), Lp, QXe = C({
    "src/services/formatting/smartIndenter.ts"() {
      $r(), $w(), ((e) => {
        let t;
        ((ee) => {
          ee[ee.Unknown = -1] = "Unknown";
        })(t || (t = {}));
        function r(ee, Qe, Ve, Be = !1) {
          if (ee > Qe.text.length)
            return f(Ve);
          if (Ve.indentStyle === 0)
            return 0;
          const qe = Ac(ee, Qe, void 0, !0), Oe = hAe(Qe, ee, qe || null);
          if (Oe && Oe.kind === 3)
            return i(Qe, ee, Ve, Oe);
          if (!qe)
            return f(Ve);
          if (M$(qe.kind) && qe.getStart(Qe) <= ee && ee < qe.end)
            return 0;
          const Ye = Qe.getLineAndCharacterOfPosition(ee).line, We = aa(Qe, ee), Fe = We.kind === 18 && We.parent.kind === 207;
          if (Ve.indentStyle === 1 || Fe)
            return o(Qe, ee, Ve);
          if (qe.kind === 27 && qe.parent.kind !== 223) {
            const Ct = h(qe, Qe, Ve);
            if (Ct !== -1)
              return Ct;
          }
          const st = te(ee, qe.parent, Qe);
          if (st && !df(st, qe)) {
            const Et = [215, 216].indexOf(We.parent.kind) !== -1 ? 0 : Ve.indentSize;
            return P(st, Qe, Ve) + Et;
          }
          return s(Qe, ee, qe, Ye, Be, Ve);
        }
        e.getIndentation = r;
        function i(ee, Qe, Ve, Be) {
          const qe = ol(ee, Qe).line - 1, Oe = ol(ee, Be.pos).line;
          if (D.assert(Oe >= 0), qe <= Oe)
            return W(wv(Oe, ee), Qe, ee, Ve);
          const Me = wv(qe, ee), { column: Ye, character: We } = ae(Me, Qe, ee, Ve);
          return Ye === 0 ? Ye : ee.text.charCodeAt(Me + We) === 42 ? Ye - 1 : Ye;
        }
        function o(ee, Qe, Ve) {
          let Be = Qe;
          for (; Be > 0; ) {
            const Oe = ee.text.charCodeAt(Be);
            if (!ag(Oe))
              break;
            Be--;
          }
          const qe = T_(Be, ee);
          return W(qe, Be, ee, Ve);
        }
        function s(ee, Qe, Ve, Be, qe, Oe) {
          let Me, Ye = Ve;
          for (; Ye; ) {
            if (I$(Ye, Qe, ee) && ve(Oe, Ye, Me, ee, !0)) {
              const Fe = I(Ye, ee), st = L(Ve, Ye, Be, ee), Ct = st !== 0 ? qe && st === 2 ? Oe.indentSize : 0 : Be !== Fe.line ? Oe.indentSize : 0;
              return d(Ye, Fe, void 0, Ct, ee, !0, Oe);
            }
            const We = de(Ye, ee, Oe, !0);
            if (We !== -1)
              return We;
            Me = Ye, Ye = Ye.parent;
          }
          return f(Oe);
        }
        function c(ee, Qe, Ve, Be) {
          const qe = Ve.getLineAndCharacterOfPosition(ee.getStart(Ve));
          return d(ee, qe, Qe, 0, Ve, !1, Be);
        }
        e.getIndentationForNode = c;
        function f(ee) {
          return ee.baseIndentSize || 0;
        }
        e.getBaseIndentation = f;
        function d(ee, Qe, Ve, Be, qe, Oe, Me) {
          var Ye;
          let We = ee.parent;
          for (; We; ) {
            let Fe = !0;
            if (Ve) {
              const Vt = ee.getStart(qe);
              Fe = Vt < Ve.pos || Vt > Ve.end;
            }
            const st = y(We, ee, qe), Ct = st.line === Qe.line || k(We, ee, Qe.line, qe);
            if (Fe) {
              const Vt = (Ye = H(ee, qe)) == null ? void 0 : Ye[0], tt = !!Vt && I(Vt, qe).line > st.line;
              let at = de(ee, qe, Me, tt);
              if (at !== -1 || (at = E(ee, We, Qe, Ct, qe, Me), at !== -1))
                return at + Be;
            }
            ve(Me, We, ee, qe, Oe) && !Ct && (Be += Me.indentSize);
            const Et = O(We, ee, Qe.line, qe);
            ee = We, We = ee.parent, Qe = Et ? qe.getLineAndCharacterOfPosition(ee.getStart(qe)) : st;
          }
          return Be + f(Me);
        }
        function y(ee, Qe, Ve) {
          const Be = H(Qe, Ve), qe = Be ? Be.pos : ee.getStart(Ve);
          return Ve.getLineAndCharacterOfPosition(qe);
        }
        function h(ee, Qe, Ve) {
          const Be = Rye(ee);
          return Be && Be.listItemIndex > 0 ? re(Be.list.getChildren(), Be.listItemIndex - 1, Qe, Ve) : -1;
        }
        function E(ee, Qe, Ve, Be, qe, Oe) {
          return (vu(ee) || eN(ee)) && (Qe.kind === 308 || !Be) ? ye(Ve, qe, Oe) : -1;
        }
        let A;
        ((ee) => {
          ee[ee.Unknown = 0] = "Unknown", ee[ee.OpenBrace = 1] = "OpenBrace", ee[ee.CloseBrace = 2] = "CloseBrace";
        })(A || (A = {}));
        function L(ee, Qe, Ve, Be) {
          const qe = zT(ee, Qe, Be);
          if (!qe)
            return 0;
          if (qe.kind === 18)
            return 1;
          if (qe.kind === 19) {
            const Oe = I(qe, Be).line;
            return Ve === Oe ? 2 : 0;
          }
          return 0;
        }
        function I(ee, Qe) {
          return Qe.getLineAndCharacterOfPosition(ee.getStart(Qe));
        }
        function O(ee, Qe, Ve, Be) {
          if (!(no(ee) && jr(ee.arguments, Qe)))
            return !1;
          const qe = ee.expression.getEnd();
          return ol(Be, qe).line === Ve;
        }
        e.isArgumentAndStartLineOverlapsExpressionBeingCalled = O;
        function k(ee, Qe, Ve, Be) {
          if (ee.kind === 242 && ee.elseStatement === Qe) {
            const qe = bs(ee, 91, Be);
            return D.assert(qe !== void 0), I(qe, Be).line === Ve;
          }
          return !1;
        }
        e.childStartsOnTheSameLineWithElseInIfStatement = k;
        function G(ee, Qe, Ve, Be) {
          if (SC(ee) && (Qe === ee.whenTrue || Qe === ee.whenFalse)) {
            const qe = ol(Be, ee.condition.end).line;
            if (Qe === ee.whenTrue)
              return Ve === qe;
            {
              const Oe = I(ee.whenTrue, Be).line, Me = ol(Be, ee.whenTrue.end).line;
              return qe === Oe && Me === Ve;
            }
          }
          return !1;
        }
        e.childIsUnindentedBranchOfConditionalExpression = G;
        function V(ee, Qe, Ve, Be) {
          if (lg(ee)) {
            if (!ee.arguments)
              return !1;
            const qe = nn(ee.arguments, (We) => We.pos === Qe.pos);
            if (!qe)
              return !1;
            const Oe = ee.arguments.indexOf(qe);
            if (Oe === 0)
              return !1;
            const Me = ee.arguments[Oe - 1], Ye = ol(Be, Me.getEnd()).line;
            if (Ve === Ye)
              return !0;
          }
          return !1;
        }
        e.argumentStartsOnSameLineAsPreviousArgument = V;
        function H(ee, Qe) {
          return ee.parent && X(ee.getStart(Qe), ee.getEnd(), ee.parent, Qe);
        }
        e.getContainingList = H;
        function te(ee, Qe, Ve) {
          return Qe && X(ee, ee, Qe, Ve);
        }
        function X(ee, Qe, Ve, Be) {
          switch (Ve.kind) {
            case 180:
              return qe(Ve.typeArguments);
            case 207:
              return qe(Ve.properties);
            case 206:
              return qe(Ve.elements);
            case 184:
              return qe(Ve.members);
            case 259:
            case 215:
            case 216:
            case 171:
            case 170:
            case 176:
            case 173:
            case 182:
            case 177:
              return qe(Ve.typeParameters) || qe(Ve.parameters);
            case 174:
              return qe(Ve.parameters);
            case 260:
            case 228:
            case 261:
            case 262:
            case 348:
              return qe(Ve.typeParameters);
            case 211:
            case 210:
              return qe(Ve.typeArguments) || qe(Ve.arguments);
            case 258:
              return qe(Ve.declarations);
            case 272:
            case 276:
              return qe(Ve.elements);
            case 203:
            case 204:
              return qe(Ve.elements);
          }
          function qe(Oe) {
            return Oe && Z8(Y(Ve, Oe, Be), ee, Qe) ? Oe : void 0;
          }
        }
        function Y(ee, Qe, Ve) {
          const Be = ee.getChildren(Ve);
          for (let qe = 1; qe < Be.length - 1; qe++)
            if (Be[qe].pos === Qe.pos && Be[qe].end === Qe.end)
              return { pos: Be[qe - 1].end, end: Be[qe + 1].getStart(Ve) };
          return Qe;
        }
        function P(ee, Qe, Ve) {
          return ee ? ye(Qe.getLineAndCharacterOfPosition(ee.pos), Qe, Ve) : -1;
        }
        function de(ee, Qe, Ve, Be) {
          if (ee.parent && ee.parent.kind === 258)
            return -1;
          const qe = H(ee, Qe);
          if (qe) {
            const Oe = qe.indexOf(ee);
            if (Oe !== -1) {
              const Me = re(qe, Oe, Qe, Ve);
              if (Me !== -1)
                return Me;
            }
            return P(qe, Qe, Ve) + (Be ? Ve.indentSize : 0);
          }
          return -1;
        }
        function re(ee, Qe, Ve, Be) {
          D.assert(Qe >= 0 && Qe < ee.length);
          const qe = ee[Qe];
          let Oe = I(qe, Ve);
          for (let Me = Qe - 1; Me >= 0; Me--) {
            if (ee[Me].kind === 27)
              continue;
            if (Ve.getLineAndCharacterOfPosition(ee[Me].end).line !== Oe.line)
              return ye(Oe, Ve, Be);
            Oe = I(ee[Me], Ve);
          }
          return -1;
        }
        function ye(ee, Qe, Ve) {
          const Be = Qe.getPositionOfLineAndCharacter(ee.line, 0);
          return W(Be, Be + ee.character, Qe, Ve);
        }
        function ae(ee, Qe, Ve, Be) {
          let qe = 0, Oe = 0;
          for (let Me = ee; Me < Qe; Me++) {
            const Ye = Ve.text.charCodeAt(Me);
            if (!Dm(Ye))
              break;
            Ye === 9 ? Oe += Be.tabSize + Oe % Be.tabSize : Oe++, qe++;
          }
          return { column: Oe, character: qe };
        }
        e.findFirstNonWhitespaceCharacterAndColumn = ae;
        function W(ee, Qe, Ve, Be) {
          return ae(ee, Qe, Ve, Be).column;
        }
        e.findFirstNonWhitespaceColumn = W;
        function ce(ee, Qe, Ve, Be, qe) {
          const Oe = Ve ? Ve.kind : 0;
          switch (Qe.kind) {
            case 241:
            case 260:
            case 228:
            case 261:
            case 263:
            case 262:
            case 206:
            case 238:
            case 265:
            case 207:
            case 184:
            case 197:
            case 186:
            case 266:
            case 293:
            case 292:
            case 214:
            case 208:
            case 210:
            case 211:
            case 240:
            case 274:
            case 250:
            case 224:
            case 204:
            case 203:
            case 283:
            case 286:
            case 282:
            case 291:
            case 170:
            case 176:
            case 177:
            case 166:
            case 181:
            case 182:
            case 193:
            case 212:
            case 220:
            case 276:
            case 272:
            case 278:
            case 273:
            case 169:
              return !0;
            case 257:
            case 299:
            case 223:
              if (!ee.indentMultiLineObjectLiteralBeginningOnBlankLine && Be && Oe === 207)
                return Te(Be, Ve);
              if (Qe.kind === 223 && Be && Ve && Oe === 281) {
                const Me = Be.getLineAndCharacterOfPosition(Ko(Be.text, Qe.pos)).line, Ye = Be.getLineAndCharacterOfPosition(Ko(Be.text, Ve.pos)).line;
                return Me !== Ye;
              }
              if (Qe.kind !== 223)
                return !0;
              break;
            case 243:
            case 244:
            case 246:
            case 247:
            case 245:
            case 242:
            case 259:
            case 215:
            case 171:
            case 173:
            case 174:
            case 175:
              return Oe !== 238;
            case 216:
              return Be && Oe === 214 ? Te(Be, Ve) : Oe !== 238;
            case 275:
              return Oe !== 276;
            case 269:
              return Oe !== 270 || !!Ve.namedBindings && Ve.namedBindings.kind !== 272;
            case 281:
              return Oe !== 284;
            case 285:
              return Oe !== 287;
            case 190:
            case 189:
              if (Oe === 184 || Oe === 186)
                return !1;
              break;
          }
          return qe;
        }
        e.nodeWillIndentChild = ce;
        function me(ee, Qe) {
          switch (ee) {
            case 250:
            case 254:
            case 248:
            case 249:
              return Qe.kind !== 238;
            default:
              return !1;
          }
        }
        function ve(ee, Qe, Ve, Be, qe = !1) {
          return ce(ee, Qe, Ve, Be, !1) && !(qe && Ve && me(Ve.kind, Qe));
        }
        e.shouldIndentChildNode = ve;
        function Te(ee, Qe) {
          const Ve = Ko(ee.text, Qe.pos), Be = ee.getLineAndCharacterOfPosition(Ve).line, qe = ee.getLineAndCharacterOfPosition(Qe.end).line;
          return Be === qe;
        }
      })(Lp || (Lp = {}));
    }
  }), Cc = {};
  ne(Cc, {
    FormattingContext: () => Xne,
    FormattingRequestKind: () => Kne,
    RuleAction: () => $ne,
    RuleFlags: () => Qne,
    SmartIndenter: () => Lp,
    anyContext: () => sP,
    createTextRangeWithKind: () => gU,
    formatDocument: () => VXe,
    formatNodeGivenIndentation: () => KXe,
    formatOnClosingCurly: () => UXe,
    formatOnEnter: () => FXe,
    formatOnOpeningCurly: () => GXe,
    formatOnSemicolon: () => BXe,
    formatSelection: () => jXe,
    getAllRules: () => q2e,
    getFormatContext: () => IXe,
    getFormattingScanner: () => Yne,
    getIndentationString: () => dre,
    getRangeOfEnclosingComment: () => hAe
  });
  var $w = C({
    "src/services/_namespaces/ts.formatting.ts"() {
      $Ke(), QKe(), ZKe(), LXe(), MXe(), $Xe(), QXe();
    }
  }), $r = C({
    "src/services/_namespaces/ts.ts"() {
      Oa(), NF(), h5e(), W5e(), K5e(), oFe(), sFe(), lFe(), mFe(), AFe(), CFe(), IFe(), MFe(), BFe(), u9e(), f9e(), m9e(), y9e(), B9e(), X9e(), Eo(), Mte(), ixe(), aWe(), uWe(), IWe(), b0e(), j0e(), KWe(), nze(), Rh(), eKe(), CKe(), OKe(), FKe(), YKe(), $w();
    }
  });
  function ZXe() {
    return _re ?? (_re = new O_(Se));
  }
  function gAe(e, t, r, i, o) {
    let s = t ? "DeprecationError: " : "DeprecationWarning: ";
    return s += `'${e}' `, s += i ? `has been deprecated since v${i}` : "is deprecated", s += t ? " and can no longer be used." : r ? ` and will no longer be usable after v${r}.` : ".", s += o ? ` ${Th(o, [e], 0)}` : "", s;
  }
  function eYe(e, t, r, i) {
    const o = gAe(e, !0, t, r, i);
    return () => {
      throw new TypeError(o);
    };
  }
  function tYe(e, t, r, i) {
    let o = !1;
    return () => {
      yAe && !o && (D.log.warn(gAe(e, !1, t, r, i)), o = !0);
    };
  }
  function nYe(e, t = {}) {
    var r, i;
    const o = typeof t.typeScriptVersion == "string" ? new O_(t.typeScriptVersion) : (r = t.typeScriptVersion) != null ? r : ZXe(), s = typeof t.errorAfter == "string" ? new O_(t.errorAfter) : t.errorAfter, c = typeof t.warnAfter == "string" ? new O_(t.warnAfter) : t.warnAfter, f = typeof t.since == "string" ? new O_(t.since) : (i = t.since) != null ? i : c, d = t.error || s && o.compareTo(s) >= 0, y = !c || o.compareTo(c) >= 0;
    return d ? eYe(e, s, f, t.message) : y ? tYe(e, s, f, t.message) : so;
  }
  function rYe(e, t) {
    return function() {
      return e(), t.apply(this, arguments);
    };
  }
  function fre(e, t) {
    var r;
    const i = nYe((r = t == null ? void 0 : t.name) != null ? r : D.getFunctionName(e), t);
    return rYe(i, e);
  }
  var yAe, _re, vAe = C({
    "src/deprecatedCompat/deprecate.ts"() {
      vU(), yAe = !0;
    }
  });
  function pre(e, t, r, i) {
    if (Object.defineProperty(s, "name", { ...Object.getOwnPropertyDescriptor(s, "name"), value: e }), i)
      for (const c of Object.keys(i)) {
        const f = +c;
        !isNaN(f) && Ps(t, `${f}`) && (t[f] = fre(t[f], { ...i[f], name: e }));
      }
    const o = iYe(t, r);
    return s;
    function s(...c) {
      const f = o(c), d = f !== void 0 ? t[f] : void 0;
      if (typeof d == "function")
        return d(...c);
      throw new TypeError("Invalid arguments");
    }
  }
  function iYe(e, t) {
    return (r) => {
      for (let i = 0; Ps(e, `${i}`) && Ps(t, `${i}`); i++) {
        const o = t[i];
        if (o(r))
          return i;
      }
    };
  }
  function aYe(e) {
    return {
      overload: (t) => ({
        bind: (r) => ({
          finish: () => pre(e, t, r),
          deprecate: (i) => ({
            finish: () => pre(e, t, r, i)
          })
        })
      })
    };
  }
  var oYe = C({
    "src/deprecatedCompat/deprecations.ts"() {
      vU(), vAe();
    }
  }), sYe = C({
    "src/deprecatedCompat/5.0/identifierProperties.ts"() {
      vU(), vAe(), Sde((e) => {
        const t = e.getIdentifierConstructor();
        Ps(t.prototype, "originalKeywordKind") || Object.defineProperty(t.prototype, "originalKeywordKind", {
          get: fre(function() {
            return U0(this);
          }, {
            name: "originalKeywordKind",
            since: "5.0",
            warnAfter: "5.1",
            errorAfter: "5.2",
            message: "Use 'identifierToKeywordKind(identifier)' instead."
          })
        }), Ps(t.prototype, "isInJSDocNamespace") || Object.defineProperty(t.prototype, "isInJSDocNamespace", {
          get: fre(function() {
            return this.flags & 2048 ? !0 : void 0;
          }, {
            name: "isInJSDocNamespace",
            since: "5.0",
            warnAfter: "5.1",
            errorAfter: "5.2",
            message: "Use '.parent' or the surrounding context to determine this instead."
          })
        });
      });
    }
  }), vU = C({
    "src/deprecatedCompat/_namespaces/ts.ts"() {
      Oa(), oYe(), sYe();
    }
  }), bAe = {};
  ne(bAe, {
    ANONYMOUS: () => A9,
    AccessFlags: () => dH,
    AssertionLevel: () => Pj,
    AssignmentDeclarationKind: () => vH,
    AssignmentKind: () => Oq,
    Associativity: () => Mq,
    BreakpointResolver: () => lZ,
    BuilderFileEmit: () => dY,
    BuilderProgramKind: () => fY,
    BuilderState: () => Xm,
    BundleFileSectionKind: () => BH,
    CallHierarchy: () => Yx,
    CharacterCodes: () => DH,
    CheckFlags: () => oH,
    CheckMode: () => H5,
    ClassificationType: () => g$,
    ClassificationTypeNames: () => h$,
    CommentDirectiveType: () => Wj,
    Comparison: () => Ge,
    CompletionInfoFlags: () => c$,
    CompletionTriggerKind: () => i$,
    Completions: () => n2,
    ConfigFileProgramReloadLevel: () => MX,
    ContextFlags: () => $j,
    CoreServicesShimHostAdapter: () => sZ,
    Debug: () => D,
    DiagnosticCategory: () => TR,
    Diagnostics: () => _,
    DocumentHighlights: () => I9,
    ElementFlags: () => uH,
    EmitFlags: () => hM,
    EmitHint: () => PH,
    EmitOnly: () => qj,
    EndOfLineState: () => f$,
    EnumKind: () => aH,
    ExitStatus: () => Kj,
    ExportKind: () => TQ,
    Extension: () => RH,
    ExternalEmitHelpers: () => OH,
    FileIncludeKind: () => lM,
    FilePreprocessingDiagnosticsKind: () => zj,
    FileSystemEntryKind: () => WH,
    FileWatcherEventKind: () => jH,
    FindAllReferences: () => ul,
    FlattenLevel: () => hX,
    FlowFlags: () => ER,
    ForegroundColorEscapeSequences: () => QX,
    FunctionFlags: () => Pq,
    GeneratedIdentifierFlags: () => sM,
    GetLiteralTextFlags: () => Dq,
    GoToDefinition: () => Ow,
    HighlightSpanKind: () => o$,
    ImportKind: () => EQ,
    ImportsNotUsedAsValues: () => AH,
    IndentStyle: () => s$,
    IndexKind: () => pH,
    InferenceFlags: () => gH,
    InferencePriority: () => hH,
    InlayHintKind: () => a$,
    InlayHints: () => Yte,
    InternalEmitFlags: () => NH,
    InternalSymbolName: () => sH,
    InvalidatedProjectKind: () => HY,
    JsDoc: () => lb,
    JsTyping: () => jT,
    JsxEmit: () => xH,
    JsxFlags: () => jj,
    JsxReferenceKind: () => fH,
    LanguageServiceMode: () => t$,
    LanguageServiceShimHostAdapter: () => oZ,
    LanguageVariant: () => kH,
    LexicalEnvironmentFlags: () => FH,
    ListFormat: () => GH,
    LogLevel: () => Fj,
    MemberOverrideStatus: () => Xj,
    ModifierFlags: () => aM,
    ModuleDetectionKind: () => bH,
    ModuleInstanceState: () => zK,
    ModuleKind: () => _M,
    ModuleResolutionKind: () => SR,
    ModuleSpecifierEnding: () => Jq,
    NavigateTo: () => v0e,
    NavigationBar: () => V0e,
    NewLineKind: () => CH,
    NodeBuilderFlags: () => Qj,
    NodeCheckFlags: () => lH,
    NodeFactoryFlags: () => Zq,
    NodeFlags: () => iM,
    NodeResolutionFeatures: () => HK,
    ObjectFlags: () => dM,
    OperationCanceledException: () => dI,
    OperatorPrecedence: () => Fq,
    OrganizeImports: () => $_,
    OrganizeImportsMode: () => r$,
    OuterExpressionKinds: () => MH,
    OutliningElementsCollector: () => sne,
    OutliningSpanKind: () => u$,
    OutputFileType: () => d$,
    PackageJsonAutoImportPreference: () => e$,
    PackageJsonDependencyGroup: () => ZY,
    PatternMatchKind: () => R9,
    PollingInterval: () => gM,
    PollingWatchKind: () => SH,
    PragmaKindFlags: () => UH,
    PrivateIdentifierKind: () => cJ,
    ProcessLevel: () => bX,
    QuotePreference: () => gQ,
    RelationComparisonResult: () => oM,
    Rename: () => lU,
    ScriptElementKind: () => p$,
    ScriptElementKindModifier: () => m$,
    ScriptKind: () => LH,
    ScriptSnapshot: () => QY,
    ScriptTarget: () => IH,
    SemanticClassificationFormat: () => n$,
    SemanticMeaning: () => hQ,
    SemicolonPreference: () => l$,
    SignatureCheckMode: () => W5,
    SignatureFlags: () => fM,
    SignatureHelp: () => aP,
    SignatureKind: () => _H,
    SmartSelectionRange: () => Bne,
    SnippetKind: () => mM,
    SortKind: () => Nj,
    StructureIsReused: () => Jj,
    SymbolAccessibility: () => tH,
    SymbolDisplay: () => Ny,
    SymbolDisplayPartKind: () => J8,
    SymbolFlags: () => cM,
    SymbolFormatFlags: () => eH,
    SyntaxKind: () => rM,
    SyntheticSymbolKind: () => nH,
    Ternary: () => yH,
    ThrottledCancellationToken: () => tZ,
    TokenClass: () => _$,
    TokenFlags: () => Hj,
    TransformFlags: () => pM,
    TypeFacts: () => V5,
    TypeFlags: () => uM,
    TypeFormatFlags: () => Zj,
    TypeMapKind: () => mH,
    TypePredicateKind: () => rH,
    TypeReferenceSerializationKind: () => iH,
    TypeScriptServicesFactory: () => dbe,
    UnionReduction: () => Yj,
    UpToDateStatusType: () => IY,
    VarianceFlags: () => cH,
    Version: () => O_,
    VersionRange: () => yA,
    WatchDirectoryFlags: () => wH,
    WatchDirectoryKind: () => TH,
    WatchFileKind: () => EH,
    WatchLogLevel: () => FX,
    WatchType: () => E_,
    accessPrivateIdentifier: () => lhe,
    addEmitFlags: () => Zp,
    addEmitHelper: () => gx,
    addEmitHelpers: () => Ey,
    addInternalEmitFlags: () => hx,
    addNodeFactoryPatcher: () => T6e,
    addObjectAllocatorPatcher: () => Sde,
    addRange: () => Ti,
    addRelatedInfo: () => Xo,
    addSyntheticLeadingComment: () => TO,
    addSyntheticTrailingComment: () => l7,
    addToSeen: () => vp,
    advancedAsyncSuperHelper: () => LO,
    affectsDeclarationPathOptionDeclarations: () => EK,
    affectsEmitOptionDeclarations: () => bK,
    allKeysStartWithDot: () => R5,
    altDirectorySeparator: () => OR,
    and: () => J4,
    append: () => Fn,
    appendIfUnique: () => oy,
    arrayFrom: () => Ro,
    arrayIsEqualTo: () => Hp,
    arrayIsHomogeneous: () => Kde,
    arrayIsSorted: () => Tse,
    arrayOf: () => Cse,
    arrayReverseIterator: () => SNe,
    arrayToMap: () => e1,
    arrayToMultiMap: () => _R,
    arrayToNumericMap: () => Ise,
    arraysEqual: () => es,
    assertType: () => RNe,
    assign: () => fR,
    assignHelper: () => m7,
    asyncDelegator: () => g7,
    asyncGeneratorHelper: () => h7,
    asyncSuperHelper: () => CO,
    asyncValues: () => y7,
    attachFileToDiagnostics: () => fx,
    awaitHelper: () => yx,
    awaiterHelper: () => b7,
    base64decode: () => _de,
    base64encode: () => fde,
    binarySearch: () => yv,
    binarySearchKey: () => PS,
    bindSourceFile: () => vme,
    breakIntoCharacterSpans: () => e0e,
    breakIntoWordSpans: () => t0e,
    buildLinkParts: () => cve,
    buildOpts: () => y5,
    buildOverload: () => aYe,
    bundlerModuleNameResolver: () => tme,
    canBeConvertedToAsync: () => BQ,
    canHaveDecorators: () => Mx,
    canHaveExportModifier: () => uO,
    canHaveFlowNode: () => IN,
    canHaveIllegalDecorators: () => HJ,
    canHaveIllegalModifiers: () => v_e,
    canHaveIllegalType: () => fPe,
    canHaveIllegalTypeParameters: () => y_e,
    canHaveJSDoc: () => kN,
    canHaveLocals: () => Nm,
    canHaveModifiers: () => K_,
    canHaveSymbol: () => Rm,
    canJsonReportNoInputFiles: () => r8,
    canProduceDiagnostics: () => eF,
    canUsePropertyAccess: () => Lq,
    canWatchDirectoryOrFile: () => G8,
    cartesianProduct: () => Hse,
    cast: () => oo,
    chainBundle: () => X_,
    chainDiagnosticMessages: () => Na,
    changeAnyExtension: () => KH,
    changeCompilerHostLikeToUseCache: () => O8,
    changeExtension: () => L1,
    changesAffectModuleResolution: () => BW,
    changesAffectingProgramStructure: () => Bce,
    childIsDecorated: () => GI,
    classElementOrClassElementParameterIsDecorated: () => cz,
    classOrConstructorParameterIsDecorated: () => v1,
    classPrivateFieldGetHelper: () => R7,
    classPrivateFieldInHelper: () => O7,
    classPrivateFieldSetHelper: () => N7,
    classicNameResolver: () => gme,
    classifier: () => Q9,
    cleanExtendedConfigCache: () => PX,
    clear: () => Fi,
    clearMap: () => Zf,
    clearSharedExtendedConfigFileWatcher: () => Khe,
    climbPastPropertyAccess: () => MF,
    climbPastPropertyOrElementAccess: () => Iye,
    clone: () => Aj,
    cloneCompilerOptions: () => Jye,
    closeFileWatcher: () => Um,
    closeFileWatcherOf: () => Km,
    codefix: () => Hu,
    collapseTextChangeRangesAcrossMultipleVersions: () => POe,
    collectExternalModuleInfo: () => lX,
    combine: () => hA,
    combinePaths: () => Bi,
    commentPragmas: () => xR,
    commonOptionsWithBuild: () => u8,
    commonPackageFolders: () => Uq,
    compact: () => uR,
    compareBooleans: () => r1,
    compareDataObjects: () => tq,
    compareDiagnostics: () => ck,
    compareDiagnosticsSkipRelatedInformation: () => B3,
    compareEmitHelpers: () => Ofe,
    compareNumberOfDirectorySeparators: () => aO,
    comparePaths: () => QE,
    comparePathsCaseInsensitive: () => AOe,
    comparePathsCaseSensitive: () => xOe,
    comparePatternKeys: () => GK,
    compareProperties: () => Fse,
    compareStringsCaseInsensitive: () => H4,
    compareStringsCaseInsensitiveEslintCompatible: () => Ose,
    compareStringsCaseSensitive: () => Nu,
    compareStringsCaseSensitiveUI: () => mR,
    compareTextSpans: () => j4,
    compareValues: () => Ws,
    compileOnSaveCommandLineOption: () => o8,
    compilerOptionsAffectDeclarationPath: () => Fde,
    compilerOptionsAffectEmit: () => Mde,
    compilerOptionsAffectSemanticDiagnostics: () => Pde,
    compilerOptionsDidYouMeanDiagnostics: () => f8,
    compilerOptionsIndicateEsModules: () => H$,
    compose: () => kNe,
    computeCommonSourceDirectoryOfFilenames: () => Zhe,
    computeLineAndCharacterOfPosition: () => BR,
    computeLineOfPosition: () => mI,
    computeLineStarts: () => MR,
    computePositionOfLineAndCharacter: () => ZH,
    computeSignature: () => UT,
    computeSignatureWithDiagnostics: () => oY,
    computeSuggestionDiagnostics: () => PQ,
    concatenate: () => va,
    concatenateDiagnosticMessageChains: () => Ide,
    consumesNodeCoreModules: () => g9,
    contains: () => jr,
    containsIgnoredPath: () => gk,
    containsObjectRestOrSpread: () => JO,
    containsParseError: () => iN,
    containsPath: () => Ev,
    convertCompilerOptionsForTelemetry: () => v4e,
    convertCompilerOptionsFromJson: () => f4e,
    convertJsonOption: () => i8,
    convertToBase64: () => dde,
    convertToObject: () => ppe,
    convertToObjectWorker: () => t8,
    convertToOptionsWithAbsolutePaths: () => sK,
    convertToRelativePath: () => _I,
    convertToTSConfig: () => QPe,
    convertTypeAcquisitionFromJson: () => _4e,
    copyComments: () => JT,
    copyEntries: () => nN,
    copyLeadingComments: () => $C,
    copyProperties: () => Cj,
    copyTrailingAsLeadingComments: () => p6,
    copyTrailingComments: () => gw,
    couldStartTrivia: () => Lle,
    countWhere: () => Bc,
    createAbstractBuilder: () => b7e,
    createAccessorPropertyBackingField: () => zJ,
    createAccessorPropertyGetRedirector: () => I_e,
    createAccessorPropertySetRedirector: () => k_e,
    createBaseNodeFactory: () => gfe,
    createBinaryExpressionTrampoline: () => n5,
    createBindingHelper: () => pC,
    createBuildInfo: () => D8,
    createBuilderProgram: () => sY,
    createBuilderProgramUsingProgramBuildInfo: () => Tge,
    createBuilderStatusReporter: () => Mge,
    createCacheWithRedirects: () => DK,
    createCacheableExportInfoMap: () => Nve,
    createCachedDirectoryStructureHost: () => Jhe,
    createClassifier: () => Mve,
    createCommentDirectivesMap: () => Xce,
    createCompilerDiagnostic: () => Fs,
    createCompilerDiagnosticForInvalidCustomType: () => QJ,
    createCompilerDiagnosticFromMessageChain: () => F3,
    createCompilerHost: () => ege,
    createCompilerHostFromProgramHost: () => SY,
    createCompilerHostWorker: () => UX,
    createDetachedDiagnostic: () => iC,
    createDiagnosticCollection: () => QA,
    createDiagnosticForFileFromMessageChain: () => nz,
    createDiagnosticForNode: () => Nr,
    createDiagnosticForNodeArray: () => PA,
    createDiagnosticForNodeArrayFromMessageChain: () => lN,
    createDiagnosticForNodeFromMessageChain: () => cg,
    createDiagnosticForNodeInSourceFile: () => cd,
    createDiagnosticForRange: () => rz,
    createDiagnosticMessageChainFromDiagnostic: () => aue,
    createDiagnosticReporter: () => U8,
    createDocumentPositionMapper: () => ehe,
    createDocumentRegistry: () => AQ,
    createDocumentRegistryInternal: () => Hve,
    createEmitAndSemanticDiagnosticsBuilderProgram: () => _Y,
    createEmitHelperFactory: () => Nfe,
    createEmptyExports: () => UO,
    createExpressionForJsxElement: () => c_e,
    createExpressionForJsxFragment: () => u_e,
    createExpressionForObjectLiteralElementLike: () => d_e,
    createExpressionForPropertyName: () => FJ,
    createExpressionFromEntityName: () => VO,
    createExternalHelpersImportDeclarationIfNeeded: () => UJ,
    createFileDiagnostic: () => Dc,
    createFileDiagnosticFromMessageChain: () => ZM,
    createForOfBindingStatement: () => MJ,
    createGetCanonicalFileName: () => ru,
    createGetSourceFile: () => BX,
    createGetSymbolAccessibilityDiagnosticForNode: () => Ly,
    createGetSymbolAccessibilityDiagnosticForNodeName: () => Rhe,
    createGetSymbolWalker: () => Sme,
    createIncrementalCompilerHost: () => CY,
    createIncrementalProgram: () => Pge,
    createInputFiles: () => k6e,
    createInputFilesWithFilePaths: () => $q,
    createInputFilesWithFileTexts: () => Qq,
    createJsxFactoryExpression: () => PJ,
    createLanguageService: () => Y0e,
    createLanguageServiceSourceFile: () => j9,
    createMemberAccessForPropertyName: () => DT,
    createModeAwareCache: () => OT,
    createModeAwareCacheKey: () => qk,
    createModuleResolutionCache: () => C5,
    createModuleResolutionLoader: () => qX,
    createModuleSpecifierResolutionHost: () => Wx,
    createMultiMap: () => f_,
    createNodeConverters: () => vfe,
    createNodeFactory: () => hO,
    createOptionNameMap: () => l5,
    createOverload: () => pre,
    createPackageJsonImportFilter: () => bw,
    createPackageJsonInfo: () => Eve,
    createParenthesizerRules: () => yfe,
    createPatternMatcher: () => Kve,
    createPrependNodes: () => YX,
    createPrinter: () => j1,
    createPrinterWithDefaults: () => RX,
    createPrinterWithRemoveComments: () => H1,
    createPrinterWithRemoveCommentsNeverAsciiEscape: () => NX,
    createPrinterWithRemoveCommentsOmitTrailingSemicolon: () => R8,
    createProgram: () => dF,
    createProgramHost: () => xY,
    createPropertyNameNodeForIdentifierOrLiteral: () => $3,
    createQueue: () => Lj,
    createRange: () => h_,
    createRedirectedBuilderProgram: () => uY,
    createResolutionCache: () => Sge,
    createRuntimeTypeSerializer: () => _he,
    createScanner: () => dy,
    createSemanticDiagnosticsBuilderProgram: () => v7e,
    createSet: () => LNe,
    createSolutionBuilder: () => F7e,
    createSolutionBuilderHost: () => O7e,
    createSolutionBuilderWithWatch: () => B7e,
    createSolutionBuilderWithWatchHost: () => P7e,
    createSortedArray: () => bj,
    createSourceFile: () => YO,
    createSourceMapGenerator: () => Jme,
    createSourceMapSource: () => w6e,
    createSuperAccessVariableStatement: () => Z5,
    createSymbolTable: () => lo,
    createSymlinkCache: () => Bde,
    createSystemWatchFunctions: () => ble,
    createTextChange: () => i6,
    createTextChangeFromStartLength: () => XF,
    createTextChangeRange: () => HR,
    createTextRangeFromNode: () => U$,
    createTextRangeFromSpan: () => KF,
    createTextSpan: () => wc,
    createTextSpanFromBounds: () => hc,
    createTextSpanFromNode: () => rd,
    createTextSpanFromRange: () => qv,
    createTextSpanFromStringLiteralLikeContent: () => G$,
    createTextWriter: () => HN,
    createTokenRange: () => $z,
    createTypeChecker: () => Ume,
    createTypeReferenceDirectiveResolutionCache: () => L5,
    createTypeReferenceResolutionLoader: () => cF,
    createUnderscoreEscapedMultiMap: () => wse,
    createUnparsedSourceFile: () => Yq,
    createWatchCompilerHost: () => k7e,
    createWatchCompilerHostOfConfigFile: () => Nge,
    createWatchCompilerHostOfFilesAndCompilerOptions: () => Oge,
    createWatchFactory: () => TY,
    createWatchHost: () => EY,
    createWatchProgram: () => w7e,
    createWatchStatusReporter: () => Age,
    createWriteFileMeasuringIO: () => GX,
    declarationNameToString: () => ws,
    decodeMappings: () => aX,
    decodedTextSpanIntersectsWith: () => IM,
    decorateHelper: () => u7,
    deduplicate: () => mA,
    defaultIncludeSpec: () => E5,
    defaultInitCompilerOptions: () => b5,
    defaultMaximumTruncationLength: () => _O,
    detectSortCaseSensitivity: () => G4,
    diagnosticCategoryName: () => nM,
    diagnosticToString: () => qx,
    directoryProbablyExists: () => Yp,
    directorySeparator: () => Ms,
    displayPart: () => Id,
    displayPartsToString: () => J0e,
    disposeEmitNodes: () => nJ,
    documentSpansEqual: () => R5e,
    dumpTracingLegend: () => fle,
    elementAt: () => cy,
    elideNodes: () => L_e,
    emitComments: () => Que,
    emitDetachedComments: () => Zue,
    emitFiles: () => nF,
    emitFilesAndReportErrors: () => xF,
    emitFilesAndReportErrorsAndGetExitStatus: () => wge,
    emitModuleKindIsNonNodeESM: () => sq,
    emitNewLineBeforeLeadingCommentOfPosition: () => $ue,
    emitNewLineBeforeLeadingComments: () => Xue,
    emitNewLineBeforeLeadingCommentsOfPosition: () => Yue,
    emitSkippedWithNoDiagnostics: () => vF,
    emitUsingBuildInfo: () => qhe,
    emptyArray: () => rt,
    emptyFileSystemEntries: () => o7,
    emptyMap: () => Y4,
    emptyOptions: () => am,
    emptySet: () => qse,
    endsWith: () => ic,
    ensurePathIsNonModuleName: () => c1,
    ensureScriptKind: () => q3,
    ensureTrailingDirectorySeparator: () => Ou,
    entityNameToString: () => Af,
    enumerateInsertsAndDeletes: () => jse,
    equalOwnProperties: () => Lse,
    equateStringsCaseInsensitive: () => FS,
    equateStringsCaseSensitive: () => BS,
    equateValues: () => F0,
    esDecorateHelper: () => _7,
    escapeJsxAttributeString: () => Rz,
    escapeLeadingUnderscores: () => sl,
    escapeNonAsciiString: () => VN,
    escapeSnippetText: () => ST,
    escapeString: () => ox,
    every: () => Yn,
    expandPreOrPostfixIncrementOrDecrementExpression: () => Y7,
    explainFiles: () => kge,
    explainIfFileIsRedirectAndImpliedFormat: () => gY,
    exportAssignmentIsAlias: () => KA,
    exportStarHelper: () => D7,
    expressionResultIsUnused: () => Yde,
    extend: () => V4,
    extendsHelper: () => E7,
    extensionFromPath: () => lO,
    extensionIsTS: () => K3,
    externalHelpersModuleNameText: () => $0,
    factory: () => N,
    fileExtensionIs: () => cc,
    fileExtensionIsOneOf: () => Tc,
    fileIncludeReasonToDiagnostics: () => bY,
    filter: () => lr,
    filterMutate: () => Ri,
    filterSemanticDiagnostics: () => fF,
    find: () => nn,
    findAncestor: () => nr,
    findBestPatternMatch: () => wj,
    findChildOfKind: () => bs,
    findComputedPropertyNameCacheAssignment: () => i5,
    findConfigFile: () => Qhe,
    findContainingList: () => VF,
    findDiagnosticForNode: () => Sve,
    findFirstNonJsxWhitespaceToken: () => Bye,
    findIndex: () => vi,
    findLast: () => Li,
    findLastIndex: () => ya,
    findListItemInfo: () => Rye,
    findMap: () => Go,
    findModifier: () => KC,
    findNextToken: () => zT,
    findPackageJson: () => vve,
    findPackageJsons: () => cQ,
    findPrecedingMatchingToken: () => qF,
    findPrecedingToken: () => Ac,
    findSuperStatementIndex: () => Y5,
    findTokenOnLeftOfPosition: () => WF,
    findUseStrictPrologue: () => GJ,
    first: () => us,
    firstDefined: () => Jt,
    firstDefinedIterator: () => dn,
    firstIterator: () => Ase,
    firstOrOnly: () => fQ,
    firstOrUndefined: () => Yc,
    firstOrUndefinedIterator: () => U4,
    fixupCompilerOptions: () => GQ,
    flatMap: () => ca,
    flatMapIterator: () => u_,
    flatMapToMutable: () => Bd,
    flatten: () => No,
    flattenCommaList: () => w_e,
    flattenDestructuringAssignment: () => FT,
    flattenDestructuringBinding: () => U1,
    flattenDiagnosticMessageText: () => Wv,
    forEach: () => ze,
    forEachAncestor: () => Gce,
    forEachAncestorDirectory: () => rg,
    forEachChild: () => Ma,
    forEachChildRecursively: () => XO,
    forEachEmittedFile: () => IX,
    forEachEnclosingBlockScopeContainer: () => rue,
    forEachEntry: () => of,
    forEachExternalModuleToImportFrom: () => bQ,
    forEachImportClauseDeclaration: () => E3,
    forEachKey: () => RI,
    forEachLeadingCommentRange: () => GR,
    forEachNameInAccessChainWalkingLeft: () => q8e,
    forEachResolvedProjectReference: () => ige,
    forEachReturnStatement: () => cT,
    forEachRight: () => Xt,
    forEachTrailingCommentRange: () => UR,
    forEachUnique: () => J$,
    forEachYieldExpression: () => sue,
    forSomeAncestorDirectory: () => z8e,
    formatColorAndReset: () => W1,
    formatDiagnostic: () => VX,
    formatDiagnostics: () => $3e,
    formatDiagnosticsWithColorAndContext: () => rge,
    formatGeneratedName: () => RT,
    formatGeneratedNamePart: () => DC,
    formatLocation: () => jX,
    formatMessage: () => oq,
    formatStringFromArgs: () => Th,
    formatting: () => Cc,
    fullTripleSlashAMDReferencePathRegEx: () => Nq,
    fullTripleSlashReferencePathRegEx: () => Rq,
    generateDjb2Hash: () => AR,
    generateTSConfig: () => r4e,
    generatorHelper: () => I7,
    getAdjustedReferenceLocation: () => k$,
    getAdjustedRenameLocation: () => HF,
    getAliasDeclarationFromName: () => Sz,
    getAllAccessorDeclarations: () => vT,
    getAllDecoratorsOfClass: () => fX,
    getAllDecoratorsOfClassElement: () => Q5,
    getAllJSDocTags: () => _W,
    getAllJSDocTagsOfKind: () => WOe,
    getAllKeys: () => xNe,
    getAllProjectOutputs: () => tF,
    getAllSuperTypeNodes: () => WI,
    getAllUnscopedEmitHelpers: () => lJ,
    getAllowJSCompilerOption: () => tO,
    getAllowSyntheticDefaultImports: () => ET,
    getAncestor: () => q0,
    getAnyExtensionFromPath: () => yM,
    getAreDeclarationMapsEnabled: () => V3,
    getAssignedExpandoInitializer: () => ZS,
    getAssignedName: () => lW,
    getAssignmentDeclarationKind: () => Cl,
    getAssignmentDeclarationPropertyAccessKind: () => EN,
    getAssignmentTargetKind: () => pT,
    getAutomaticTypeDirectiveNames: () => A5,
    getBaseFileName: () => mu,
    getBinaryOperatorPrecedence: () => GN,
    getBuildInfo: () => rF,
    getBuildInfoFileVersionMap: () => cY,
    getBuildInfoText: () => zhe,
    getBuildOrderFromAnyBuildOrder: () => kF,
    getBuilderCreationParameters: () => EF,
    getBuilderFileEmit: () => zv,
    getCheckFlags: () => Ll,
    getClassExtendsHeritageElement: () => E1,
    getClassLikeDeclarationOfSymbol: () => mg,
    getCombinedLocalAndExportSymbolFlags: () => ak,
    getCombinedModifierFlags: () => _y,
    getCombinedNodeFlags: () => hp,
    getCombinedNodeFlagsAlwaysIncludeJSDoc: () => oW,
    getCommentRange: () => jm,
    getCommonSourceDirectory: () => w8,
    getCommonSourceDirectoryOfConfig: () => aw,
    getCompilerOptionValue: () => j3,
    getCompilerOptionsDiffValue: () => n4e,
    getConditions: () => BC,
    getConfigFileParsingDiagnostics: () => GT,
    getConstantValue: () => Cfe,
    getContainerNode: () => WT,
    getContainingClass: () => xc,
    getContainingClassStaticBlock: () => p8e,
    getContainingFunction: () => Cf,
    getContainingFunctionDeclaration: () => mue,
    getContainingFunctionOrClassStaticBlock: () => l3,
    getContainingNodeArray: () => $de,
    getContainingObjectLiteralElement: () => T6,
    getContextualTypeFromParent: () => s9,
    getContextualTypeFromParentOrAncestorTypeNode: () => jF,
    getCurrentTime: () => H8,
    getDeclarationDiagnostics: () => Nhe,
    getDeclarationEmitExtensionForPath: () => Mz,
    getDeclarationEmitOutputFilePath: () => Hue,
    getDeclarationEmitOutputFilePathWorker: () => Pz,
    getDeclarationFromName: () => RN,
    getDeclarationModifierFlagsFromSymbol: () => Qf,
    getDeclarationOfKind: () => xl,
    getDeclarationsOfKind: () => Mce,
    getDeclaredExpandoInitializer: () => gN,
    getDecorators: () => Sv,
    getDefaultCompilerOptions: () => V9,
    getDefaultExportInfoWorker: () => L9,
    getDefaultFormatCodeSettings: () => Sye,
    getDefaultLibFileName: () => AM,
    getDefaultLibFilePath: () => c9e,
    getDefaultLikeExportInfo: () => C9,
    getDiagnosticText: () => YPe,
    getDiagnosticsWithinSpan: () => xve,
    getDirectoryPath: () => mi,
    getDocumentPositionMapper: () => s0e,
    getESModuleInterop: () => H_,
    getEditsForFileRename: () => zve,
    getEffectiveBaseTypeNode: () => Xp,
    getEffectiveConstraintOfTypeParameter: () => xA,
    getEffectiveContainerForJSDocTemplateTag: () => T3,
    getEffectiveImplementsTypeNodes: () => XA,
    getEffectiveInitializer: () => hN,
    getEffectiveJSDocHost: () => JA,
    getEffectiveModifierFlags: () => Mu,
    getEffectiveModifierFlagsAlwaysIncludeJSDoc: () => rde,
    getEffectiveModifierFlagsNoCache: () => ade,
    getEffectiveReturnTypeNode: () => yp,
    getEffectiveSetAccessorTypeAnnotationNode: () => Kue,
    getEffectiveTypeAnnotationNode: () => Zc,
    getEffectiveTypeParameterDeclarations: () => Av,
    getEffectiveTypeRoots: () => m8,
    getElementOrPropertyAccessArgumentExpressionOrName: () => b3,
    getElementOrPropertyAccessName: () => fg,
    getElementsOfBindingOrAssignmentPattern: () => wC,
    getEmitDeclarations: () => W_,
    getEmitFlags: () => vo,
    getEmitHelpers: () => c7,
    getEmitModuleDetectionKind: () => Rde,
    getEmitModuleKind: () => au,
    getEmitModuleResolutionKind: () => vl,
    getEmitScriptTarget: () => ts,
    getEnclosingBlockScopeContainer: () => Mm,
    getEncodedSemanticClassifications: () => SQ,
    getEncodedSyntacticClassifications: () => xQ,
    getEndLinePosition: () => aN,
    getEntityNameFromTypeNode: () => fN,
    getEntrypointsFromPackageJsonInfo: () => j4e,
    getErrorCountForSummary: () => TF,
    getErrorSpanForNode: () => g1,
    getErrorSummaryText: () => Lge,
    getEscapedTextOfIdentifierOrLiteral: () => qI,
    getExpandoInitializer: () => W0,
    getExportAssignmentExpression: () => xz,
    getExportInfoMap: () => h6,
    getExportNeedsImportStarHelper: () => nhe,
    getExpressionAssociativity: () => Iz,
    getExpressionPrecedence: () => L3,
    getExternalHelpersModuleName: () => HO,
    getExternalModuleImportEqualsDeclarationExpression: () => VI,
    getExternalModuleName: () => HA,
    getExternalModuleNameFromDeclaration: () => Vue,
    getExternalModuleNameFromPath: () => Oz,
    getExternalModuleNameLiteral: () => Px,
    getExternalModuleRequireArgument: () => dz,
    getFallbackOptions: () => N8,
    getFileEmitOutput: () => sge,
    getFileMatcherPatterns: () => dk,
    getFileNamesFromConfigSpecs: () => a8,
    getFileWatcherEventKind: () => hle,
    getFilesInErrorForSummary: () => SF,
    getFirstConstructorWithBody: () => Eh,
    getFirstIdentifier: () => Lf,
    getFirstNonSpaceCharacterPosition: () => _ve,
    getFirstProjectOutput: () => wX,
    getFixableErrorSpanExpression: () => dQ,
    getFormatCodeSettingsForWriting: () => E9,
    getFullWidth: () => rN,
    getFunctionFlags: () => Vc,
    getHeritageClause: () => PN,
    getHostSignatureFromJSDoc: () => z0,
    getIdentifierAutoGenerate: () => M6e,
    getIdentifierGeneratedImportReference: () => Rfe,
    getIdentifierTypeArguments: () => xT,
    getImmediatelyInvokedFunctionExpression: () => dT,
    getImpliedNodeFormatForFile: () => uF,
    getImpliedNodeFormatForFileWorker: () => KX,
    getImportNeedsImportDefaultHelper: () => sX,
    getImportNeedsImportStarHelper: () => X5,
    getIndentSize: () => ZA,
    getIndentString: () => I3,
    getInitializedVariables: () => ik,
    getInitializerOfBinaryExpression: () => gz,
    getInitializerOfBindingOrAssignmentElement: () => zO,
    getInterfaceBaseTypeNodes: () => zI,
    getInternalEmitFlags: () => F_,
    getInvokedExpression: () => d3,
    getIsolatedModules: () => j_,
    getJSDocAugmentsTag: () => ice,
    getJSDocClassTag: () => cW,
    getJSDocCommentRanges: () => az,
    getJSDocCommentsAndTags: () => vz,
    getJSDocDeprecatedTag: () => uW,
    getJSDocDeprecatedTagNoCache: () => dce,
    getJSDocEnumTag: () => dW,
    getJSDocHost: () => ix,
    getJSDocImplementsTags: () => ace,
    getJSDocOverrideTagNoCache: () => uce,
    getJSDocParameterTags: () => TI,
    getJSDocParameterTagsNoCache: () => Zle,
    getJSDocPrivateTag: () => GOe,
    getJSDocPrivateTagNoCache: () => sce,
    getJSDocProtectedTag: () => UOe,
    getJSDocProtectedTagNoCache: () => lce,
    getJSDocPublicTag: () => BOe,
    getJSDocPublicTagNoCache: () => oce,
    getJSDocReadonlyTag: () => VOe,
    getJSDocReadonlyTagNoCache: () => cce,
    getJSDocReturnTag: () => fce,
    getJSDocReturnType: () => zR,
    getJSDocRoot: () => HI,
    getJSDocSatisfiesExpressionType: () => wq,
    getJSDocSatisfiesTag: () => fW,
    getJSDocTags: () => d1,
    getJSDocTagsNoCache: () => HOe,
    getJSDocTemplateTag: () => jOe,
    getJSDocThisTag: () => wM,
    getJSDocType: () => xv,
    getJSDocTypeAliasName: () => jJ,
    getJSDocTypeAssertionType: () => Q7,
    getJSDocTypeParameterDeclarations: () => D3,
    getJSDocTypeParameterTags: () => tce,
    getJSDocTypeParameterTagsNoCache: () => nce,
    getJSDocTypeTag: () => u1,
    getJSXImplicitImportBase: () => H3,
    getJSXRuntimeImport: () => W3,
    getJSXTransformEnabled: () => cq,
    getKeyForCompilerOptions: () => wK,
    getLanguageVariant: () => QN,
    getLastChild: () => nq,
    getLeadingCommentRanges: () => ph,
    getLeadingCommentRangesOfNode: () => iz,
    getLeftmostAccessExpression: () => sk,
    getLeftmostExpression: () => lk,
    getLineAndCharacterOfPosition: () => ol,
    getLineInfo: () => Kme,
    getLineOfLocalPosition: () => YI,
    getLineOfLocalPositionFromLineMap: () => gT,
    getLineStartPositionForPosition: () => T_,
    getLineStarts: () => ig,
    getLinesBetweenPositionAndNextNonWhitespaceCharacter: () => yde,
    getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter: () => gde,
    getLinesBetweenPositions: () => hI,
    getLinesBetweenRangeEndAndRangeStart: () => Qz,
    getLinesBetweenRangeEndPositions: () => V8e,
    getLiteralText: () => Yce,
    getLocalNameForExternalImport: () => kC,
    getLocalSymbolForExportDefault: () => tC,
    getLocaleSpecificMessage: () => Oo,
    getLocaleTimeString: () => V8,
    getMappedContextSpan: () => nve,
    getMappedDocumentSpan: () => K$,
    getMappedLocation: () => u6,
    getMatchedFileSpec: () => yY,
    getMatchedIncludeSpec: () => vY,
    getMeaningFromDeclaration: () => K8,
    getMeaningFromLocation: () => HT,
    getMembersOfDeclaration: () => lue,
    getModeForFileReference: () => P8,
    getModeForResolutionAtIndex: () => HX,
    getModeForUsageLocation: () => Tp,
    getModifiedTime: () => WS,
    getModifiers: () => eT,
    getModuleInstanceState: () => vg,
    getModuleNameStringLiteralAt: () => pF,
    getModuleSpecifierEndingPreference: () => gq,
    getModuleSpecifierResolverHost: () => W$,
    getNameForExportedSymbol: () => y9,
    getNameFromIndexInfo: () => iue,
    getNameFromPropertyName: () => s6,
    getNameOfAccessExpression: () => Ede,
    getNameOfCompilerOptionValue: () => aK,
    getNameOfDeclaration: () => ka,
    getNameOfExpando: () => mz,
    getNameOfJSDocTypedef: () => $le,
    getNameOrArgument: () => bN,
    getNameTable: () => QQ,
    getNamesForExportedSymbol: () => Cve,
    getNamespaceDeclarationNode: () => WA,
    getNewLineCharacter: () => X0,
    getNewLineKind: () => m6,
    getNewLineOrDefaultFromHost: () => ib,
    getNewTargetContainer: () => gue,
    getNextJSDocCommentLocation: () => bz,
    getNodeForGeneratedName: () => r5,
    getNodeId: () => ps,
    getNodeKind: () => z1,
    getNodeModifiers: () => _w,
    getNodeModulePathParts: () => Cq,
    getNonAssignedNameOfDeclaration: () => sW,
    getNonAssignmentOperatorForCompoundAssignment: () => ew,
    getNonAugmentationDeclaration: () => XW,
    getNonDecoratorTokenPosOfNode: () => HW,
    getNormalizedAbsolutePath: () => Pa,
    getNormalizedAbsolutePathWithoutRoot: () => JH,
    getNormalizedPathComponents: () => RR,
    getObjectFlags: () => ti,
    getOperator: () => wz,
    getOperatorAssociativity: () => kz,
    getOperatorPrecedence: () => BN,
    getOptionFromName: () => tK,
    getOptionsNameMap: () => OC,
    getOrCreateEmitNode: () => td,
    getOrCreateExternalHelpersModuleNameIfNeeded: () => h_e,
    getOrUpdate: () => pA,
    getOriginalNode: () => Tl,
    getOriginalNodeId: () => kl,
    getOriginalSourceFile: () => I8e,
    getOutputDeclarationFileName: () => iw,
    getOutputExtension: () => kX,
    getOutputFileNames: () => M3e,
    getOutputPathsFor: () => rw,
    getOutputPathsForBundle: () => nw,
    getOwnEmitOutputFilePath: () => jue,
    getOwnKeys: () => tg,
    getOwnValues: () => MS,
    getPackageJsonInfo: () => Ux,
    getPackageJsonTypesVersionsPaths: () => x5,
    getPackageJsonsVisibleToFile: () => bve,
    getPackageNameFromTypesPackageName: () => v8,
    getPackageScopeForPath: () => w5,
    getParameterSymbolFromJSDoc: () => wN,
    getParameterTypeNode: () => g6e,
    getParentNodeInSpan: () => c6,
    getParseTreeNode: () => Ea,
    getParsedCommandLineOfConfigFile: () => QO,
    getPathComponents: () => ld,
    getPathComponentsRelativeTo: () => $H,
    getPathFromPathComponents: () => l1,
    getPathUpdater: () => CQ,
    getPathsBasePath: () => Fz,
    getPatternFromSpec: () => _q,
    getPendingEmitKind: () => VC,
    getPositionOfLineAndCharacter: () => FR,
    getPossibleGenericSignatures: () => N$,
    getPossibleOriginalInputExtensionForExtension: () => Wue,
    getPossibleTypeArgumentsInfo: () => O$,
    getPreEmitDiagnostics: () => Y3e,
    getPrecedingNonSpaceCharacterPosition: () => eQ,
    getPrivateIdentifier: () => _X,
    getProperties: () => uX,
    getProperty: () => dR,
    getPropertyArrayElementValue: () => pue,
    getPropertyAssignment: () => GA,
    getPropertyAssignmentAliasLikeExpression: () => Pue,
    getPropertyNameForPropertyNameNode: () => T1,
    getPropertyNameForUniqueESSymbol: () => C8e,
    getPropertyNameOfBindingOrAssignmentElement: () => VJ,
    getPropertySymbolFromBindingElement: () => r9,
    getPropertySymbolsFromContextualType: () => H9,
    getQuoteFromPreference: () => eve,
    getQuotePreference: () => xp,
    getRangesWhere: () => vj,
    getRefactorContextSpan: () => zx,
    getReferencedFileLocation: () => ow,
    getRegexFromPattern: () => Pv,
    getRegularExpressionForWildcard: () => uk,
    getRegularExpressionsForWildcards: () => z3,
    getRelativePathFromDirectory: () => wm,
    getRelativePathFromFile: () => NR,
    getRelativePathToDirectoryOrUrl: () => zS,
    getRenameLocation: () => _6,
    getReplacementSpanForContextToken: () => B$,
    getResolutionDiagnostic: () => $X,
    getResolutionModeOverrideForClause: () => Vx,
    getResolveJsonModule: () => TT,
    getResolvePackageJsonExports: () => lq,
    getResolvePackageJsonImports: () => r6e,
    getResolvedExternalModuleName: () => k3,
    getResolvedModule: () => RA,
    getResolvedTypeReferenceDirective: () => t8e,
    getRestIndicatorOfBindingOrAssignmentElement: () => e5,
    getRestParameterElementType: () => sz,
    getRightMostAssignedExpression: () => yN,
    getRootDeclaration: () => Fm,
    getRootLength: () => qp,
    getScriptKind: () => Z$,
    getScriptKindFromFileName: () => hq,
    getScriptTargetFeatures: () => WW,
    getSelectedEffectiveModifierFlags: () => cx,
    getSelectedSyntacticModifierFlags: () => nde,
    getSemanticClassifications: () => Fve,
    getSemanticJsxChildren: () => UN,
    getSetAccessorTypeAnnotationNode: () => que,
    getSetAccessorValueParameter: () => $I,
    getSetExternalModuleIndicator: () => ZN,
    getShebang: () => SM,
    getSingleInitializerOfVariableStatementOrPropertyDeclaration: () => yz,
    getSingleVariableOfVariableStatement: () => qA,
    getSnapshotText: () => $F,
    getSnippetElement: () => iJ,
    getSourceFileOfModule: () => zM,
    getSourceFileOfNode: () => Zn,
    getSourceFilePathInNewDir: () => w3,
    getSourceFilePathInNewDirWorker: () => Gz,
    getSourceFileVersionAsHashFromText: () => AF,
    getSourceFilesToEmit: () => Bz,
    getSourceMapRange: () => Q0,
    getSourceMapper: () => o0e,
    getSourceTextOfNodeFromSourceFile: () => m1,
    getSpanOfTokenAtPosition: () => gy,
    getSpellingSuggestion: () => sI,
    getStartPositionOfLine: () => wv,
    getStartPositionOfRange: () => rk,
    getStartsOnNewLine: () => EO,
    getStaticPropertiesAndClassStaticBlock: () => $5,
    getStrictOptionValue: () => y_,
    getStringComparer: () => W4,
    getSuperCallFromStatement: () => cX,
    getSuperContainer: () => uN,
    getSupportedCodeFixes: () => K0e,
    getSupportedExtensions: () => fk,
    getSupportedExtensionsWithJsonIfResolveJsonModule: () => rO,
    getSwitchedType: () => oQ,
    getSymbolId: () => bo,
    getSymbolNameForPrivateIdentifier: () => MN,
    getSymbolTarget: () => dve,
    getSyntacticClassifications: () => Vve,
    getSyntacticModifierFlags: () => Nv,
    getSyntacticModifierFlagsNoCache: () => zz,
    getSynthesizedDeepClone: () => wl,
    getSynthesizedDeepCloneWithReplacements: () => f6,
    getSynthesizedDeepClones: () => q1,
    getSynthesizedDeepClonesWithReplacements: () => tQ,
    getSyntheticLeadingComments: () => fC,
    getSyntheticTrailingComments: () => SO,
    getTargetLabel: () => FF,
    getTargetOfBindingOrAssignmentElement: () => Vv,
    getTemporaryModuleResolutionState: () => k5,
    getTextOfConstantValue: () => $ce,
    getTextOfIdentifierOrLiteral: () => U_,
    getTextOfJSDocComment: () => qR,
    getTextOfNode: () => Sc,
    getTextOfNodeFromSourceText: () => PI,
    getTextOfPropertyName: () => OA,
    getThisContainer: () => Sd,
    getThisParameter: () => S1,
    getTokenAtPosition: () => aa,
    getTokenPosOfNode: () => sT,
    getTokenSourceMapRange: () => O6e,
    getTouchingPropertyName: () => Df,
    getTouchingToken: () => fw,
    getTrailingCommentRanges: () => B0,
    getTrailingSemicolonDeferringWriter: () => Nz,
    getTransformFlagsSubtreeExclusions: () => Efe,
    getTransformers: () => CX,
    getTsBuildInfoEmitOutputFilePath: () => Iy,
    getTsConfigObjectLiteralExpression: () => BI,
    getTsConfigPropArray: () => cN,
    getTsConfigPropArrayElementValue: () => s3,
    getTypeAnnotationNode: () => Jue,
    getTypeArgumentOrTypeParameterList: () => Wye,
    getTypeKeywordOfTypeOnlyImport: () => q$,
    getTypeNode: () => wfe,
    getTypeNodeIfAccessible: () => vw,
    getTypeParameterFromJsDoc: () => kue,
    getTypeParameterOwner: () => MOe,
    getTypesPackageName: () => N5,
    getUILocale: () => Pse,
    getUniqueName: () => KT,
    getUniqueSymbolId: () => fve,
    getUseDefineForClassFields: () => nO,
    getWatchErrorSummaryDiagnosticMessage: () => mY,
    getWatchFactory: () => $he,
    group: () => oI,
    groupBy: () => kse,
    guessIndentation: () => Pce,
    handleNoEmitOptions: () => XX,
    hasAbstractModifier: () => A1,
    hasAccessorModifier: () => Bm,
    hasAmbientModifier: () => Hz,
    hasChangesInResolutions: () => UW,
    hasChildOfKind: () => e6,
    hasContextSensitiveParameters: () => Y3,
    hasDecorators: () => $f,
    hasDocComment: () => Hye,
    hasDynamicName: () => Rv,
    hasEffectiveModifier: () => Gd,
    hasEffectiveModifiers: () => R3,
    hasEffectiveReadonlyModifier: () => QI,
    hasExtension: () => bA,
    hasIndexSignature: () => aQ,
    hasInitializer: () => kv,
    hasInvalidEscape: () => Dz,
    hasJSDocNodes: () => xf,
    hasJSDocParameterTags: () => rce,
    hasJSFileExtension: () => px,
    hasJsonModuleEmitEnabled: () => G3,
    hasOnlyExpressionInitializer: () => aT,
    hasOverrideModifier: () => jz,
    hasPossibleExternalModuleReference: () => nue,
    hasProperty: () => Ps,
    hasPropertyAccessExpressionWithName: () => X8,
    hasQuestionToken: () => rx,
    hasRecordedExternalHelpers: () => m_e,
    hasRestParameter: () => OW,
    hasScopeMarker: () => kce,
    hasStaticModifier: () => gc,
    hasSyntacticModifier: () => Yr,
    hasSyntacticModifiers: () => tde,
    hasTSFileExtension: () => iO,
    hasTabstop: () => Zde,
    hasTrailingDirectorySeparator: () => vv,
    hasType: () => jM,
    hasTypeArguments: () => T8e,
    hasZeroOrOneAsteriskCharacter: () => uq,
    helperString: () => sJ,
    hostGetCanonicalFileName: () => J0,
    hostUsesCaseSensitiveFileNames: () => WN,
    idText: () => Mr,
    identifierIsThisKeyword: () => Vz,
    identifierToKeywordKind: () => U0,
    identity: () => ml,
    identitySourceMapConsumer: () => K5,
    ignoreSourceNewlines: () => oJ,
    ignoredPaths: () => wR,
    importDefaultHelper: () => w7,
    importFromModuleSpecifier: () => AN,
    importNameElisionDisabled: () => U3,
    importStarHelper: () => AO,
    indexOfAnyCharCode: () => kc,
    indexOfNode: () => NA,
    indicesOf: () => lR,
    inferredTypesContainingFile: () => gF,
    insertImports: () => i9,
    insertLeadingStatement: () => iPe,
    insertSorted: () => gv,
    insertStatementAfterCustomPrologue: () => p1,
    insertStatementAfterStandardPrologue: () => a8e,
    insertStatementsAfterCustomPrologue: () => VW,
    insertStatementsAfterStandardPrologue: () => Pm,
    intersperse: () => la,
    introducesArgumentsExoticObject: () => fue,
    inverseJsxOptionMap: () => Wk,
    isAbstractConstructorSymbol: () => vde,
    isAbstractModifier: () => Hfe,
    isAccessExpression: () => ll,
    isAccessibilityModifier: () => F$,
    isAccessor: () => V0,
    isAccessorModifier: () => zfe,
    isAliasSymbolDeclaration: () => S8e,
    isAliasableExpression: () => ON,
    isAmbientModule: () => Pu,
    isAmbientPropertyDeclaration: () => $W,
    isAnonymousFunctionDefinition: () => JI,
    isAnyDirectorySeparator: () => zH,
    isAnyImportOrBareOrAccessedRequire: () => tue,
    isAnyImportOrReExport: () => oN,
    isAnyImportSyntax: () => lT,
    isAnySupportedFileExtension: () => f6e,
    isApplicableVersionedTypesKey: () => y8,
    isArgumentExpressionOfElementAccess: () => S$,
    isArray: () => Va,
    isArrayBindingElement: () => BM,
    isArrayBindingOrAssignmentElement: () => $R,
    isArrayBindingOrAssignmentPattern: () => AW,
    isArrayBindingPattern: () => bC,
    isArrayLiteralExpression: () => Bu,
    isArrayLiteralOrObjectLiteralDestructuringPattern: () => wy,
    isArrayTypeNode: () => mJ,
    isArrowFunction: () => Js,
    isAsExpression: () => RO,
    isAssertClause: () => W7,
    isAssertEntry: () => Zfe,
    isAssertionExpression: () => iT,
    isAssertionKey: () => hce,
    isAssertsKeyword: () => Vfe,
    isAssignmentDeclaration: () => jI,
    isAssignmentExpression: () => ed,
    isAssignmentOperator: () => yy,
    isAssignmentPattern: () => kI,
    isAssignmentTarget: () => bh,
    isAsteriskToken: () => IO,
    isAsyncFunction: () => $A,
    isAsyncModifier: () => Ak,
    isAutoAccessorPropertyDeclaration: () => af,
    isAwaitExpression: () => TC,
    isAwaitKeyword: () => pJ,
    isBigIntLiteral: () => P7,
    isBinaryExpression: () => br,
    isBinaryOperatorToken: () => A_e,
    isBindableObjectDefinePropertyCall: () => ex,
    isBindableStaticAccessExpression: () => _T,
    isBindableStaticElementAccessExpression: () => v3,
    isBindableStaticNameExpression: () => tx,
    isBindingElement: () => _s,
    isBindingElementOfBareOrAccessedRequire: () => bue,
    isBindingName: () => hh,
    isBindingOrAssignmentElement: () => Ece,
    isBindingOrAssignmentPattern: () => XR,
    isBindingPattern: () => Xa,
    isBlock: () => co,
    isBlockOrCatchScoped: () => zW,
    isBlockScope: () => QW,
    isBlockScopedContainerTopLevel: () => eue,
    isBooleanLiteral: () => gce,
    isBreakOrContinueStatement: () => CI,
    isBreakStatement: () => z6e,
    isBuildInfoFile: () => Bhe,
    isBuilderProgram: () => Ige,
    isBundle: () => SJ,
    isBundleFileTextLike: () => Tde,
    isCallChain: () => tT,
    isCallExpression: () => no,
    isCallExpressionTarget: () => y$,
    isCallLikeExpression: () => YS,
    isCallOrNewExpression: () => lg,
    isCallOrNewExpressionTarget: () => v$,
    isCallSignatureDeclaration: () => hC,
    isCallToHelper: () => xk,
    isCaseBlock: () => MO,
    isCaseClause: () => Mk,
    isCaseKeyword: () => qfe,
    isCaseOrDefaultClause: () => DW,
    isCatchClause: () => xC,
    isCatchClauseVariableDeclaration: () => Qde,
    isCatchClauseVariableDeclarationOrBindingElement: () => qW,
    isCheckJsEnabledForFile: () => cO,
    isChildOfNodeWithKind: () => oz,
    isCircularBuildOrder: () => Hx,
    isClassDeclaration: () => Nc,
    isClassElement: () => Uc,
    isClassExpression: () => Gu,
    isClassLike: () => di,
    isClassMemberModifier: () => TW,
    isClassOrTypeElement: () => FM,
    isClassStaticBlockDeclaration: () => Il,
    isCollapsedRange: () => U8e,
    isColonToken: () => Bfe,
    isCommaExpression: () => jO,
    isCommaListExpression: () => Nk,
    isCommaSequence: () => Vk,
    isCommaToken: () => Ffe,
    isComment: () => JF,
    isCommonJsExportPropertyAssignment: () => a3,
    isCommonJsExportedExpression: () => uue,
    isCompoundAssignment: () => C8,
    isComputedNonLiteralName: () => sN,
    isComputedPropertyName: () => As,
    isConciseBody: () => UM,
    isConditionalExpression: () => SC,
    isConditionalTypeNode: () => yC,
    isConstTypeReference: () => sg,
    isConstructSignatureDeclaration: () => wO,
    isConstructorDeclaration: () => ql,
    isConstructorTypeNode: () => Ik,
    isContextualKeyword: () => S3,
    isContinueStatement: () => W6e,
    isCustomPrologue: () => t3,
    isDebuggerStatement: () => q6e,
    isDeclaration: () => vu,
    isDeclarationBindingElement: () => KR,
    isDeclarationFileName: () => fd,
    isDeclarationName: () => _g,
    isDeclarationNameOfEnumOrNamespace: () => $N,
    isDeclarationReadonly: () => e3,
    isDeclarationStatement: () => Dce,
    isDeclarationWithTypeParameterChildren: () => ez,
    isDeclarationWithTypeParameters: () => ZW,
    isDecorator: () => Fu,
    isDecoratorTarget: () => Cye,
    isDefaultClause: () => BO,
    isDefaultImport: () => nx,
    isDefaultModifier: () => Ufe,
    isDefaultedExpandoInitializer: () => Tue,
    isDeleteExpression: () => Xfe,
    isDeleteTarget: () => Tz,
    isDeprecatedDeclaration: () => v9,
    isDestructuringAssignment: () => vy,
    isDiagnosticWithLocation: () => uQ,
    isDiskPathRoot: () => vOe,
    isDoStatement: () => j6e,
    isDotDotDotToken: () => M7,
    isDottedName: () => ek,
    isDynamicName: () => C3,
    isESSymbolIdentifier: () => L8e,
    isEffectiveExternalModule: () => QS,
    isEffectiveModuleDeclaration: () => Zce,
    isEffectiveStrictModeSourceFile: () => YW,
    isElementAccessChain: () => pW,
    isElementAccessExpression: () => cl,
    isEmittedFileOfProgram: () => Yhe,
    isEmptyArrayLiteral: () => ude,
    isEmptyBindingElement: () => Xle,
    isEmptyBindingPattern: () => Kle,
    isEmptyObjectLiteral: () => Xz,
    isEmptyStatement: () => vJ,
    isEmptyStringLiteral: () => uz,
    isEndOfDeclarationMarker: () => X6e,
    isEntityName: () => rf,
    isEntityNameExpression: () => zl,
    isEnumConst: () => y1,
    isEnumDeclaration: () => eb,
    isEnumMember: () => O1,
    isEqualityOperatorKind: () => l9,
    isEqualsGreaterThanToken: () => Gfe,
    isExclamationToken: () => kO,
    isExcludedFile: () => Ipe,
    isExclusivelyTypeOnlyImportOrExport: () => WX,
    isExportAssignment: () => Bl,
    isExportDeclaration: () => eu,
    isExportModifier: () => B7,
    isExportName: () => $7,
    isExportNamespaceAsDefaultDeclaration: () => XM,
    isExportOrDefaultModifier: () => WJ,
    isExportSpecifier: () => dd,
    isExportsIdentifier: () => fT,
    isExportsOrModuleExportsOrAlias: () => F1,
    isExpression: () => vt,
    isExpressionNode: () => dg,
    isExpressionOfExternalModuleImportEqualsDeclaration: () => wye,
    isExpressionOfOptionalChainRoot: () => NM,
    isExpressionStatement: () => ou,
    isExpressionWithTypeArguments: () => Sy,
    isExpressionWithTypeArgumentsInClassExtendsClause: () => JN,
    isExternalModule: () => Zl,
    isExternalModuleAugmentation: () => h1,
    isExternalModuleImportEqualsDeclaration: () => H0,
    isExternalModuleIndicator: () => QR,
    isExternalModuleNameRelative: () => Gc,
    isExternalModuleReference: () => zm,
    isExternalModuleSymbol: () => a6,
    isExternalOrCommonJsModule: () => sf,
    isFileLevelUniqueName: () => JM,
    isFileProbablyExternalModule: () => KO,
    isFirstDeclarationOfSymbolParameter: () => X$,
    isFixablePromiseHandler: () => FQ,
    isForInOrOfStatement: () => kA,
    isForInStatement: () => bJ,
    isForInitializer: () => Jp,
    isForOfStatement: () => NO,
    isForStatement: () => LT,
    isFunctionBlock: () => uT,
    isFunctionBody: () => LW,
    isFunctionDeclaration: () => yc,
    isFunctionExpression: () => Bs,
    isFunctionExpressionOrArrowFunction: () => lC,
    isFunctionLike: () => Ka,
    isFunctionLikeDeclaration: () => Qs,
    isFunctionLikeKind: () => XS,
    isFunctionLikeOrClassStaticBlockDeclaration: () => CA,
    isFunctionOrConstructorTypeNode: () => bce,
    isFunctionOrModuleBlock: () => SW,
    isFunctionSymbol: () => xue,
    isFunctionTypeNode: () => Ch,
    isFutureReservedKeyword: () => x8e,
    isGeneratedIdentifier: () => Sl,
    isGeneratedPrivateIdentifier: () => KS,
    isGetAccessor: () => Iv,
    isGetAccessorDeclaration: () => z_,
    isGetOrSetAccessorDeclaration: () => DM,
    isGlobalDeclaration: () => H5e,
    isGlobalScopeAugmentation: () => Kp,
    isGrammarError: () => zce,
    isHeritageClause: () => jd,
    isHoistedFunction: () => n3,
    isHoistedVariableStatement: () => r3,
    isIdentifier: () => je,
    isIdentifierANonContextualKeyword: () => x3,
    isIdentifierName: () => Oue,
    isIdentifierOrThisTypeNode: () => E_e,
    isIdentifierPart: () => G0,
    isIdentifierStart: () => mh,
    isIdentifierText: () => P_,
    isIdentifierTypePredicate: () => _ue,
    isIdentifierTypeReference: () => Jde,
    isIfStatement: () => CT,
    isIgnoredFileFromWildCardWatching: () => oF,
    isImplicitGlob: () => fq,
    isImportCall: () => lf,
    isImportClause: () => Wm,
    isImportDeclaration: () => Wc,
    isImportEqualsDeclaration: () => su,
    isImportKeyword: () => Lk,
    isImportMeta: () => FA,
    isImportOrExportSpecifier: () => JS,
    isImportOrExportSpecifierName: () => uve,
    isImportSpecifier: () => Ld,
    isImportTypeAssertionContainer: () => Qfe,
    isImportTypeNode: () => gg,
    isImportableFile: () => vQ,
    isInComment: () => ky,
    isInExpressionContext: () => _3,
    isInJSDoc: () => pN,
    isInJSFile: () => fr,
    isInJSXText: () => Vye,
    isInJsonFile: () => m3,
    isInNonReferenceComment: () => Xye,
    isInReferenceComment: () => Kye,
    isInRightSideOfInternalImportEqualsDeclaration: () => OF,
    isInString: () => qT,
    isInTemplateString: () => R$,
    isInTopLevelContext: () => c3,
    isIncrementalCompilation: () => eO,
    isIndexSignatureDeclaration: () => Tx,
    isIndexedAccessTypeNode: () => Cx,
    isInferTypeNode: () => vC,
    isInfinityOrNaNString: () => yk,
    isInitializedProperty: () => L8,
    isInitializedVariable: () => Zz,
    isInsideJsxElement: () => zF,
    isInsideJsxElementOrAttribute: () => Uye,
    isInsideNodeModules: () => Tve,
    isInsideTemplateLiteral: () => r6,
    isInstantiatedModule: () => YK,
    isInterfaceDeclaration: () => nd,
    isInternalDeclaration: () => SX,
    isInternalModuleImportEqualsDeclaration: () => VA,
    isInternalName: () => BJ,
    isIntersectionTypeNode: () => DO,
    isIntrinsicJsxName: () => KI,
    isIterationStatement: () => Lv,
    isJSDoc: () => qm,
    isJSDocAllType: () => i_e,
    isJSDocAugmentsTag: () => LC,
    isJSDocAuthorTag: () => Q6e,
    isJSDocCallbackTag: () => AJ,
    isJSDocClassTag: () => o_e,
    isJSDocCommentContainingNode: () => RW,
    isJSDocConstructSignature: () => zA,
    isJSDocDeprecatedTag: () => wJ,
    isJSDocEnumTag: () => GO,
    isJSDocFunctionType: () => CC,
    isJSDocImplementsTag: () => RJ,
    isJSDocIndexSignature: () => h3,
    isJSDocLikeText: () => qJ,
    isJSDocLink: () => n_e,
    isJSDocLinkCode: () => r_e,
    isJSDocLinkLike: () => $S,
    isJSDocLinkPlain: () => Y6e,
    isJSDocMemberName: () => tb,
    isJSDocNameReference: () => Fk,
    isJSDocNamepathType: () => $6e,
    isJSDocNamespaceBody: () => YOe,
    isJSDocNode: () => wA,
    isJSDocNonNullableType: () => z7,
    isJSDocNullableType: () => AC,
    isJSDocOptionalParameter: () => fO,
    isJSDocOptionalType: () => xJ,
    isJSDocOverloadTag: () => Gk,
    isJSDocOverrideTag: () => J7,
    isJSDocParameterTag: () => rm,
    isJSDocPrivateTag: () => LJ,
    isJSDocPropertyLikeTag: () => PM,
    isJSDocPropertyTag: () => l_e,
    isJSDocProtectedTag: () => IJ,
    isJSDocPublicTag: () => CJ,
    isJSDocReadonlyTag: () => kJ,
    isJSDocReturnTag: () => K7,
    isJSDocSatisfiesExpression: () => kq,
    isJSDocSatisfiesTag: () => X7,
    isJSDocSeeTag: () => Z6e,
    isJSDocSignature: () => P1,
    isJSDocTag: () => DI,
    isJSDocTemplateTag: () => Ep,
    isJSDocThisTag: () => s_e,
    isJSDocThrowsTag: () => tPe,
    isJSDocTypeAlias: () => m_,
    isJSDocTypeAssertion: () => jk,
    isJSDocTypeExpression: () => wT,
    isJSDocTypeLiteral: () => Bk,
    isJSDocTypeTag: () => Uk,
    isJSDocTypedefTag: () => DJ,
    isJSDocUnknownTag: () => ePe,
    isJSDocUnknownType: () => a_e,
    isJSDocVariadicType: () => q7,
    isJSXTagName: () => UI,
    isJsonEqual: () => Tq,
    isJsonSourceFile: () => p_,
    isJsxAttribute: () => nm,
    isJsxAttributeLike: () => VM,
    isJsxAttributes: () => N1,
    isJsxChild: () => tN,
    isJsxClosingElement: () => Dx,
    isJsxClosingFragment: () => e_e,
    isJsxElement: () => Ay,
    isJsxExpression: () => Pk,
    isJsxFragment: () => Rx,
    isJsxOpeningElement: () => kh,
    isJsxOpeningFragment: () => Nx,
    isJsxOpeningLikeElement: () => Qu,
    isJsxOpeningLikeElementTagName: () => Lye,
    isJsxSelfClosingElement: () => wx,
    isJsxSpreadAttribute: () => IT,
    isJsxTagNameExpression: () => wI,
    isJsxText: () => vx,
    isJumpStatementTarget: () => Y8,
    isKeyword: () => Ad,
    isKnownSymbol: () => FN,
    isLabelName: () => E$,
    isLabelOfLabeledStatement: () => b$,
    isLabeledStatement: () => R1,
    isLateVisibilityPaintedStatement: () => $M,
    isLeftHandSideExpression: () => Td,
    isLeftHandSideOfAssignment: () => M8e,
    isLet: () => FI,
    isLineBreak: () => hu,
    isLiteralComputedPropertyDeclarationName: () => NN,
    isLiteralExpression: () => nT,
    isLiteralExpressionOfObject: () => vW,
    isLiteralImportTypeNode: () => j0,
    isLiteralKind: () => LI,
    isLiteralLikeAccess: () => y3,
    isLiteralLikeElementAccess: () => vN,
    isLiteralNameOfPropertyDeclarationOrIndexAccess: () => BF,
    isLiteralTypeLikeExpression: () => _Pe,
    isLiteralTypeLiteral: () => Lce,
    isLiteralTypeNode: () => Z0,
    isLocalName: () => Uv,
    isLogicalOperator: () => sde,
    isLogicalOrCoalescingAssignmentExpression: () => qz,
    isLogicalOrCoalescingAssignmentOperator: () => ZI,
    isLogicalOrCoalescingBinaryExpression: () => qN,
    isLogicalOrCoalescingBinaryOperator: () => zN,
    isMappedTypeNode: () => Dk,
    isMemberName: () => og,
    isMergeDeclarationMarker: () => K6e,
    isMetaProperty: () => Rk,
    isMethodDeclaration: () => ac,
    isMethodOrAccessor: () => LA,
    isMethodSignature: () => Ah,
    isMinusToken: () => _J,
    isMissingDeclaration: () => J6e,
    isModifier: () => fo,
    isModifierKind: () => py,
    isModifierLike: () => nl,
    isModuleAugmentationExternal: () => KW,
    isModuleBlock: () => tm,
    isModuleBody: () => wce,
    isModuleDeclaration: () => Jl,
    isModuleExportsAccessExpression: () => vh,
    isModuleIdentifier: () => hz,
    isModuleName: () => x_e,
    isModuleOrEnumDeclaration: () => ZR,
    isModuleReference: () => Nce,
    isModuleSpecifierLike: () => n9,
    isModuleWithStringLiteralName: () => YM,
    isNameOfFunctionDeclaration: () => A$,
    isNameOfModuleDeclaration: () => x$,
    isNamedClassElement: () => vce,
    isNamedDeclaration: () => gu,
    isNamedEvaluation: () => Yf,
    isNamedEvaluationSource: () => Az,
    isNamedExportBindings: () => hW,
    isNamedExports: () => J_,
    isNamedImportBindings: () => IW,
    isNamedImports: () => xy,
    isNamedImportsOrExports: () => iq,
    isNamedTupleMember: () => wk,
    isNamespaceBody: () => XOe,
    isNamespaceExport: () => Ih,
    isNamespaceExportDeclaration: () => FO,
    isNamespaceImport: () => Gv,
    isNamespaceReexportDeclaration: () => vue,
    isNewExpression: () => D1,
    isNewExpressionTarget: () => cw,
    isNightly: () => jN,
    isNoSubstitutionTemplateLiteral: () => bx,
    isNode: () => qOe,
    isNodeArray: () => f1,
    isNodeArrayMultiLine: () => hde,
    isNodeDescendantOf: () => mT,
    isNodeKind: () => JR,
    isNodeLikeSystem: () => Rj,
    isNodeModulesDirectory: () => vM,
    isNodeWithPossibleHoistedDeclaration: () => wue,
    isNonContextualKeyword: () => Mue,
    isNonExportDefaultModifier: () => DPe,
    isNonGlobalAmbientModule: () => JW,
    isNonGlobalDeclaration: () => wve,
    isNonNullAccess: () => efe,
    isNonNullChain: () => OM,
    isNonNullExpression: () => Ix,
    isNonStaticMethodOrAccessorWithPrivateName: () => ihe,
    isNotEmittedOrPartiallyEmittedNode: () => KOe,
    isNotEmittedStatement: () => TJ,
    isNullishCoalesce: () => mW,
    isNumber: () => ly,
    isNumericLiteral: () => v_,
    isNumericLiteralName: () => xh,
    isObjectBindingElementWithoutPropertyName: () => l6,
    isObjectBindingOrAssignmentElement: () => YR,
    isObjectBindingOrAssignmentPattern: () => xW,
    isObjectBindingPattern: () => Hm,
    isObjectLiteralElement: () => NW,
    isObjectLiteralElementLike: () => my,
    isObjectLiteralExpression: () => Ls,
    isObjectLiteralMethod: () => B_,
    isObjectLiteralOrClassExpressionMethodOrAccessor: () => o3,
    isObjectTypeDeclaration: () => dx,
    isOctalDigit: () => eW,
    isOmittedExpression: () => Rc,
    isOptionalChain: () => yu,
    isOptionalChainRoot: () => xI,
    isOptionalDeclaration: () => Iq,
    isOptionalJSDocPropertyLikeTag: () => dO,
    isOptionalTypeNode: () => hJ,
    isOuterExpression: () => Z7,
    isOutermostOptionalChain: () => AI,
    isOverrideModifier: () => Wfe,
    isPackedArrayLiteral: () => xq,
    isParameter: () => Ba,
    isParameterDeclaration: () => hT,
    isParameterOrCatchClauseVariable: () => Aq,
    isParameterPropertyDeclaration: () => nf,
    isParameterPropertyModifier: () => II,
    isParenthesizedExpression: () => Vd,
    isParenthesizedTypeNode: () => xx,
    isParseTreeNode: () => EI,
    isPartOfTypeNode: () => yh,
    isPartOfTypeQuery: () => p3,
    isPartiallyEmittedExpression: () => H7,
    isPatternMatch: () => q4,
    isPinnedComment: () => KM,
    isPlainJsFile: () => qM,
    isPlusToken: () => fJ,
    isPossiblyTypeArgumentPosition: () => n6,
    isPostfixUnaryExpression: () => yJ,
    isPrefixUnaryExpression: () => Bv,
    isPrivateIdentifier: () => Ni,
    isPrivateIdentifierClassElementDeclaration: () => $u,
    isPrivateIdentifierPropertyAccessExpression: () => AA,
    isPrivateIdentifierSymbol: () => Fue,
    isProgramBundleEmitBuildInfo: () => hge,
    isProgramUptoDate: () => JX,
    isPrologueDirective: () => gp,
    isPropertyAccessChain: () => RM,
    isPropertyAccessEntityNameExpression: () => KN,
    isPropertyAccessExpression: () => Fr,
    isPropertyAccessOrQualifiedName: () => Sce,
    isPropertyAccessOrQualifiedNameOrImportTypeNode: () => Tce,
    isPropertyAssignment: () => zc,
    isPropertyDeclaration: () => to,
    isPropertyName: () => yl,
    isPropertyNameLiteral: () => G_,
    isPropertySignature: () => If,
    isProtoSetter: () => Bue,
    isPrototypeAccess: () => K0,
    isPrototypePropertyAssignment: () => TN,
    isPunctuation: () => qye,
    isPushOrUnshiftIdentifier: () => Cz,
    isQualifiedName: () => Cd,
    isQuestionDotToken: () => F7,
    isQuestionOrExclamationToken: () => b_e,
    isQuestionOrPlusOrMinusToken: () => S_e,
    isQuestionToken: () => Fv,
    isRawSourceMap: () => Yme,
    isReadonlyKeyword: () => jfe,
    isReadonlyKeywordOrPlusOrMinusToken: () => T_e,
    isRecognizedTripleSlashComment: () => jW,
    isReferenceFileLocation: () => UC,
    isReferencedFile: () => rb,
    isRegularExpressionLiteral: () => uJ,
    isRequireCall: () => xd,
    isRequireVariableStatement: () => pz,
    isRestParameter: () => gh,
    isRestTypeNode: () => gJ,
    isReturnStatement: () => bp,
    isReturnStatementWithFixablePromiseHandler: () => N9,
    isRightSideOfAccessExpression: () => lde,
    isRightSideOfPropertyAccess: () => zC,
    isRightSideOfQualifiedName: () => kye,
    isRightSideOfQualifiedNameOrPropertyAccess: () => tk,
    isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName: () => cde,
    isRootedDiskPath: () => km,
    isSameEntityName: () => jA,
    isSatisfiesExpression: () => U6e,
    isScopeMarker: () => Ice,
    isSemicolonClassElement: () => Yfe,
    isSetAccessor: () => hy,
    isSetAccessorDeclaration: () => e_,
    isShebangTrivia: () => tW,
    isShorthandAmbientModuleSymbol: () => MI,
    isShorthandPropertyAssignment: () => t_,
    isSignedNumericLiteral: () => A3,
    isSimpleCopiableExpression: () => G1,
    isSimpleInlineableExpression: () => im,
    isSingleOrDoubleQuote: () => mN,
    isSourceFile: () => qi,
    isSourceFileFromLibrary: () => Ew,
    isSourceFileJS: () => Zu,
    isSourceFileNotJS: () => h8e,
    isSourceFileNotJson: () => fz,
    isSourceMapping: () => $me,
    isSpecialPropertyDeclaration: () => Sue,
    isSpreadAssignment: () => Ox,
    isSpreadElement: () => Lh,
    isStatement: () => wa,
    isStatementButNotDeclaration: () => eN,
    isStatementOrBlock: () => Rce,
    isStatementWithLocals: () => Wce,
    isStatic: () => Ja,
    isStaticModifier: () => Ex,
    isString: () => Ha,
    isStringAKeyword: () => A8e,
    isStringANonContextualKeyword: () => ax,
    isStringAndEmptyAnonymousObjectIntersection: () => zye,
    isStringDoubleQuoted: () => g3,
    isStringLiteral: () => jo,
    isStringLiteralLike: () => xs,
    isStringLiteralOrJsxExpression: () => Oce,
    isStringLiteralOrTemplate: () => hve,
    isStringOrNumericLiteralLike: () => Xf,
    isStringOrRegularExpressionOrTemplateLiteral: () => M$,
    isStringTextContainingNode: () => EW,
    isSuperCall: () => MA,
    isSuperKeyword: () => Ck,
    isSuperOrSuperProperty: () => m8e,
    isSuperProperty: () => ud,
    isSupportedSourceFileName: () => jde,
    isSwitchStatement: () => OO,
    isSyntaxList: () => IC,
    isSyntheticExpression: () => V6e,
    isSyntheticReference: () => kx,
    isTagName: () => T$,
    isTaggedTemplateExpression: () => AT,
    isTaggedTemplateTag: () => Aye,
    isTemplateExpression: () => V7,
    isTemplateHead: () => mC,
    isTemplateLiteral: () => IA,
    isTemplateLiteralKind: () => Cv,
    isTemplateLiteralToken: () => pce,
    isTemplateLiteralTypeNode: () => G6e,
    isTemplateLiteralTypeSpan: () => Jfe,
    isTemplateMiddle: () => Mfe,
    isTemplateMiddleOrTemplateTail: () => MM,
    isTemplateSpan: () => Ok,
    isTemplateTail: () => dJ,
    isTextWhiteSpaceLike: () => tve,
    isThis: () => qC,
    isThisContainerOrFunctionBlock: () => hue,
    isThisIdentifier: () => yT,
    isThisInTypeQuery: () => lx,
    isThisInitializedDeclaration: () => u3,
    isThisInitializedObjectBindingExpression: () => yue,
    isThisProperty: () => dN,
    isThisTypeNode: () => U7,
    isThisTypeParameter: () => vk,
    isThisTypePredicate: () => _8e,
    isThrowStatement: () => EJ,
    isToken: () => qS,
    isTokenKind: () => yW,
    isTraceEnabled: () => Hv,
    isTransientSymbol: () => Om,
    isTrivia: () => YA,
    isTryStatement: () => PO,
    isTupleTypeNode: () => gC,
    isTypeAlias: () => LN,
    isTypeAliasDeclaration: () => em,
    isTypeAssertionExpression: () => Kfe,
    isTypeDeclaration: () => cC,
    isTypeElement: () => rT,
    isTypeKeyword: () => pw,
    isTypeKeywordToken: () => V$,
    isTypeKeywordTokenOrIdentifier: () => YF,
    isTypeLiteralNode: () => uf,
    isTypeNode: () => Gi,
    isTypeNodeKind: () => rq,
    isTypeOfExpression: () => EC,
    isTypeOnlyExportDeclaration: () => mce,
    isTypeOnlyImportDeclaration: () => bW,
    isTypeOnlyImportOrExportDeclaration: () => _1,
    isTypeOperatorNode: () => Ax,
    isTypeParameterDeclaration: () => Fl,
    isTypePredicateNode: () => G7,
    isTypeQueryNode: () => kk,
    isTypeReferenceNode: () => q_,
    isTypeReferenceType: () => HM,
    isUMDExportSymbol: () => M3,
    isUnaryExpression: () => CW,
    isUnaryExpressionWithWrite: () => Cce,
    isUnicodeIdentifierStart: () => bM,
    isUnionTypeNode: () => Sx,
    isUnparsedNode: () => gW,
    isUnparsedPrepend: () => t_e,
    isUnparsedSource: () => kT,
    isUnparsedTextLike: () => _ce,
    isUrl: () => Tle,
    isValidBigIntString: () => X3,
    isValidESSymbolDeclaration: () => due,
    isValidTypeOnlyAliasUseSite: () => mx,
    isValueSignatureDeclaration: () => Due,
    isVarConst: () => ug,
    isVariableDeclaration: () => Ki,
    isVariableDeclarationInVariableStatement: () => i3,
    isVariableDeclarationInitializedToBareOrAccessedRequire: () => b1,
    isVariableDeclarationInitializedToRequire: () => _z,
    isVariableDeclarationList: () => Uu,
    isVariableLike: () => BA,
    isVariableLikeOrAccessor: () => cue,
    isVariableStatement: () => uc,
    isVoidExpression: () => Lx,
    isWatchSet: () => H8e,
    isWhileStatement: () => H6e,
    isWhiteSpaceLike: () => ag,
    isWhiteSpaceSingleLine: () => Dm,
    isWithStatement: () => $fe,
    isWriteAccess: () => ok,
    isWriteOnlyAccess: () => eq,
    isYieldExpression: () => j7,
    jsxModeNeedsExplicitImport: () => mQ,
    keywordPart: () => Wd,
    last: () => qo,
    lastOrUndefined: () => tl,
    length: () => Le,
    libMap: () => l8,
    libs: () => s8,
    lineBreakPart: () => YC,
    linkNamePart: () => lve,
    linkPart: () => $$,
    linkTextPart: () => a9,
    listFiles: () => hY,
    loadModuleFromGlobalCache: () => yme,
    loadWithModeAwareCache: () => M8,
    makeIdentifierFromModuleName: () => Qce,
    makeImport: () => Dy,
    makeImportIfNecessary: () => Zye,
    makeStringLiteral: () => ZF,
    mangleScopedPackageName: () => Yk,
    map: () => jt,
    mapAllOrFail: () => OS,
    mapDefined: () => ia,
    mapDefinedEntries: () => iI,
    mapDefinedIterator: () => _A,
    mapEntries: () => Ese,
    mapIterator: () => ao,
    mapOneOrMany: () => Ave,
    mapToDisplayParts: () => Jv,
    matchFiles: () => mq,
    matchPatternOrExact: () => yq,
    matchedText: () => Vse,
    matchesExclude: () => p5,
    maybeBind: () => Uo,
    maybeSetLocalizedDiagnosticMessages: () => Cde,
    memoize: () => Ed,
    memoizeCached: () => Rse,
    memoizeOne: () => Lm,
    memoizeWeak: () => INe,
    metadataHelper: () => d7,
    min: () => Ij,
    minAndMax: () => zde,
    missingFileModifiedTime: () => ng,
    modifierToFlag: () => ux,
    modifiersToFlags: () => Gm,
    moduleOptionDeclaration: () => yK,
    moduleResolutionIsEqualTo: () => jce,
    moduleResolutionNameAndModeGetter: () => lw,
    moduleResolutionOptionDeclarations: () => h5,
    moduleResolutionSupportsPackageJsonExportsAndImports: () => _x,
    moduleResolutionUsesNodeModules: () => QF,
    moduleSpecifiers: () => B1,
    moveEmitHelpers: () => Ife,
    moveRangeEnd: () => O3,
    moveRangePastDecorators: () => Ov,
    moveRangePastModifiers: () => $p,
    moveRangePos: () => Y0,
    moveSyntheticComments: () => Afe,
    mutateMap: () => rC,
    mutateMapSkippingNewValues: () => pg,
    needsParentheses: () => iQ,
    needsScopeMarker: () => GM,
    newCaseClauseTracker: () => T9,
    newPrivateEnvironment: () => she,
    noEmitNotification: () => I8,
    noEmitSubstitution: () => tw,
    noTransformers: () => LX,
    noTruncationMaximumTruncationLength: () => e7,
    nodeCanBeDecorated: () => f3,
    nodeHasName: () => WR,
    nodeIsDecorated: () => UA,
    nodeIsMissing: () => Al,
    nodeIsPresent: () => __,
    nodeIsSynthesized: () => Zs,
    nodeModuleNameResolver: () => nme,
    nodeModulesPathPart: () => Cy,
    nodeNextJsonConfigResolver: () => rme,
    nodeOrChildIsDecorated: () => _N,
    nodeOverlapsWithStartEnd: () => L$,
    nodePosToString: () => i8e,
    nodeSeenTracker: () => JC,
    nodeStartsNewLexicalEnvironment: () => Lz,
    nodeToDisplayParts: () => M5e,
    noop: () => so,
    noopFileWatcher: () => jC,
    noopPush: () => $4,
    normalizePath: () => Jo,
    normalizeSlashes: () => Qc,
    not: () => K4,
    notImplemented: () => Wa,
    notImplementedResolver: () => iF,
    nullNodeConverters: () => Xq,
    nullParenthesizerRules: () => Kq,
    nullTransformationContext: () => bg,
    objectAllocator: () => jc,
    operatorPart: () => mw,
    optionDeclarations: () => yg,
    optionMapToObject: () => iK,
    optionsAffectingProgramStructure: () => TK,
    optionsForBuild: () => xK,
    optionsForWatch: () => c8,
    optionsHaveChanges: () => DA,
    optionsHaveModuleResolutionChanges: () => Fce,
    or: () => Im,
    orderedRemoveItem: () => z4,
    orderedRemoveItemAt: () => i1,
    outFile: () => qs,
    packageIdToPackageName: () => WM,
    packageIdToString: () => oT,
    padLeft: () => GS,
    padRight: () => NNe,
    paramHelper: () => f7,
    parameterIsThisKeyword: () => x1,
    parameterNamePart: () => ive,
    parseBaseNodeFactory: () => $J,
    parseBigInt: () => qde,
    parseBuildCommand: () => XPe,
    parseCommandLine: () => KPe,
    parseCommandLineWorker: () => eK,
    parseConfigFileTextToJson: () => rK,
    parseConfigFileWithSystem: () => A7e,
    parseConfigHostFromCompilerHostLike: () => _F,
    parseCustomTypeOption: () => c5,
    parseIsolatedEntityName: () => Bx,
    parseIsolatedJSDocComment: () => J_e,
    parseJSDocTypeExpressionForTests: () => jPe,
    parseJsonConfigFileContent: () => a4e,
    parseJsonSourceFileConfigFileContent: () => n8,
    parseJsonText: () => $O,
    parseListTypeOption: () => ipe,
    parseNodeFactory: () => Jm,
    parseNodeModuleFromPath: () => NK,
    parsePackageName: () => FK,
    parsePseudoBigInt: () => pk,
    parseValidBigInt: () => Sq,
    patchWriteFileEnsuringDirectory: () => Ele,
    pathContainsNodeModules: () => Gx,
    pathIsAbsolute: () => fI,
    pathIsBareSpecifier: () => qH,
    pathIsRelative: () => Sf,
    patternText: () => Use,
    perfLogger: () => zp,
    performIncrementalCompilation: () => L7e,
    performance: () => vR,
    plainJSErrors: () => yF,
    positionBelongsToNode: () => I$,
    positionIsASICandidate: () => u9,
    positionIsSynthesized: () => Qp,
    positionsAreOnSameLine: () => g_,
    preProcessFile: () => a0e,
    probablyUsesSemicolons: () => d9,
    processCommentPragmas: () => XJ,
    processPragmasIntoFields: () => YJ,
    processTaggedTemplateExpression: () => gX,
    programContainsEsModules: () => Qye,
    programContainsModules: () => $ye,
    projectReferenceIsEqualTo: () => GW,
    propKeyHelper: () => A7,
    propertyNamePart: () => ave,
    pseudoBigIntToString: () => I1,
    punctuationPart: () => Tu,
    pushIfUnique: () => d_,
    quote: () => yw,
    quotePreferenceFromString: () => z$,
    rangeContainsPosition: () => $8,
    rangeContainsPositionExclusive: () => Q8,
    rangeContainsRange: () => df,
    rangeContainsRangeExclusive: () => Dye,
    rangeContainsStartEnd: () => Z8,
    rangeEndIsOnSameLineAsRangeStart: () => YN,
    rangeEndPositionsAreOnSameLine: () => pde,
    rangeEquals: () => Tj,
    rangeIsOnSingleLine: () => bT,
    rangeOfNode: () => bq,
    rangeOfTypeParameters: () => Eq,
    rangeOverlapsWithStartEnd: () => dw,
    rangeStartIsOnSameLineAsRangeEnd: () => mde,
    rangeStartPositionsAreOnSameLine: () => P3,
    readBuilderProgram: () => IF,
    readConfigFile: () => ZO,
    readHelper: () => S7,
    readJson: () => nk,
    readJsonConfigFile: () => lpe,
    readJsonOrUndefined: () => Yz,
    realizeDiagnostics: () => iZ,
    reduceEachLeadingCommentRange: () => Ile,
    reduceEachTrailingCommentRange: () => kle,
    reduceLeft: () => Ru,
    reduceLeftIterator: () => kr,
    reducePathComponents: () => YE,
    refactor: () => Hw,
    regExpEscape: () => o6e,
    relativeComplement: () => Sse,
    removeAllComments: () => vO,
    removeEmitHelper: () => P6e,
    removeExtension: () => oO,
    removeFileExtension: () => Ud,
    removeIgnoredPath: () => pY,
    removeMinAndVersionNumbers: () => Gse,
    removeOptionality: () => jye,
    removePrefix: () => lI,
    removeSuffix: () => gA,
    removeTrailingDirectorySeparator: () => $E,
    repeatString: () => o6,
    replaceElement: () => xj,
    resolutionExtensionIsTSOrJson: () => sO,
    resolveConfigFileProjectName: () => LY,
    resolveJSModule: () => Zpe,
    resolveModuleName: () => Jk,
    resolveModuleNameFromCache: () => O4e,
    resolvePackageNameToPackageJson: () => I4e,
    resolvePath: () => bv,
    resolveProjectReferencePath: () => sw,
    resolveTripleslashReference: () => sF,
    resolveTypeReferenceDirective: () => LK,
    resolvingEmptyArray: () => Z3,
    restHelper: () => v7,
    returnFalse: () => t1,
    returnNoopFileWatcher: () => j8,
    returnTrue: () => n1,
    returnUndefined: () => M0,
    returnsPromise: () => MQ,
    runInitializersHelper: () => p7,
    sameFlatMap: () => KE,
    sameMap: () => _a,
    sameMapping: () => TMe,
    scanShebangTrivia: () => nW,
    scanTokenAtPosition: () => oue,
    scanner: () => Su,
    screenStartingMessageCodes: () => LF,
    semanticDiagnosticsOptionDeclarations: () => vK,
    serializeCompilerOptions: () => oK,
    server: () => Tye,
    servicesVersion: () => ZQ,
    setCommentRange: () => Hc,
    setConfigFileInOptions: () => lK,
    setConstantValue: () => Lfe,
    setEachParent: () => sC,
    setEmitFlags: () => or,
    setFunctionNameHelper: () => C7,
    setGetSourceFileAsHashVersioned: () => CF,
    setIdentifierAutoGenerate: () => xO,
    setIdentifierGeneratedImportReference: () => Dfe,
    setIdentifierTypeArguments: () => Ty,
    setInternalEmitFlags: () => bO,
    setLocalizedDiagnosticMessages: () => Ade,
    setModuleDefaultHelper: () => k7,
    setNodeFlags: () => Xde,
    setObjectAllocator: () => xde,
    setOriginalNode: () => Wr,
    setParent: () => Vo,
    setParentRecursive: () => Mv,
    setPrivateIdentifier: () => MT,
    setResolvedModule: () => Uce,
    setResolvedTypeReferenceDirective: () => Vce,
    setSnippetElement: () => aJ,
    setSourceMapRange: () => fs,
    setStackTraceLimit: () => lOe,
    setStartsOnNewLine: () => rJ,
    setSyntheticLeadingComments: () => w1,
    setSyntheticTrailingComments: () => _C,
    setSys: () => gOe,
    setSysLog: () => gle,
    setTextRange: () => ht,
    setTextRangeEnd: () => oC,
    setTextRangePos: () => mk,
    setTextRangePosEnd: () => Vm,
    setTextRangePosWidth: () => hk,
    setTokenSourceMapRange: () => xfe,
    setTypeNode: () => kfe,
    setUILocale: () => Mse,
    setValueDeclaration: () => SN,
    shouldAllowImportingTsExtension: () => $k,
    shouldPreserveConstEnums: () => C1,
    shouldUseUriStyleNodeCoreModules: () => b9,
    showModuleSpecifier: () => bde,
    signatureHasLiteralTypes: () => $K,
    signatureHasRestParameter: () => Eu,
    signatureToDisplayParts: () => Q$,
    single: () => Sj,
    singleElementArray: () => XE,
    singleIterator: () => yNe,
    singleOrMany: () => Cm,
    singleOrUndefined: () => Am,
    skipAlias: () => cf,
    skipAssertions: () => cPe,
    skipConstraint: () => j$,
    skipOuterExpressions: () => bu,
    skipParentheses: () => js,
    skipPartiallyEmittedExpressions: () => M_,
    skipTrivia: () => Ko,
    skipTypeChecking: () => _k,
    skipTypeParentheses: () => Ez,
    skipWhile: () => zse,
    sliceAfter: () => vq,
    some: () => kt,
    sort: () => aI,
    sortAndDeduplicate: () => cR,
    sortAndDeduplicateDiagnostics: () => TA,
    sourceFileAffectingCompilerOptions: () => g5,
    sourceFileMayBeEmitted: () => sx,
    sourceMapCommentRegExp: () => q5,
    sourceMapCommentRegExpDontCareLineStart: () => oX,
    spacePart: () => bl,
    spanMap: () => B4,
    spreadArrayHelper: () => x7,
    stableSort: () => sy,
    startEndContainsRange: () => C$,
    startEndOverlapsWithStartEnd: () => GF,
    startOnNewLine: () => Vu,
    startTracing: () => dle,
    startsWith: () => xa,
    startsWithDirectory: () => YH,
    startsWithUnderscore: () => pQ,
    startsWithUseStrict: () => __e,
    stringContains: () => pu,
    stringContainsAt: () => kve,
    stringToToken: () => ZE,
    stripQuotes: () => V_,
    supportedDeclarationExtensions: () => r7,
    supportedJSExtensions: () => qq,
    supportedJSExtensionsFlat: () => Ek,
    supportedLocaleDirectories: () => MW,
    supportedTSExtensions: () => dC,
    supportedTSExtensionsFlat: () => zq,
    supportedTSImplementationExtensions: () => i7,
    suppressLeadingAndTrailingTrivia: () => zd,
    suppressLeadingTrivia: () => o9,
    suppressTrailingTrivia: () => mve,
    symbolEscapedNameNoDefault: () => t9,
    symbolName: () => Ml,
    symbolNameNoDefault: () => e9,
    symbolPart: () => rve,
    symbolToDisplayParts: () => hw,
    syntaxMayBeASICandidate: () => yQ,
    syntaxRequiresTrailingSemicolonOrASI: () => c9,
    sys: () => $c,
    sysLog: () => CR,
    tagNamesAreEquivalent: () => nb,
    takeWhile: () => X4,
    targetOptionDeclaration: () => d8,
    templateObjectHelper: () => T7,
    testFormatSettings: () => xye,
    textChangeRangeIsUnchanged: () => Jle,
    textChangeRangeNewSpan: () => bI,
    textChanges: () => gr,
    textOrKeywordPart: () => Y$,
    textPart: () => Rf,
    textRangeContainsPositionInclusive: () => CM,
    textSpanContainsPosition: () => iW,
    textSpanContainsTextSpan: () => Hle,
    textSpanEnd: () => iu,
    textSpanIntersection: () => qle,
    textSpanIntersectsWith: () => LM,
    textSpanIntersectsWithPosition: () => zle,
    textSpanIntersectsWithTextSpan: () => OOe,
    textSpanIsEmpty: () => jle,
    textSpanOverlap: () => Wle,
    textSpanOverlapsWith: () => NOe,
    textSpansEqual: () => XC,
    textToKeywordObj: () => VR,
    timestamp: () => il,
    toArray: () => pR,
    toBuilderFileEmit: () => bge,
    toBuilderStateFileInfoForMultiEmit: () => vge,
    toEditorSettings: () => E6,
    toFileNameLowerCase: () => N_,
    toLowerCase: () => Dse,
    toPath: () => zs,
    toProgramEmitPending: () => Ege,
    tokenIsIdentifierOrKeyword: () => Yu,
    tokenIsIdentifierOrKeywordOrGreaterThan: () => Cle,
    tokenToString: () => yo,
    trace: () => ha,
    tracing: () => bi,
    tracingEnabled: () => bR,
    transform: () => d9e,
    transformClassFields: () => fhe,
    transformDeclarations: () => xX,
    transformECMAScriptModule: () => TX,
    transformES2015: () => Che,
    transformES2016: () => xhe,
    transformES2017: () => hhe,
    transformES2018: () => ghe,
    transformES2019: () => yhe,
    transformES2020: () => vhe,
    transformES2021: () => bhe,
    transformES5: () => Lhe,
    transformESDecorators: () => mhe,
    transformESNext: () => Ehe,
    transformGenerators: () => Ihe,
    transformJsx: () => The,
    transformLegacyDecorators: () => phe,
    transformModule: () => EX,
    transformNodeModule: () => Dhe,
    transformNodes: () => k8,
    transformSystemModule: () => whe,
    transformTypeScript: () => uhe,
    transpile: () => FFe,
    transpileModule: () => m0e,
    transpileOptionValueCompilerOptions: () => SK,
    trimString: () => a1,
    trimStringEnd: () => gR,
    trimStringStart: () => cI,
    tryAddToSet: () => hv,
    tryAndIgnoreErrors: () => m9,
    tryCast: () => ai,
    tryDirectoryExists: () => p9,
    tryExtractTSExtension: () => N3,
    tryFileExists: () => _9,
    tryGetClassExtendingExpressionWithTypeArguments: () => Jz,
    tryGetClassImplementingOrExtendingExpressionWithTypeArguments: () => Kz,
    tryGetDirectories: () => f9,
    tryGetExtensionFromPath: () => Sh,
    tryGetImportFromModuleSpecifier: () => CN,
    tryGetJSDocSatisfiesTypeNode: () => Q3,
    tryGetModuleNameFromFile: () => WO,
    tryGetModuleSpecifierFromDeclaration: () => xN,
    tryGetNativePerformanceHooks: () => sle,
    tryGetPropertyAccessOrIdentifierToString: () => XN,
    tryGetPropertyNameOfBindingOrAssignmentElement: () => t5,
    tryGetSourceMappingURL: () => Xme,
    tryGetTextOfPropertyName: () => QM,
    tryIOAndConsumeErrors: () => h9,
    tryParsePattern: () => aC,
    tryParsePatterns: () => J3,
    tryParseRawSourceMap: () => iX,
    tryReadDirectory: () => lQ,
    tryReadFile: () => e8,
    tryRemoveDirectoryPrefix: () => dq,
    tryRemoveExtension: () => Wde,
    tryRemovePrefix: () => Dj,
    tryRemoveSuffix: () => Bse,
    typeAcquisitionDeclarations: () => v5,
    typeAliasNamePart: () => ove,
    typeDirectiveIsEqualTo: () => Hce,
    typeKeywords: () => S9,
    typeParameterNamePart: () => sve,
    typeReferenceResolutionNameAndModeGetter: () => B8,
    typeToDisplayParts: () => d6,
    unchangedPollThresholds: () => kR,
    unchangedTextChangeRange: () => PW,
    unescapeLeadingUnderscores: () => ta,
    unmangleScopedPackageName: () => O5,
    unorderedRemoveItem: () => hR,
    unorderedRemoveItemAt: () => kj,
    unreachableCodeIsError: () => Nde,
    unusedLabelIsError: () => Ode,
    unwrapInnermostStatementOfLabel: () => lz,
    updateErrorForNoInputFiles: () => uK,
    updateLanguageServiceSourceFile: () => $Q,
    updateMissingFilePathsWatch: () => Xhe,
    updatePackageJsonWatch: () => J3e,
    updateResolutionField: () => FC,
    updateSharedExtendedConfigFileWatcher: () => OX,
    updateSourceFile: () => KJ,
    updateWatchingWildcardDirectories: () => aF,
    usesExtensionsOnImports: () => Vde,
    usingSingleLineStringWriter: () => NI,
    utf16EncodeAsString: () => vI,
    validateLocaleAndSetLanguage: () => FOe,
    valuesHelper: () => L7,
    version: () => Se,
    versionMajorMinor: () => pe,
    visitArray: () => rX,
    visitCommaListElements: () => A8,
    visitEachChild: () => Bn,
    visitFunctionBody: () => wf,
    visitIterationBody: () => b_,
    visitLexicalEnvironment: () => z5,
    visitNode: () => lt,
    visitNodes: () => Jn,
    visitParameterList: () => Kl,
    walkUpBindingElementsAndPatterns: () => SA,
    walkUpLexicalEnvironments: () => ohe,
    walkUpOuterExpressions: () => p_e,
    walkUpParenthesizedExpressions: () => Dv,
    walkUpParenthesizedTypes: () => DN,
    walkUpParenthesizedTypesAndGetParentAndChild: () => Nue,
    whitespaceOrMapCommentRegExp: () => J5,
    writeCommentRange: () => eC,
    writeFile: () => XI,
    writeFileEnsuringDirectories: () => Uz,
    zipToModeAwareCache: () => RK,
    zipWith: () => ui
  });
  var EAe = C({
    "src/typescript/_namespaces/ts.ts"() {
      Oa(), NF(), $r(), vU();
    }
  }), lYe = B({
    "src/typescript/typescript.ts"(e, t) {
      EAe(), EAe(), typeof console < "u" && (D.loggingHost = {
        log(r, i) {
          switch (r) {
            case 1:
              return console.error(i);
            case 2:
              return console.warn(i);
            case 3:
              return console.log(i);
            case 4:
              return console.log(i);
          }
        }
      }), t.exports = bAe;
    }
  });
  return lYe();
})();
typeof uj < "u" && uj.exports && (uj.exports = Zb);
var Nut = Zb.createClassifier, hNe = Zb.createLanguageService, Out = Zb.displayPartsToString, Put = Zb.EndOfLineState, Mut = Zb.flattenDiagnosticMessageText, Fut = Zb.IndentStyle, QL = Zb.ScriptKind, But = Zb.ScriptTarget, Gut = Zb.TokenClass, gNe = Zb, ba = {};
ba["lib.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es5" />
/// <reference lib="dom" />
/// <reference lib="webworker.importscripts" />
/// <reference lib="scripthost" />
`;
ba["lib.decorators.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/**
 * The decorator context types provided to class element decorators.
 */
type ClassMemberDecoratorContext =
    | ClassMethodDecoratorContext
    | ClassGetterDecoratorContext
    | ClassSetterDecoratorContext
    | ClassFieldDecoratorContext
    | ClassAccessorDecoratorContext
    ;

/**
 * The decorator context types provided to any decorator.
 */
type DecoratorContext =
    | ClassDecoratorContext
    | ClassMemberDecoratorContext
    ;

/**
 * Context provided to a class decorator.
 * @template Class The type of the decorated class associated with this context.
 */
interface ClassDecoratorContext<
    Class extends abstract new (...args: any) => any = abstract new (...args: any) => any,
> {
    /** The kind of element that was decorated. */
    readonly kind: "class";

    /** The name of the decorated class. */
    readonly name: string | undefined;

    /**
     * Adds a callback to be invoked after the class definition has been finalized.
     *
     * @example
     * \`\`\`ts
     * function customElement(name: string): ClassDecoratorFunction {
     *   return (target, context) => {
     *     context.addInitializer(function () {
     *       customElements.define(name, this);
     *     });
     *   }
     * }
     *
     * @customElement("my-element")
     * class MyElement {}
     * \`\`\`
     */
    addInitializer(initializer: (this: Class) => void): void;
}

/**
 * Context provided to a class method decorator.
 * @template This The type on which the class element will be defined. For a static class element, this will be
 * the type of the constructor. For a non-static class element, this will be the type of the instance.
 * @template Value The type of the decorated class method.
 */
interface ClassMethodDecoratorContext<
    This = unknown,
    Value extends (this: This, ...args: any) => any = (this: This, ...args: any) => any,
> {
    /** The kind of class element that was decorated. */
    readonly kind: "method";

    /** The name of the decorated class element. */
    readonly name: string | symbol;

    /** A value indicating whether the class element is a static (\`true\`) or instance (\`false\`) element. */
    readonly static: boolean;

    /** A value indicating whether the class element has a private name. */
    readonly private: boolean;

    /** An object that can be used to access the current value of the class element at runtime. */
    readonly access: {
        /**
         * Determines whether an object has a property with the same name as the decorated element.
         */
        has(object: This): boolean;
        /**
         * Gets the current value of the method from the provided object.
         *
         * @example
         * let fn = context.access.get(instance);
         */
        get(object: This): Value;
    };

    /**
     * Adds a callback to be invoked either before static initializers are run (when
     * decorating a \`static\` element), or before instance initializers are run (when
     * decorating a non-\`static\` element).
     *
     * @example
     * \`\`\`ts
     * const bound: ClassMethodDecoratorFunction = (value, context) {
     *   if (context.private) throw new TypeError("Not supported on private methods.");
     *   context.addInitializer(function () {
     *     this[context.name] = this[context.name].bind(this);
     *   });
     * }
     *
     * class C {
     *   message = "Hello";
     *
     *   @bound
     *   m() {
     *     console.log(this.message);
     *   }
     * }
     * \`\`\`
     */
    addInitializer(initializer: (this: This) => void): void;
}

/**
 * Context provided to a class getter decorator.
 * @template This The type on which the class element will be defined. For a static class element, this will be
 * the type of the constructor. For a non-static class element, this will be the type of the instance.
 * @template Value The property type of the decorated class getter.
 */
interface ClassGetterDecoratorContext<
    This = unknown,
    Value = unknown,
> {
    /** The kind of class element that was decorated. */
    readonly kind: "getter";

    /** The name of the decorated class element. */
    readonly name: string | symbol;

    /** A value indicating whether the class element is a static (\`true\`) or instance (\`false\`) element. */
    readonly static: boolean;

    /** A value indicating whether the class element has a private name. */
    readonly private: boolean;

    /** An object that can be used to access the current value of the class element at runtime. */
    readonly access: {
        /**
         * Determines whether an object has a property with the same name as the decorated element.
         */
        has(object: This): boolean;
        /**
         * Invokes the getter on the provided object.
         *
         * @example
         * let value = context.access.get(instance);
         */
        get(object: This): Value;
    };

    /**
     * Adds a callback to be invoked either before static initializers are run (when
     * decorating a \`static\` element), or before instance initializers are run (when
     * decorating a non-\`static\` element).
     */
    addInitializer(initializer: (this: This) => void): void;
}

/**
 * Context provided to a class setter decorator.
 * @template This The type on which the class element will be defined. For a static class element, this will be
 * the type of the constructor. For a non-static class element, this will be the type of the instance.
 * @template Value The type of the decorated class setter.
 */
interface ClassSetterDecoratorContext<
    This = unknown,
    Value = unknown,
> {
    /** The kind of class element that was decorated. */
    readonly kind: "setter";

    /** The name of the decorated class element. */
    readonly name: string | symbol;

    /** A value indicating whether the class element is a static (\`true\`) or instance (\`false\`) element. */
    readonly static: boolean;

    /** A value indicating whether the class element has a private name. */
    readonly private: boolean;

    /** An object that can be used to access the current value of the class element at runtime. */
    readonly access: {
        /**
         * Determines whether an object has a property with the same name as the decorated element.
         */
        has(object: This): boolean;
        /**
         * Invokes the setter on the provided object.
         *
         * @example
         * context.access.set(instance, value);
         */
        set(object: This, value: Value): void;
    };

    /**
     * Adds a callback to be invoked either before static initializers are run (when
     * decorating a \`static\` element), or before instance initializers are run (when
     * decorating a non-\`static\` element).
     */
    addInitializer(initializer: (this: This) => void): void;
}

/**
 * Context provided to a class \`accessor\` field decorator.
 * @template This The type on which the class element will be defined. For a static class element, this will be
 * the type of the constructor. For a non-static class element, this will be the type of the instance.
 * @template Value The type of decorated class field.
 */
interface ClassAccessorDecoratorContext<
    This = unknown,
    Value = unknown,
> {
    /** The kind of class element that was decorated. */
    readonly kind: "accessor";

    /** The name of the decorated class element. */
    readonly name: string | symbol;

    /** A value indicating whether the class element is a static (\`true\`) or instance (\`false\`) element. */
    readonly static: boolean;

    /** A value indicating whether the class element has a private name. */
    readonly private: boolean;

    /** An object that can be used to access the current value of the class element at runtime. */
    readonly access: {
        /**
         * Determines whether an object has a property with the same name as the decorated element.
         */
        has(object: This): boolean;

        /**
         * Invokes the getter on the provided object.
         *
         * @example
         * let value = context.access.get(instance);
         */
        get(object: This): Value;

        /**
         * Invokes the setter on the provided object.
         *
         * @example
         * context.access.set(instance, value);
         */
        set(object: This, value: Value): void;
    };

    /**
     * Adds a callback to be invoked either before static initializers are run (when
     * decorating a \`static\` element), or before instance initializers are run (when
     * decorating a non-\`static\` element).
     */
    addInitializer(initializer: (this: This) => void): void;
}

/**
 * Describes the target provided to class \`accessor\` field decorators.
 * @template This The \`this\` type to which the target applies.
 * @template Value The property type for the class \`accessor\` field.
 */
interface ClassAccessorDecoratorTarget<This, Value> {
    /**
     * Invokes the getter that was defined prior to decorator application.
     *
     * @example
     * let value = target.get.call(instance);
     */
    get(this: This): Value;

    /**
     * Invokes the setter that was defined prior to decorator application.
     *
     * @example
     * target.set.call(instance, value);
     */
    set(this: This, value: Value): void;
}

/**
 * Describes the allowed return value from a class \`accessor\` field decorator.
 * @template This The \`this\` type to which the target applies.
 * @template Value The property type for the class \`accessor\` field.
 */
interface ClassAccessorDecoratorResult<This, Value> {
    /**
     * An optional replacement getter function. If not provided, the existing getter function is used instead.
     */
    get?(this: This): Value;

    /**
     * An optional replacement setter function. If not provided, the existing setter function is used instead.
     */
    set?(this: This, value: Value): void;

    /**
     * An optional initializer mutator that is invoked when the underlying field initializer is evaluated.
     * @param value The incoming initializer value.
     * @returns The replacement initializer value.
     */
    init?(this: This, value: Value): Value;
}

/**
 * Context provided to a class field decorator.
 * @template This The type on which the class element will be defined. For a static class element, this will be
 * the type of the constructor. For a non-static class element, this will be the type of the instance.
 * @template Value The type of the decorated class field.
 */
interface ClassFieldDecoratorContext<
    This = unknown,
    Value = unknown,
> {
    /** The kind of class element that was decorated. */
    readonly kind: "field";

    /** The name of the decorated class element. */
    readonly name: string | symbol;

    /** A value indicating whether the class element is a static (\`true\`) or instance (\`false\`) element. */
    readonly static: boolean;

    /** A value indicating whether the class element has a private name. */
    readonly private: boolean;

    /** An object that can be used to access the current value of the class element at runtime. */
    readonly access: {
        /**
         * Determines whether an object has a property with the same name as the decorated element.
         */
        has(object: This): boolean;

        /**
         * Gets the value of the field on the provided object.
         */
        get(object: This): Value;

        /**
         * Sets the value of the field on the provided object.
         */
        set(object: This, value: Value): void;
    };

    /**
     * Adds a callback to be invoked either before static initializers are run (when
     * decorating a \`static\` element), or before instance initializers are run (when
     * decorating a non-\`static\` element).
     */
    addInitializer(initializer: (this: This) => void): void;
}
`;
ba["lib.decorators.legacy.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

declare type ClassDecorator = <TFunction extends Function>(target: TFunction) => TFunction | void;
declare type PropertyDecorator = (target: Object, propertyKey: string | symbol) => void;
declare type MethodDecorator = <T>(target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T> | void;
declare type ParameterDecorator = (target: Object, propertyKey: string | symbol, parameterIndex: number) => void;
`;
ba["lib.dom.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/////////////////////////////
/// Window APIs
/////////////////////////////

interface AddEventListenerOptions extends EventListenerOptions {
    once?: boolean;
    passive?: boolean;
    signal?: AbortSignal;
}

interface AesCbcParams extends Algorithm {
    iv: BufferSource;
}

interface AesCtrParams extends Algorithm {
    counter: BufferSource;
    length: number;
}

interface AesDerivedKeyParams extends Algorithm {
    length: number;
}

interface AesGcmParams extends Algorithm {
    additionalData?: BufferSource;
    iv: BufferSource;
    tagLength?: number;
}

interface AesKeyAlgorithm extends KeyAlgorithm {
    length: number;
}

interface AesKeyGenParams extends Algorithm {
    length: number;
}

interface Algorithm {
    name: string;
}

interface AnalyserOptions extends AudioNodeOptions {
    fftSize?: number;
    maxDecibels?: number;
    minDecibels?: number;
    smoothingTimeConstant?: number;
}

interface AnimationEventInit extends EventInit {
    animationName?: string;
    elapsedTime?: number;
    pseudoElement?: string;
}

interface AnimationPlaybackEventInit extends EventInit {
    currentTime?: CSSNumberish | null;
    timelineTime?: CSSNumberish | null;
}

interface AssignedNodesOptions {
    flatten?: boolean;
}

interface AudioBufferOptions {
    length: number;
    numberOfChannels?: number;
    sampleRate: number;
}

interface AudioBufferSourceOptions {
    buffer?: AudioBuffer | null;
    detune?: number;
    loop?: boolean;
    loopEnd?: number;
    loopStart?: number;
    playbackRate?: number;
}

interface AudioConfiguration {
    bitrate?: number;
    channels?: string;
    contentType: string;
    samplerate?: number;
    spatialRendering?: boolean;
}

interface AudioContextOptions {
    latencyHint?: AudioContextLatencyCategory | number;
    sampleRate?: number;
}

interface AudioNodeOptions {
    channelCount?: number;
    channelCountMode?: ChannelCountMode;
    channelInterpretation?: ChannelInterpretation;
}

interface AudioProcessingEventInit extends EventInit {
    inputBuffer: AudioBuffer;
    outputBuffer: AudioBuffer;
    playbackTime: number;
}

interface AudioTimestamp {
    contextTime?: number;
    performanceTime?: DOMHighResTimeStamp;
}

interface AudioWorkletNodeOptions extends AudioNodeOptions {
    numberOfInputs?: number;
    numberOfOutputs?: number;
    outputChannelCount?: number[];
    parameterData?: Record<string, number>;
    processorOptions?: any;
}

interface AuthenticationExtensionsClientInputs {
    appid?: string;
    credProps?: boolean;
    hmacCreateSecret?: boolean;
}

interface AuthenticationExtensionsClientOutputs {
    appid?: boolean;
    credProps?: CredentialPropertiesOutput;
    hmacCreateSecret?: boolean;
}

interface AuthenticatorSelectionCriteria {
    authenticatorAttachment?: AuthenticatorAttachment;
    requireResidentKey?: boolean;
    residentKey?: ResidentKeyRequirement;
    userVerification?: UserVerificationRequirement;
}

interface BiquadFilterOptions extends AudioNodeOptions {
    Q?: number;
    detune?: number;
    frequency?: number;
    gain?: number;
    type?: BiquadFilterType;
}

interface BlobEventInit {
    data: Blob;
    timecode?: DOMHighResTimeStamp;
}

interface BlobPropertyBag {
    endings?: EndingType;
    type?: string;
}

interface CSSStyleSheetInit {
    baseURL?: string;
    disabled?: boolean;
    media?: MediaList | string;
}

interface CacheQueryOptions {
    ignoreMethod?: boolean;
    ignoreSearch?: boolean;
    ignoreVary?: boolean;
}

interface CanvasRenderingContext2DSettings {
    alpha?: boolean;
    colorSpace?: PredefinedColorSpace;
    desynchronized?: boolean;
    willReadFrequently?: boolean;
}

interface ChannelMergerOptions extends AudioNodeOptions {
    numberOfInputs?: number;
}

interface ChannelSplitterOptions extends AudioNodeOptions {
    numberOfOutputs?: number;
}

interface CheckVisibilityOptions {
    checkOpacity?: boolean;
    checkVisibilityCSS?: boolean;
}

interface ClientQueryOptions {
    includeUncontrolled?: boolean;
    type?: ClientTypes;
}

interface ClipboardEventInit extends EventInit {
    clipboardData?: DataTransfer | null;
}

interface ClipboardItemOptions {
    presentationStyle?: PresentationStyle;
}

interface CloseEventInit extends EventInit {
    code?: number;
    reason?: string;
    wasClean?: boolean;
}

interface CompositionEventInit extends UIEventInit {
    data?: string;
}

interface ComputedEffectTiming extends EffectTiming {
    activeDuration?: CSSNumberish;
    currentIteration?: number | null;
    endTime?: CSSNumberish;
    localTime?: CSSNumberish | null;
    progress?: number | null;
    startTime?: CSSNumberish;
}

interface ComputedKeyframe {
    composite: CompositeOperationOrAuto;
    computedOffset: number;
    easing: string;
    offset: number | null;
    [property: string]: string | number | null | undefined;
}

interface ConstantSourceOptions {
    offset?: number;
}

interface ConstrainBooleanParameters {
    exact?: boolean;
    ideal?: boolean;
}

interface ConstrainDOMStringParameters {
    exact?: string | string[];
    ideal?: string | string[];
}

interface ConstrainDoubleRange extends DoubleRange {
    exact?: number;
    ideal?: number;
}

interface ConstrainULongRange extends ULongRange {
    exact?: number;
    ideal?: number;
}

interface ConvolverOptions extends AudioNodeOptions {
    buffer?: AudioBuffer | null;
    disableNormalization?: boolean;
}

interface CredentialCreationOptions {
    publicKey?: PublicKeyCredentialCreationOptions;
    signal?: AbortSignal;
}

interface CredentialPropertiesOutput {
    rk?: boolean;
}

interface CredentialRequestOptions {
    mediation?: CredentialMediationRequirement;
    publicKey?: PublicKeyCredentialRequestOptions;
    signal?: AbortSignal;
}

interface CryptoKeyPair {
    privateKey: CryptoKey;
    publicKey: CryptoKey;
}

interface CustomEventInit<T = any> extends EventInit {
    detail?: T;
}

interface DOMMatrix2DInit {
    a?: number;
    b?: number;
    c?: number;
    d?: number;
    e?: number;
    f?: number;
    m11?: number;
    m12?: number;
    m21?: number;
    m22?: number;
    m41?: number;
    m42?: number;
}

interface DOMMatrixInit extends DOMMatrix2DInit {
    is2D?: boolean;
    m13?: number;
    m14?: number;
    m23?: number;
    m24?: number;
    m31?: number;
    m32?: number;
    m33?: number;
    m34?: number;
    m43?: number;
    m44?: number;
}

interface DOMPointInit {
    w?: number;
    x?: number;
    y?: number;
    z?: number;
}

interface DOMQuadInit {
    p1?: DOMPointInit;
    p2?: DOMPointInit;
    p3?: DOMPointInit;
    p4?: DOMPointInit;
}

interface DOMRectInit {
    height?: number;
    width?: number;
    x?: number;
    y?: number;
}

interface DelayOptions extends AudioNodeOptions {
    delayTime?: number;
    maxDelayTime?: number;
}

interface DeviceMotionEventAccelerationInit {
    x?: number | null;
    y?: number | null;
    z?: number | null;
}

interface DeviceMotionEventInit extends EventInit {
    acceleration?: DeviceMotionEventAccelerationInit;
    accelerationIncludingGravity?: DeviceMotionEventAccelerationInit;
    interval?: number;
    rotationRate?: DeviceMotionEventRotationRateInit;
}

interface DeviceMotionEventRotationRateInit {
    alpha?: number | null;
    beta?: number | null;
    gamma?: number | null;
}

interface DeviceOrientationEventInit extends EventInit {
    absolute?: boolean;
    alpha?: number | null;
    beta?: number | null;
    gamma?: number | null;
}

interface DisplayMediaStreamOptions {
    audio?: boolean | MediaTrackConstraints;
    video?: boolean | MediaTrackConstraints;
}

interface DocumentTimelineOptions {
    originTime?: DOMHighResTimeStamp;
}

interface DoubleRange {
    max?: number;
    min?: number;
}

interface DragEventInit extends MouseEventInit {
    dataTransfer?: DataTransfer | null;
}

interface DynamicsCompressorOptions extends AudioNodeOptions {
    attack?: number;
    knee?: number;
    ratio?: number;
    release?: number;
    threshold?: number;
}

interface EcKeyAlgorithm extends KeyAlgorithm {
    namedCurve: NamedCurve;
}

interface EcKeyGenParams extends Algorithm {
    namedCurve: NamedCurve;
}

interface EcKeyImportParams extends Algorithm {
    namedCurve: NamedCurve;
}

interface EcdhKeyDeriveParams extends Algorithm {
    public: CryptoKey;
}

interface EcdsaParams extends Algorithm {
    hash: HashAlgorithmIdentifier;
}

interface EffectTiming {
    delay?: number;
    direction?: PlaybackDirection;
    duration?: number | string;
    easing?: string;
    endDelay?: number;
    fill?: FillMode;
    iterationStart?: number;
    iterations?: number;
    playbackRate?: number;
}

interface ElementCreationOptions {
    is?: string;
}

interface ElementDefinitionOptions {
    extends?: string;
}

interface ErrorEventInit extends EventInit {
    colno?: number;
    error?: any;
    filename?: string;
    lineno?: number;
    message?: string;
}

interface EventInit {
    bubbles?: boolean;
    cancelable?: boolean;
    composed?: boolean;
}

interface EventListenerOptions {
    capture?: boolean;
}

interface EventModifierInit extends UIEventInit {
    altKey?: boolean;
    ctrlKey?: boolean;
    metaKey?: boolean;
    modifierAltGraph?: boolean;
    modifierCapsLock?: boolean;
    modifierFn?: boolean;
    modifierFnLock?: boolean;
    modifierHyper?: boolean;
    modifierNumLock?: boolean;
    modifierScrollLock?: boolean;
    modifierSuper?: boolean;
    modifierSymbol?: boolean;
    modifierSymbolLock?: boolean;
    shiftKey?: boolean;
}

interface EventSourceInit {
    withCredentials?: boolean;
}

interface FilePropertyBag extends BlobPropertyBag {
    lastModified?: number;
}

interface FileSystemFlags {
    create?: boolean;
    exclusive?: boolean;
}

interface FileSystemGetDirectoryOptions {
    create?: boolean;
}

interface FileSystemGetFileOptions {
    create?: boolean;
}

interface FileSystemRemoveOptions {
    recursive?: boolean;
}

interface FocusEventInit extends UIEventInit {
    relatedTarget?: EventTarget | null;
}

interface FocusOptions {
    preventScroll?: boolean;
}

interface FontFaceDescriptors {
    ascentOverride?: string;
    descentOverride?: string;
    display?: FontDisplay;
    featureSettings?: string;
    lineGapOverride?: string;
    stretch?: string;
    style?: string;
    unicodeRange?: string;
    variant?: string;
    weight?: string;
}

interface FontFaceSetLoadEventInit extends EventInit {
    fontfaces?: FontFace[];
}

interface FormDataEventInit extends EventInit {
    formData: FormData;
}

interface FullscreenOptions {
    navigationUI?: FullscreenNavigationUI;
}

interface GainOptions extends AudioNodeOptions {
    gain?: number;
}

interface GamepadEventInit extends EventInit {
    gamepad: Gamepad;
}

interface GetAnimationsOptions {
    subtree?: boolean;
}

interface GetNotificationOptions {
    tag?: string;
}

interface GetRootNodeOptions {
    composed?: boolean;
}

interface HashChangeEventInit extends EventInit {
    newURL?: string;
    oldURL?: string;
}

interface HkdfParams extends Algorithm {
    hash: HashAlgorithmIdentifier;
    info: BufferSource;
    salt: BufferSource;
}

interface HmacImportParams extends Algorithm {
    hash: HashAlgorithmIdentifier;
    length?: number;
}

interface HmacKeyAlgorithm extends KeyAlgorithm {
    hash: KeyAlgorithm;
    length: number;
}

interface HmacKeyGenParams extends Algorithm {
    hash: HashAlgorithmIdentifier;
    length?: number;
}

interface IDBDatabaseInfo {
    name?: string;
    version?: number;
}

interface IDBIndexParameters {
    multiEntry?: boolean;
    unique?: boolean;
}

interface IDBObjectStoreParameters {
    autoIncrement?: boolean;
    keyPath?: string | string[] | null;
}

interface IDBTransactionOptions {
    durability?: IDBTransactionDurability;
}

interface IDBVersionChangeEventInit extends EventInit {
    newVersion?: number | null;
    oldVersion?: number;
}

interface IIRFilterOptions extends AudioNodeOptions {
    feedback: number[];
    feedforward: number[];
}

interface IdleRequestOptions {
    timeout?: number;
}

interface ImageBitmapOptions {
    colorSpaceConversion?: ColorSpaceConversion;
    imageOrientation?: ImageOrientation;
    premultiplyAlpha?: PremultiplyAlpha;
    resizeHeight?: number;
    resizeQuality?: ResizeQuality;
    resizeWidth?: number;
}

interface ImageBitmapRenderingContextSettings {
    alpha?: boolean;
}

interface ImageDataSettings {
    colorSpace?: PredefinedColorSpace;
}

interface ImageEncodeOptions {
    quality?: number;
    type?: string;
}

interface ImportMeta {
    url: string;
}

interface InputEventInit extends UIEventInit {
    data?: string | null;
    dataTransfer?: DataTransfer | null;
    inputType?: string;
    isComposing?: boolean;
    targetRanges?: StaticRange[];
}

interface IntersectionObserverEntryInit {
    boundingClientRect: DOMRectInit;
    intersectionRatio: number;
    intersectionRect: DOMRectInit;
    isIntersecting: boolean;
    rootBounds: DOMRectInit | null;
    target: Element;
    time: DOMHighResTimeStamp;
}

interface IntersectionObserverInit {
    root?: Element | Document | null;
    rootMargin?: string;
    threshold?: number | number[];
}

interface JsonWebKey {
    alg?: string;
    crv?: string;
    d?: string;
    dp?: string;
    dq?: string;
    e?: string;
    ext?: boolean;
    k?: string;
    key_ops?: string[];
    kty?: string;
    n?: string;
    oth?: RsaOtherPrimesInfo[];
    p?: string;
    q?: string;
    qi?: string;
    use?: string;
    x?: string;
    y?: string;
}

interface KeyAlgorithm {
    name: string;
}

interface KeyboardEventInit extends EventModifierInit {
    /** @deprecated */
    charCode?: number;
    code?: string;
    isComposing?: boolean;
    key?: string;
    /** @deprecated */
    keyCode?: number;
    location?: number;
    repeat?: boolean;
}

interface Keyframe {
    composite?: CompositeOperationOrAuto;
    easing?: string;
    offset?: number | null;
    [property: string]: string | number | null | undefined;
}

interface KeyframeAnimationOptions extends KeyframeEffectOptions {
    id?: string;
}

interface KeyframeEffectOptions extends EffectTiming {
    composite?: CompositeOperation;
    iterationComposite?: IterationCompositeOperation;
    pseudoElement?: string | null;
}

interface LockInfo {
    clientId?: string;
    mode?: LockMode;
    name?: string;
}

interface LockManagerSnapshot {
    held?: LockInfo[];
    pending?: LockInfo[];
}

interface LockOptions {
    ifAvailable?: boolean;
    mode?: LockMode;
    signal?: AbortSignal;
    steal?: boolean;
}

interface MIDIConnectionEventInit extends EventInit {
    port?: MIDIPort;
}

interface MIDIMessageEventInit extends EventInit {
    data?: Uint8Array;
}

interface MIDIOptions {
    software?: boolean;
    sysex?: boolean;
}

interface MediaCapabilitiesDecodingInfo extends MediaCapabilitiesInfo {
    configuration?: MediaDecodingConfiguration;
}

interface MediaCapabilitiesEncodingInfo extends MediaCapabilitiesInfo {
    configuration?: MediaEncodingConfiguration;
}

interface MediaCapabilitiesInfo {
    powerEfficient: boolean;
    smooth: boolean;
    supported: boolean;
}

interface MediaConfiguration {
    audio?: AudioConfiguration;
    video?: VideoConfiguration;
}

interface MediaDecodingConfiguration extends MediaConfiguration {
    type: MediaDecodingType;
}

interface MediaElementAudioSourceOptions {
    mediaElement: HTMLMediaElement;
}

interface MediaEncodingConfiguration extends MediaConfiguration {
    type: MediaEncodingType;
}

interface MediaEncryptedEventInit extends EventInit {
    initData?: ArrayBuffer | null;
    initDataType?: string;
}

interface MediaImage {
    sizes?: string;
    src: string;
    type?: string;
}

interface MediaKeyMessageEventInit extends EventInit {
    message: ArrayBuffer;
    messageType: MediaKeyMessageType;
}

interface MediaKeySystemConfiguration {
    audioCapabilities?: MediaKeySystemMediaCapability[];
    distinctiveIdentifier?: MediaKeysRequirement;
    initDataTypes?: string[];
    label?: string;
    persistentState?: MediaKeysRequirement;
    sessionTypes?: string[];
    videoCapabilities?: MediaKeySystemMediaCapability[];
}

interface MediaKeySystemMediaCapability {
    contentType?: string;
    encryptionScheme?: string | null;
    robustness?: string;
}

interface MediaMetadataInit {
    album?: string;
    artist?: string;
    artwork?: MediaImage[];
    title?: string;
}

interface MediaPositionState {
    duration?: number;
    playbackRate?: number;
    position?: number;
}

interface MediaQueryListEventInit extends EventInit {
    matches?: boolean;
    media?: string;
}

interface MediaRecorderOptions {
    audioBitsPerSecond?: number;
    bitsPerSecond?: number;
    mimeType?: string;
    videoBitsPerSecond?: number;
}

interface MediaSessionActionDetails {
    action: MediaSessionAction;
    fastSeek?: boolean;
    seekOffset?: number;
    seekTime?: number;
}

interface MediaStreamAudioSourceOptions {
    mediaStream: MediaStream;
}

interface MediaStreamConstraints {
    audio?: boolean | MediaTrackConstraints;
    peerIdentity?: string;
    preferCurrentTab?: boolean;
    video?: boolean | MediaTrackConstraints;
}

interface MediaStreamTrackEventInit extends EventInit {
    track: MediaStreamTrack;
}

interface MediaTrackCapabilities {
    aspectRatio?: DoubleRange;
    autoGainControl?: boolean[];
    channelCount?: ULongRange;
    deviceId?: string;
    displaySurface?: string;
    echoCancellation?: boolean[];
    facingMode?: string[];
    frameRate?: DoubleRange;
    groupId?: string;
    height?: ULongRange;
    noiseSuppression?: boolean[];
    sampleRate?: ULongRange;
    sampleSize?: ULongRange;
    width?: ULongRange;
}

interface MediaTrackConstraintSet {
    aspectRatio?: ConstrainDouble;
    autoGainControl?: ConstrainBoolean;
    channelCount?: ConstrainULong;
    deviceId?: ConstrainDOMString;
    displaySurface?: ConstrainDOMString;
    echoCancellation?: ConstrainBoolean;
    facingMode?: ConstrainDOMString;
    frameRate?: ConstrainDouble;
    groupId?: ConstrainDOMString;
    height?: ConstrainULong;
    noiseSuppression?: ConstrainBoolean;
    sampleRate?: ConstrainULong;
    sampleSize?: ConstrainULong;
    width?: ConstrainULong;
}

interface MediaTrackConstraints extends MediaTrackConstraintSet {
    advanced?: MediaTrackConstraintSet[];
}

interface MediaTrackSettings {
    aspectRatio?: number;
    autoGainControl?: boolean;
    channelCount?: number;
    deviceId?: string;
    displaySurface?: string;
    echoCancellation?: boolean;
    facingMode?: string;
    frameRate?: number;
    groupId?: string;
    height?: number;
    noiseSuppression?: boolean;
    sampleRate?: number;
    sampleSize?: number;
    width?: number;
}

interface MediaTrackSupportedConstraints {
    aspectRatio?: boolean;
    autoGainControl?: boolean;
    channelCount?: boolean;
    deviceId?: boolean;
    displaySurface?: boolean;
    echoCancellation?: boolean;
    facingMode?: boolean;
    frameRate?: boolean;
    groupId?: boolean;
    height?: boolean;
    noiseSuppression?: boolean;
    sampleRate?: boolean;
    sampleSize?: boolean;
    width?: boolean;
}

interface MessageEventInit<T = any> extends EventInit {
    data?: T;
    lastEventId?: string;
    origin?: string;
    ports?: MessagePort[];
    source?: MessageEventSource | null;
}

interface MouseEventInit extends EventModifierInit {
    button?: number;
    buttons?: number;
    clientX?: number;
    clientY?: number;
    movementX?: number;
    movementY?: number;
    relatedTarget?: EventTarget | null;
    screenX?: number;
    screenY?: number;
}

interface MultiCacheQueryOptions extends CacheQueryOptions {
    cacheName?: string;
}

interface MutationObserverInit {
    /** Set to a list of attribute local names (without namespace) if not all attribute mutations need to be observed and attributes is true or omitted. */
    attributeFilter?: string[];
    /** Set to true if attributes is true or omitted and target's attribute value before the mutation needs to be recorded. */
    attributeOldValue?: boolean;
    /** Set to true if mutations to target's attributes are to be observed. Can be omitted if attributeOldValue or attributeFilter is specified. */
    attributes?: boolean;
    /** Set to true if mutations to target's data are to be observed. Can be omitted if characterDataOldValue is specified. */
    characterData?: boolean;
    /** Set to true if characterData is set to true or omitted and target's data before the mutation needs to be recorded. */
    characterDataOldValue?: boolean;
    /** Set to true if mutations to target's children are to be observed. */
    childList?: boolean;
    /** Set to true if mutations to not just target, but also target's descendants are to be observed. */
    subtree?: boolean;
}

interface NavigationPreloadState {
    enabled?: boolean;
    headerValue?: string;
}

interface NotificationAction {
    action: string;
    icon?: string;
    title: string;
}

interface NotificationOptions {
    actions?: NotificationAction[];
    badge?: string;
    body?: string;
    data?: any;
    dir?: NotificationDirection;
    icon?: string;
    image?: string;
    lang?: string;
    renotify?: boolean;
    requireInteraction?: boolean;
    silent?: boolean;
    tag?: string;
    timestamp?: EpochTimeStamp;
    vibrate?: VibratePattern;
}

interface OfflineAudioCompletionEventInit extends EventInit {
    renderedBuffer: AudioBuffer;
}

interface OfflineAudioContextOptions {
    length: number;
    numberOfChannels?: number;
    sampleRate: number;
}

interface OptionalEffectTiming {
    delay?: number;
    direction?: PlaybackDirection;
    duration?: number | string;
    easing?: string;
    endDelay?: number;
    fill?: FillMode;
    iterationStart?: number;
    iterations?: number;
    playbackRate?: number;
}

interface OscillatorOptions extends AudioNodeOptions {
    detune?: number;
    frequency?: number;
    periodicWave?: PeriodicWave;
    type?: OscillatorType;
}

interface PageTransitionEventInit extends EventInit {
    persisted?: boolean;
}

interface PannerOptions extends AudioNodeOptions {
    coneInnerAngle?: number;
    coneOuterAngle?: number;
    coneOuterGain?: number;
    distanceModel?: DistanceModelType;
    maxDistance?: number;
    orientationX?: number;
    orientationY?: number;
    orientationZ?: number;
    panningModel?: PanningModelType;
    positionX?: number;
    positionY?: number;
    positionZ?: number;
    refDistance?: number;
    rolloffFactor?: number;
}

interface PaymentCurrencyAmount {
    currency: string;
    value: string;
}

interface PaymentDetailsBase {
    displayItems?: PaymentItem[];
    modifiers?: PaymentDetailsModifier[];
}

interface PaymentDetailsInit extends PaymentDetailsBase {
    id?: string;
    total: PaymentItem;
}

interface PaymentDetailsModifier {
    additionalDisplayItems?: PaymentItem[];
    data?: any;
    supportedMethods: string;
    total?: PaymentItem;
}

interface PaymentDetailsUpdate extends PaymentDetailsBase {
    paymentMethodErrors?: any;
    total?: PaymentItem;
}

interface PaymentItem {
    amount: PaymentCurrencyAmount;
    label: string;
    pending?: boolean;
}

interface PaymentMethodChangeEventInit extends PaymentRequestUpdateEventInit {
    methodDetails?: any;
    methodName?: string;
}

interface PaymentMethodData {
    data?: any;
    supportedMethods: string;
}

interface PaymentRequestUpdateEventInit extends EventInit {
}

interface PaymentValidationErrors {
    error?: string;
    paymentMethod?: any;
}

interface Pbkdf2Params extends Algorithm {
    hash: HashAlgorithmIdentifier;
    iterations: number;
    salt: BufferSource;
}

interface PerformanceMarkOptions {
    detail?: any;
    startTime?: DOMHighResTimeStamp;
}

interface PerformanceMeasureOptions {
    detail?: any;
    duration?: DOMHighResTimeStamp;
    end?: string | DOMHighResTimeStamp;
    start?: string | DOMHighResTimeStamp;
}

interface PerformanceObserverInit {
    buffered?: boolean;
    entryTypes?: string[];
    type?: string;
}

interface PeriodicWaveConstraints {
    disableNormalization?: boolean;
}

interface PeriodicWaveOptions extends PeriodicWaveConstraints {
    imag?: number[] | Float32Array;
    real?: number[] | Float32Array;
}

interface PermissionDescriptor {
    name: PermissionName;
}

interface PictureInPictureEventInit extends EventInit {
    pictureInPictureWindow: PictureInPictureWindow;
}

interface PointerEventInit extends MouseEventInit {
    coalescedEvents?: PointerEvent[];
    height?: number;
    isPrimary?: boolean;
    pointerId?: number;
    pointerType?: string;
    predictedEvents?: PointerEvent[];
    pressure?: number;
    tangentialPressure?: number;
    tiltX?: number;
    tiltY?: number;
    twist?: number;
    width?: number;
}

interface PopStateEventInit extends EventInit {
    state?: any;
}

interface PositionOptions {
    enableHighAccuracy?: boolean;
    maximumAge?: number;
    timeout?: number;
}

interface ProgressEventInit extends EventInit {
    lengthComputable?: boolean;
    loaded?: number;
    total?: number;
}

interface PromiseRejectionEventInit extends EventInit {
    promise: Promise<any>;
    reason?: any;
}

interface PropertyIndexedKeyframes {
    composite?: CompositeOperationOrAuto | CompositeOperationOrAuto[];
    easing?: string | string[];
    offset?: number | (number | null)[];
    [property: string]: string | string[] | number | null | (number | null)[] | undefined;
}

interface PublicKeyCredentialCreationOptions {
    attestation?: AttestationConveyancePreference;
    authenticatorSelection?: AuthenticatorSelectionCriteria;
    challenge: BufferSource;
    excludeCredentials?: PublicKeyCredentialDescriptor[];
    extensions?: AuthenticationExtensionsClientInputs;
    pubKeyCredParams: PublicKeyCredentialParameters[];
    rp: PublicKeyCredentialRpEntity;
    timeout?: number;
    user: PublicKeyCredentialUserEntity;
}

interface PublicKeyCredentialDescriptor {
    id: BufferSource;
    transports?: AuthenticatorTransport[];
    type: PublicKeyCredentialType;
}

interface PublicKeyCredentialEntity {
    name: string;
}

interface PublicKeyCredentialParameters {
    alg: COSEAlgorithmIdentifier;
    type: PublicKeyCredentialType;
}

interface PublicKeyCredentialRequestOptions {
    allowCredentials?: PublicKeyCredentialDescriptor[];
    challenge: BufferSource;
    extensions?: AuthenticationExtensionsClientInputs;
    rpId?: string;
    timeout?: number;
    userVerification?: UserVerificationRequirement;
}

interface PublicKeyCredentialRpEntity extends PublicKeyCredentialEntity {
    id?: string;
}

interface PublicKeyCredentialUserEntity extends PublicKeyCredentialEntity {
    displayName: string;
    id: BufferSource;
}

interface PushSubscriptionJSON {
    endpoint?: string;
    expirationTime?: EpochTimeStamp | null;
    keys?: Record<string, string>;
}

interface PushSubscriptionOptionsInit {
    applicationServerKey?: BufferSource | string | null;
    userVisibleOnly?: boolean;
}

interface QueuingStrategy<T = any> {
    highWaterMark?: number;
    size?: QueuingStrategySize<T>;
}

interface QueuingStrategyInit {
    /**
     * Creates a new ByteLengthQueuingStrategy with the provided high water mark.
     *
     * Note that the provided high water mark will not be validated ahead of time. Instead, if it is negative, NaN, or not a number, the resulting ByteLengthQueuingStrategy will cause the corresponding stream constructor to throw.
     */
    highWaterMark: number;
}

interface RTCAnswerOptions extends RTCOfferAnswerOptions {
}

interface RTCCertificateExpiration {
    expires?: number;
}

interface RTCConfiguration {
    bundlePolicy?: RTCBundlePolicy;
    certificates?: RTCCertificate[];
    iceCandidatePoolSize?: number;
    iceServers?: RTCIceServer[];
    iceTransportPolicy?: RTCIceTransportPolicy;
    rtcpMuxPolicy?: RTCRtcpMuxPolicy;
}

interface RTCDTMFToneChangeEventInit extends EventInit {
    tone?: string;
}

interface RTCDataChannelEventInit extends EventInit {
    channel: RTCDataChannel;
}

interface RTCDataChannelInit {
    id?: number;
    maxPacketLifeTime?: number;
    maxRetransmits?: number;
    negotiated?: boolean;
    ordered?: boolean;
    protocol?: string;
}

interface RTCDtlsFingerprint {
    algorithm?: string;
    value?: string;
}

interface RTCEncodedAudioFrameMetadata {
    contributingSources?: number[];
    synchronizationSource?: number;
}

interface RTCEncodedVideoFrameMetadata {
    contributingSources?: number[];
    dependencies?: number[];
    frameId?: number;
    height?: number;
    spatialIndex?: number;
    synchronizationSource?: number;
    temporalIndex?: number;
    width?: number;
}

interface RTCErrorEventInit extends EventInit {
    error: RTCError;
}

interface RTCErrorInit {
    errorDetail: RTCErrorDetailType;
    httpRequestStatusCode?: number;
    receivedAlert?: number;
    sctpCauseCode?: number;
    sdpLineNumber?: number;
    sentAlert?: number;
}

interface RTCIceCandidateInit {
    candidate?: string;
    sdpMLineIndex?: number | null;
    sdpMid?: string | null;
    usernameFragment?: string | null;
}

interface RTCIceCandidatePairStats extends RTCStats {
    availableIncomingBitrate?: number;
    availableOutgoingBitrate?: number;
    bytesReceived?: number;
    bytesSent?: number;
    currentRoundTripTime?: number;
    lastPacketReceivedTimestamp?: DOMHighResTimeStamp;
    lastPacketSentTimestamp?: DOMHighResTimeStamp;
    localCandidateId: string;
    nominated?: boolean;
    remoteCandidateId: string;
    requestsReceived?: number;
    requestsSent?: number;
    responsesReceived?: number;
    responsesSent?: number;
    state: RTCStatsIceCandidatePairState;
    totalRoundTripTime?: number;
    transportId: string;
}

interface RTCIceServer {
    credential?: string;
    urls: string | string[];
    username?: string;
}

interface RTCInboundRtpStreamStats extends RTCReceivedRtpStreamStats {
    audioLevel?: number;
    bytesReceived?: number;
    concealedSamples?: number;
    concealmentEvents?: number;
    decoderImplementation?: string;
    estimatedPlayoutTimestamp?: DOMHighResTimeStamp;
    fecPacketsDiscarded?: number;
    fecPacketsReceived?: number;
    firCount?: number;
    frameHeight?: number;
    frameWidth?: number;
    framesDecoded?: number;
    framesDropped?: number;
    framesPerSecond?: number;
    framesReceived?: number;
    headerBytesReceived?: number;
    insertedSamplesForDeceleration?: number;
    jitterBufferDelay?: number;
    jitterBufferEmittedCount?: number;
    keyFramesDecoded?: number;
    kind: string;
    lastPacketReceivedTimestamp?: DOMHighResTimeStamp;
    nackCount?: number;
    packetsDiscarded?: number;
    pliCount?: number;
    qpSum?: number;
    remoteId?: string;
    removedSamplesForAcceleration?: number;
    silentConcealedSamples?: number;
    totalAudioEnergy?: number;
    totalDecodeTime?: number;
    totalInterFrameDelay?: number;
    totalProcessingDelay?: number;
    totalSamplesDuration?: number;
    totalSamplesReceived?: number;
    totalSquaredInterFrameDelay?: number;
}

interface RTCLocalSessionDescriptionInit {
    sdp?: string;
    type?: RTCSdpType;
}

interface RTCOfferAnswerOptions {
}

interface RTCOfferOptions extends RTCOfferAnswerOptions {
    iceRestart?: boolean;
    offerToReceiveAudio?: boolean;
    offerToReceiveVideo?: boolean;
}

interface RTCOutboundRtpStreamStats extends RTCSentRtpStreamStats {
    firCount?: number;
    frameHeight?: number;
    frameWidth?: number;
    framesEncoded?: number;
    framesPerSecond?: number;
    framesSent?: number;
    headerBytesSent?: number;
    hugeFramesSent?: number;
    keyFramesEncoded?: number;
    mediaSourceId?: string;
    nackCount?: number;
    pliCount?: number;
    qpSum?: number;
    qualityLimitationResolutionChanges?: number;
    remoteId?: string;
    retransmittedBytesSent?: number;
    retransmittedPacketsSent?: number;
    rid?: string;
    targetBitrate?: number;
    totalEncodeTime?: number;
    totalEncodedBytesTarget?: number;
    totalPacketSendDelay?: number;
}

interface RTCPeerConnectionIceErrorEventInit extends EventInit {
    address?: string | null;
    errorCode: number;
    errorText?: string;
    port?: number | null;
    url?: string;
}

interface RTCPeerConnectionIceEventInit extends EventInit {
    candidate?: RTCIceCandidate | null;
    url?: string | null;
}

interface RTCReceivedRtpStreamStats extends RTCRtpStreamStats {
    jitter?: number;
    packetsLost?: number;
    packetsReceived?: number;
}

interface RTCRtcpParameters {
    cname?: string;
    reducedSize?: boolean;
}

interface RTCRtpCapabilities {
    codecs: RTCRtpCodecCapability[];
    headerExtensions: RTCRtpHeaderExtensionCapability[];
}

interface RTCRtpCodecCapability {
    channels?: number;
    clockRate: number;
    mimeType: string;
    sdpFmtpLine?: string;
}

interface RTCRtpCodecParameters {
    channels?: number;
    clockRate: number;
    mimeType: string;
    payloadType: number;
    sdpFmtpLine?: string;
}

interface RTCRtpCodingParameters {
    rid?: string;
}

interface RTCRtpContributingSource {
    audioLevel?: number;
    rtpTimestamp: number;
    source: number;
    timestamp: DOMHighResTimeStamp;
}

interface RTCRtpEncodingParameters extends RTCRtpCodingParameters {
    active?: boolean;
    maxBitrate?: number;
    maxFramerate?: number;
    networkPriority?: RTCPriorityType;
    priority?: RTCPriorityType;
    scaleResolutionDownBy?: number;
}

interface RTCRtpHeaderExtensionCapability {
    uri?: string;
}

interface RTCRtpHeaderExtensionParameters {
    encrypted?: boolean;
    id: number;
    uri: string;
}

interface RTCRtpParameters {
    codecs: RTCRtpCodecParameters[];
    headerExtensions: RTCRtpHeaderExtensionParameters[];
    rtcp: RTCRtcpParameters;
}

interface RTCRtpReceiveParameters extends RTCRtpParameters {
}

interface RTCRtpSendParameters extends RTCRtpParameters {
    degradationPreference?: RTCDegradationPreference;
    encodings: RTCRtpEncodingParameters[];
    transactionId: string;
}

interface RTCRtpStreamStats extends RTCStats {
    codecId?: string;
    kind: string;
    ssrc: number;
    transportId?: string;
}

interface RTCRtpSynchronizationSource extends RTCRtpContributingSource {
}

interface RTCRtpTransceiverInit {
    direction?: RTCRtpTransceiverDirection;
    sendEncodings?: RTCRtpEncodingParameters[];
    streams?: MediaStream[];
}

interface RTCSentRtpStreamStats extends RTCRtpStreamStats {
    bytesSent?: number;
    packetsSent?: number;
}

interface RTCSessionDescriptionInit {
    sdp?: string;
    type: RTCSdpType;
}

interface RTCStats {
    id: string;
    timestamp: DOMHighResTimeStamp;
    type: RTCStatsType;
}

interface RTCTrackEventInit extends EventInit {
    receiver: RTCRtpReceiver;
    streams?: MediaStream[];
    track: MediaStreamTrack;
    transceiver: RTCRtpTransceiver;
}

interface RTCTransportStats extends RTCStats {
    bytesReceived?: number;
    bytesSent?: number;
    dtlsCipher?: string;
    dtlsState: RTCDtlsTransportState;
    localCertificateId?: string;
    remoteCertificateId?: string;
    selectedCandidatePairId?: string;
    srtpCipher?: string;
    tlsVersion?: string;
}

interface ReadableStreamGetReaderOptions {
    /**
     * Creates a ReadableStreamBYOBReader and locks the stream to the new reader.
     *
     * This call behaves the same way as the no-argument variant, except that it only works on readable byte streams, i.e. streams which were constructed specifically with the ability to handle "bring your own buffer" reading. The returned BYOB reader provides the ability to directly read individual chunks from the stream via its read() method, into developer-supplied buffers, allowing more precise control over allocation.
     */
    mode?: ReadableStreamReaderMode;
}

interface ReadableStreamReadDoneResult<T> {
    done: true;
    value?: T;
}

interface ReadableStreamReadValueResult<T> {
    done: false;
    value: T;
}

interface ReadableWritablePair<R = any, W = any> {
    readable: ReadableStream<R>;
    /**
     * Provides a convenient, chainable way of piping this readable stream through a transform stream (or any other { writable, readable } pair). It simply pipes the stream into the writable side of the supplied pair, and returns the readable side for further use.
     *
     * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.
     */
    writable: WritableStream<W>;
}

interface RegistrationOptions {
    scope?: string;
    type?: WorkerType;
    updateViaCache?: ServiceWorkerUpdateViaCache;
}

interface RequestInit {
    /** A BodyInit object or null to set request's body. */
    body?: BodyInit | null;
    /** A string indicating how the request will interact with the browser's cache to set request's cache. */
    cache?: RequestCache;
    /** A string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL. Sets request's credentials. */
    credentials?: RequestCredentials;
    /** A Headers object, an object literal, or an array of two-item arrays to set request's headers. */
    headers?: HeadersInit;
    /** A cryptographic hash of the resource to be fetched by request. Sets request's integrity. */
    integrity?: string;
    /** A boolean to set request's keepalive. */
    keepalive?: boolean;
    /** A string to set request's method. */
    method?: string;
    /** A string to indicate whether the request will use CORS, or will be restricted to same-origin URLs. Sets request's mode. */
    mode?: RequestMode;
    /** A string indicating whether request follows redirects, results in an error upon encountering a redirect, or returns the redirect (in an opaque fashion). Sets request's redirect. */
    redirect?: RequestRedirect;
    /** A string whose value is a same-origin URL, "about:client", or the empty string, to set request's referrer. */
    referrer?: string;
    /** A referrer policy to set request's referrerPolicy. */
    referrerPolicy?: ReferrerPolicy;
    /** An AbortSignal to set request's signal. */
    signal?: AbortSignal | null;
    /** Can only be null. Used to disassociate request from any Window. */
    window?: null;
}

interface ResizeObserverOptions {
    box?: ResizeObserverBoxOptions;
}

interface ResponseInit {
    headers?: HeadersInit;
    status?: number;
    statusText?: string;
}

interface RsaHashedImportParams extends Algorithm {
    hash: HashAlgorithmIdentifier;
}

interface RsaHashedKeyAlgorithm extends RsaKeyAlgorithm {
    hash: KeyAlgorithm;
}

interface RsaHashedKeyGenParams extends RsaKeyGenParams {
    hash: HashAlgorithmIdentifier;
}

interface RsaKeyAlgorithm extends KeyAlgorithm {
    modulusLength: number;
    publicExponent: BigInteger;
}

interface RsaKeyGenParams extends Algorithm {
    modulusLength: number;
    publicExponent: BigInteger;
}

interface RsaOaepParams extends Algorithm {
    label?: BufferSource;
}

interface RsaOtherPrimesInfo {
    d?: string;
    r?: string;
    t?: string;
}

interface RsaPssParams extends Algorithm {
    saltLength: number;
}

interface SVGBoundingBoxOptions {
    clipped?: boolean;
    fill?: boolean;
    markers?: boolean;
    stroke?: boolean;
}

interface ScrollIntoViewOptions extends ScrollOptions {
    block?: ScrollLogicalPosition;
    inline?: ScrollLogicalPosition;
}

interface ScrollOptions {
    behavior?: ScrollBehavior;
}

interface ScrollToOptions extends ScrollOptions {
    left?: number;
    top?: number;
}

interface SecurityPolicyViolationEventInit extends EventInit {
    blockedURI?: string;
    columnNumber?: number;
    disposition: SecurityPolicyViolationEventDisposition;
    documentURI: string;
    effectiveDirective: string;
    lineNumber?: number;
    originalPolicy: string;
    referrer?: string;
    sample?: string;
    sourceFile?: string;
    statusCode: number;
    violatedDirective: string;
}

interface ShadowRootInit {
    delegatesFocus?: boolean;
    mode: ShadowRootMode;
    slotAssignment?: SlotAssignmentMode;
}

interface ShareData {
    files?: File[];
    text?: string;
    title?: string;
    url?: string;
}

interface SpeechSynthesisErrorEventInit extends SpeechSynthesisEventInit {
    error: SpeechSynthesisErrorCode;
}

interface SpeechSynthesisEventInit extends EventInit {
    charIndex?: number;
    charLength?: number;
    elapsedTime?: number;
    name?: string;
    utterance: SpeechSynthesisUtterance;
}

interface StaticRangeInit {
    endContainer: Node;
    endOffset: number;
    startContainer: Node;
    startOffset: number;
}

interface StereoPannerOptions extends AudioNodeOptions {
    pan?: number;
}

interface StorageEstimate {
    quota?: number;
    usage?: number;
}

interface StorageEventInit extends EventInit {
    key?: string | null;
    newValue?: string | null;
    oldValue?: string | null;
    storageArea?: Storage | null;
    url?: string;
}

interface StreamPipeOptions {
    preventAbort?: boolean;
    preventCancel?: boolean;
    /**
     * Pipes this readable stream to a given writable stream destination. The way in which the piping process behaves under various error conditions can be customized with a number of passed options. It returns a promise that fulfills when the piping process completes successfully, or rejects if any errors were encountered.
     *
     * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.
     *
     * Errors and closures of the source and destination streams propagate as follows:
     *
     * An error in this source readable stream will abort destination, unless preventAbort is truthy. The returned promise will be rejected with the source's error, or with any error that occurs during aborting the destination.
     *
     * An error in destination will cancel this source readable stream, unless preventCancel is truthy. The returned promise will be rejected with the destination's error, or with any error that occurs during canceling the source.
     *
     * When this source readable stream closes, destination will be closed, unless preventClose is truthy. The returned promise will be fulfilled once this process completes, unless an error is encountered while closing the destination, in which case it will be rejected with that error.
     *
     * If destination starts out closed or closing, this source readable stream will be canceled, unless preventCancel is true. The returned promise will be rejected with an error indicating piping to a closed stream failed, or with any error that occurs during canceling the source.
     *
     * The signal option can be set to an AbortSignal to allow aborting an ongoing pipe operation via the corresponding AbortController. In this case, this source readable stream will be canceled, and destination aborted, unless the respective options preventCancel or preventAbort are set.
     */
    preventClose?: boolean;
    signal?: AbortSignal;
}

interface StructuredSerializeOptions {
    transfer?: Transferable[];
}

interface SubmitEventInit extends EventInit {
    submitter?: HTMLElement | null;
}

interface TextDecodeOptions {
    stream?: boolean;
}

interface TextDecoderOptions {
    fatal?: boolean;
    ignoreBOM?: boolean;
}

interface TextEncoderEncodeIntoResult {
    read?: number;
    written?: number;
}

interface TouchEventInit extends EventModifierInit {
    changedTouches?: Touch[];
    targetTouches?: Touch[];
    touches?: Touch[];
}

interface TouchInit {
    altitudeAngle?: number;
    azimuthAngle?: number;
    clientX?: number;
    clientY?: number;
    force?: number;
    identifier: number;
    pageX?: number;
    pageY?: number;
    radiusX?: number;
    radiusY?: number;
    rotationAngle?: number;
    screenX?: number;
    screenY?: number;
    target: EventTarget;
    touchType?: TouchType;
}

interface TrackEventInit extends EventInit {
    track?: TextTrack | null;
}

interface Transformer<I = any, O = any> {
    flush?: TransformerFlushCallback<O>;
    readableType?: undefined;
    start?: TransformerStartCallback<O>;
    transform?: TransformerTransformCallback<I, O>;
    writableType?: undefined;
}

interface TransitionEventInit extends EventInit {
    elapsedTime?: number;
    propertyName?: string;
    pseudoElement?: string;
}

interface UIEventInit extends EventInit {
    detail?: number;
    view?: Window | null;
    /** @deprecated */
    which?: number;
}

interface ULongRange {
    max?: number;
    min?: number;
}

interface UnderlyingByteSource {
    autoAllocateChunkSize?: number;
    cancel?: UnderlyingSourceCancelCallback;
    pull?: (controller: ReadableByteStreamController) => void | PromiseLike<void>;
    start?: (controller: ReadableByteStreamController) => any;
    type: "bytes";
}

interface UnderlyingDefaultSource<R = any> {
    cancel?: UnderlyingSourceCancelCallback;
    pull?: (controller: ReadableStreamDefaultController<R>) => void | PromiseLike<void>;
    start?: (controller: ReadableStreamDefaultController<R>) => any;
    type?: undefined;
}

interface UnderlyingSink<W = any> {
    abort?: UnderlyingSinkAbortCallback;
    close?: UnderlyingSinkCloseCallback;
    start?: UnderlyingSinkStartCallback;
    type?: undefined;
    write?: UnderlyingSinkWriteCallback<W>;
}

interface UnderlyingSource<R = any> {
    autoAllocateChunkSize?: number;
    cancel?: UnderlyingSourceCancelCallback;
    pull?: UnderlyingSourcePullCallback<R>;
    start?: UnderlyingSourceStartCallback<R>;
    type?: ReadableStreamType;
}

interface ValidityStateFlags {
    badInput?: boolean;
    customError?: boolean;
    patternMismatch?: boolean;
    rangeOverflow?: boolean;
    rangeUnderflow?: boolean;
    stepMismatch?: boolean;
    tooLong?: boolean;
    tooShort?: boolean;
    typeMismatch?: boolean;
    valueMissing?: boolean;
}

interface VideoColorSpaceInit {
    fullRange?: boolean | null;
    matrix?: VideoMatrixCoefficients | null;
    primaries?: VideoColorPrimaries | null;
    transfer?: VideoTransferCharacteristics | null;
}

interface VideoConfiguration {
    bitrate: number;
    colorGamut?: ColorGamut;
    contentType: string;
    framerate: number;
    hdrMetadataType?: HdrMetadataType;
    height: number;
    scalabilityMode?: string;
    transferFunction?: TransferFunction;
    width: number;
}

interface VideoFrameCallbackMetadata {
    captureTime?: DOMHighResTimeStamp;
    expectedDisplayTime: DOMHighResTimeStamp;
    height: number;
    mediaTime: number;
    presentationTime: DOMHighResTimeStamp;
    presentedFrames: number;
    processingDuration?: number;
    receiveTime?: DOMHighResTimeStamp;
    rtpTimestamp?: number;
    width: number;
}

interface WaveShaperOptions extends AudioNodeOptions {
    curve?: number[] | Float32Array;
    oversample?: OverSampleType;
}

interface WebGLContextAttributes {
    alpha?: boolean;
    antialias?: boolean;
    depth?: boolean;
    desynchronized?: boolean;
    failIfMajorPerformanceCaveat?: boolean;
    powerPreference?: WebGLPowerPreference;
    premultipliedAlpha?: boolean;
    preserveDrawingBuffer?: boolean;
    stencil?: boolean;
}

interface WebGLContextEventInit extends EventInit {
    statusMessage?: string;
}

interface WheelEventInit extends MouseEventInit {
    deltaMode?: number;
    deltaX?: number;
    deltaY?: number;
    deltaZ?: number;
}

interface WindowPostMessageOptions extends StructuredSerializeOptions {
    targetOrigin?: string;
}

interface WorkerOptions {
    credentials?: RequestCredentials;
    name?: string;
    type?: WorkerType;
}

interface WorkletOptions {
    credentials?: RequestCredentials;
}

type NodeFilter = ((node: Node) => number) | { acceptNode(node: Node): number; };

declare var NodeFilter: {
    readonly FILTER_ACCEPT: 1;
    readonly FILTER_REJECT: 2;
    readonly FILTER_SKIP: 3;
    readonly SHOW_ALL: 0xFFFFFFFF;
    readonly SHOW_ELEMENT: 0x1;
    readonly SHOW_ATTRIBUTE: 0x2;
    readonly SHOW_TEXT: 0x4;
    readonly SHOW_CDATA_SECTION: 0x8;
    readonly SHOW_ENTITY_REFERENCE: 0x10;
    readonly SHOW_ENTITY: 0x20;
    readonly SHOW_PROCESSING_INSTRUCTION: 0x40;
    readonly SHOW_COMMENT: 0x80;
    readonly SHOW_DOCUMENT: 0x100;
    readonly SHOW_DOCUMENT_TYPE: 0x200;
    readonly SHOW_DOCUMENT_FRAGMENT: 0x400;
    readonly SHOW_NOTATION: 0x800;
};

type XPathNSResolver = ((prefix: string | null) => string | null) | { lookupNamespaceURI(prefix: string | null): string | null; };

/** The ANGLE_instanced_arrays extension is part of the WebGL API and allows to draw the same object, or groups of similar objects multiple times, if they share the same vertex data, primitive count and type. */
interface ANGLE_instanced_arrays {
    drawArraysInstancedANGLE(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei): void;
    drawElementsInstancedANGLE(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, primcount: GLsizei): void;
    vertexAttribDivisorANGLE(index: GLuint, divisor: GLuint): void;
    readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: 0x88FE;
}

interface ARIAMixin {
    ariaAtomic: string | null;
    ariaAutoComplete: string | null;
    ariaBusy: string | null;
    ariaChecked: string | null;
    ariaColCount: string | null;
    ariaColIndex: string | null;
    ariaColSpan: string | null;
    ariaCurrent: string | null;
    ariaDisabled: string | null;
    ariaExpanded: string | null;
    ariaHasPopup: string | null;
    ariaHidden: string | null;
    ariaInvalid: string | null;
    ariaKeyShortcuts: string | null;
    ariaLabel: string | null;
    ariaLevel: string | null;
    ariaLive: string | null;
    ariaModal: string | null;
    ariaMultiLine: string | null;
    ariaMultiSelectable: string | null;
    ariaOrientation: string | null;
    ariaPlaceholder: string | null;
    ariaPosInSet: string | null;
    ariaPressed: string | null;
    ariaReadOnly: string | null;
    ariaRequired: string | null;
    ariaRoleDescription: string | null;
    ariaRowCount: string | null;
    ariaRowIndex: string | null;
    ariaRowSpan: string | null;
    ariaSelected: string | null;
    ariaSetSize: string | null;
    ariaSort: string | null;
    ariaValueMax: string | null;
    ariaValueMin: string | null;
    ariaValueNow: string | null;
    ariaValueText: string | null;
    role: string | null;
}

/** A controller object that allows you to abort one or more DOM requests as and when desired. */
interface AbortController {
    /** Returns the AbortSignal object associated with this object. */
    readonly signal: AbortSignal;
    /** Invoking this method will set this object's AbortSignal's aborted flag and signal to any observers that the associated activity is to be aborted. */
    abort(reason?: any): void;
}

declare var AbortController: {
    prototype: AbortController;
    new(): AbortController;
};

interface AbortSignalEventMap {
    "abort": Event;
}

/** A signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object. */
interface AbortSignal extends EventTarget {
    /** Returns true if this AbortSignal's AbortController has signaled to abort, and false otherwise. */
    readonly aborted: boolean;
    onabort: ((this: AbortSignal, ev: Event) => any) | null;
    readonly reason: any;
    throwIfAborted(): void;
    addEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var AbortSignal: {
    prototype: AbortSignal;
    new(): AbortSignal;
    abort(reason?: any): AbortSignal;
    timeout(milliseconds: number): AbortSignal;
};

interface AbstractRange {
    /** Returns true if range is collapsed, and false otherwise. */
    readonly collapsed: boolean;
    /** Returns range's end node. */
    readonly endContainer: Node;
    /** Returns range's end offset. */
    readonly endOffset: number;
    /** Returns range's start node. */
    readonly startContainer: Node;
    /** Returns range's start offset. */
    readonly startOffset: number;
}

declare var AbstractRange: {
    prototype: AbstractRange;
    new(): AbstractRange;
};

interface AbstractWorkerEventMap {
    "error": ErrorEvent;
}

interface AbstractWorker {
    onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;
    addEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

/** A node able to provide real-time frequency and time-domain analysis information. It is an AudioNode that passes the audio stream unchanged from the input to the output, but allows you to take the generated data, process it, and create audio visualizations. */
interface AnalyserNode extends AudioNode {
    fftSize: number;
    readonly frequencyBinCount: number;
    maxDecibels: number;
    minDecibels: number;
    smoothingTimeConstant: number;
    getByteFrequencyData(array: Uint8Array): void;
    getByteTimeDomainData(array: Uint8Array): void;
    getFloatFrequencyData(array: Float32Array): void;
    getFloatTimeDomainData(array: Float32Array): void;
}

declare var AnalyserNode: {
    prototype: AnalyserNode;
    new(context: BaseAudioContext, options?: AnalyserOptions): AnalyserNode;
};

interface Animatable {
    animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation;
    getAnimations(options?: GetAnimationsOptions): Animation[];
}

interface AnimationEventMap {
    "cancel": AnimationPlaybackEvent;
    "finish": AnimationPlaybackEvent;
    "remove": Event;
}

interface Animation extends EventTarget {
    currentTime: CSSNumberish | null;
    effect: AnimationEffect | null;
    readonly finished: Promise<Animation>;
    id: string;
    oncancel: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null;
    onfinish: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null;
    onremove: ((this: Animation, ev: Event) => any) | null;
    readonly pending: boolean;
    readonly playState: AnimationPlayState;
    playbackRate: number;
    readonly ready: Promise<Animation>;
    readonly replaceState: AnimationReplaceState;
    startTime: CSSNumberish | null;
    timeline: AnimationTimeline | null;
    cancel(): void;
    commitStyles(): void;
    finish(): void;
    pause(): void;
    persist(): void;
    play(): void;
    reverse(): void;
    updatePlaybackRate(playbackRate: number): void;
    addEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var Animation: {
    prototype: Animation;
    new(effect?: AnimationEffect | null, timeline?: AnimationTimeline | null): Animation;
};

interface AnimationEffect {
    getComputedTiming(): ComputedEffectTiming;
    getTiming(): EffectTiming;
    updateTiming(timing?: OptionalEffectTiming): void;
}

declare var AnimationEffect: {
    prototype: AnimationEffect;
    new(): AnimationEffect;
};

/** Events providing information related to animations. */
interface AnimationEvent extends Event {
    readonly animationName: string;
    readonly elapsedTime: number;
    readonly pseudoElement: string;
}

declare var AnimationEvent: {
    prototype: AnimationEvent;
    new(type: string, animationEventInitDict?: AnimationEventInit): AnimationEvent;
};

interface AnimationFrameProvider {
    cancelAnimationFrame(handle: number): void;
    requestAnimationFrame(callback: FrameRequestCallback): number;
}

interface AnimationPlaybackEvent extends Event {
    readonly currentTime: CSSNumberish | null;
    readonly timelineTime: CSSNumberish | null;
}

declare var AnimationPlaybackEvent: {
    prototype: AnimationPlaybackEvent;
    new(type: string, eventInitDict?: AnimationPlaybackEventInit): AnimationPlaybackEvent;
};

interface AnimationTimeline {
    readonly currentTime: number | null;
}

declare var AnimationTimeline: {
    prototype: AnimationTimeline;
    new(): AnimationTimeline;
};

/** A DOM element's attribute as an object. In most DOM methods, you will probably directly retrieve the attribute as a string (e.g., Element.getAttribute(), but certain functions (e.g., Element.getAttributeNode()) or means of iterating give Attr types. */
interface Attr extends Node {
    readonly localName: string;
    readonly name: string;
    readonly namespaceURI: string | null;
    readonly ownerDocument: Document;
    readonly ownerElement: Element | null;
    readonly prefix: string | null;
    /** @deprecated */
    readonly specified: boolean;
    value: string;
}

declare var Attr: {
    prototype: Attr;
    new(): Attr;
};

/** A short audio asset residing in memory, created from an audio file using the AudioContext.decodeAudioData() method, or from raw data using AudioContext.createBuffer(). Once put into an AudioBuffer, the audio can then be played by being passed into an AudioBufferSourceNode. */
interface AudioBuffer {
    readonly duration: number;
    readonly length: number;
    readonly numberOfChannels: number;
    readonly sampleRate: number;
    copyFromChannel(destination: Float32Array, channelNumber: number, bufferOffset?: number): void;
    copyToChannel(source: Float32Array, channelNumber: number, bufferOffset?: number): void;
    getChannelData(channel: number): Float32Array;
}

declare var AudioBuffer: {
    prototype: AudioBuffer;
    new(options: AudioBufferOptions): AudioBuffer;
};

/** An AudioScheduledSourceNode which represents an audio source consisting of in-memory audio data, stored in an AudioBuffer. It's especially useful for playing back audio which has particularly stringent timing accuracy requirements, such as for sounds that must match a specific rhythm and can be kept in memory rather than being played from disk or the network. */
interface AudioBufferSourceNode extends AudioScheduledSourceNode {
    buffer: AudioBuffer | null;
    readonly detune: AudioParam;
    loop: boolean;
    loopEnd: number;
    loopStart: number;
    readonly playbackRate: AudioParam;
    start(when?: number, offset?: number, duration?: number): void;
    addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var AudioBufferSourceNode: {
    prototype: AudioBufferSourceNode;
    new(context: BaseAudioContext, options?: AudioBufferSourceOptions): AudioBufferSourceNode;
};

/** An audio-processing graph built from audio modules linked together, each represented by an AudioNode. */
interface AudioContext extends BaseAudioContext {
    readonly baseLatency: number;
    readonly outputLatency: number;
    close(): Promise<void>;
    createMediaElementSource(mediaElement: HTMLMediaElement): MediaElementAudioSourceNode;
    createMediaStreamDestination(): MediaStreamAudioDestinationNode;
    createMediaStreamSource(mediaStream: MediaStream): MediaStreamAudioSourceNode;
    getOutputTimestamp(): AudioTimestamp;
    resume(): Promise<void>;
    suspend(): Promise<void>;
    addEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var AudioContext: {
    prototype: AudioContext;
    new(contextOptions?: AudioContextOptions): AudioContext;
};

/** AudioDestinationNode has no output (as it is the output, no more AudioNode can be linked after it in the audio graph) and one input. The number of channels in the input must be between 0 and the maxChannelCount value or an exception is raised. */
interface AudioDestinationNode extends AudioNode {
    readonly maxChannelCount: number;
}

declare var AudioDestinationNode: {
    prototype: AudioDestinationNode;
    new(): AudioDestinationNode;
};

/** The position and orientation of the unique person listening to the audio scene, and is used in audio spatialization. All PannerNodes spatialize in relation to the AudioListener stored in the BaseAudioContext.listener attribute. */
interface AudioListener {
    readonly forwardX: AudioParam;
    readonly forwardY: AudioParam;
    readonly forwardZ: AudioParam;
    readonly positionX: AudioParam;
    readonly positionY: AudioParam;
    readonly positionZ: AudioParam;
    readonly upX: AudioParam;
    readonly upY: AudioParam;
    readonly upZ: AudioParam;
    /** @deprecated */
    setOrientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): void;
    /** @deprecated */
    setPosition(x: number, y: number, z: number): void;
}

declare var AudioListener: {
    prototype: AudioListener;
    new(): AudioListener;
};

/** A generic interface for representing an audio processing module. Examples include: */
interface AudioNode extends EventTarget {
    channelCount: number;
    channelCountMode: ChannelCountMode;
    channelInterpretation: ChannelInterpretation;
    readonly context: BaseAudioContext;
    readonly numberOfInputs: number;
    readonly numberOfOutputs: number;
    connect(destinationNode: AudioNode, output?: number, input?: number): AudioNode;
    connect(destinationParam: AudioParam, output?: number): void;
    disconnect(): void;
    disconnect(output: number): void;
    disconnect(destinationNode: AudioNode): void;
    disconnect(destinationNode: AudioNode, output: number): void;
    disconnect(destinationNode: AudioNode, output: number, input: number): void;
    disconnect(destinationParam: AudioParam): void;
    disconnect(destinationParam: AudioParam, output: number): void;
}

declare var AudioNode: {
    prototype: AudioNode;
    new(): AudioNode;
};

/** The Web Audio API's AudioParam interface represents an audio-related parameter, usually a parameter of an AudioNode (such as GainNode.gain). */
interface AudioParam {
    automationRate: AutomationRate;
    readonly defaultValue: number;
    readonly maxValue: number;
    readonly minValue: number;
    value: number;
    cancelAndHoldAtTime(cancelTime: number): AudioParam;
    cancelScheduledValues(cancelTime: number): AudioParam;
    exponentialRampToValueAtTime(value: number, endTime: number): AudioParam;
    linearRampToValueAtTime(value: number, endTime: number): AudioParam;
    setTargetAtTime(target: number, startTime: number, timeConstant: number): AudioParam;
    setValueAtTime(value: number, startTime: number): AudioParam;
    setValueCurveAtTime(values: number[] | Float32Array, startTime: number, duration: number): AudioParam;
}

declare var AudioParam: {
    prototype: AudioParam;
    new(): AudioParam;
};

interface AudioParamMap {
    forEach(callbackfn: (value: AudioParam, key: string, parent: AudioParamMap) => void, thisArg?: any): void;
}

declare var AudioParamMap: {
    prototype: AudioParamMap;
    new(): AudioParamMap;
};

/**
 * The Web Audio API events that occur when a ScriptProcessorNode input buffer is ready to be processed.
 * @deprecated As of the August 29 2014 Web Audio API spec publication, this feature has been marked as deprecated, and is soon to be replaced by AudioWorklet.
 */
interface AudioProcessingEvent extends Event {
    /** @deprecated */
    readonly inputBuffer: AudioBuffer;
    /** @deprecated */
    readonly outputBuffer: AudioBuffer;
    /** @deprecated */
    readonly playbackTime: number;
}

/** @deprecated */
declare var AudioProcessingEvent: {
    prototype: AudioProcessingEvent;
    new(type: string, eventInitDict: AudioProcessingEventInit): AudioProcessingEvent;
};

interface AudioScheduledSourceNodeEventMap {
    "ended": Event;
}

interface AudioScheduledSourceNode extends AudioNode {
    onended: ((this: AudioScheduledSourceNode, ev: Event) => any) | null;
    start(when?: number): void;
    stop(when?: number): void;
    addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var AudioScheduledSourceNode: {
    prototype: AudioScheduledSourceNode;
    new(): AudioScheduledSourceNode;
};

/** Available only in secure contexts. */
interface AudioWorklet extends Worklet {
}

declare var AudioWorklet: {
    prototype: AudioWorklet;
    new(): AudioWorklet;
};

interface AudioWorkletNodeEventMap {
    "processorerror": Event;
}

/** Available only in secure contexts. */
interface AudioWorkletNode extends AudioNode {
    onprocessorerror: ((this: AudioWorkletNode, ev: Event) => any) | null;
    readonly parameters: AudioParamMap;
    readonly port: MessagePort;
    addEventListener<K extends keyof AudioWorkletNodeEventMap>(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof AudioWorkletNodeEventMap>(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var AudioWorkletNode: {
    prototype: AudioWorkletNode;
    new(context: BaseAudioContext, name: string, options?: AudioWorkletNodeOptions): AudioWorkletNode;
};

/** Available only in secure contexts. */
interface AuthenticatorAssertionResponse extends AuthenticatorResponse {
    readonly authenticatorData: ArrayBuffer;
    readonly signature: ArrayBuffer;
    readonly userHandle: ArrayBuffer | null;
}

declare var AuthenticatorAssertionResponse: {
    prototype: AuthenticatorAssertionResponse;
    new(): AuthenticatorAssertionResponse;
};

/** Available only in secure contexts. */
interface AuthenticatorAttestationResponse extends AuthenticatorResponse {
    readonly attestationObject: ArrayBuffer;
    getAuthenticatorData(): ArrayBuffer;
    getPublicKey(): ArrayBuffer | null;
    getPublicKeyAlgorithm(): COSEAlgorithmIdentifier;
    getTransports(): string[];
}

declare var AuthenticatorAttestationResponse: {
    prototype: AuthenticatorAttestationResponse;
    new(): AuthenticatorAttestationResponse;
};

/** Available only in secure contexts. */
interface AuthenticatorResponse {
    readonly clientDataJSON: ArrayBuffer;
}

declare var AuthenticatorResponse: {
    prototype: AuthenticatorResponse;
    new(): AuthenticatorResponse;
};

interface BarProp {
    readonly visible: boolean;
}

declare var BarProp: {
    prototype: BarProp;
    new(): BarProp;
};

interface BaseAudioContextEventMap {
    "statechange": Event;
}

interface BaseAudioContext extends EventTarget {
    /** Available only in secure contexts. */
    readonly audioWorklet: AudioWorklet;
    readonly currentTime: number;
    readonly destination: AudioDestinationNode;
    readonly listener: AudioListener;
    onstatechange: ((this: BaseAudioContext, ev: Event) => any) | null;
    readonly sampleRate: number;
    readonly state: AudioContextState;
    createAnalyser(): AnalyserNode;
    createBiquadFilter(): BiquadFilterNode;
    createBuffer(numberOfChannels: number, length: number, sampleRate: number): AudioBuffer;
    createBufferSource(): AudioBufferSourceNode;
    createChannelMerger(numberOfInputs?: number): ChannelMergerNode;
    createChannelSplitter(numberOfOutputs?: number): ChannelSplitterNode;
    createConstantSource(): ConstantSourceNode;
    createConvolver(): ConvolverNode;
    createDelay(maxDelayTime?: number): DelayNode;
    createDynamicsCompressor(): DynamicsCompressorNode;
    createGain(): GainNode;
    createIIRFilter(feedforward: number[], feedback: number[]): IIRFilterNode;
    createOscillator(): OscillatorNode;
    createPanner(): PannerNode;
    createPeriodicWave(real: number[] | Float32Array, imag: number[] | Float32Array, constraints?: PeriodicWaveConstraints): PeriodicWave;
    /** @deprecated */
    createScriptProcessor(bufferSize?: number, numberOfInputChannels?: number, numberOfOutputChannels?: number): ScriptProcessorNode;
    createStereoPanner(): StereoPannerNode;
    createWaveShaper(): WaveShaperNode;
    decodeAudioData(audioData: ArrayBuffer, successCallback?: DecodeSuccessCallback | null, errorCallback?: DecodeErrorCallback | null): Promise<AudioBuffer>;
    addEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var BaseAudioContext: {
    prototype: BaseAudioContext;
    new(): BaseAudioContext;
};

/** The beforeunload event is fired when the window, the document and its resources are about to be unloaded. */
interface BeforeUnloadEvent extends Event {
    returnValue: any;
}

declare var BeforeUnloadEvent: {
    prototype: BeforeUnloadEvent;
    new(): BeforeUnloadEvent;
};

/** A simple low-order filter, and is created using the AudioContext.createBiquadFilter() method. It is an AudioNode that can represent different kinds of filters, tone control devices, and graphic equalizers. */
interface BiquadFilterNode extends AudioNode {
    readonly Q: AudioParam;
    readonly detune: AudioParam;
    readonly frequency: AudioParam;
    readonly gain: AudioParam;
    type: BiquadFilterType;
    getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void;
}

declare var BiquadFilterNode: {
    prototype: BiquadFilterNode;
    new(context: BaseAudioContext, options?: BiquadFilterOptions): BiquadFilterNode;
};

/** A file-like object of immutable, raw data. Blobs represent data that isn't necessarily in a JavaScript-native format. The File interface is based on Blob, inheriting blob functionality and expanding it to support files on the user's system. */
interface Blob {
    readonly size: number;
    readonly type: string;
    arrayBuffer(): Promise<ArrayBuffer>;
    slice(start?: number, end?: number, contentType?: string): Blob;
    stream(): ReadableStream<Uint8Array>;
    text(): Promise<string>;
}

declare var Blob: {
    prototype: Blob;
    new(blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;
};

interface BlobEvent extends Event {
    readonly data: Blob;
    readonly timecode: DOMHighResTimeStamp;
}

declare var BlobEvent: {
    prototype: BlobEvent;
    new(type: string, eventInitDict: BlobEventInit): BlobEvent;
};

interface Body {
    readonly body: ReadableStream<Uint8Array> | null;
    readonly bodyUsed: boolean;
    arrayBuffer(): Promise<ArrayBuffer>;
    blob(): Promise<Blob>;
    formData(): Promise<FormData>;
    json(): Promise<any>;
    text(): Promise<string>;
}

interface BroadcastChannelEventMap {
    "message": MessageEvent;
    "messageerror": MessageEvent;
}

interface BroadcastChannel extends EventTarget {
    /** Returns the channel name (as passed to the constructor). */
    readonly name: string;
    onmessage: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;
    onmessageerror: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;
    /** Closes the BroadcastChannel object, opening it up to garbage collection. */
    close(): void;
    /** Sends the given message to other BroadcastChannel objects set up for this channel. Messages can be structured objects, e.g. nested objects and arrays. */
    postMessage(message: any): void;
    addEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var BroadcastChannel: {
    prototype: BroadcastChannel;
    new(name: string): BroadcastChannel;
};

/** This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams. */
interface ByteLengthQueuingStrategy extends QueuingStrategy<ArrayBufferView> {
    readonly highWaterMark: number;
    readonly size: QueuingStrategySize<ArrayBufferView>;
}

declare var ByteLengthQueuingStrategy: {
    prototype: ByteLengthQueuingStrategy;
    new(init: QueuingStrategyInit): ByteLengthQueuingStrategy;
};

/** A CDATA section that can be used within XML to include extended portions of unescaped text. The symbols < and & don’t need escaping as they normally do when inside a CDATA section. */
interface CDATASection extends Text {
}

declare var CDATASection: {
    prototype: CDATASection;
    new(): CDATASection;
};

interface CSSAnimation extends Animation {
    readonly animationName: string;
    addEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: CSSAnimation, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: CSSAnimation, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var CSSAnimation: {
    prototype: CSSAnimation;
    new(): CSSAnimation;
};

/** A single condition CSS at-rule, which consists of a condition and a statement block. It is a child of CSSGroupingRule. */
interface CSSConditionRule extends CSSGroupingRule {
    readonly conditionText: string;
}

declare var CSSConditionRule: {
    prototype: CSSConditionRule;
    new(): CSSConditionRule;
};

interface CSSContainerRule extends CSSConditionRule {
}

declare var CSSContainerRule: {
    prototype: CSSContainerRule;
    new(): CSSContainerRule;
};

interface CSSCounterStyleRule extends CSSRule {
    additiveSymbols: string;
    fallback: string;
    name: string;
    negative: string;
    pad: string;
    prefix: string;
    range: string;
    speakAs: string;
    suffix: string;
    symbols: string;
    system: string;
}

declare var CSSCounterStyleRule: {
    prototype: CSSCounterStyleRule;
    new(): CSSCounterStyleRule;
};

interface CSSFontFaceRule extends CSSRule {
    readonly style: CSSStyleDeclaration;
}

declare var CSSFontFaceRule: {
    prototype: CSSFontFaceRule;
    new(): CSSFontFaceRule;
};

interface CSSFontFeatureValuesRule extends CSSRule {
    fontFamily: string;
}

declare var CSSFontFeatureValuesRule: {
    prototype: CSSFontFeatureValuesRule;
    new(): CSSFontFeatureValuesRule;
};

interface CSSFontPaletteValuesRule extends CSSRule {
    readonly basePalette: string;
    readonly fontFamily: string;
    readonly name: string;
    readonly overrideColors: string;
}

declare var CSSFontPaletteValuesRule: {
    prototype: CSSFontPaletteValuesRule;
    new(): CSSFontPaletteValuesRule;
};

/** Any CSS at-rule that contains other rules nested within it. */
interface CSSGroupingRule extends CSSRule {
    readonly cssRules: CSSRuleList;
    deleteRule(index: number): void;
    insertRule(rule: string, index?: number): number;
}

declare var CSSGroupingRule: {
    prototype: CSSGroupingRule;
    new(): CSSGroupingRule;
};

interface CSSImportRule extends CSSRule {
    readonly href: string;
    readonly layerName: string | null;
    readonly media: MediaList;
    readonly styleSheet: CSSStyleSheet;
}

declare var CSSImportRule: {
    prototype: CSSImportRule;
    new(): CSSImportRule;
};

/** An object representing a set of style for a given keyframe. It corresponds to the contains of a single keyframe of a @keyframes at-rule. It implements the CSSRule interface with a type value of 8 (CSSRule.KEYFRAME_RULE). */
interface CSSKeyframeRule extends CSSRule {
    keyText: string;
    readonly style: CSSStyleDeclaration;
}

declare var CSSKeyframeRule: {
    prototype: CSSKeyframeRule;
    new(): CSSKeyframeRule;
};

/** An object representing a complete set of keyframes for a CSS animation. It corresponds to the contains of a whole @keyframes at-rule. It implements the CSSRule interface with a type value of 7 (CSSRule.KEYFRAMES_RULE). */
interface CSSKeyframesRule extends CSSRule {
    readonly cssRules: CSSRuleList;
    name: string;
    appendRule(rule: string): void;
    deleteRule(select: string): void;
    findRule(select: string): CSSKeyframeRule | null;
    [index: number]: CSSKeyframeRule;
}

declare var CSSKeyframesRule: {
    prototype: CSSKeyframesRule;
    new(): CSSKeyframesRule;
};

interface CSSLayerBlockRule extends CSSGroupingRule {
    readonly name: string;
}

declare var CSSLayerBlockRule: {
    prototype: CSSLayerBlockRule;
    new(): CSSLayerBlockRule;
};

interface CSSLayerStatementRule extends CSSRule {
    readonly nameList: ReadonlyArray<string>;
}

declare var CSSLayerStatementRule: {
    prototype: CSSLayerStatementRule;
    new(): CSSLayerStatementRule;
};

/** A single CSS @media rule. It implements the CSSConditionRule interface, and therefore the CSSGroupingRule and the CSSRule interface with a type value of 4 (CSSRule.MEDIA_RULE). */
interface CSSMediaRule extends CSSConditionRule {
    readonly media: MediaList;
}

declare var CSSMediaRule: {
    prototype: CSSMediaRule;
    new(): CSSMediaRule;
};

/** An object representing a single CSS @namespace at-rule. It implements the CSSRule interface, with a type value of 10 (CSSRule.NAMESPACE_RULE). */
interface CSSNamespaceRule extends CSSRule {
    readonly namespaceURI: string;
    readonly prefix: string;
}

declare var CSSNamespaceRule: {
    prototype: CSSNamespaceRule;
    new(): CSSNamespaceRule;
};

/** CSSPageRule is an interface representing a single CSS @page rule. It implements the CSSRule interface with a type value of 6 (CSSRule.PAGE_RULE). */
interface CSSPageRule extends CSSGroupingRule {
    selectorText: string;
    readonly style: CSSStyleDeclaration;
}

declare var CSSPageRule: {
    prototype: CSSPageRule;
    new(): CSSPageRule;
};

/** A single CSS rule. There are several types of rules, listed in the Type constants section below. */
interface CSSRule {
    cssText: string;
    readonly parentRule: CSSRule | null;
    readonly parentStyleSheet: CSSStyleSheet | null;
    /** @deprecated */
    readonly type: number;
    readonly STYLE_RULE: 1;
    readonly CHARSET_RULE: 2;
    readonly IMPORT_RULE: 3;
    readonly MEDIA_RULE: 4;
    readonly FONT_FACE_RULE: 5;
    readonly PAGE_RULE: 6;
    readonly NAMESPACE_RULE: 10;
    readonly KEYFRAMES_RULE: 7;
    readonly KEYFRAME_RULE: 8;
    readonly SUPPORTS_RULE: 12;
}

declare var CSSRule: {
    prototype: CSSRule;
    new(): CSSRule;
    readonly STYLE_RULE: 1;
    readonly CHARSET_RULE: 2;
    readonly IMPORT_RULE: 3;
    readonly MEDIA_RULE: 4;
    readonly FONT_FACE_RULE: 5;
    readonly PAGE_RULE: 6;
    readonly NAMESPACE_RULE: 10;
    readonly KEYFRAMES_RULE: 7;
    readonly KEYFRAME_RULE: 8;
    readonly SUPPORTS_RULE: 12;
};

/** A CSSRuleList is an (indirect-modify only) array-like object containing an ordered collection of CSSRule objects. */
interface CSSRuleList {
    readonly length: number;
    item(index: number): CSSRule | null;
    [index: number]: CSSRule;
}

declare var CSSRuleList: {
    prototype: CSSRuleList;
    new(): CSSRuleList;
};

/** An object that is a CSS declaration block, and exposes style information and various style-related methods and properties. */
interface CSSStyleDeclaration {
    accentColor: string;
    alignContent: string;
    alignItems: string;
    alignSelf: string;
    alignmentBaseline: string;
    all: string;
    animation: string;
    animationDelay: string;
    animationDirection: string;
    animationDuration: string;
    animationFillMode: string;
    animationIterationCount: string;
    animationName: string;
    animationPlayState: string;
    animationTimingFunction: string;
    appearance: string;
    aspectRatio: string;
    backdropFilter: string;
    backfaceVisibility: string;
    background: string;
    backgroundAttachment: string;
    backgroundBlendMode: string;
    backgroundClip: string;
    backgroundColor: string;
    backgroundImage: string;
    backgroundOrigin: string;
    backgroundPosition: string;
    backgroundPositionX: string;
    backgroundPositionY: string;
    backgroundRepeat: string;
    backgroundSize: string;
    baselineShift: string;
    blockSize: string;
    border: string;
    borderBlock: string;
    borderBlockColor: string;
    borderBlockEnd: string;
    borderBlockEndColor: string;
    borderBlockEndStyle: string;
    borderBlockEndWidth: string;
    borderBlockStart: string;
    borderBlockStartColor: string;
    borderBlockStartStyle: string;
    borderBlockStartWidth: string;
    borderBlockStyle: string;
    borderBlockWidth: string;
    borderBottom: string;
    borderBottomColor: string;
    borderBottomLeftRadius: string;
    borderBottomRightRadius: string;
    borderBottomStyle: string;
    borderBottomWidth: string;
    borderCollapse: string;
    borderColor: string;
    borderEndEndRadius: string;
    borderEndStartRadius: string;
    borderImage: string;
    borderImageOutset: string;
    borderImageRepeat: string;
    borderImageSlice: string;
    borderImageSource: string;
    borderImageWidth: string;
    borderInline: string;
    borderInlineColor: string;
    borderInlineEnd: string;
    borderInlineEndColor: string;
    borderInlineEndStyle: string;
    borderInlineEndWidth: string;
    borderInlineStart: string;
    borderInlineStartColor: string;
    borderInlineStartStyle: string;
    borderInlineStartWidth: string;
    borderInlineStyle: string;
    borderInlineWidth: string;
    borderLeft: string;
    borderLeftColor: string;
    borderLeftStyle: string;
    borderLeftWidth: string;
    borderRadius: string;
    borderRight: string;
    borderRightColor: string;
    borderRightStyle: string;
    borderRightWidth: string;
    borderSpacing: string;
    borderStartEndRadius: string;
    borderStartStartRadius: string;
    borderStyle: string;
    borderTop: string;
    borderTopColor: string;
    borderTopLeftRadius: string;
    borderTopRightRadius: string;
    borderTopStyle: string;
    borderTopWidth: string;
    borderWidth: string;
    bottom: string;
    boxShadow: string;
    boxSizing: string;
    breakAfter: string;
    breakBefore: string;
    breakInside: string;
    captionSide: string;
    caretColor: string;
    clear: string;
    /** @deprecated */
    clip: string;
    clipPath: string;
    clipRule: string;
    color: string;
    colorInterpolation: string;
    colorInterpolationFilters: string;
    colorScheme: string;
    columnCount: string;
    columnFill: string;
    columnGap: string;
    columnRule: string;
    columnRuleColor: string;
    columnRuleStyle: string;
    columnRuleWidth: string;
    columnSpan: string;
    columnWidth: string;
    columns: string;
    contain: string;
    containIntrinsicBlockSize: string;
    containIntrinsicHeight: string;
    containIntrinsicInlineSize: string;
    containIntrinsicSize: string;
    containIntrinsicWidth: string;
    container: string;
    containerName: string;
    containerType: string;
    content: string;
    contentVisibility: string;
    counterIncrement: string;
    counterReset: string;
    counterSet: string;
    cssFloat: string;
    cssText: string;
    cursor: string;
    direction: string;
    display: string;
    dominantBaseline: string;
    emptyCells: string;
    fill: string;
    fillOpacity: string;
    fillRule: string;
    filter: string;
    flex: string;
    flexBasis: string;
    flexDirection: string;
    flexFlow: string;
    flexGrow: string;
    flexShrink: string;
    flexWrap: string;
    float: string;
    floodColor: string;
    floodOpacity: string;
    font: string;
    fontFamily: string;
    fontFeatureSettings: string;
    fontKerning: string;
    fontOpticalSizing: string;
    fontPalette: string;
    fontSize: string;
    fontSizeAdjust: string;
    fontStretch: string;
    fontStyle: string;
    fontSynthesis: string;
    fontVariant: string;
    fontVariantAlternates: string;
    fontVariantCaps: string;
    fontVariantEastAsian: string;
    fontVariantLigatures: string;
    fontVariantNumeric: string;
    fontVariantPosition: string;
    fontVariationSettings: string;
    fontWeight: string;
    gap: string;
    grid: string;
    gridArea: string;
    gridAutoColumns: string;
    gridAutoFlow: string;
    gridAutoRows: string;
    gridColumn: string;
    gridColumnEnd: string;
    /** @deprecated This is a legacy alias of \`columnGap\`. */
    gridColumnGap: string;
    gridColumnStart: string;
    /** @deprecated This is a legacy alias of \`gap\`. */
    gridGap: string;
    gridRow: string;
    gridRowEnd: string;
    /** @deprecated This is a legacy alias of \`rowGap\`. */
    gridRowGap: string;
    gridRowStart: string;
    gridTemplate: string;
    gridTemplateAreas: string;
    gridTemplateColumns: string;
    gridTemplateRows: string;
    height: string;
    hyphenateCharacter: string;
    hyphens: string;
    /** @deprecated */
    imageOrientation: string;
    imageRendering: string;
    inlineSize: string;
    inset: string;
    insetBlock: string;
    insetBlockEnd: string;
    insetBlockStart: string;
    insetInline: string;
    insetInlineEnd: string;
    insetInlineStart: string;
    isolation: string;
    justifyContent: string;
    justifyItems: string;
    justifySelf: string;
    left: string;
    readonly length: number;
    letterSpacing: string;
    lightingColor: string;
    lineBreak: string;
    lineHeight: string;
    listStyle: string;
    listStyleImage: string;
    listStylePosition: string;
    listStyleType: string;
    margin: string;
    marginBlock: string;
    marginBlockEnd: string;
    marginBlockStart: string;
    marginBottom: string;
    marginInline: string;
    marginInlineEnd: string;
    marginInlineStart: string;
    marginLeft: string;
    marginRight: string;
    marginTop: string;
    marker: string;
    markerEnd: string;
    markerMid: string;
    markerStart: string;
    mask: string;
    maskClip: string;
    maskComposite: string;
    maskImage: string;
    maskMode: string;
    maskOrigin: string;
    maskPosition: string;
    maskRepeat: string;
    maskSize: string;
    maskType: string;
    mathStyle: string;
    maxBlockSize: string;
    maxHeight: string;
    maxInlineSize: string;
    maxWidth: string;
    minBlockSize: string;
    minHeight: string;
    minInlineSize: string;
    minWidth: string;
    mixBlendMode: string;
    objectFit: string;
    objectPosition: string;
    offset: string;
    offsetDistance: string;
    offsetPath: string;
    offsetRotate: string;
    opacity: string;
    order: string;
    orphans: string;
    outline: string;
    outlineColor: string;
    outlineOffset: string;
    outlineStyle: string;
    outlineWidth: string;
    overflow: string;
    overflowAnchor: string;
    overflowClipMargin: string;
    overflowWrap: string;
    overflowX: string;
    overflowY: string;
    overscrollBehavior: string;
    overscrollBehaviorBlock: string;
    overscrollBehaviorInline: string;
    overscrollBehaviorX: string;
    overscrollBehaviorY: string;
    padding: string;
    paddingBlock: string;
    paddingBlockEnd: string;
    paddingBlockStart: string;
    paddingBottom: string;
    paddingInline: string;
    paddingInlineEnd: string;
    paddingInlineStart: string;
    paddingLeft: string;
    paddingRight: string;
    paddingTop: string;
    pageBreakAfter: string;
    pageBreakBefore: string;
    pageBreakInside: string;
    paintOrder: string;
    readonly parentRule: CSSRule | null;
    perspective: string;
    perspectiveOrigin: string;
    placeContent: string;
    placeItems: string;
    placeSelf: string;
    pointerEvents: string;
    position: string;
    printColorAdjust: string;
    quotes: string;
    resize: string;
    right: string;
    rotate: string;
    rowGap: string;
    rubyPosition: string;
    scale: string;
    scrollBehavior: string;
    scrollMargin: string;
    scrollMarginBlock: string;
    scrollMarginBlockEnd: string;
    scrollMarginBlockStart: string;
    scrollMarginBottom: string;
    scrollMarginInline: string;
    scrollMarginInlineEnd: string;
    scrollMarginInlineStart: string;
    scrollMarginLeft: string;
    scrollMarginRight: string;
    scrollMarginTop: string;
    scrollPadding: string;
    scrollPaddingBlock: string;
    scrollPaddingBlockEnd: string;
    scrollPaddingBlockStart: string;
    scrollPaddingBottom: string;
    scrollPaddingInline: string;
    scrollPaddingInlineEnd: string;
    scrollPaddingInlineStart: string;
    scrollPaddingLeft: string;
    scrollPaddingRight: string;
    scrollPaddingTop: string;
    scrollSnapAlign: string;
    scrollSnapStop: string;
    scrollSnapType: string;
    scrollbarGutter: string;
    shapeImageThreshold: string;
    shapeMargin: string;
    shapeOutside: string;
    shapeRendering: string;
    stopColor: string;
    stopOpacity: string;
    stroke: string;
    strokeDasharray: string;
    strokeDashoffset: string;
    strokeLinecap: string;
    strokeLinejoin: string;
    strokeMiterlimit: string;
    strokeOpacity: string;
    strokeWidth: string;
    tabSize: string;
    tableLayout: string;
    textAlign: string;
    textAlignLast: string;
    textAnchor: string;
    textCombineUpright: string;
    textDecoration: string;
    textDecorationColor: string;
    textDecorationLine: string;
    textDecorationSkipInk: string;
    textDecorationStyle: string;
    textDecorationThickness: string;
    textEmphasis: string;
    textEmphasisColor: string;
    textEmphasisPosition: string;
    textEmphasisStyle: string;
    textIndent: string;
    textOrientation: string;
    textOverflow: string;
    textRendering: string;
    textShadow: string;
    textTransform: string;
    textUnderlineOffset: string;
    textUnderlinePosition: string;
    top: string;
    touchAction: string;
    transform: string;
    transformBox: string;
    transformOrigin: string;
    transformStyle: string;
    transition: string;
    transitionDelay: string;
    transitionDuration: string;
    transitionProperty: string;
    transitionTimingFunction: string;
    translate: string;
    unicodeBidi: string;
    userSelect: string;
    verticalAlign: string;
    visibility: string;
    /** @deprecated This is a legacy alias of \`alignContent\`. */
    webkitAlignContent: string;
    /** @deprecated This is a legacy alias of \`alignItems\`. */
    webkitAlignItems: string;
    /** @deprecated This is a legacy alias of \`alignSelf\`. */
    webkitAlignSelf: string;
    /** @deprecated This is a legacy alias of \`animation\`. */
    webkitAnimation: string;
    /** @deprecated This is a legacy alias of \`animationDelay\`. */
    webkitAnimationDelay: string;
    /** @deprecated This is a legacy alias of \`animationDirection\`. */
    webkitAnimationDirection: string;
    /** @deprecated This is a legacy alias of \`animationDuration\`. */
    webkitAnimationDuration: string;
    /** @deprecated This is a legacy alias of \`animationFillMode\`. */
    webkitAnimationFillMode: string;
    /** @deprecated This is a legacy alias of \`animationIterationCount\`. */
    webkitAnimationIterationCount: string;
    /** @deprecated This is a legacy alias of \`animationName\`. */
    webkitAnimationName: string;
    /** @deprecated This is a legacy alias of \`animationPlayState\`. */
    webkitAnimationPlayState: string;
    /** @deprecated This is a legacy alias of \`animationTimingFunction\`. */
    webkitAnimationTimingFunction: string;
    /** @deprecated This is a legacy alias of \`appearance\`. */
    webkitAppearance: string;
    /** @deprecated This is a legacy alias of \`backfaceVisibility\`. */
    webkitBackfaceVisibility: string;
    /** @deprecated This is a legacy alias of \`backgroundClip\`. */
    webkitBackgroundClip: string;
    /** @deprecated This is a legacy alias of \`backgroundOrigin\`. */
    webkitBackgroundOrigin: string;
    /** @deprecated This is a legacy alias of \`backgroundSize\`. */
    webkitBackgroundSize: string;
    /** @deprecated This is a legacy alias of \`borderBottomLeftRadius\`. */
    webkitBorderBottomLeftRadius: string;
    /** @deprecated This is a legacy alias of \`borderBottomRightRadius\`. */
    webkitBorderBottomRightRadius: string;
    /** @deprecated This is a legacy alias of \`borderRadius\`. */
    webkitBorderRadius: string;
    /** @deprecated This is a legacy alias of \`borderTopLeftRadius\`. */
    webkitBorderTopLeftRadius: string;
    /** @deprecated This is a legacy alias of \`borderTopRightRadius\`. */
    webkitBorderTopRightRadius: string;
    /** @deprecated This is a legacy alias of \`boxAlign\`. */
    webkitBoxAlign: string;
    /** @deprecated This is a legacy alias of \`boxFlex\`. */
    webkitBoxFlex: string;
    /** @deprecated This is a legacy alias of \`boxOrdinalGroup\`. */
    webkitBoxOrdinalGroup: string;
    /** @deprecated This is a legacy alias of \`boxOrient\`. */
    webkitBoxOrient: string;
    /** @deprecated This is a legacy alias of \`boxPack\`. */
    webkitBoxPack: string;
    /** @deprecated This is a legacy alias of \`boxShadow\`. */
    webkitBoxShadow: string;
    /** @deprecated This is a legacy alias of \`boxSizing\`. */
    webkitBoxSizing: string;
    /** @deprecated This is a legacy alias of \`filter\`. */
    webkitFilter: string;
    /** @deprecated This is a legacy alias of \`flex\`. */
    webkitFlex: string;
    /** @deprecated This is a legacy alias of \`flexBasis\`. */
    webkitFlexBasis: string;
    /** @deprecated This is a legacy alias of \`flexDirection\`. */
    webkitFlexDirection: string;
    /** @deprecated This is a legacy alias of \`flexFlow\`. */
    webkitFlexFlow: string;
    /** @deprecated This is a legacy alias of \`flexGrow\`. */
    webkitFlexGrow: string;
    /** @deprecated This is a legacy alias of \`flexShrink\`. */
    webkitFlexShrink: string;
    /** @deprecated This is a legacy alias of \`flexWrap\`. */
    webkitFlexWrap: string;
    /** @deprecated This is a legacy alias of \`justifyContent\`. */
    webkitJustifyContent: string;
    webkitLineClamp: string;
    /** @deprecated This is a legacy alias of \`mask\`. */
    webkitMask: string;
    /** @deprecated This is a legacy alias of \`maskBorder\`. */
    webkitMaskBoxImage: string;
    /** @deprecated This is a legacy alias of \`maskBorderOutset\`. */
    webkitMaskBoxImageOutset: string;
    /** @deprecated This is a legacy alias of \`maskBorderRepeat\`. */
    webkitMaskBoxImageRepeat: string;
    /** @deprecated This is a legacy alias of \`maskBorderSlice\`. */
    webkitMaskBoxImageSlice: string;
    /** @deprecated This is a legacy alias of \`maskBorderSource\`. */
    webkitMaskBoxImageSource: string;
    /** @deprecated This is a legacy alias of \`maskBorderWidth\`. */
    webkitMaskBoxImageWidth: string;
    /** @deprecated This is a legacy alias of \`maskClip\`. */
    webkitMaskClip: string;
    webkitMaskComposite: string;
    /** @deprecated This is a legacy alias of \`maskImage\`. */
    webkitMaskImage: string;
    /** @deprecated This is a legacy alias of \`maskOrigin\`. */
    webkitMaskOrigin: string;
    /** @deprecated This is a legacy alias of \`maskPosition\`. */
    webkitMaskPosition: string;
    /** @deprecated This is a legacy alias of \`maskRepeat\`. */
    webkitMaskRepeat: string;
    /** @deprecated This is a legacy alias of \`maskSize\`. */
    webkitMaskSize: string;
    /** @deprecated This is a legacy alias of \`order\`. */
    webkitOrder: string;
    /** @deprecated This is a legacy alias of \`perspective\`. */
    webkitPerspective: string;
    /** @deprecated This is a legacy alias of \`perspectiveOrigin\`. */
    webkitPerspectiveOrigin: string;
    webkitTextFillColor: string;
    /** @deprecated This is a legacy alias of \`textSizeAdjust\`. */
    webkitTextSizeAdjust: string;
    webkitTextStroke: string;
    webkitTextStrokeColor: string;
    webkitTextStrokeWidth: string;
    /** @deprecated This is a legacy alias of \`transform\`. */
    webkitTransform: string;
    /** @deprecated This is a legacy alias of \`transformOrigin\`. */
    webkitTransformOrigin: string;
    /** @deprecated This is a legacy alias of \`transformStyle\`. */
    webkitTransformStyle: string;
    /** @deprecated This is a legacy alias of \`transition\`. */
    webkitTransition: string;
    /** @deprecated This is a legacy alias of \`transitionDelay\`. */
    webkitTransitionDelay: string;
    /** @deprecated This is a legacy alias of \`transitionDuration\`. */
    webkitTransitionDuration: string;
    /** @deprecated This is a legacy alias of \`transitionProperty\`. */
    webkitTransitionProperty: string;
    /** @deprecated This is a legacy alias of \`transitionTimingFunction\`. */
    webkitTransitionTimingFunction: string;
    /** @deprecated This is a legacy alias of \`userSelect\`. */
    webkitUserSelect: string;
    whiteSpace: string;
    widows: string;
    width: string;
    willChange: string;
    wordBreak: string;
    wordSpacing: string;
    /** @deprecated */
    wordWrap: string;
    writingMode: string;
    zIndex: string;
    getPropertyPriority(property: string): string;
    getPropertyValue(property: string): string;
    item(index: number): string;
    removeProperty(property: string): string;
    setProperty(property: string, value: string | null, priority?: string): void;
    [index: number]: string;
}

declare var CSSStyleDeclaration: {
    prototype: CSSStyleDeclaration;
    new(): CSSStyleDeclaration;
};

/** CSSStyleRule represents a single CSS style rule. It implements the CSSRule interface with a type value of 1 (CSSRule.STYLE_RULE). */
interface CSSStyleRule extends CSSRule {
    selectorText: string;
    readonly style: CSSStyleDeclaration;
}

declare var CSSStyleRule: {
    prototype: CSSStyleRule;
    new(): CSSStyleRule;
};

/** A single CSS style sheet. It inherits properties and methods from its parent, StyleSheet. */
interface CSSStyleSheet extends StyleSheet {
    readonly cssRules: CSSRuleList;
    readonly ownerRule: CSSRule | null;
    /** @deprecated */
    readonly rules: CSSRuleList;
    /** @deprecated */
    addRule(selector?: string, style?: string, index?: number): number;
    deleteRule(index: number): void;
    insertRule(rule: string, index?: number): number;
    /** @deprecated */
    removeRule(index?: number): void;
    replace(text: string): Promise<CSSStyleSheet>;
    replaceSync(text: string): void;
}

declare var CSSStyleSheet: {
    prototype: CSSStyleSheet;
    new(options?: CSSStyleSheetInit): CSSStyleSheet;
};

/** An object representing a single CSS @supports at-rule. It implements the CSSConditionRule interface, and therefore the CSSRule and CSSGroupingRule interfaces with a type value of 12 (CSSRule.SUPPORTS_RULE). */
interface CSSSupportsRule extends CSSConditionRule {
}

declare var CSSSupportsRule: {
    prototype: CSSSupportsRule;
    new(): CSSSupportsRule;
};

interface CSSTransition extends Animation {
    readonly transitionProperty: string;
    addEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: CSSTransition, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: CSSTransition, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var CSSTransition: {
    prototype: CSSTransition;
    new(): CSSTransition;
};

/**
 * Provides a storage mechanism for Request / Response object pairs that are cached, for example as part of the ServiceWorker life cycle. Note that the Cache interface is exposed to windowed scopes as well as workers. You don't have to use it in conjunction with service workers, even though it is defined in the service worker spec.
 * Available only in secure contexts.
 */
interface Cache {
    add(request: RequestInfo | URL): Promise<void>;
    addAll(requests: RequestInfo[]): Promise<void>;
    delete(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<boolean>;
    keys(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise<ReadonlyArray<Request>>;
    match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<Response | undefined>;
    matchAll(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise<ReadonlyArray<Response>>;
    put(request: RequestInfo | URL, response: Response): Promise<void>;
}

declare var Cache: {
    prototype: Cache;
    new(): Cache;
};

/**
 * The storage for Cache objects.
 * Available only in secure contexts.
 */
interface CacheStorage {
    delete(cacheName: string): Promise<boolean>;
    has(cacheName: string): Promise<boolean>;
    keys(): Promise<string[]>;
    match(request: RequestInfo | URL, options?: MultiCacheQueryOptions): Promise<Response | undefined>;
    open(cacheName: string): Promise<Cache>;
}

declare var CacheStorage: {
    prototype: CacheStorage;
    new(): CacheStorage;
};

interface CanvasCaptureMediaStreamTrack extends MediaStreamTrack {
    readonly canvas: HTMLCanvasElement;
    requestFrame(): void;
    addEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: CanvasCaptureMediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: CanvasCaptureMediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var CanvasCaptureMediaStreamTrack: {
    prototype: CanvasCaptureMediaStreamTrack;
    new(): CanvasCaptureMediaStreamTrack;
};

interface CanvasCompositing {
    globalAlpha: number;
    globalCompositeOperation: GlobalCompositeOperation;
}

interface CanvasDrawImage {
    drawImage(image: CanvasImageSource, dx: number, dy: number): void;
    drawImage(image: CanvasImageSource, dx: number, dy: number, dw: number, dh: number): void;
    drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;
}

interface CanvasDrawPath {
    beginPath(): void;
    clip(fillRule?: CanvasFillRule): void;
    clip(path: Path2D, fillRule?: CanvasFillRule): void;
    fill(fillRule?: CanvasFillRule): void;
    fill(path: Path2D, fillRule?: CanvasFillRule): void;
    isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;
    isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule): boolean;
    isPointInStroke(x: number, y: number): boolean;
    isPointInStroke(path: Path2D, x: number, y: number): boolean;
    stroke(): void;
    stroke(path: Path2D): void;
}

interface CanvasFillStrokeStyles {
    fillStyle: string | CanvasGradient | CanvasPattern;
    strokeStyle: string | CanvasGradient | CanvasPattern;
    createConicGradient(startAngle: number, x: number, y: number): CanvasGradient;
    createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;
    createPattern(image: CanvasImageSource, repetition: string | null): CanvasPattern | null;
    createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;
}

interface CanvasFilters {
    filter: string;
}

/** An opaque object describing a gradient. It is returned by the methods CanvasRenderingContext2D.createLinearGradient() or CanvasRenderingContext2D.createRadialGradient(). */
interface CanvasGradient {
    /**
     * Adds a color stop with the given color to the gradient at the given offset. 0.0 is the offset at one end of the gradient, 1.0 is the offset at the other end.
     *
     * Throws an "IndexSizeError" DOMException if the offset is out of range. Throws a "SyntaxError" DOMException if the color cannot be parsed.
     */
    addColorStop(offset: number, color: string): void;
}

declare var CanvasGradient: {
    prototype: CanvasGradient;
    new(): CanvasGradient;
};

interface CanvasImageData {
    createImageData(sw: number, sh: number, settings?: ImageDataSettings): ImageData;
    createImageData(imagedata: ImageData): ImageData;
    getImageData(sx: number, sy: number, sw: number, sh: number, settings?: ImageDataSettings): ImageData;
    putImageData(imagedata: ImageData, dx: number, dy: number): void;
    putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void;
}

interface CanvasImageSmoothing {
    imageSmoothingEnabled: boolean;
    imageSmoothingQuality: ImageSmoothingQuality;
}

interface CanvasPath {
    arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
    arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
    bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
    closePath(): void;
    ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
    lineTo(x: number, y: number): void;
    moveTo(x: number, y: number): void;
    quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
    rect(x: number, y: number, w: number, h: number): void;
    roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | (number | DOMPointInit)[]): void;
}

interface CanvasPathDrawingStyles {
    lineCap: CanvasLineCap;
    lineDashOffset: number;
    lineJoin: CanvasLineJoin;
    lineWidth: number;
    miterLimit: number;
    getLineDash(): number[];
    setLineDash(segments: number[]): void;
}

/** An opaque object describing a pattern, based on an image, a canvas, or a video, created by the CanvasRenderingContext2D.createPattern() method. */
interface CanvasPattern {
    /** Sets the transformation matrix that will be used when rendering the pattern during a fill or stroke painting operation. */
    setTransform(transform?: DOMMatrix2DInit): void;
}

declare var CanvasPattern: {
    prototype: CanvasPattern;
    new(): CanvasPattern;
};

interface CanvasRect {
    clearRect(x: number, y: number, w: number, h: number): void;
    fillRect(x: number, y: number, w: number, h: number): void;
    strokeRect(x: number, y: number, w: number, h: number): void;
}

/** The CanvasRenderingContext2D interface, part of the Canvas API, provides the 2D rendering context for the drawing surface of a <canvas> element. It is used for drawing shapes, text, images, and other objects. */
interface CanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPath, CanvasPathDrawingStyles, CanvasRect, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform, CanvasUserInterface {
    readonly canvas: HTMLCanvasElement;
    getContextAttributes(): CanvasRenderingContext2DSettings;
}

declare var CanvasRenderingContext2D: {
    prototype: CanvasRenderingContext2D;
    new(): CanvasRenderingContext2D;
};

interface CanvasShadowStyles {
    shadowBlur: number;
    shadowColor: string;
    shadowOffsetX: number;
    shadowOffsetY: number;
}

interface CanvasState {
    restore(): void;
    save(): void;
}

interface CanvasText {
    fillText(text: string, x: number, y: number, maxWidth?: number): void;
    measureText(text: string): TextMetrics;
    strokeText(text: string, x: number, y: number, maxWidth?: number): void;
}

interface CanvasTextDrawingStyles {
    direction: CanvasDirection;
    font: string;
    fontKerning: CanvasFontKerning;
    textAlign: CanvasTextAlign;
    textBaseline: CanvasTextBaseline;
}

interface CanvasTransform {
    getTransform(): DOMMatrix;
    resetTransform(): void;
    rotate(angle: number): void;
    scale(x: number, y: number): void;
    setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;
    setTransform(transform?: DOMMatrix2DInit): void;
    transform(a: number, b: number, c: number, d: number, e: number, f: number): void;
    translate(x: number, y: number): void;
}

interface CanvasUserInterface {
    drawFocusIfNeeded(element: Element): void;
    drawFocusIfNeeded(path: Path2D, element: Element): void;
}

/** The ChannelMergerNode interface, often used in conjunction with its opposite, ChannelSplitterNode, reunites different mono inputs into a single output. Each input is used to fill a channel of the output. This is useful for accessing each channels separately, e.g. for performing channel mixing where gain must be separately controlled on each channel. */
interface ChannelMergerNode extends AudioNode {
}

declare var ChannelMergerNode: {
    prototype: ChannelMergerNode;
    new(context: BaseAudioContext, options?: ChannelMergerOptions): ChannelMergerNode;
};

/** The ChannelSplitterNode interface, often used in conjunction with its opposite, ChannelMergerNode, separates the different channels of an audio source into a set of mono outputs. This is useful for accessing each channel separately, e.g. for performing channel mixing where gain must be separately controlled on each channel. */
interface ChannelSplitterNode extends AudioNode {
}

declare var ChannelSplitterNode: {
    prototype: ChannelSplitterNode;
    new(context: BaseAudioContext, options?: ChannelSplitterOptions): ChannelSplitterNode;
};

/** The CharacterData abstract interface represents a Node object that contains characters. This is an abstract interface, meaning there aren't any object of type CharacterData: it is implemented by other interfaces, like Text, Comment, or ProcessingInstruction which aren't abstract. */
interface CharacterData extends Node, ChildNode, NonDocumentTypeChildNode {
    data: string;
    readonly length: number;
    readonly ownerDocument: Document;
    appendData(data: string): void;
    deleteData(offset: number, count: number): void;
    insertData(offset: number, data: string): void;
    replaceData(offset: number, count: number, data: string): void;
    substringData(offset: number, count: number): string;
}

declare var CharacterData: {
    prototype: CharacterData;
    new(): CharacterData;
};

interface ChildNode extends Node {
    /**
     * Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
     *
     * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
     */
    after(...nodes: (Node | string)[]): void;
    /**
     * Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
     *
     * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
     */
    before(...nodes: (Node | string)[]): void;
    /** Removes node. */
    remove(): void;
    /**
     * Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
     *
     * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
     */
    replaceWith(...nodes: (Node | string)[]): void;
}

/** @deprecated */
interface ClientRect extends DOMRect {
}

/** Available only in secure contexts. */
interface Clipboard extends EventTarget {
    read(): Promise<ClipboardItems>;
    readText(): Promise<string>;
    write(data: ClipboardItems): Promise<void>;
    writeText(data: string): Promise<void>;
}

declare var Clipboard: {
    prototype: Clipboard;
    new(): Clipboard;
};

/** Events providing information related to modification of the clipboard, that is cut, copy, and paste events. */
interface ClipboardEvent extends Event {
    readonly clipboardData: DataTransfer | null;
}

declare var ClipboardEvent: {
    prototype: ClipboardEvent;
    new(type: string, eventInitDict?: ClipboardEventInit): ClipboardEvent;
};

/** Available only in secure contexts. */
interface ClipboardItem {
    readonly presentationStyle: PresentationStyle;
    readonly types: ReadonlyArray<string>;
    getType(type: string): Promise<Blob>;
}

declare var ClipboardItem: {
    prototype: ClipboardItem;
    new(items: Record<string, string | Blob | PromiseLike<string | Blob>>, options?: ClipboardItemOptions): ClipboardItem;
};

/** A CloseEvent is sent to clients using WebSockets when the connection is closed. This is delivered to the listener indicated by the WebSocket object's onclose attribute. */
interface CloseEvent extends Event {
    /** Returns the WebSocket connection close code provided by the server. */
    readonly code: number;
    /** Returns the WebSocket connection close reason provided by the server. */
    readonly reason: string;
    /** Returns true if the connection closed cleanly; false otherwise. */
    readonly wasClean: boolean;
}

declare var CloseEvent: {
    prototype: CloseEvent;
    new(type: string, eventInitDict?: CloseEventInit): CloseEvent;
};

/** Textual notations within markup; although it is generally not visually shown, such comments are available to be read in the source view. */
interface Comment extends CharacterData {
}

declare var Comment: {
    prototype: Comment;
    new(data?: string): Comment;
};

/** The DOM CompositionEvent represents events that occur due to the user indirectly entering text. */
interface CompositionEvent extends UIEvent {
    readonly data: string;
    /** @deprecated */
    initCompositionEvent(typeArg: string, bubblesArg?: boolean, cancelableArg?: boolean, viewArg?: WindowProxy | null, dataArg?: string): void;
}

declare var CompositionEvent: {
    prototype: CompositionEvent;
    new(type: string, eventInitDict?: CompositionEventInit): CompositionEvent;
};

interface ConstantSourceNode extends AudioScheduledSourceNode {
    readonly offset: AudioParam;
    addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: ConstantSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: ConstantSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var ConstantSourceNode: {
    prototype: ConstantSourceNode;
    new(context: BaseAudioContext, options?: ConstantSourceOptions): ConstantSourceNode;
};

/** An AudioNode that performs a Linear Convolution on a given AudioBuffer, often used to achieve a reverb effect. A ConvolverNode always has exactly one input and one output. */
interface ConvolverNode extends AudioNode {
    buffer: AudioBuffer | null;
    normalize: boolean;
}

declare var ConvolverNode: {
    prototype: ConvolverNode;
    new(context: BaseAudioContext, options?: ConvolverOptions): ConvolverNode;
};

/** This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams. */
interface CountQueuingStrategy extends QueuingStrategy {
    readonly highWaterMark: number;
    readonly size: QueuingStrategySize;
}

declare var CountQueuingStrategy: {
    prototype: CountQueuingStrategy;
    new(init: QueuingStrategyInit): CountQueuingStrategy;
};

/** Available only in secure contexts. */
interface Credential {
    readonly id: string;
    readonly type: string;
}

declare var Credential: {
    prototype: Credential;
    new(): Credential;
};

/** Available only in secure contexts. */
interface CredentialsContainer {
    create(options?: CredentialCreationOptions): Promise<Credential | null>;
    get(options?: CredentialRequestOptions): Promise<Credential | null>;
    preventSilentAccess(): Promise<void>;
    store(credential: Credential): Promise<Credential>;
}

declare var CredentialsContainer: {
    prototype: CredentialsContainer;
    new(): CredentialsContainer;
};

/** Basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives. */
interface Crypto {
    /** Available only in secure contexts. */
    readonly subtle: SubtleCrypto;
    getRandomValues<T extends ArrayBufferView | null>(array: T): T;
    /** Available only in secure contexts. */
    randomUUID(): \`\${string}-\${string}-\${string}-\${string}-\${string}\`;
}

declare var Crypto: {
    prototype: Crypto;
    new(): Crypto;
};

/**
 * The CryptoKey dictionary of the Web Crypto API represents a cryptographic key.
 * Available only in secure contexts.
 */
interface CryptoKey {
    readonly algorithm: KeyAlgorithm;
    readonly extractable: boolean;
    readonly type: KeyType;
    readonly usages: KeyUsage[];
}

declare var CryptoKey: {
    prototype: CryptoKey;
    new(): CryptoKey;
};

interface CustomElementRegistry {
    define(name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions): void;
    get(name: string): CustomElementConstructor | undefined;
    upgrade(root: Node): void;
    whenDefined(name: string): Promise<CustomElementConstructor>;
}

declare var CustomElementRegistry: {
    prototype: CustomElementRegistry;
    new(): CustomElementRegistry;
};

interface CustomEvent<T = any> extends Event {
    /** Returns any custom data event was created with. Typically used for synthetic events. */
    readonly detail: T;
    /** @deprecated */
    initCustomEvent(type: string, bubbles?: boolean, cancelable?: boolean, detail?: T): void;
}

declare var CustomEvent: {
    prototype: CustomEvent;
    new<T>(type: string, eventInitDict?: CustomEventInit<T>): CustomEvent<T>;
};

/** An abnormal event (called an exception) which occurs as a result of calling a method or accessing a property of a web API. */
interface DOMException extends Error {
    /** @deprecated */
    readonly code: number;
    readonly message: string;
    readonly name: string;
    readonly INDEX_SIZE_ERR: 1;
    readonly DOMSTRING_SIZE_ERR: 2;
    readonly HIERARCHY_REQUEST_ERR: 3;
    readonly WRONG_DOCUMENT_ERR: 4;
    readonly INVALID_CHARACTER_ERR: 5;
    readonly NO_DATA_ALLOWED_ERR: 6;
    readonly NO_MODIFICATION_ALLOWED_ERR: 7;
    readonly NOT_FOUND_ERR: 8;
    readonly NOT_SUPPORTED_ERR: 9;
    readonly INUSE_ATTRIBUTE_ERR: 10;
    readonly INVALID_STATE_ERR: 11;
    readonly SYNTAX_ERR: 12;
    readonly INVALID_MODIFICATION_ERR: 13;
    readonly NAMESPACE_ERR: 14;
    readonly INVALID_ACCESS_ERR: 15;
    readonly VALIDATION_ERR: 16;
    readonly TYPE_MISMATCH_ERR: 17;
    readonly SECURITY_ERR: 18;
    readonly NETWORK_ERR: 19;
    readonly ABORT_ERR: 20;
    readonly URL_MISMATCH_ERR: 21;
    readonly QUOTA_EXCEEDED_ERR: 22;
    readonly TIMEOUT_ERR: 23;
    readonly INVALID_NODE_TYPE_ERR: 24;
    readonly DATA_CLONE_ERR: 25;
}

declare var DOMException: {
    prototype: DOMException;
    new(message?: string, name?: string): DOMException;
    readonly INDEX_SIZE_ERR: 1;
    readonly DOMSTRING_SIZE_ERR: 2;
    readonly HIERARCHY_REQUEST_ERR: 3;
    readonly WRONG_DOCUMENT_ERR: 4;
    readonly INVALID_CHARACTER_ERR: 5;
    readonly NO_DATA_ALLOWED_ERR: 6;
    readonly NO_MODIFICATION_ALLOWED_ERR: 7;
    readonly NOT_FOUND_ERR: 8;
    readonly NOT_SUPPORTED_ERR: 9;
    readonly INUSE_ATTRIBUTE_ERR: 10;
    readonly INVALID_STATE_ERR: 11;
    readonly SYNTAX_ERR: 12;
    readonly INVALID_MODIFICATION_ERR: 13;
    readonly NAMESPACE_ERR: 14;
    readonly INVALID_ACCESS_ERR: 15;
    readonly VALIDATION_ERR: 16;
    readonly TYPE_MISMATCH_ERR: 17;
    readonly SECURITY_ERR: 18;
    readonly NETWORK_ERR: 19;
    readonly ABORT_ERR: 20;
    readonly URL_MISMATCH_ERR: 21;
    readonly QUOTA_EXCEEDED_ERR: 22;
    readonly TIMEOUT_ERR: 23;
    readonly INVALID_NODE_TYPE_ERR: 24;
    readonly DATA_CLONE_ERR: 25;
};

/** An object providing methods which are not dependent on any particular document. Such an object is returned by the Document.implementation property. */
interface DOMImplementation {
    createDocument(namespace: string | null, qualifiedName: string | null, doctype?: DocumentType | null): XMLDocument;
    createDocumentType(qualifiedName: string, publicId: string, systemId: string): DocumentType;
    createHTMLDocument(title?: string): Document;
    /** @deprecated */
    hasFeature(...args: any[]): true;
}

declare var DOMImplementation: {
    prototype: DOMImplementation;
    new(): DOMImplementation;
};

interface DOMMatrix extends DOMMatrixReadOnly {
    a: number;
    b: number;
    c: number;
    d: number;
    e: number;
    f: number;
    m11: number;
    m12: number;
    m13: number;
    m14: number;
    m21: number;
    m22: number;
    m23: number;
    m24: number;
    m31: number;
    m32: number;
    m33: number;
    m34: number;
    m41: number;
    m42: number;
    m43: number;
    m44: number;
    invertSelf(): DOMMatrix;
    multiplySelf(other?: DOMMatrixInit): DOMMatrix;
    preMultiplySelf(other?: DOMMatrixInit): DOMMatrix;
    rotateAxisAngleSelf(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;
    rotateFromVectorSelf(x?: number, y?: number): DOMMatrix;
    rotateSelf(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;
    scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
    scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
    setMatrixValue(transformList: string): DOMMatrix;
    skewXSelf(sx?: number): DOMMatrix;
    skewYSelf(sy?: number): DOMMatrix;
    translateSelf(tx?: number, ty?: number, tz?: number): DOMMatrix;
}

declare var DOMMatrix: {
    prototype: DOMMatrix;
    new(init?: string | number[]): DOMMatrix;
    fromFloat32Array(array32: Float32Array): DOMMatrix;
    fromFloat64Array(array64: Float64Array): DOMMatrix;
    fromMatrix(other?: DOMMatrixInit): DOMMatrix;
};

type SVGMatrix = DOMMatrix;
declare var SVGMatrix: typeof DOMMatrix;

type WebKitCSSMatrix = DOMMatrix;
declare var WebKitCSSMatrix: typeof DOMMatrix;

interface DOMMatrixReadOnly {
    readonly a: number;
    readonly b: number;
    readonly c: number;
    readonly d: number;
    readonly e: number;
    readonly f: number;
    readonly is2D: boolean;
    readonly isIdentity: boolean;
    readonly m11: number;
    readonly m12: number;
    readonly m13: number;
    readonly m14: number;
    readonly m21: number;
    readonly m22: number;
    readonly m23: number;
    readonly m24: number;
    readonly m31: number;
    readonly m32: number;
    readonly m33: number;
    readonly m34: number;
    readonly m41: number;
    readonly m42: number;
    readonly m43: number;
    readonly m44: number;
    flipX(): DOMMatrix;
    flipY(): DOMMatrix;
    inverse(): DOMMatrix;
    multiply(other?: DOMMatrixInit): DOMMatrix;
    rotate(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;
    rotateAxisAngle(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;
    rotateFromVector(x?: number, y?: number): DOMMatrix;
    scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
    scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
    /** @deprecated */
    scaleNonUniform(scaleX?: number, scaleY?: number): DOMMatrix;
    skewX(sx?: number): DOMMatrix;
    skewY(sy?: number): DOMMatrix;
    toFloat32Array(): Float32Array;
    toFloat64Array(): Float64Array;
    toJSON(): any;
    transformPoint(point?: DOMPointInit): DOMPoint;
    translate(tx?: number, ty?: number, tz?: number): DOMMatrix;
    toString(): string;
}

declare var DOMMatrixReadOnly: {
    prototype: DOMMatrixReadOnly;
    new(init?: string | number[]): DOMMatrixReadOnly;
    fromFloat32Array(array32: Float32Array): DOMMatrixReadOnly;
    fromFloat64Array(array64: Float64Array): DOMMatrixReadOnly;
    fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly;
    toString(): string;
};

/** Provides the ability to parse XML or HTML source code from a string into a DOM Document. */
interface DOMParser {
    /**
     * Parses string using either the HTML or XML parser, according to type, and returns the resulting Document. type can be "text/html" (which will invoke the HTML parser), or any of "text/xml", "application/xml", "application/xhtml+xml", or "image/svg+xml" (which will invoke the XML parser).
     *
     * For the XML parser, if string cannot be parsed, then the returned Document will contain elements describing the resulting error.
     *
     * Note that script elements are not evaluated during parsing, and the resulting document's encoding will always be UTF-8.
     *
     * Values other than the above for type will cause a TypeError exception to be thrown.
     */
    parseFromString(string: string, type: DOMParserSupportedType): Document;
}

declare var DOMParser: {
    prototype: DOMParser;
    new(): DOMParser;
};

interface DOMPoint extends DOMPointReadOnly {
    w: number;
    x: number;
    y: number;
    z: number;
}

declare var DOMPoint: {
    prototype: DOMPoint;
    new(x?: number, y?: number, z?: number, w?: number): DOMPoint;
    fromPoint(other?: DOMPointInit): DOMPoint;
};

type SVGPoint = DOMPoint;
declare var SVGPoint: typeof DOMPoint;

interface DOMPointReadOnly {
    readonly w: number;
    readonly x: number;
    readonly y: number;
    readonly z: number;
    matrixTransform(matrix?: DOMMatrixInit): DOMPoint;
    toJSON(): any;
}

declare var DOMPointReadOnly: {
    prototype: DOMPointReadOnly;
    new(x?: number, y?: number, z?: number, w?: number): DOMPointReadOnly;
    fromPoint(other?: DOMPointInit): DOMPointReadOnly;
};

interface DOMQuad {
    readonly p1: DOMPoint;
    readonly p2: DOMPoint;
    readonly p3: DOMPoint;
    readonly p4: DOMPoint;
    getBounds(): DOMRect;
    toJSON(): any;
}

declare var DOMQuad: {
    prototype: DOMQuad;
    new(p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): DOMQuad;
    fromQuad(other?: DOMQuadInit): DOMQuad;
    fromRect(other?: DOMRectInit): DOMQuad;
};

interface DOMRect extends DOMRectReadOnly {
    height: number;
    width: number;
    x: number;
    y: number;
}

declare var DOMRect: {
    prototype: DOMRect;
    new(x?: number, y?: number, width?: number, height?: number): DOMRect;
    fromRect(other?: DOMRectInit): DOMRect;
};

type SVGRect = DOMRect;
declare var SVGRect: typeof DOMRect;

interface DOMRectList {
    readonly length: number;
    item(index: number): DOMRect | null;
    [index: number]: DOMRect;
}

declare var DOMRectList: {
    prototype: DOMRectList;
    new(): DOMRectList;
};

interface DOMRectReadOnly {
    readonly bottom: number;
    readonly height: number;
    readonly left: number;
    readonly right: number;
    readonly top: number;
    readonly width: number;
    readonly x: number;
    readonly y: number;
    toJSON(): any;
}

declare var DOMRectReadOnly: {
    prototype: DOMRectReadOnly;
    new(x?: number, y?: number, width?: number, height?: number): DOMRectReadOnly;
    fromRect(other?: DOMRectInit): DOMRectReadOnly;
};

/** A type returned by some APIs which contains a list of DOMString (strings). */
interface DOMStringList {
    /** Returns the number of strings in strings. */
    readonly length: number;
    /** Returns true if strings contains string, and false otherwise. */
    contains(string: string): boolean;
    /** Returns the string with index index from strings. */
    item(index: number): string | null;
    [index: number]: string;
}

declare var DOMStringList: {
    prototype: DOMStringList;
    new(): DOMStringList;
};

/** Used by the dataset HTML attribute to represent data for custom attributes added to elements. */
interface DOMStringMap {
    [name: string]: string | undefined;
}

declare var DOMStringMap: {
    prototype: DOMStringMap;
    new(): DOMStringMap;
};

/** A set of space-separated tokens. Such a set is returned by Element.classList, HTMLLinkElement.relList, HTMLAnchorElement.relList, HTMLAreaElement.relList, HTMLIframeElement.sandbox, or HTMLOutputElement.htmlFor. It is indexed beginning with 0 as with JavaScript Array objects. DOMTokenList is always case-sensitive. */
interface DOMTokenList {
    /** Returns the number of tokens. */
    readonly length: number;
    /**
     * Returns the associated set as string.
     *
     * Can be set, to change the associated attribute.
     */
    value: string;
    toString(): string;
    /**
     * Adds all arguments passed, except those already present.
     *
     * Throws a "SyntaxError" DOMException if one of the arguments is the empty string.
     *
     * Throws an "InvalidCharacterError" DOMException if one of the arguments contains any ASCII whitespace.
     */
    add(...tokens: string[]): void;
    /** Returns true if token is present, and false otherwise. */
    contains(token: string): boolean;
    /** Returns the token with index index. */
    item(index: number): string | null;
    /**
     * Removes arguments passed, if they are present.
     *
     * Throws a "SyntaxError" DOMException if one of the arguments is the empty string.
     *
     * Throws an "InvalidCharacterError" DOMException if one of the arguments contains any ASCII whitespace.
     */
    remove(...tokens: string[]): void;
    /**
     * Replaces token with newToken.
     *
     * Returns true if token was replaced with newToken, and false otherwise.
     *
     * Throws a "SyntaxError" DOMException if one of the arguments is the empty string.
     *
     * Throws an "InvalidCharacterError" DOMException if one of the arguments contains any ASCII whitespace.
     */
    replace(token: string, newToken: string): boolean;
    /**
     * Returns true if token is in the associated attribute's supported tokens. Returns false otherwise.
     *
     * Throws a TypeError if the associated attribute has no supported tokens defined.
     */
    supports(token: string): boolean;
    /**
     * If force is not given, "toggles" token, removing it if it's present and adding it if it's not present. If force is true, adds token (same as add()). If force is false, removes token (same as remove()).
     *
     * Returns true if token is now present, and false otherwise.
     *
     * Throws a "SyntaxError" DOMException if token is empty.
     *
     * Throws an "InvalidCharacterError" DOMException if token contains any spaces.
     */
    toggle(token: string, force?: boolean): boolean;
    forEach(callbackfn: (value: string, key: number, parent: DOMTokenList) => void, thisArg?: any): void;
    [index: number]: string;
}

declare var DOMTokenList: {
    prototype: DOMTokenList;
    new(): DOMTokenList;
};

/** Used to hold the data that is being dragged during a drag and drop operation. It may hold one or more data items, each of one or more data types. For more information about drag and drop, see HTML Drag and Drop API. */
interface DataTransfer {
    /**
     * Returns the kind of operation that is currently selected. If the kind of operation isn't one of those that is allowed by the effectAllowed attribute, then the operation will fail.
     *
     * Can be set, to change the selected operation.
     *
     * The possible values are "none", "copy", "link", and "move".
     */
    dropEffect: "none" | "copy" | "link" | "move";
    /**
     * Returns the kinds of operations that are to be allowed.
     *
     * Can be set (during the dragstart event), to change the allowed operations.
     *
     * The possible values are "none", "copy", "copyLink", "copyMove", "link", "linkMove", "move", "all", and "uninitialized",
     */
    effectAllowed: "none" | "copy" | "copyLink" | "copyMove" | "link" | "linkMove" | "move" | "all" | "uninitialized";
    /** Returns a FileList of the files being dragged, if any. */
    readonly files: FileList;
    /** Returns a DataTransferItemList object, with the drag data. */
    readonly items: DataTransferItemList;
    /** Returns a frozen array listing the formats that were set in the dragstart event. In addition, if any files are being dragged, then one of the types will be the string "Files". */
    readonly types: ReadonlyArray<string>;
    /** Removes the data of the specified formats. Removes all data if the argument is omitted. */
    clearData(format?: string): void;
    /** Returns the specified data. If there is no such data, returns the empty string. */
    getData(format: string): string;
    /** Adds the specified data. */
    setData(format: string, data: string): void;
    /** Uses the given element to update the drag feedback, replacing any previously specified feedback. */
    setDragImage(image: Element, x: number, y: number): void;
}

declare var DataTransfer: {
    prototype: DataTransfer;
    new(): DataTransfer;
};

/** One drag data item. During a drag operation, each drag event has a dataTransfer property which contains a list of drag data items. Each item in the list is a DataTransferItem object. */
interface DataTransferItem {
    /** Returns the drag data item kind, one of: "string", "file". */
    readonly kind: string;
    /** Returns the drag data item type string. */
    readonly type: string;
    /** Returns a File object, if the drag data item kind is File. */
    getAsFile(): File | null;
    /** Invokes the callback with the string data as the argument, if the drag data item kind is text. */
    getAsString(callback: FunctionStringCallback | null): void;
    webkitGetAsEntry(): FileSystemEntry | null;
}

declare var DataTransferItem: {
    prototype: DataTransferItem;
    new(): DataTransferItem;
};

/** A list of DataTransferItem objects representing items being dragged. During a drag operation, each DragEvent has a dataTransfer property and that property is a DataTransferItemList. */
interface DataTransferItemList {
    /** Returns the number of items in the drag data store. */
    readonly length: number;
    /** Adds a new entry for the given data to the drag data store. If the data is plain text then a type string has to be provided also. */
    add(data: string, type: string): DataTransferItem | null;
    add(data: File): DataTransferItem | null;
    /** Removes all the entries in the drag data store. */
    clear(): void;
    /** Removes the indexth entry in the drag data store. */
    remove(index: number): void;
    [index: number]: DataTransferItem;
}

declare var DataTransferItemList: {
    prototype: DataTransferItemList;
    new(): DataTransferItemList;
};

/** A delay-line; an AudioNode audio-processing module that causes a delay between the arrival of an input data and its propagation to the output. */
interface DelayNode extends AudioNode {
    readonly delayTime: AudioParam;
}

declare var DelayNode: {
    prototype: DelayNode;
    new(context: BaseAudioContext, options?: DelayOptions): DelayNode;
};

/**
 * The DeviceMotionEvent provides web developers with information about the speed of changes for the device's position and orientation.
 * Available only in secure contexts.
 */
interface DeviceMotionEvent extends Event {
    readonly acceleration: DeviceMotionEventAcceleration | null;
    readonly accelerationIncludingGravity: DeviceMotionEventAcceleration | null;
    readonly interval: number;
    readonly rotationRate: DeviceMotionEventRotationRate | null;
}

declare var DeviceMotionEvent: {
    prototype: DeviceMotionEvent;
    new(type: string, eventInitDict?: DeviceMotionEventInit): DeviceMotionEvent;
};

/** Available only in secure contexts. */
interface DeviceMotionEventAcceleration {
    readonly x: number | null;
    readonly y: number | null;
    readonly z: number | null;
}

/** Available only in secure contexts. */
interface DeviceMotionEventRotationRate {
    readonly alpha: number | null;
    readonly beta: number | null;
    readonly gamma: number | null;
}

/**
 * The DeviceOrientationEvent provides web developers with information from the physical orientation of the device running the web page.
 * Available only in secure contexts.
 */
interface DeviceOrientationEvent extends Event {
    readonly absolute: boolean;
    readonly alpha: number | null;
    readonly beta: number | null;
    readonly gamma: number | null;
}

declare var DeviceOrientationEvent: {
    prototype: DeviceOrientationEvent;
    new(type: string, eventInitDict?: DeviceOrientationEventInit): DeviceOrientationEvent;
};

interface DocumentEventMap extends GlobalEventHandlersEventMap {
    "DOMContentLoaded": Event;
    "fullscreenchange": Event;
    "fullscreenerror": Event;
    "pointerlockchange": Event;
    "pointerlockerror": Event;
    "readystatechange": Event;
    "visibilitychange": Event;
}

/** Any web page loaded in the browser and serves as an entry point into the web page's content, which is the DOM tree. */
interface Document extends Node, DocumentOrShadowRoot, FontFaceSource, GlobalEventHandlers, NonElementParentNode, ParentNode, XPathEvaluatorBase {
    /** Sets or gets the URL for the current document. */
    readonly URL: string;
    /**
     * Sets or gets the color of all active links in the document.
     * @deprecated
     */
    alinkColor: string;
    /**
     * Returns a reference to the collection of elements contained by the object.
     * @deprecated
     */
    readonly all: HTMLAllCollection;
    /**
     * Retrieves a collection of all a objects that have a name and/or id property. Objects in this collection are in HTML source order.
     * @deprecated
     */
    readonly anchors: HTMLCollectionOf<HTMLAnchorElement>;
    /**
     * Retrieves a collection of all applet objects in the document.
     * @deprecated
     */
    readonly applets: HTMLCollection;
    /**
     * Deprecated. Sets or retrieves a value that indicates the background color behind the object.
     * @deprecated
     */
    bgColor: string;
    /** Specifies the beginning and end of the document body. */
    body: HTMLElement;
    /** Returns document's encoding. */
    readonly characterSet: string;
    /**
     * Gets or sets the character set used to encode the object.
     * @deprecated This is a legacy alias of \`characterSet\`.
     */
    readonly charset: string;
    /** Gets a value that indicates whether standards-compliant mode is switched on for the object. */
    readonly compatMode: string;
    /** Returns document's content type. */
    readonly contentType: string;
    /**
     * Returns the HTTP cookies that apply to the Document. If there are no cookies or cookies can't be applied to this resource, the empty string will be returned.
     *
     * Can be set, to add a new cookie to the element's set of HTTP cookies.
     *
     * If the contents are sandboxed into a unique origin (e.g. in an iframe with the sandbox attribute), a "SecurityError" DOMException will be thrown on getting and setting.
     */
    cookie: string;
    /**
     * Returns the script element, or the SVG script element, that is currently executing, as long as the element represents a classic script. In the case of reentrant script execution, returns the one that most recently started executing amongst those that have not yet finished executing.
     *
     * Returns null if the Document is not currently executing a script or SVG script element (e.g., because the running script is an event handler, or a timeout), or if the currently executing script or SVG script element represents a module script.
     */
    readonly currentScript: HTMLOrSVGScriptElement | null;
    /** Returns the Window object of the active document. */
    readonly defaultView: (WindowProxy & typeof globalThis) | null;
    /** Sets or gets a value that indicates whether the document can be edited. */
    designMode: string;
    /** Sets or retrieves a value that indicates the reading order of the object. */
    dir: string;
    /** Gets an object representing the document type declaration associated with the current document. */
    readonly doctype: DocumentType | null;
    /** Gets a reference to the root node of the document. */
    readonly documentElement: HTMLElement;
    /** Returns document's URL. */
    readonly documentURI: string;
    /**
     * Sets or gets the security domain of the document.
     * @deprecated
     */
    domain: string;
    /** Retrieves a collection of all embed objects in the document. */
    readonly embeds: HTMLCollectionOf<HTMLEmbedElement>;
    /**
     * Sets or gets the foreground (text) color of the document.
     * @deprecated
     */
    fgColor: string;
    /** Retrieves a collection, in source order, of all form objects in the document. */
    readonly forms: HTMLCollectionOf<HTMLFormElement>;
    /** @deprecated */
    readonly fullscreen: boolean;
    /** Returns true if document has the ability to display elements fullscreen and fullscreen is supported, or false otherwise. */
    readonly fullscreenEnabled: boolean;
    /** Returns the head element. */
    readonly head: HTMLHeadElement;
    readonly hidden: boolean;
    /** Retrieves a collection, in source order, of img objects in the document. */
    readonly images: HTMLCollectionOf<HTMLImageElement>;
    /** Gets the implementation object of the current document. */
    readonly implementation: DOMImplementation;
    /**
     * Returns the character encoding used to create the webpage that is loaded into the document object.
     * @deprecated This is a legacy alias of \`characterSet\`.
     */
    readonly inputEncoding: string;
    /** Gets the date that the page was last modified, if the page supplies one. */
    readonly lastModified: string;
    /**
     * Sets or gets the color of the document links.
     * @deprecated
     */
    linkColor: string;
    /** Retrieves a collection of all a objects that specify the href property and all area objects in the document. */
    readonly links: HTMLCollectionOf<HTMLAnchorElement | HTMLAreaElement>;
    /** Contains information about the current URL. */
    get location(): Location;
    set location(href: string | Location);
    onfullscreenchange: ((this: Document, ev: Event) => any) | null;
    onfullscreenerror: ((this: Document, ev: Event) => any) | null;
    onpointerlockchange: ((this: Document, ev: Event) => any) | null;
    onpointerlockerror: ((this: Document, ev: Event) => any) | null;
    /**
     * Fires when the state of the object has changed.
     * @param ev The event
     */
    onreadystatechange: ((this: Document, ev: Event) => any) | null;
    onvisibilitychange: ((this: Document, ev: Event) => any) | null;
    readonly ownerDocument: null;
    readonly pictureInPictureEnabled: boolean;
    /** Return an HTMLCollection of the embed elements in the Document. */
    readonly plugins: HTMLCollectionOf<HTMLEmbedElement>;
    /** Retrieves a value that indicates the current state of the object. */
    readonly readyState: DocumentReadyState;
    /** Gets the URL of the location that referred the user to the current page. */
    readonly referrer: string;
    /** @deprecated */
    readonly rootElement: SVGSVGElement | null;
    /** Retrieves a collection of all script objects in the document. */
    readonly scripts: HTMLCollectionOf<HTMLScriptElement>;
    readonly scrollingElement: Element | null;
    readonly timeline: DocumentTimeline;
    /** Contains the title of the document. */
    title: string;
    readonly visibilityState: DocumentVisibilityState;
    /**
     * Sets or gets the color of the links that the user has visited.
     * @deprecated
     */
    vlinkColor: string;
    /**
     * Moves node from another document and returns it.
     *
     * If node is a document, throws a "NotSupportedError" DOMException or, if node is a shadow root, throws a "HierarchyRequestError" DOMException.
     */
    adoptNode<T extends Node>(node: T): T;
    /** @deprecated */
    captureEvents(): void;
    /** @deprecated */
    caretRangeFromPoint(x: number, y: number): Range | null;
    /** @deprecated */
    clear(): void;
    /** Closes an output stream and forces the sent data to display. */
    close(): void;
    /**
     * Creates an attribute object with a specified name.
     * @param name String that sets the attribute object's name.
     */
    createAttribute(localName: string): Attr;
    createAttributeNS(namespace: string | null, qualifiedName: string): Attr;
    /** Returns a CDATASection node whose data is data. */
    createCDATASection(data: string): CDATASection;
    /**
     * Creates a comment object with the specified data.
     * @param data Sets the comment object's data.
     */
    createComment(data: string): Comment;
    /** Creates a new document. */
    createDocumentFragment(): DocumentFragment;
    /**
     * Creates an instance of the element for the specified tag.
     * @param tagName The name of an element.
     */
    createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K];
    /** @deprecated */
    createElement<K extends keyof HTMLElementDeprecatedTagNameMap>(tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K];
    createElement(tagName: string, options?: ElementCreationOptions): HTMLElement;
    /**
     * Returns an element with namespace namespace. Its namespace prefix will be everything before ":" (U+003E) in qualifiedName or null. Its local name will be everything after ":" (U+003E) in qualifiedName or qualifiedName.
     *
     * If localName does not match the Name production an "InvalidCharacterError" DOMException will be thrown.
     *
     * If one of the following conditions is true a "NamespaceError" DOMException will be thrown:
     *
     * localName does not match the QName production.
     * Namespace prefix is not null and namespace is the empty string.
     * Namespace prefix is "xml" and namespace is not the XML namespace.
     * qualifiedName or namespace prefix is "xmlns" and namespace is not the XMLNS namespace.
     * namespace is the XMLNS namespace and neither qualifiedName nor namespace prefix is "xmlns".
     *
     * When supplied, options's is can be used to create a customized built-in element.
     */
    createElementNS(namespaceURI: "http://www.w3.org/1999/xhtml", qualifiedName: string): HTMLElement;
    createElementNS<K extends keyof SVGElementTagNameMap>(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: K): SVGElementTagNameMap[K];
    createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: string): SVGElement;
    createElementNS<K extends keyof MathMLElementTagNameMap>(namespaceURI: "http://www.w3.org/1998/Math/MathML", qualifiedName: K): MathMLElementTagNameMap[K];
    createElementNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", qualifiedName: string): MathMLElement;
    createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element;
    createElementNS(namespace: string | null, qualifiedName: string, options?: string | ElementCreationOptions): Element;
    createEvent(eventInterface: "AnimationEvent"): AnimationEvent;
    createEvent(eventInterface: "AnimationPlaybackEvent"): AnimationPlaybackEvent;
    createEvent(eventInterface: "AudioProcessingEvent"): AudioProcessingEvent;
    createEvent(eventInterface: "BeforeUnloadEvent"): BeforeUnloadEvent;
    createEvent(eventInterface: "BlobEvent"): BlobEvent;
    createEvent(eventInterface: "ClipboardEvent"): ClipboardEvent;
    createEvent(eventInterface: "CloseEvent"): CloseEvent;
    createEvent(eventInterface: "CompositionEvent"): CompositionEvent;
    createEvent(eventInterface: "CustomEvent"): CustomEvent;
    createEvent(eventInterface: "DeviceMotionEvent"): DeviceMotionEvent;
    createEvent(eventInterface: "DeviceOrientationEvent"): DeviceOrientationEvent;
    createEvent(eventInterface: "DragEvent"): DragEvent;
    createEvent(eventInterface: "ErrorEvent"): ErrorEvent;
    createEvent(eventInterface: "Event"): Event;
    createEvent(eventInterface: "Events"): Event;
    createEvent(eventInterface: "FocusEvent"): FocusEvent;
    createEvent(eventInterface: "FontFaceSetLoadEvent"): FontFaceSetLoadEvent;
    createEvent(eventInterface: "FormDataEvent"): FormDataEvent;
    createEvent(eventInterface: "GamepadEvent"): GamepadEvent;
    createEvent(eventInterface: "HashChangeEvent"): HashChangeEvent;
    createEvent(eventInterface: "IDBVersionChangeEvent"): IDBVersionChangeEvent;
    createEvent(eventInterface: "InputEvent"): InputEvent;
    createEvent(eventInterface: "KeyboardEvent"): KeyboardEvent;
    createEvent(eventInterface: "MIDIConnectionEvent"): MIDIConnectionEvent;
    createEvent(eventInterface: "MIDIMessageEvent"): MIDIMessageEvent;
    createEvent(eventInterface: "MediaEncryptedEvent"): MediaEncryptedEvent;
    createEvent(eventInterface: "MediaKeyMessageEvent"): MediaKeyMessageEvent;
    createEvent(eventInterface: "MediaQueryListEvent"): MediaQueryListEvent;
    createEvent(eventInterface: "MediaStreamTrackEvent"): MediaStreamTrackEvent;
    createEvent(eventInterface: "MessageEvent"): MessageEvent;
    createEvent(eventInterface: "MouseEvent"): MouseEvent;
    createEvent(eventInterface: "MouseEvents"): MouseEvent;
    createEvent(eventInterface: "MutationEvent"): MutationEvent;
    createEvent(eventInterface: "MutationEvents"): MutationEvent;
    createEvent(eventInterface: "OfflineAudioCompletionEvent"): OfflineAudioCompletionEvent;
    createEvent(eventInterface: "PageTransitionEvent"): PageTransitionEvent;
    createEvent(eventInterface: "PaymentMethodChangeEvent"): PaymentMethodChangeEvent;
    createEvent(eventInterface: "PaymentRequestUpdateEvent"): PaymentRequestUpdateEvent;
    createEvent(eventInterface: "PictureInPictureEvent"): PictureInPictureEvent;
    createEvent(eventInterface: "PointerEvent"): PointerEvent;
    createEvent(eventInterface: "PopStateEvent"): PopStateEvent;
    createEvent(eventInterface: "ProgressEvent"): ProgressEvent;
    createEvent(eventInterface: "PromiseRejectionEvent"): PromiseRejectionEvent;
    createEvent(eventInterface: "RTCDTMFToneChangeEvent"): RTCDTMFToneChangeEvent;
    createEvent(eventInterface: "RTCDataChannelEvent"): RTCDataChannelEvent;
    createEvent(eventInterface: "RTCErrorEvent"): RTCErrorEvent;
    createEvent(eventInterface: "RTCPeerConnectionIceErrorEvent"): RTCPeerConnectionIceErrorEvent;
    createEvent(eventInterface: "RTCPeerConnectionIceEvent"): RTCPeerConnectionIceEvent;
    createEvent(eventInterface: "RTCTrackEvent"): RTCTrackEvent;
    createEvent(eventInterface: "SecurityPolicyViolationEvent"): SecurityPolicyViolationEvent;
    createEvent(eventInterface: "SpeechSynthesisErrorEvent"): SpeechSynthesisErrorEvent;
    createEvent(eventInterface: "SpeechSynthesisEvent"): SpeechSynthesisEvent;
    createEvent(eventInterface: "StorageEvent"): StorageEvent;
    createEvent(eventInterface: "SubmitEvent"): SubmitEvent;
    createEvent(eventInterface: "TouchEvent"): TouchEvent;
    createEvent(eventInterface: "TrackEvent"): TrackEvent;
    createEvent(eventInterface: "TransitionEvent"): TransitionEvent;
    createEvent(eventInterface: "UIEvent"): UIEvent;
    createEvent(eventInterface: "UIEvents"): UIEvent;
    createEvent(eventInterface: "WebGLContextEvent"): WebGLContextEvent;
    createEvent(eventInterface: "WheelEvent"): WheelEvent;
    createEvent(eventInterface: string): Event;
    /**
     * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.
     * @param root The root element or node to start traversing on.
     * @param whatToShow The type of nodes or elements to appear in the node list
     * @param filter A custom NodeFilter function to use. For more information, see filter. Use null for no filter.
     */
    createNodeIterator(root: Node, whatToShow?: number, filter?: NodeFilter | null): NodeIterator;
    /** Returns a ProcessingInstruction node whose target is target and data is data. If target does not match the Name production an "InvalidCharacterError" DOMException will be thrown. If data contains "?>" an "InvalidCharacterError" DOMException will be thrown. */
    createProcessingInstruction(target: string, data: string): ProcessingInstruction;
    /**  Returns an empty range object that has both of its boundary points positioned at the beginning of the document. */
    createRange(): Range;
    /**
     * Creates a text string from the specified value.
     * @param data String that specifies the nodeValue property of the text node.
     */
    createTextNode(data: string): Text;
    /**
     * Creates a TreeWalker object that you can use to traverse filtered lists of nodes or elements in a document.
     * @param root The root element or node to start traversing on.
     * @param whatToShow The type of nodes or elements to appear in the node list. For more information, see whatToShow.
     * @param filter A custom NodeFilter function to use.
     */
    createTreeWalker(root: Node, whatToShow?: number, filter?: NodeFilter | null): TreeWalker;
    /**
     * Executes a command on the current document, current selection, or the given range.
     * @param commandId String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script.
     * @param showUI Display the user interface, defaults to false.
     * @param value Value to assign.
     * @deprecated
     */
    execCommand(commandId: string, showUI?: boolean, value?: string): boolean;
    /** Stops document's fullscreen element from being displayed fullscreen and resolves promise when done. */
    exitFullscreen(): Promise<void>;
    exitPictureInPicture(): Promise<void>;
    exitPointerLock(): void;
    /**
     * Returns a reference to the first object with the specified value of the ID attribute.
     * @param elementId String that specifies the ID value.
     */
    getElementById(elementId: string): HTMLElement | null;
    /** Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes. */
    getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
    /**
     * Gets a collection of objects based on the value of the NAME or ID attribute.
     * @param elementName Gets a collection of objects based on the value of the NAME or ID attribute.
     */
    getElementsByName(elementName: string): NodeListOf<HTMLElement>;
    /**
     * Retrieves a collection of objects based on the specified element name.
     * @param name Specifies the name of an element.
     */
    getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
    getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
    getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
    /** @deprecated */
    getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
    getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
    /**
     * If namespace and localName are "*" returns a HTMLCollection of all descendant elements.
     *
     * If only namespace is "*" returns a HTMLCollection of all descendant elements whose local name is localName.
     *
     * If only localName is "*" returns a HTMLCollection of all descendant elements whose namespace is namespace.
     *
     * Otherwise, returns a HTMLCollection of all descendant elements whose namespace is namespace and local name is localName.
     */
    getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
    getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
    getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>;
    getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;
    /** Returns an object representing the current selection of the document that is loaded into the object displaying a webpage. */
    getSelection(): Selection | null;
    /** Gets a value indicating whether the object currently has focus. */
    hasFocus(): boolean;
    hasStorageAccess(): Promise<boolean>;
    /**
     * Returns a copy of node. If deep is true, the copy also includes the node's descendants.
     *
     * If node is a document or a shadow root, throws a "NotSupportedError" DOMException.
     */
    importNode<T extends Node>(node: T, deep?: boolean): T;
    /**
     * Opens a new window and loads a document specified by a given URL. Also, opens a new window that uses the url parameter and the name parameter to collect the output of the write method and the writeln method.
     * @param url Specifies a MIME type for the document.
     * @param name Specifies the name of the window. This name is used as the value for the TARGET attribute on a form or an anchor element.
     * @param features Contains a list of items separated by commas. Each item consists of an option and a value, separated by an equals sign (for example, "fullscreen=yes, toolbar=yes"). The following values are supported.
     * @param replace Specifies whether the existing entry for the document is replaced in the history list.
     */
    open(unused1?: string, unused2?: string): Document;
    open(url: string | URL, name: string, features: string): WindowProxy | null;
    /**
     * Returns a Boolean value that indicates whether a specified command can be successfully executed using execCommand, given the current state of the document.
     * @param commandId Specifies a command identifier.
     * @deprecated
     */
    queryCommandEnabled(commandId: string): boolean;
    /**
     * Returns a Boolean value that indicates whether the specified command is in the indeterminate state.
     * @param commandId String that specifies a command identifier.
     * @deprecated
     */
    queryCommandIndeterm(commandId: string): boolean;
    /**
     * Returns a Boolean value that indicates the current state of the command.
     * @param commandId String that specifies a command identifier.
     * @deprecated
     */
    queryCommandState(commandId: string): boolean;
    /**
     * Returns a Boolean value that indicates whether the current command is supported on the current range.
     * @param commandId Specifies a command identifier.
     * @deprecated
     */
    queryCommandSupported(commandId: string): boolean;
    /**
     * Returns the current value of the document, range, or current selection for the given command.
     * @param commandId String that specifies a command identifier.
     * @deprecated
     */
    queryCommandValue(commandId: string): string;
    /** @deprecated */
    releaseEvents(): void;
    requestStorageAccess(): Promise<void>;
    /**
     * Writes one or more HTML expressions to a document in the specified window.
     * @param content Specifies the text and HTML tags to write.
     */
    write(...text: string[]): void;
    /**
     * Writes one or more HTML expressions, followed by a carriage return, to a document in the specified window.
     * @param content The text and HTML tags to write.
     */
    writeln(...text: string[]): void;
    addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var Document: {
    prototype: Document;
    new(): Document;
};

/** A minimal document object that has no parent. It is used as a lightweight version of Document that stores a segment of a document structure comprised of nodes just like a standard document. The key difference is that because the document fragment isn't part of the active document tree structure, changes made to the fragment don't affect the document, cause reflow, or incur any performance impact that can occur when changes are made. */
interface DocumentFragment extends Node, NonElementParentNode, ParentNode {
    readonly ownerDocument: Document;
    getElementById(elementId: string): HTMLElement | null;
}

declare var DocumentFragment: {
    prototype: DocumentFragment;
    new(): DocumentFragment;
};

interface DocumentOrShadowRoot {
    /**
     * Returns the deepest element in the document through which or to which key events are being routed. This is, roughly speaking, the focused element in the document.
     *
     * For the purposes of this API, when a child browsing context is focused, its container is focused in the parent browsing context. For example, if the user moves the focus to a text control in an iframe, the iframe is the element returned by the activeElement API in the iframe's node document.
     *
     * Similarly, when the focused element is in a different node tree than documentOrShadowRoot, the element returned will be the host that's located in the same node tree as documentOrShadowRoot if documentOrShadowRoot is a shadow-including inclusive ancestor of the focused element, and null if not.
     */
    readonly activeElement: Element | null;
    adoptedStyleSheets: CSSStyleSheet[];
    /** Returns document's fullscreen element. */
    readonly fullscreenElement: Element | null;
    readonly pictureInPictureElement: Element | null;
    readonly pointerLockElement: Element | null;
    /** Retrieves a collection of styleSheet objects representing the style sheets that correspond to each instance of a link or style object in the document. */
    readonly styleSheets: StyleSheetList;
    /**
     * Returns the element for the specified x coordinate and the specified y coordinate.
     * @param x The x-offset
     * @param y The y-offset
     */
    elementFromPoint(x: number, y: number): Element | null;
    elementsFromPoint(x: number, y: number): Element[];
    getAnimations(): Animation[];
}

interface DocumentTimeline extends AnimationTimeline {
}

declare var DocumentTimeline: {
    prototype: DocumentTimeline;
    new(options?: DocumentTimelineOptions): DocumentTimeline;
};

/** A Node containing a doctype. */
interface DocumentType extends Node, ChildNode {
    readonly name: string;
    readonly ownerDocument: Document;
    readonly publicId: string;
    readonly systemId: string;
}

declare var DocumentType: {
    prototype: DocumentType;
    new(): DocumentType;
};

/** A DOM event that represents a drag and drop interaction. The user initiates a drag by placing a pointer device (such as a mouse) on the touch surface and then dragging the pointer to a new location (such as another DOM element). Applications are free to interpret a drag and drop interaction in an application-specific way. */
interface DragEvent extends MouseEvent {
    /** Returns the DataTransfer object for the event. */
    readonly dataTransfer: DataTransfer | null;
}

declare var DragEvent: {
    prototype: DragEvent;
    new(type: string, eventInitDict?: DragEventInit): DragEvent;
};

/** Inherits properties from its parent, AudioNode. */
interface DynamicsCompressorNode extends AudioNode {
    readonly attack: AudioParam;
    readonly knee: AudioParam;
    readonly ratio: AudioParam;
    readonly reduction: number;
    readonly release: AudioParam;
    readonly threshold: AudioParam;
}

declare var DynamicsCompressorNode: {
    prototype: DynamicsCompressorNode;
    new(context: BaseAudioContext, options?: DynamicsCompressorOptions): DynamicsCompressorNode;
};

interface EXT_blend_minmax {
    readonly MIN_EXT: 0x8007;
    readonly MAX_EXT: 0x8008;
}

interface EXT_color_buffer_float {
}

interface EXT_color_buffer_half_float {
    readonly RGBA16F_EXT: 0x881A;
    readonly RGB16F_EXT: 0x881B;
    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 0x8211;
    readonly UNSIGNED_NORMALIZED_EXT: 0x8C17;
}

interface EXT_float_blend {
}

/** The EXT_frag_depth extension is part of the WebGL API and enables to set a depth value of a fragment from within the fragment shader. */
interface EXT_frag_depth {
}

interface EXT_sRGB {
    readonly SRGB_EXT: 0x8C40;
    readonly SRGB_ALPHA_EXT: 0x8C42;
    readonly SRGB8_ALPHA8_EXT: 0x8C43;
    readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT: 0x8210;
}

interface EXT_shader_texture_lod {
}

interface EXT_texture_compression_bptc {
    readonly COMPRESSED_RGBA_BPTC_UNORM_EXT: 0x8E8C;
    readonly COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT: 0x8E8D;
    readonly COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT: 0x8E8E;
    readonly COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT: 0x8E8F;
}

interface EXT_texture_compression_rgtc {
    readonly COMPRESSED_RED_RGTC1_EXT: 0x8DBB;
    readonly COMPRESSED_SIGNED_RED_RGTC1_EXT: 0x8DBC;
    readonly COMPRESSED_RED_GREEN_RGTC2_EXT: 0x8DBD;
    readonly COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 0x8DBE;
}

/** The EXT_texture_filter_anisotropic extension is part of the WebGL API and exposes two constants for anisotropic filtering (AF). */
interface EXT_texture_filter_anisotropic {
    readonly TEXTURE_MAX_ANISOTROPY_EXT: 0x84FE;
    readonly MAX_TEXTURE_MAX_ANISOTROPY_EXT: 0x84FF;
}

interface EXT_texture_norm16 {
    readonly R16_EXT: 0x822A;
    readonly RG16_EXT: 0x822C;
    readonly RGB16_EXT: 0x8054;
    readonly RGBA16_EXT: 0x805B;
    readonly R16_SNORM_EXT: 0x8F98;
    readonly RG16_SNORM_EXT: 0x8F99;
    readonly RGB16_SNORM_EXT: 0x8F9A;
    readonly RGBA16_SNORM_EXT: 0x8F9B;
}

interface ElementEventMap {
    "fullscreenchange": Event;
    "fullscreenerror": Event;
}

/** Element is the most general base class from which all objects in a Document inherit. It only has methods and properties common to all kinds of elements. More specific classes inherit from Element. */
interface Element extends Node, ARIAMixin, Animatable, ChildNode, InnerHTML, NonDocumentTypeChildNode, ParentNode, Slottable {
    readonly attributes: NamedNodeMap;
    /** Allows for manipulation of element's class content attribute as a set of whitespace-separated tokens through a DOMTokenList object. */
    readonly classList: DOMTokenList;
    /** Returns the value of element's class content attribute. Can be set to change it. */
    className: string;
    readonly clientHeight: number;
    readonly clientLeft: number;
    readonly clientTop: number;
    readonly clientWidth: number;
    /** Returns the value of element's id content attribute. Can be set to change it. */
    id: string;
    /** Returns the local name. */
    readonly localName: string;
    /** Returns the namespace. */
    readonly namespaceURI: string | null;
    onfullscreenchange: ((this: Element, ev: Event) => any) | null;
    onfullscreenerror: ((this: Element, ev: Event) => any) | null;
    outerHTML: string;
    readonly ownerDocument: Document;
    readonly part: DOMTokenList;
    /** Returns the namespace prefix. */
    readonly prefix: string | null;
    readonly scrollHeight: number;
    scrollLeft: number;
    scrollTop: number;
    readonly scrollWidth: number;
    /** Returns element's shadow root, if any, and if shadow root's mode is "open", and null otherwise. */
    readonly shadowRoot: ShadowRoot | null;
    /** Returns the value of element's slot content attribute. Can be set to change it. */
    slot: string;
    /** Returns the HTML-uppercased qualified name. */
    readonly tagName: string;
    /** Creates a shadow root for element and returns it. */
    attachShadow(init: ShadowRootInit): ShadowRoot;
    checkVisibility(options?: CheckVisibilityOptions): boolean;
    /** Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise. */
    closest<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;
    closest<K extends keyof SVGElementTagNameMap>(selector: K): SVGElementTagNameMap[K] | null;
    closest<K extends keyof MathMLElementTagNameMap>(selector: K): MathMLElementTagNameMap[K] | null;
    closest<E extends Element = Element>(selectors: string): E | null;
    /** Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise. */
    getAttribute(qualifiedName: string): string | null;
    /** Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise. */
    getAttributeNS(namespace: string | null, localName: string): string | null;
    /** Returns the qualified names of all element's attributes. Can contain duplicates. */
    getAttributeNames(): string[];
    getAttributeNode(qualifiedName: string): Attr | null;
    getAttributeNodeNS(namespace: string | null, localName: string): Attr | null;
    getBoundingClientRect(): DOMRect;
    getClientRects(): DOMRectList;
    /** Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes. */
    getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
    getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
    getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
    getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
    /** @deprecated */
    getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
    getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
    getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
    getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
    getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>;
    getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;
    /** Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise. */
    hasAttribute(qualifiedName: string): boolean;
    /** Returns true if element has an attribute whose namespace is namespace and local name is localName. */
    hasAttributeNS(namespace: string | null, localName: string): boolean;
    /** Returns true if element has attributes, and false otherwise. */
    hasAttributes(): boolean;
    hasPointerCapture(pointerId: number): boolean;
    insertAdjacentElement(where: InsertPosition, element: Element): Element | null;
    insertAdjacentHTML(position: InsertPosition, text: string): void;
    insertAdjacentText(where: InsertPosition, data: string): void;
    /** Returns true if matching selectors against element's root yields element, and false otherwise. */
    matches(selectors: string): boolean;
    releasePointerCapture(pointerId: number): void;
    /** Removes element's first attribute whose qualified name is qualifiedName. */
    removeAttribute(qualifiedName: string): void;
    /** Removes element's attribute whose namespace is namespace and local name is localName. */
    removeAttributeNS(namespace: string | null, localName: string): void;
    removeAttributeNode(attr: Attr): Attr;
    /**
     * Displays element fullscreen and resolves promise when done.
     *
     * When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
     */
    requestFullscreen(options?: FullscreenOptions): Promise<void>;
    requestPointerLock(): void;
    scroll(options?: ScrollToOptions): void;
    scroll(x: number, y: number): void;
    scrollBy(options?: ScrollToOptions): void;
    scrollBy(x: number, y: number): void;
    scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;
    scrollTo(options?: ScrollToOptions): void;
    scrollTo(x: number, y: number): void;
    /** Sets the value of element's first attribute whose qualified name is qualifiedName to value. */
    setAttribute(qualifiedName: string, value: string): void;
    /** Sets the value of element's attribute whose namespace is namespace and local name is localName to value. */
    setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;
    setAttributeNode(attr: Attr): Attr | null;
    setAttributeNodeNS(attr: Attr): Attr | null;
    setPointerCapture(pointerId: number): void;
    /**
     * If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
     *
     * Returns true if qualifiedName is now present, and false otherwise.
     */
    toggleAttribute(qualifiedName: string, force?: boolean): boolean;
    /** @deprecated This is a legacy alias of \`matches\`. */
    webkitMatchesSelector(selectors: string): boolean;
    addEventListener<K extends keyof ElementEventMap>(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof ElementEventMap>(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var Element: {
    prototype: Element;
    new(): Element;
};

interface ElementCSSInlineStyle {
    readonly style: CSSStyleDeclaration;
}

interface ElementContentEditable {
    contentEditable: string;
    enterKeyHint: string;
    inputMode: string;
    readonly isContentEditable: boolean;
}

interface ElementInternals extends ARIAMixin {
    /** Returns the form owner of internals's target element. */
    readonly form: HTMLFormElement | null;
    /** Returns a NodeList of all the label elements that internals's target element is associated with. */
    readonly labels: NodeList;
    /** Returns the ShadowRoot for internals's target element, if the target element is a shadow host, or null otherwise. */
    readonly shadowRoot: ShadowRoot | null;
    /** Returns the error message that would be shown to the user if internals's target element was to be checked for validity. */
    readonly validationMessage: string;
    /** Returns the ValidityState object for internals's target element. */
    readonly validity: ValidityState;
    /** Returns true if internals's target element will be validated when the form is submitted; false otherwise. */
    readonly willValidate: boolean;
    /** Returns true if internals's target element has no validity problems; false otherwise. Fires an invalid event at the element in the latter case. */
    checkValidity(): boolean;
    /** Returns true if internals's target element has no validity problems; otherwise, returns false, fires an invalid event at the element, and (if the event isn't canceled) reports the problem to the user. */
    reportValidity(): boolean;
    /**
     * Sets both the state and submission value of internals's target element to value.
     *
     * If value is null, the element won't participate in form submission.
     */
    setFormValue(value: File | string | FormData | null, state?: File | string | FormData | null): void;
    /** Marks internals's target element as suffering from the constraints indicated by the flags argument, and sets the element's validation message to message. If anchor is specified, the user agent might use it to indicate problems with the constraints of internals's target element when the form owner is validated interactively or reportValidity() is called. */
    setValidity(flags?: ValidityStateFlags, message?: string, anchor?: HTMLElement): void;
}

declare var ElementInternals: {
    prototype: ElementInternals;
    new(): ElementInternals;
};

/** Events providing information related to errors in scripts or in files. */
interface ErrorEvent extends Event {
    readonly colno: number;
    readonly error: any;
    readonly filename: string;
    readonly lineno: number;
    readonly message: string;
}

declare var ErrorEvent: {
    prototype: ErrorEvent;
    new(type: string, eventInitDict?: ErrorEventInit): ErrorEvent;
};

/** An event which takes place in the DOM. */
interface Event {
    /** Returns true or false depending on how event was initialized. True if event goes through its target's ancestors in reverse tree order, and false otherwise. */
    readonly bubbles: boolean;
    /** @deprecated */
    cancelBubble: boolean;
    /** Returns true or false depending on how event was initialized. Its return value does not always carry meaning, but true can indicate that part of the operation during which event was dispatched, can be canceled by invoking the preventDefault() method. */
    readonly cancelable: boolean;
    /** Returns true or false depending on how event was initialized. True if event invokes listeners past a ShadowRoot node that is the root of its target, and false otherwise. */
    readonly composed: boolean;
    /** Returns the object whose event listener's callback is currently being invoked. */
    readonly currentTarget: EventTarget | null;
    /** Returns true if preventDefault() was invoked successfully to indicate cancelation, and false otherwise. */
    readonly defaultPrevented: boolean;
    /** Returns the event's phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET, and BUBBLING_PHASE. */
    readonly eventPhase: number;
    /** Returns true if event was dispatched by the user agent, and false otherwise. */
    readonly isTrusted: boolean;
    /** @deprecated */
    returnValue: boolean;
    /** @deprecated */
    readonly srcElement: EventTarget | null;
    /** Returns the object to which event is dispatched (its target). */
    readonly target: EventTarget | null;
    /** Returns the event's timestamp as the number of milliseconds measured relative to the time origin. */
    readonly timeStamp: DOMHighResTimeStamp;
    /** Returns the type of event, e.g. "click", "hashchange", or "submit". */
    readonly type: string;
    /** Returns the invocation target objects of event's path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root's mode is "closed" that are not reachable from event's currentTarget. */
    composedPath(): EventTarget[];
    /** @deprecated */
    initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void;
    /** If invoked when the cancelable attribute value is true, and while executing a listener for the event with passive set to false, signals to the operation that caused event to be dispatched that it needs to be canceled. */
    preventDefault(): void;
    /** Invoking this method prevents event from reaching any registered event listeners after the current one finishes running and, when dispatched in a tree, also prevents event from reaching any other objects. */
    stopImmediatePropagation(): void;
    /** When dispatched in a tree, invoking this method prevents event from reaching any objects other than the current object. */
    stopPropagation(): void;
    readonly NONE: 0;
    readonly CAPTURING_PHASE: 1;
    readonly AT_TARGET: 2;
    readonly BUBBLING_PHASE: 3;
}

declare var Event: {
    prototype: Event;
    new(type: string, eventInitDict?: EventInit): Event;
    readonly NONE: 0;
    readonly CAPTURING_PHASE: 1;
    readonly AT_TARGET: 2;
    readonly BUBBLING_PHASE: 3;
};

interface EventCounts {
    forEach(callbackfn: (value: number, key: string, parent: EventCounts) => void, thisArg?: any): void;
}

declare var EventCounts: {
    prototype: EventCounts;
    new(): EventCounts;
};

interface EventListener {
    (evt: Event): void;
}

interface EventListenerObject {
    handleEvent(object: Event): void;
}

interface EventSourceEventMap {
    "error": Event;
    "message": MessageEvent;
    "open": Event;
}

interface EventSource extends EventTarget {
    onerror: ((this: EventSource, ev: Event) => any) | null;
    onmessage: ((this: EventSource, ev: MessageEvent) => any) | null;
    onopen: ((this: EventSource, ev: Event) => any) | null;
    /** Returns the state of this EventSource object's connection. It can have the values described below. */
    readonly readyState: number;
    /** Returns the URL providing the event stream. */
    readonly url: string;
    /** Returns true if the credentials mode for connection requests to the URL providing the event stream is set to "include", and false otherwise. */
    readonly withCredentials: boolean;
    /** Aborts any instances of the fetch algorithm started for this EventSource object, and sets the readyState attribute to CLOSED. */
    close(): void;
    readonly CONNECTING: 0;
    readonly OPEN: 1;
    readonly CLOSED: 2;
    addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var EventSource: {
    prototype: EventSource;
    new(url: string | URL, eventSourceInitDict?: EventSourceInit): EventSource;
    readonly CONNECTING: 0;
    readonly OPEN: 1;
    readonly CLOSED: 2;
};

/** EventTarget is a DOM interface implemented by objects that can receive events and may have listeners for them. */
interface EventTarget {
    /**
     * Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
     *
     * The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
     *
     * When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
     *
     * When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
     *
     * When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
     *
     * If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
     *
     * The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
     */
    addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean): void;
    /** Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise. */
    dispatchEvent(event: Event): boolean;
    /** Removes the event listener in target's event listener list with the same type, callback, and options. */
    removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;
}

declare var EventTarget: {
    prototype: EventTarget;
    new(): EventTarget;
};

/** @deprecated */
interface External {
    /** @deprecated */
    AddSearchProvider(): void;
    /** @deprecated */
    IsSearchProviderInstalled(): void;
}

/** @deprecated */
declare var External: {
    prototype: External;
    new(): External;
};

/** Provides information about files and allows JavaScript in a web page to access their content. */
interface File extends Blob {
    readonly lastModified: number;
    readonly name: string;
    readonly webkitRelativePath: string;
}

declare var File: {
    prototype: File;
    new(fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;
};

/** An object of this type is returned by the files property of the HTML <input> element; this lets you access the list of files selected with the <input type="file"> element. It's also used for a list of files dropped into web content when using the drag and drop API; see the DataTransfer object for details on this usage. */
interface FileList {
    readonly length: number;
    item(index: number): File | null;
    [index: number]: File;
}

declare var FileList: {
    prototype: FileList;
    new(): FileList;
};

interface FileReaderEventMap {
    "abort": ProgressEvent<FileReader>;
    "error": ProgressEvent<FileReader>;
    "load": ProgressEvent<FileReader>;
    "loadend": ProgressEvent<FileReader>;
    "loadstart": ProgressEvent<FileReader>;
    "progress": ProgressEvent<FileReader>;
}

/** Lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer, using File or Blob objects to specify the file or data to read. */
interface FileReader extends EventTarget {
    readonly error: DOMException | null;
    onabort: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
    onerror: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
    onload: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
    onloadend: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
    onloadstart: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
    onprogress: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
    readonly readyState: typeof FileReader.EMPTY | typeof FileReader.LOADING | typeof FileReader.DONE;
    readonly result: string | ArrayBuffer | null;
    abort(): void;
    readAsArrayBuffer(blob: Blob): void;
    readAsBinaryString(blob: Blob): void;
    readAsDataURL(blob: Blob): void;
    readAsText(blob: Blob, encoding?: string): void;
    readonly EMPTY: 0;
    readonly LOADING: 1;
    readonly DONE: 2;
    addEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var FileReader: {
    prototype: FileReader;
    new(): FileReader;
    readonly EMPTY: 0;
    readonly LOADING: 1;
    readonly DONE: 2;
};

interface FileSystem {
    readonly name: string;
    readonly root: FileSystemDirectoryEntry;
}

declare var FileSystem: {
    prototype: FileSystem;
    new(): FileSystem;
};

interface FileSystemDirectoryEntry extends FileSystemEntry {
    createReader(): FileSystemDirectoryReader;
    getDirectory(path?: string | null, options?: FileSystemFlags, successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void;
    getFile(path?: string | null, options?: FileSystemFlags, successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void;
}

declare var FileSystemDirectoryEntry: {
    prototype: FileSystemDirectoryEntry;
    new(): FileSystemDirectoryEntry;
};

/** Available only in secure contexts. */
interface FileSystemDirectoryHandle extends FileSystemHandle {
    readonly kind: "directory";
    getDirectoryHandle(name: string, options?: FileSystemGetDirectoryOptions): Promise<FileSystemDirectoryHandle>;
    getFileHandle(name: string, options?: FileSystemGetFileOptions): Promise<FileSystemFileHandle>;
    removeEntry(name: string, options?: FileSystemRemoveOptions): Promise<void>;
    resolve(possibleDescendant: FileSystemHandle): Promise<string[] | null>;
}

declare var FileSystemDirectoryHandle: {
    prototype: FileSystemDirectoryHandle;
    new(): FileSystemDirectoryHandle;
};

interface FileSystemDirectoryReader {
    readEntries(successCallback: FileSystemEntriesCallback, errorCallback?: ErrorCallback): void;
}

declare var FileSystemDirectoryReader: {
    prototype: FileSystemDirectoryReader;
    new(): FileSystemDirectoryReader;
};

interface FileSystemEntry {
    readonly filesystem: FileSystem;
    readonly fullPath: string;
    readonly isDirectory: boolean;
    readonly isFile: boolean;
    readonly name: string;
    getParent(successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void;
}

declare var FileSystemEntry: {
    prototype: FileSystemEntry;
    new(): FileSystemEntry;
};

interface FileSystemFileEntry extends FileSystemEntry {
    file(successCallback: FileCallback, errorCallback?: ErrorCallback): void;
}

declare var FileSystemFileEntry: {
    prototype: FileSystemFileEntry;
    new(): FileSystemFileEntry;
};

/** Available only in secure contexts. */
interface FileSystemFileHandle extends FileSystemHandle {
    readonly kind: "file";
    getFile(): Promise<File>;
}

declare var FileSystemFileHandle: {
    prototype: FileSystemFileHandle;
    new(): FileSystemFileHandle;
};

/** Available only in secure contexts. */
interface FileSystemHandle {
    readonly kind: FileSystemHandleKind;
    readonly name: string;
    isSameEntry(other: FileSystemHandle): Promise<boolean>;
}

declare var FileSystemHandle: {
    prototype: FileSystemHandle;
    new(): FileSystemHandle;
};

/** Focus-related events like focus, blur, focusin, or focusout. */
interface FocusEvent extends UIEvent {
    readonly relatedTarget: EventTarget | null;
}

declare var FocusEvent: {
    prototype: FocusEvent;
    new(type: string, eventInitDict?: FocusEventInit): FocusEvent;
};

interface FontFace {
    ascentOverride: string;
    descentOverride: string;
    display: FontDisplay;
    family: string;
    featureSettings: string;
    lineGapOverride: string;
    readonly loaded: Promise<FontFace>;
    readonly status: FontFaceLoadStatus;
    stretch: string;
    style: string;
    unicodeRange: string;
    variant: string;
    weight: string;
    load(): Promise<FontFace>;
}

declare var FontFace: {
    prototype: FontFace;
    new(family: string, source: string | BinaryData, descriptors?: FontFaceDescriptors): FontFace;
};

interface FontFaceSetEventMap {
    "loading": Event;
    "loadingdone": Event;
    "loadingerror": Event;
}

interface FontFaceSet extends EventTarget {
    onloading: ((this: FontFaceSet, ev: Event) => any) | null;
    onloadingdone: ((this: FontFaceSet, ev: Event) => any) | null;
    onloadingerror: ((this: FontFaceSet, ev: Event) => any) | null;
    readonly ready: Promise<FontFaceSet>;
    readonly status: FontFaceSetLoadStatus;
    check(font: string, text?: string): boolean;
    load(font: string, text?: string): Promise<FontFace[]>;
    forEach(callbackfn: (value: FontFace, key: FontFace, parent: FontFaceSet) => void, thisArg?: any): void;
    addEventListener<K extends keyof FontFaceSetEventMap>(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof FontFaceSetEventMap>(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var FontFaceSet: {
    prototype: FontFaceSet;
    new(initialFaces: FontFace[]): FontFaceSet;
};

interface FontFaceSetLoadEvent extends Event {
    readonly fontfaces: ReadonlyArray<FontFace>;
}

declare var FontFaceSetLoadEvent: {
    prototype: FontFaceSetLoadEvent;
    new(type: string, eventInitDict?: FontFaceSetLoadEventInit): FontFaceSetLoadEvent;
};

interface FontFaceSource {
    readonly fonts: FontFaceSet;
}

/** Provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using the XMLHttpRequest.send() method. It uses the same format a form would use if the encoding type were set to "multipart/form-data". */
interface FormData {
    append(name: string, value: string | Blob, fileName?: string): void;
    delete(name: string): void;
    get(name: string): FormDataEntryValue | null;
    getAll(name: string): FormDataEntryValue[];
    has(name: string): boolean;
    set(name: string, value: string | Blob, fileName?: string): void;
    forEach(callbackfn: (value: FormDataEntryValue, key: string, parent: FormData) => void, thisArg?: any): void;
}

declare var FormData: {
    prototype: FormData;
    new(form?: HTMLFormElement): FormData;
};

interface FormDataEvent extends Event {
    /** Returns a FormData object representing names and values of elements associated to the target form. Operations on the FormData object will affect form data to be submitted. */
    readonly formData: FormData;
}

declare var FormDataEvent: {
    prototype: FormDataEvent;
    new(type: string, eventInitDict: FormDataEventInit): FormDataEvent;
};

/** A change in volume. It is an AudioNode audio-processing module that causes a given gain to be applied to the input data before its propagation to the output. A GainNode always has exactly one input and one output, both with the same number of channels. */
interface GainNode extends AudioNode {
    readonly gain: AudioParam;
}

declare var GainNode: {
    prototype: GainNode;
    new(context: BaseAudioContext, options?: GainOptions): GainNode;
};

/**
 * This Gamepad API interface defines an individual gamepad or other controller, allowing access to information such as button presses, axis positions, and id.
 * Available only in secure contexts.
 */
interface Gamepad {
    readonly axes: ReadonlyArray<number>;
    readonly buttons: ReadonlyArray<GamepadButton>;
    readonly connected: boolean;
    readonly hapticActuators: ReadonlyArray<GamepadHapticActuator>;
    readonly id: string;
    readonly index: number;
    readonly mapping: GamepadMappingType;
    readonly timestamp: DOMHighResTimeStamp;
}

declare var Gamepad: {
    prototype: Gamepad;
    new(): Gamepad;
};

/**
 * An individual button of a gamepad or other controller, allowing access to the current state of different types of buttons available on the control device.
 * Available only in secure contexts.
 */
interface GamepadButton {
    readonly pressed: boolean;
    readonly touched: boolean;
    readonly value: number;
}

declare var GamepadButton: {
    prototype: GamepadButton;
    new(): GamepadButton;
};

/**
 * This Gamepad API interface contains references to gamepads connected to the system, which is what the gamepad events Window.gamepadconnected and Window.gamepaddisconnected are fired in response to.
 * Available only in secure contexts.
 */
interface GamepadEvent extends Event {
    readonly gamepad: Gamepad;
}

declare var GamepadEvent: {
    prototype: GamepadEvent;
    new(type: string, eventInitDict: GamepadEventInit): GamepadEvent;
};

/** This Gamepad API interface represents hardware in the controller designed to provide haptic feedback to the user (if available), most commonly vibration hardware. */
interface GamepadHapticActuator {
    readonly type: GamepadHapticActuatorType;
}

declare var GamepadHapticActuator: {
    prototype: GamepadHapticActuator;
    new(): GamepadHapticActuator;
};

interface GenericTransformStream {
    readonly readable: ReadableStream;
    readonly writable: WritableStream;
}

/** An object able to programmatically obtain the position of the device. It gives Web content access to the location of the device. This allows a Web site or app to offer customized results based on the user's location. */
interface Geolocation {
    clearWatch(watchId: number): void;
    getCurrentPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions): void;
    watchPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions): number;
}

declare var Geolocation: {
    prototype: Geolocation;
    new(): Geolocation;
};

/** Available only in secure contexts. */
interface GeolocationCoordinates {
    readonly accuracy: number;
    readonly altitude: number | null;
    readonly altitudeAccuracy: number | null;
    readonly heading: number | null;
    readonly latitude: number;
    readonly longitude: number;
    readonly speed: number | null;
}

declare var GeolocationCoordinates: {
    prototype: GeolocationCoordinates;
    new(): GeolocationCoordinates;
};

/** Available only in secure contexts. */
interface GeolocationPosition {
    readonly coords: GeolocationCoordinates;
    readonly timestamp: EpochTimeStamp;
}

declare var GeolocationPosition: {
    prototype: GeolocationPosition;
    new(): GeolocationPosition;
};

interface GeolocationPositionError {
    readonly code: number;
    readonly message: string;
    readonly PERMISSION_DENIED: 1;
    readonly POSITION_UNAVAILABLE: 2;
    readonly TIMEOUT: 3;
}

declare var GeolocationPositionError: {
    prototype: GeolocationPositionError;
    new(): GeolocationPositionError;
    readonly PERMISSION_DENIED: 1;
    readonly POSITION_UNAVAILABLE: 2;
    readonly TIMEOUT: 3;
};

interface GlobalEventHandlersEventMap {
    "abort": UIEvent;
    "animationcancel": AnimationEvent;
    "animationend": AnimationEvent;
    "animationiteration": AnimationEvent;
    "animationstart": AnimationEvent;
    "auxclick": MouseEvent;
    "beforeinput": InputEvent;
    "blur": FocusEvent;
    "cancel": Event;
    "canplay": Event;
    "canplaythrough": Event;
    "change": Event;
    "click": MouseEvent;
    "close": Event;
    "compositionend": CompositionEvent;
    "compositionstart": CompositionEvent;
    "compositionupdate": CompositionEvent;
    "contextmenu": MouseEvent;
    "copy": ClipboardEvent;
    "cuechange": Event;
    "cut": ClipboardEvent;
    "dblclick": MouseEvent;
    "drag": DragEvent;
    "dragend": DragEvent;
    "dragenter": DragEvent;
    "dragleave": DragEvent;
    "dragover": DragEvent;
    "dragstart": DragEvent;
    "drop": DragEvent;
    "durationchange": Event;
    "emptied": Event;
    "ended": Event;
    "error": ErrorEvent;
    "focus": FocusEvent;
    "focusin": FocusEvent;
    "focusout": FocusEvent;
    "formdata": FormDataEvent;
    "gotpointercapture": PointerEvent;
    "input": Event;
    "invalid": Event;
    "keydown": KeyboardEvent;
    "keypress": KeyboardEvent;
    "keyup": KeyboardEvent;
    "load": Event;
    "loadeddata": Event;
    "loadedmetadata": Event;
    "loadstart": Event;
    "lostpointercapture": PointerEvent;
    "mousedown": MouseEvent;
    "mouseenter": MouseEvent;
    "mouseleave": MouseEvent;
    "mousemove": MouseEvent;
    "mouseout": MouseEvent;
    "mouseover": MouseEvent;
    "mouseup": MouseEvent;
    "paste": ClipboardEvent;
    "pause": Event;
    "play": Event;
    "playing": Event;
    "pointercancel": PointerEvent;
    "pointerdown": PointerEvent;
    "pointerenter": PointerEvent;
    "pointerleave": PointerEvent;
    "pointermove": PointerEvent;
    "pointerout": PointerEvent;
    "pointerover": PointerEvent;
    "pointerup": PointerEvent;
    "progress": ProgressEvent;
    "ratechange": Event;
    "reset": Event;
    "resize": UIEvent;
    "scroll": Event;
    "securitypolicyviolation": SecurityPolicyViolationEvent;
    "seeked": Event;
    "seeking": Event;
    "select": Event;
    "selectionchange": Event;
    "selectstart": Event;
    "slotchange": Event;
    "stalled": Event;
    "submit": SubmitEvent;
    "suspend": Event;
    "timeupdate": Event;
    "toggle": Event;
    "touchcancel": TouchEvent;
    "touchend": TouchEvent;
    "touchmove": TouchEvent;
    "touchstart": TouchEvent;
    "transitioncancel": TransitionEvent;
    "transitionend": TransitionEvent;
    "transitionrun": TransitionEvent;
    "transitionstart": TransitionEvent;
    "volumechange": Event;
    "waiting": Event;
    "webkitanimationend": Event;
    "webkitanimationiteration": Event;
    "webkitanimationstart": Event;
    "webkittransitionend": Event;
    "wheel": WheelEvent;
}

interface GlobalEventHandlers {
    /**
     * Fires when the user aborts the download.
     * @param ev The event.
     */
    onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
    onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
    onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
    onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
    onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
    onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
    onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;
    /**
     * Fires when the object loses the input focus.
     * @param ev The focus event.
     */
    onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
    oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Occurs when playback is possible, but would require further buffering.
     * @param ev The event.
     */
    oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Fires when the contents of the object or selection have changed.
     * @param ev The event.
     */
    onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Fires when the user clicks the left mouse button on the object
     * @param ev The mouse event.
     */
    onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
    onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Fires when the user clicks the right mouse button in the client area, opening the context menu.
     * @param ev The mouse event.
     */
    oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
    oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
    oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
    /**
     * Fires when the user double-clicks the object.
     * @param ev The mouse event.
     */
    ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
    /**
     * Fires on the source object continuously during a drag operation.
     * @param ev The event.
     */
    ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
    /**
     * Fires on the source object when the user releases the mouse at the close of a drag operation.
     * @param ev The event.
     */
    ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
    /**
     * Fires on the target element when the user drags the object to a valid drop target.
     * @param ev The drag event.
     */
    ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
    /**
     * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.
     * @param ev The drag event.
     */
    ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
    /**
     * Fires on the target element continuously while the user drags the object over a valid drop target.
     * @param ev The event.
     */
    ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
    /**
     * Fires on the source object when the user starts to drag a text selection or selected object.
     * @param ev The event.
     */
    ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
    ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
    /**
     * Occurs when the duration attribute is updated.
     * @param ev The event.
     */
    ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Occurs when the media element is reset to its initial state.
     * @param ev The event.
     */
    onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Occurs when the end of playback is reached.
     * @param ev The event
     */
    onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Fires when an error occurs during object loading.
     * @param ev The event.
     */
    onerror: OnErrorEventHandler;
    /**
     * Fires when the object receives focus.
     * @param ev The event.
     */
    onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
    onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null;
    ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
    oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Fires when the user presses a key.
     * @param ev The keyboard event
     */
    onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
    /**
     * Fires when the user presses an alphanumeric key.
     * @param ev The event.
     * @deprecated
     */
    onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
    /**
     * Fires when the user releases a key.
     * @param ev The keyboard event
     */
    onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
    /**
     * Fires immediately after the browser loads the object.
     * @param ev The event.
     */
    onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Occurs when media data is loaded at the current playback position.
     * @param ev The event.
     */
    onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Occurs when the duration and dimensions of the media have been determined.
     * @param ev The event.
     */
    onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Occurs when Internet Explorer begins looking for media data.
     * @param ev The event.
     */
    onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
    /**
     * Fires when the user clicks the object with either mouse button.
     * @param ev The mouse event.
     */
    onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
    onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
    onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
    /**
     * Fires when the user moves the mouse over the object.
     * @param ev The mouse event.
     */
    onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
    /**
     * Fires when the user moves the mouse pointer outside the boundaries of the object.
     * @param ev The mouse event.
     */
    onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
    /**
     * Fires when the user moves the mouse pointer into the object.
     * @param ev The mouse event.
     */
    onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
    /**
     * Fires when the user releases a mouse button while the mouse is over the object.
     * @param ev The mouse event.
     */
    onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
    onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
    /**
     * Occurs when playback is paused.
     * @param ev The event.
     */
    onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Occurs when the play method is requested.
     * @param ev The event.
     */
    onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Occurs when the audio or video has started playing.
     * @param ev The event.
     */
    onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
    onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
    onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
    onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
    onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
    onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
    onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
    onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
    /**
     * Occurs to indicate progress while downloading media data.
     * @param ev The event.
     */
    onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;
    /**
     * Occurs when the playback rate is increased or decreased.
     * @param ev The event.
     */
    onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Fires when the user resets a form.
     * @param ev The event.
     */
    onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
    /**
     * Fires when the user repositions the scroll box in the scroll bar on the object.
     * @param ev The event.
     */
    onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;
    /**
     * Occurs when the seek operation ends.
     * @param ev The event.
     */
    onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Occurs when the current playback position is moved.
     * @param ev The event.
     */
    onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Fires when the current selection changes.
     * @param ev The event.
     */
    onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Occurs when the download has stopped.
     * @param ev The event.
     */
    onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null;
    /**
     * Occurs if the load operation has been intentionally halted.
     * @param ev The event.
     */
    onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Occurs to indicate the current playback position.
     * @param ev The event.
     */
    ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
    ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
    ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
    ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
    ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
    ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
    ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
    ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
    /**
     * Occurs when the volume is changed, or playback is muted or unmuted.
     * @param ev The event.
     */
    onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /**
     * Occurs when playback stops because the next frame of a video resource is not available.
     * @param ev The event.
     */
    onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /** @deprecated This is a legacy alias of \`onanimationend\`. */
    onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /** @deprecated This is a legacy alias of \`onanimationiteration\`. */
    onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /** @deprecated This is a legacy alias of \`onanimationstart\`. */
    onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    /** @deprecated This is a legacy alias of \`ontransitionend\`. */
    onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
    onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;
    addEventListener<K extends keyof GlobalEventHandlersEventMap>(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof GlobalEventHandlersEventMap>(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

interface HTMLAllCollection {
    /** Returns the number of elements in the collection. */
    readonly length: number;
    /** Returns the item with index index from the collection (determined by tree order). */
    item(nameOrIndex?: string): HTMLCollection | Element | null;
    /**
     * Returns the item with ID or name name from the collection.
     *
     * If there are multiple matching items, then an HTMLCollection object containing all those elements is returned.
     *
     * Only button, form, iframe, input, map, meta, object, select, and textarea elements can have a name for the purpose of this method; their name is given by the value of their name attribute.
     */
    namedItem(name: string): HTMLCollection | Element | null;
    [index: number]: Element;
}

declare var HTMLAllCollection: {
    prototype: HTMLAllCollection;
    new(): HTMLAllCollection;
};

/** Hyperlink elements and provides special properties and methods (beyond those of the regular HTMLElement object interface that they inherit from) for manipulating the layout and presentation of such elements. */
interface HTMLAnchorElement extends HTMLElement, HTMLHyperlinkElementUtils {
    /**
     * Sets or retrieves the character set used to encode the object.
     * @deprecated
     */
    charset: string;
    /**
     * Sets or retrieves the coordinates of the object.
     * @deprecated
     */
    coords: string;
    download: string;
    /** Sets or retrieves the language code of the object. */
    hreflang: string;
    /**
     * Sets or retrieves the shape of the object.
     * @deprecated
     */
    name: string;
    ping: string;
    referrerPolicy: string;
    /** Sets or retrieves the relationship between the object and the destination of the link. */
    rel: string;
    readonly relList: DOMTokenList;
    /**
     * Sets or retrieves the relationship between the object and the destination of the link.
     * @deprecated
     */
    rev: string;
    /**
     * Sets or retrieves the shape of the object.
     * @deprecated
     */
    shape: string;
    /** Sets or retrieves the window or frame at which to target content. */
    target: string;
    /** Retrieves or sets the text of the object as a string. */
    text: string;
    type: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLAnchorElement: {
    prototype: HTMLAnchorElement;
    new(): HTMLAnchorElement;
};

/** Provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <area> elements. */
interface HTMLAreaElement extends HTMLElement, HTMLHyperlinkElementUtils {
    /** Sets or retrieves a text alternative to the graphic. */
    alt: string;
    /** Sets or retrieves the coordinates of the object. */
    coords: string;
    download: string;
    /**
     * Sets or gets whether clicks in this region cause action.
     * @deprecated
     */
    noHref: boolean;
    ping: string;
    referrerPolicy: string;
    rel: string;
    readonly relList: DOMTokenList;
    /** Sets or retrieves the shape of the object. */
    shape: string;
    /** Sets or retrieves the window or frame at which to target content. */
    target: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLAreaElement: {
    prototype: HTMLAreaElement;
    new(): HTMLAreaElement;
};

/** Provides access to the properties of <audio> elements, as well as methods to manipulate them. It derives from the HTMLMediaElement interface. */
interface HTMLAudioElement extends HTMLMediaElement {
    addEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLAudioElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLAudioElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLAudioElement: {
    prototype: HTMLAudioElement;
    new(): HTMLAudioElement;
};

/** A HTML line break element (<br>). It inherits from HTMLElement. */
interface HTMLBRElement extends HTMLElement {
    /**
     * Sets or retrieves the side on which floating objects are not to be positioned when any IHTMLBlockElement is inserted into the document.
     * @deprecated
     */
    clear: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLBRElement: {
    prototype: HTMLBRElement;
    new(): HTMLBRElement;
};

/** Contains the base URI for a document. This object inherits all of the properties and methods as described in the HTMLElement interface. */
interface HTMLBaseElement extends HTMLElement {
    /** Gets or sets the baseline URL on which relative links are based. */
    href: string;
    /** Sets or retrieves the window or frame at which to target content. */
    target: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBaseElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBaseElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLBaseElement: {
    prototype: HTMLBaseElement;
    new(): HTMLBaseElement;
};

interface HTMLBodyElementEventMap extends HTMLElementEventMap, WindowEventHandlersEventMap {
}

/** Provides special properties (beyond those inherited from the regular HTMLElement interface) for manipulating <body> elements. */
interface HTMLBodyElement extends HTMLElement, WindowEventHandlers {
    /** @deprecated */
    aLink: string;
    /** @deprecated */
    background: string;
    /** @deprecated */
    bgColor: string;
    /** @deprecated */
    link: string;
    /** @deprecated */
    text: string;
    /** @deprecated */
    vLink: string;
    addEventListener<K extends keyof HTMLBodyElementEventMap>(type: K, listener: (this: HTMLBodyElement, ev: HTMLBodyElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLBodyElementEventMap>(type: K, listener: (this: HTMLBodyElement, ev: HTMLBodyElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLBodyElement: {
    prototype: HTMLBodyElement;
    new(): HTMLBodyElement;
};

/** Provides properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <button> elements. */
interface HTMLButtonElement extends HTMLElement {
    disabled: boolean;
    /** Retrieves a reference to the form that the object is embedded in. */
    readonly form: HTMLFormElement | null;
    /** Overrides the action attribute (where the data on a form is sent) on the parent form element. */
    formAction: string;
    /** Used to override the encoding (formEnctype attribute) specified on the form element. */
    formEnctype: string;
    /** Overrides the submit method attribute previously specified on a form element. */
    formMethod: string;
    /** Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a "save draft"-type submit option. */
    formNoValidate: boolean;
    /** Overrides the target attribute on a form element. */
    formTarget: string;
    readonly labels: NodeListOf<HTMLLabelElement>;
    /** Sets or retrieves the name of the object. */
    name: string;
    /** Gets the classification and default behavior of the button. */
    type: string;
    /** Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting. */
    readonly validationMessage: string;
    /** Returns a  ValidityState object that represents the validity states of an element. */
    readonly validity: ValidityState;
    /** Sets or retrieves the default or selected value of the control. */
    value: string;
    /** Returns whether an element will successfully validate based on forms validation rules and constraints. */
    readonly willValidate: boolean;
    /** Returns whether a form will validate when it is submitted, without having to submit it. */
    checkValidity(): boolean;
    reportValidity(): boolean;
    /**
     * Sets a custom error message that is displayed when a form is submitted.
     * @param error Sets a custom error message that is displayed when a form is submitted.
     */
    setCustomValidity(error: string): void;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLButtonElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLButtonElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLButtonElement: {
    prototype: HTMLButtonElement;
    new(): HTMLButtonElement;
};

/** Provides properties and methods for manipulating the layout and presentation of <canvas> elements. The HTMLCanvasElement interface also inherits the properties and methods of the HTMLElement interface. */
interface HTMLCanvasElement extends HTMLElement {
    /** Gets or sets the height of a canvas element on a document. */
    height: number;
    /** Gets or sets the width of a canvas element on a document. */
    width: number;
    captureStream(frameRequestRate?: number): MediaStream;
    /**
     * Returns an object that provides methods and properties for drawing and manipulating images and graphics on a canvas element in a document. A context object includes information about colors, line widths, fonts, and other graphic parameters that can be drawn on a canvas.
     * @param contextId The identifier (ID) of the type of canvas to create. Internet Explorer 9 and Internet Explorer 10 support only a 2-D context using canvas.getContext("2d"); IE11 Preview also supports 3-D or WebGL context using canvas.getContext("experimental-webgl");
     */
    getContext(contextId: "2d", options?: CanvasRenderingContext2DSettings): CanvasRenderingContext2D | null;
    getContext(contextId: "bitmaprenderer", options?: ImageBitmapRenderingContextSettings): ImageBitmapRenderingContext | null;
    getContext(contextId: "webgl", options?: WebGLContextAttributes): WebGLRenderingContext | null;
    getContext(contextId: "webgl2", options?: WebGLContextAttributes): WebGL2RenderingContext | null;
    getContext(contextId: string, options?: any): RenderingContext | null;
    toBlob(callback: BlobCallback, type?: string, quality?: any): void;
    /**
     * Returns the content of the current canvas as an image that you can use as a source for another canvas or an HTML element.
     * @param type The standard MIME type for the image format to return. If you do not specify this parameter, the default value is a PNG format image.
     */
    toDataURL(type?: string, quality?: any): string;
    transferControlToOffscreen(): OffscreenCanvas;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLCanvasElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLCanvasElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLCanvasElement: {
    prototype: HTMLCanvasElement;
    new(): HTMLCanvasElement;
};

/** A generic collection (array-like object similar to arguments) of elements (in document order) and offers methods and properties for selecting from the list. */
interface HTMLCollectionBase {
    /** Sets or retrieves the number of objects in a collection. */
    readonly length: number;
    /** Retrieves an object from various collections. */
    item(index: number): Element | null;
    [index: number]: Element;
}

interface HTMLCollection extends HTMLCollectionBase {
    /** Retrieves a select object or an object from an options collection. */
    namedItem(name: string): Element | null;
}

declare var HTMLCollection: {
    prototype: HTMLCollection;
    new(): HTMLCollection;
};

interface HTMLCollectionOf<T extends Element> extends HTMLCollectionBase {
    item(index: number): T | null;
    namedItem(name: string): T | null;
    [index: number]: T;
}

/** Provides special properties (beyond those of the regular HTMLElement interface it also has available to it by inheritance) for manipulating definition list (<dl>) elements. */
interface HTMLDListElement extends HTMLElement {
    /** @deprecated */
    compact: boolean;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLDListElement: {
    prototype: HTMLDListElement;
    new(): HTMLDListElement;
};

/** Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <data> elements. */
interface HTMLDataElement extends HTMLElement {
    value: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLDataElement: {
    prototype: HTMLDataElement;
    new(): HTMLDataElement;
};

/** Provides special properties (beyond the HTMLElement object interface it also has available to it by inheritance) to manipulate <datalist> elements and their content. */
interface HTMLDataListElement extends HTMLElement {
    /** Returns an HTMLCollection of the option elements of the datalist element. */
    readonly options: HTMLCollectionOf<HTMLOptionElement>;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLDataListElement: {
    prototype: HTMLDataListElement;
    new(): HTMLDataListElement;
};

interface HTMLDetailsElement extends HTMLElement {
    open: boolean;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDetailsElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDetailsElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLDetailsElement: {
    prototype: HTMLDetailsElement;
    new(): HTMLDetailsElement;
};

interface HTMLDialogElement extends HTMLElement {
    open: boolean;
    returnValue: string;
    /**
     * Closes the dialog element.
     *
     * The argument, if provided, provides a return value.
     */
    close(returnValue?: string): void;
    /** Displays the dialog element. */
    show(): void;
    showModal(): void;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDialogElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDialogElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLDialogElement: {
    prototype: HTMLDialogElement;
    new(): HTMLDialogElement;
};

/** @deprecated */
interface HTMLDirectoryElement extends HTMLElement {
    /** @deprecated */
    compact: boolean;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDirectoryElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDirectoryElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

/** @deprecated */
declare var HTMLDirectoryElement: {
    prototype: HTMLDirectoryElement;
    new(): HTMLDirectoryElement;
};

/** Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <div> elements. */
interface HTMLDivElement extends HTMLElement {
    /**
     * Sets or retrieves how the object is aligned with adjacent text.
     * @deprecated
     */
    align: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDivElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDivElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLDivElement: {
    prototype: HTMLDivElement;
    new(): HTMLDivElement;
};

/** @deprecated use Document */
interface HTMLDocument extends Document {
    addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: HTMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: HTMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

/** @deprecated */
declare var HTMLDocument: {
    prototype: HTMLDocument;
    new(): HTMLDocument;
};

interface HTMLElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap {
}

/** Any HTML element. Some elements directly implement this interface, while others implement it via an interface that inherits it. */
interface HTMLElement extends Element, ElementCSSInlineStyle, ElementContentEditable, GlobalEventHandlers, HTMLOrSVGElement {
    accessKey: string;
    readonly accessKeyLabel: string;
    autocapitalize: string;
    dir: string;
    draggable: boolean;
    hidden: boolean;
    inert: boolean;
    innerText: string;
    lang: string;
    readonly offsetHeight: number;
    readonly offsetLeft: number;
    readonly offsetParent: Element | null;
    readonly offsetTop: number;
    readonly offsetWidth: number;
    outerText: string;
    spellcheck: boolean;
    title: string;
    translate: boolean;
    attachInternals(): ElementInternals;
    click(): void;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLElement: {
    prototype: HTMLElement;
    new(): HTMLElement;
};

/** Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <embed> elements. */
interface HTMLEmbedElement extends HTMLElement {
    /** @deprecated */
    align: string;
    /** Sets or retrieves the height of the object. */
    height: string;
    /**
     * Sets or retrieves the name of the object.
     * @deprecated
     */
    name: string;
    /** Sets or retrieves a URL to be loaded by the object. */
    src: string;
    type: string;
    /** Sets or retrieves the width of the object. */
    width: string;
    getSVGDocument(): Document | null;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLEmbedElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLEmbedElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLEmbedElement: {
    prototype: HTMLEmbedElement;
    new(): HTMLEmbedElement;
};

/** Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <fieldset> elements. */
interface HTMLFieldSetElement extends HTMLElement {
    disabled: boolean;
    /** Returns an HTMLCollection of the form controls in the element. */
    readonly elements: HTMLCollection;
    /** Retrieves a reference to the form that the object is embedded in. */
    readonly form: HTMLFormElement | null;
    name: string;
    /** Returns the string "fieldset". */
    readonly type: string;
    /** Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting. */
    readonly validationMessage: string;
    /** Returns a  ValidityState object that represents the validity states of an element. */
    readonly validity: ValidityState;
    /** Returns whether an element will successfully validate based on forms validation rules and constraints. */
    readonly willValidate: boolean;
    /** Returns whether a form will validate when it is submitted, without having to submit it. */
    checkValidity(): boolean;
    reportValidity(): boolean;
    /**
     * Sets a custom error message that is displayed when a form is submitted.
     * @param error Sets a custom error message that is displayed when a form is submitted.
     */
    setCustomValidity(error: string): void;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFieldSetElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFieldSetElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLFieldSetElement: {
    prototype: HTMLFieldSetElement;
    new(): HTMLFieldSetElement;
};

/**
 * Implements the document object model (DOM) representation of the font element. The HTML Font Element <font> defines the font size, font face and color of text.
 * @deprecated
 */
interface HTMLFontElement extends HTMLElement {
    /** @deprecated */
    color: string;
    /**
     * Sets or retrieves the current typeface family.
     * @deprecated
     */
    face: string;
    /** @deprecated */
    size: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFontElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFontElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

/** @deprecated */
declare var HTMLFontElement: {
    prototype: HTMLFontElement;
    new(): HTMLFontElement;
};

/** A collection of HTML form control elements.  */
interface HTMLFormControlsCollection extends HTMLCollectionBase {
    /**
     * Returns the item with ID or name name from the collection.
     *
     * If there are multiple matching items, then a RadioNodeList object containing all those elements is returned.
     */
    namedItem(name: string): RadioNodeList | Element | null;
}

declare var HTMLFormControlsCollection: {
    prototype: HTMLFormControlsCollection;
    new(): HTMLFormControlsCollection;
};

/** A <form> element in the DOM; it allows access to and in some cases modification of aspects of the form, as well as access to its component elements. */
interface HTMLFormElement extends HTMLElement {
    /** Sets or retrieves a list of character encodings for input data that must be accepted by the server processing the form. */
    acceptCharset: string;
    /** Sets or retrieves the URL to which the form content is sent for processing. */
    action: string;
    /** Specifies whether autocomplete is applied to an editable text field. */
    autocomplete: string;
    /** Retrieves a collection, in source order, of all controls in a given form. */
    readonly elements: HTMLFormControlsCollection;
    /** Sets or retrieves the MIME encoding for the form. */
    encoding: string;
    /** Sets or retrieves the encoding type for the form. */
    enctype: string;
    /** Sets or retrieves the number of objects in a collection. */
    readonly length: number;
    /** Sets or retrieves how to send the form data to the server. */
    method: string;
    /** Sets or retrieves the name of the object. */
    name: string;
    /** Designates a form that is not validated when submitted. */
    noValidate: boolean;
    rel: string;
    readonly relList: DOMTokenList;
    /** Sets or retrieves the window or frame at which to target content. */
    target: string;
    /** Returns whether a form will validate when it is submitted, without having to submit it. */
    checkValidity(): boolean;
    reportValidity(): boolean;
    requestSubmit(submitter?: HTMLElement | null): void;
    /** Fires when the user resets a form. */
    reset(): void;
    /** Fires when a FORM is about to be submitted. */
    submit(): void;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFormElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFormElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    [index: number]: Element;
    [name: string]: any;
}

declare var HTMLFormElement: {
    prototype: HTMLFormElement;
    new(): HTMLFormElement;
};

/** @deprecated */
interface HTMLFrameElement extends HTMLElement {
    /**
     * Retrieves the document object of the page or frame.
     * @deprecated
     */
    readonly contentDocument: Document | null;
    /**
     * Retrieves the object of the specified.
     * @deprecated
     */
    readonly contentWindow: WindowProxy | null;
    /**
     * Sets or retrieves whether to display a border for the frame.
     * @deprecated
     */
    frameBorder: string;
    /**
     * Sets or retrieves a URI to a long description of the object.
     * @deprecated
     */
    longDesc: string;
    /**
     * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.
     * @deprecated
     */
    marginHeight: string;
    /**
     * Sets or retrieves the left and right margin widths before displaying the text in a frame.
     * @deprecated
     */
    marginWidth: string;
    /**
     * Sets or retrieves the frame name.
     * @deprecated
     */
    name: string;
    /**
     * Sets or retrieves whether the user can resize the frame.
     * @deprecated
     */
    noResize: boolean;
    /**
     * Sets or retrieves whether the frame can be scrolled.
     * @deprecated
     */
    scrolling: string;
    /**
     * Sets or retrieves a URL to be loaded by the object.
     * @deprecated
     */
    src: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

/** @deprecated */
declare var HTMLFrameElement: {
    prototype: HTMLFrameElement;
    new(): HTMLFrameElement;
};

interface HTMLFrameSetElementEventMap extends HTMLElementEventMap, WindowEventHandlersEventMap {
}

/**
 * Provides special properties (beyond those of the regular HTMLElement interface they also inherit) for manipulating <frameset> elements.
 * @deprecated
 */
interface HTMLFrameSetElement extends HTMLElement, WindowEventHandlers {
    /**
     * Sets or retrieves the frame widths of the object.
     * @deprecated
     */
    cols: string;
    /**
     * Sets or retrieves the frame heights of the object.
     * @deprecated
     */
    rows: string;
    addEventListener<K extends keyof HTMLFrameSetElementEventMap>(type: K, listener: (this: HTMLFrameSetElement, ev: HTMLFrameSetElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLFrameSetElementEventMap>(type: K, listener: (this: HTMLFrameSetElement, ev: HTMLFrameSetElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

/** @deprecated */
declare var HTMLFrameSetElement: {
    prototype: HTMLFrameSetElement;
    new(): HTMLFrameSetElement;
};

/** Provides special properties (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating <hr> elements. */
interface HTMLHRElement extends HTMLElement {
    /**
     * Sets or retrieves how the object is aligned with adjacent text.
     * @deprecated
     */
    align: string;
    /** @deprecated */
    color: string;
    /**
     * Sets or retrieves whether the horizontal rule is drawn with 3-D shading.
     * @deprecated
     */
    noShade: boolean;
    /** @deprecated */
    size: string;
    /**
     * Sets or retrieves the width of the object.
     * @deprecated
     */
    width: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLHRElement: {
    prototype: HTMLHRElement;
    new(): HTMLHRElement;
};

/** Contains the descriptive information, or metadata, for a document. This object inherits all of the properties and methods described in the HTMLElement interface. */
interface HTMLHeadElement extends HTMLElement {
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLHeadElement: {
    prototype: HTMLHeadElement;
    new(): HTMLHeadElement;
};

/** The different heading elements. It inherits methods and properties from the HTMLElement interface. */
interface HTMLHeadingElement extends HTMLElement {
    /**
     * Sets or retrieves a value that indicates the table alignment.
     * @deprecated
     */
    align: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadingElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadingElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLHeadingElement: {
    prototype: HTMLHeadingElement;
    new(): HTMLHeadingElement;
};

/** Serves as the root node for a given HTML document. This object inherits the properties and methods described in the HTMLElement interface. */
interface HTMLHtmlElement extends HTMLElement {
    /**
     * Sets or retrieves the DTD version that governs the current document.
     * @deprecated
     */
    version: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHtmlElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHtmlElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLHtmlElement: {
    prototype: HTMLHtmlElement;
    new(): HTMLHtmlElement;
};

interface HTMLHyperlinkElementUtils {
    /**
     * Returns the hyperlink's URL's fragment (includes leading "#" if non-empty).
     *
     * Can be set, to change the URL's fragment (ignores leading "#").
     */
    hash: string;
    /**
     * Returns the hyperlink's URL's host and port (if different from the default port for the scheme).
     *
     * Can be set, to change the URL's host and port.
     */
    host: string;
    /**
     * Returns the hyperlink's URL's host.
     *
     * Can be set, to change the URL's host.
     */
    hostname: string;
    /**
     * Returns the hyperlink's URL.
     *
     * Can be set, to change the URL.
     */
    href: string;
    toString(): string;
    /** Returns the hyperlink's URL's origin. */
    readonly origin: string;
    /**
     * Returns the hyperlink's URL's password.
     *
     * Can be set, to change the URL's password.
     */
    password: string;
    /**
     * Returns the hyperlink's URL's path.
     *
     * Can be set, to change the URL's path.
     */
    pathname: string;
    /**
     * Returns the hyperlink's URL's port.
     *
     * Can be set, to change the URL's port.
     */
    port: string;
    /**
     * Returns the hyperlink's URL's scheme.
     *
     * Can be set, to change the URL's scheme.
     */
    protocol: string;
    /**
     * Returns the hyperlink's URL's query (includes leading "?" if non-empty).
     *
     * Can be set, to change the URL's query (ignores leading "?").
     */
    search: string;
    /**
     * Returns the hyperlink's URL's username.
     *
     * Can be set, to change the URL's username.
     */
    username: string;
}

/** Provides special properties and methods (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of inline frame elements. */
interface HTMLIFrameElement extends HTMLElement {
    /**
     * Sets or retrieves how the object is aligned with adjacent text.
     * @deprecated
     */
    align: string;
    allow: string;
    allowFullscreen: boolean;
    /** Retrieves the document object of the page or frame. */
    readonly contentDocument: Document | null;
    /** Retrieves the object of the specified. */
    readonly contentWindow: WindowProxy | null;
    /**
     * Sets or retrieves whether to display a border for the frame.
     * @deprecated
     */
    frameBorder: string;
    /** Sets or retrieves the height of the object. */
    height: string;
    /**
     * Sets or retrieves a URI to a long description of the object.
     * @deprecated
     */
    longDesc: string;
    /**
     * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.
     * @deprecated
     */
    marginHeight: string;
    /**
     * Sets or retrieves the left and right margin widths before displaying the text in a frame.
     * @deprecated
     */
    marginWidth: string;
    /** Sets or retrieves the frame name. */
    name: string;
    referrerPolicy: ReferrerPolicy;
    readonly sandbox: DOMTokenList;
    /**
     * Sets or retrieves whether the frame can be scrolled.
     * @deprecated
     */
    scrolling: string;
    /** Sets or retrieves a URL to be loaded by the object. */
    src: string;
    /** Sets or retrives the content of the page that is to contain. */
    srcdoc: string;
    /** Sets or retrieves the width of the object. */
    width: string;
    getSVGDocument(): Document | null;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLIFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLIFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLIFrameElement: {
    prototype: HTMLIFrameElement;
    new(): HTMLIFrameElement;
};

/** Provides special properties and methods for manipulating <img> elements. */
interface HTMLImageElement extends HTMLElement {
    /**
     * Sets or retrieves how the object is aligned with adjacent text.
     * @deprecated
     */
    align: string;
    /** Sets or retrieves a text alternative to the graphic. */
    alt: string;
    /**
     * Specifies the properties of a border drawn around an object.
     * @deprecated
     */
    border: string;
    /** Retrieves whether the object is fully loaded. */
    readonly complete: boolean;
    crossOrigin: string | null;
    readonly currentSrc: string;
    decoding: "async" | "sync" | "auto";
    /** Sets or retrieves the height of the object. */
    height: number;
    /**
     * Sets or retrieves the width of the border to draw around the object.
     * @deprecated
     */
    hspace: number;
    /** Sets or retrieves whether the image is a server-side image map. */
    isMap: boolean;
    /** Sets or retrieves the policy for loading image elements that are outside the viewport. */
    loading: "eager" | "lazy";
    /**
     * Sets or retrieves a Uniform Resource Identifier (URI) to a long description of the object.
     * @deprecated
     */
    longDesc: string;
    /** @deprecated */
    lowsrc: string;
    /**
     * Sets or retrieves the name of the object.
     * @deprecated
     */
    name: string;
    /** The original height of the image resource before sizing. */
    readonly naturalHeight: number;
    /** The original width of the image resource before sizing. */
    readonly naturalWidth: number;
    referrerPolicy: string;
    sizes: string;
    /** The address or URL of the a media resource that is to be considered. */
    src: string;
    srcset: string;
    /** Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map. */
    useMap: string;
    /**
     * Sets or retrieves the vertical margin for the object.
     * @deprecated
     */
    vspace: number;
    /** Sets or retrieves the width of the object. */
    width: number;
    readonly x: number;
    readonly y: number;
    decode(): Promise<void>;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLImageElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLImageElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLImageElement: {
    prototype: HTMLImageElement;
    new(): HTMLImageElement;
};

/** Provides special properties and methods for manipulating the options, layout, and presentation of <input> elements. */
interface HTMLInputElement extends HTMLElement {
    /** Sets or retrieves a comma-separated list of content types. */
    accept: string;
    /**
     * Sets or retrieves how the object is aligned with adjacent text.
     * @deprecated
     */
    align: string;
    /** Sets or retrieves a text alternative to the graphic. */
    alt: string;
    /** Specifies whether autocomplete is applied to an editable text field. */
    autocomplete: string;
    capture: string;
    /** Sets or retrieves the state of the check box or radio button. */
    checked: boolean;
    /** Sets or retrieves the state of the check box or radio button. */
    defaultChecked: boolean;
    /** Sets or retrieves the initial contents of the object. */
    defaultValue: string;
    dirName: string;
    disabled: boolean;
    /** Returns a FileList object on a file type input object. */
    files: FileList | null;
    /** Retrieves a reference to the form that the object is embedded in. */
    readonly form: HTMLFormElement | null;
    /** Overrides the action attribute (where the data on a form is sent) on the parent form element. */
    formAction: string;
    /** Used to override the encoding (formEnctype attribute) specified on the form element. */
    formEnctype: string;
    /** Overrides the submit method attribute previously specified on a form element. */
    formMethod: string;
    /** Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a "save draft"-type submit option. */
    formNoValidate: boolean;
    /** Overrides the target attribute on a form element. */
    formTarget: string;
    /** Sets or retrieves the height of the object. */
    height: number;
    /** When set, overrides the rendering of checkbox controls so that the current value is not visible. */
    indeterminate: boolean;
    readonly labels: NodeListOf<HTMLLabelElement> | null;
    /** Specifies the ID of a pre-defined datalist of options for an input element. */
    readonly list: HTMLDataListElement | null;
    /** Defines the maximum acceptable value for an input element with type="number".When used with the min and step attributes, lets you control the range and increment (such as only even numbers) that the user can enter into an input field. */
    max: string;
    /** Sets or retrieves the maximum number of characters that the user can enter in a text control. */
    maxLength: number;
    /** Defines the minimum acceptable value for an input element with type="number". When used with the max and step attributes, lets you control the range and increment (such as even numbers only) that the user can enter into an input field. */
    min: string;
    minLength: number;
    /** Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list. */
    multiple: boolean;
    /** Sets or retrieves the name of the object. */
    name: string;
    /** Gets or sets a string containing a regular expression that the user's input must match. */
    pattern: string;
    /** Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field. */
    placeholder: string;
    readOnly: boolean;
    /** When present, marks an element that can't be submitted without a value. */
    required: boolean;
    selectionDirection: "forward" | "backward" | "none" | null;
    /** Gets or sets the end position or offset of a text selection. */
    selectionEnd: number | null;
    /** Gets or sets the starting position or offset of a text selection. */
    selectionStart: number | null;
    size: number;
    /** The address or URL of the a media resource that is to be considered. */
    src: string;
    /** Defines an increment or jump between values that you want to allow the user to enter. When used with the max and min attributes, lets you control the range and increment (for example, allow only even numbers) that the user can enter into an input field. */
    step: string;
    /** Returns the content type of the object. */
    type: string;
    /**
     * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.
     * @deprecated
     */
    useMap: string;
    /** Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting. */
    readonly validationMessage: string;
    /** Returns a  ValidityState object that represents the validity states of an element. */
    readonly validity: ValidityState;
    /** Returns the value of the data at the cursor's current position. */
    value: string;
    /** Returns a Date object representing the form control's value, if applicable; otherwise, returns null. Can be set, to change the value. Throws an "InvalidStateError" DOMException if the control isn't date- or time-based. */
    valueAsDate: Date | null;
    /** Returns the input field value as a number. */
    valueAsNumber: number;
    readonly webkitEntries: ReadonlyArray<FileSystemEntry>;
    webkitdirectory: boolean;
    /** Sets or retrieves the width of the object. */
    width: number;
    /** Returns whether an element will successfully validate based on forms validation rules and constraints. */
    readonly willValidate: boolean;
    /** Returns whether a form will validate when it is submitted, without having to submit it. */
    checkValidity(): boolean;
    reportValidity(): boolean;
    /** Makes the selection equal to the current object. */
    select(): void;
    /**
     * Sets a custom error message that is displayed when a form is submitted.
     * @param error Sets a custom error message that is displayed when a form is submitted.
     */
    setCustomValidity(error: string): void;
    setRangeText(replacement: string): void;
    setRangeText(replacement: string, start: number, end: number, selectionMode?: SelectionMode): void;
    /**
     * Sets the start and end positions of a selection in a text field.
     * @param start The offset into the text field for the start of the selection.
     * @param end The offset into the text field for the end of the selection.
     * @param direction The direction in which the selection is performed.
     */
    setSelectionRange(start: number | null, end: number | null, direction?: "forward" | "backward" | "none"): void;
    showPicker(): void;
    /**
     * Decrements a range input control's value by the value given by the Step attribute. If the optional parameter is used, it will decrement the input control's step value multiplied by the parameter's value.
     * @param n Value to decrement the value by.
     */
    stepDown(n?: number): void;
    /**
     * Increments a range input control's value by the value given by the Step attribute. If the optional parameter is used, will increment the input control's value by that value.
     * @param n Value to increment the value by.
     */
    stepUp(n?: number): void;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLInputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLInputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLInputElement: {
    prototype: HTMLInputElement;
    new(): HTMLInputElement;
};

/** Exposes specific properties and methods (beyond those defined by regular HTMLElement interface it also has available to it by inheritance) for manipulating list elements. */
interface HTMLLIElement extends HTMLElement {
    /** @deprecated */
    type: string;
    /** Sets or retrieves the value of a list item. */
    value: number;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLIElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLIElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLLIElement: {
    prototype: HTMLLIElement;
    new(): HTMLLIElement;
};

/** Gives access to properties specific to <label> elements. It inherits methods and properties from the base HTMLElement interface. */
interface HTMLLabelElement extends HTMLElement {
    /** Returns the form control that is associated with this element. */
    readonly control: HTMLElement | null;
    /** Retrieves a reference to the form that the object is embedded in. */
    readonly form: HTMLFormElement | null;
    /** Sets or retrieves the object to which the given label object is assigned. */
    htmlFor: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLabelElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLabelElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLLabelElement: {
    prototype: HTMLLabelElement;
    new(): HTMLLabelElement;
};

/** The HTMLLegendElement is an interface allowing to access properties of the <legend> elements. It inherits properties and methods from the HTMLElement interface. */
interface HTMLLegendElement extends HTMLElement {
    /** @deprecated */
    align: string;
    /** Retrieves a reference to the form that the object is embedded in. */
    readonly form: HTMLFormElement | null;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLegendElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLegendElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLLegendElement: {
    prototype: HTMLLegendElement;
    new(): HTMLLegendElement;
};

/** Reference information for external resources and the relationship of those resources to a document and vice-versa. This object inherits all of the properties and methods of the HTMLElement interface. */
interface HTMLLinkElement extends HTMLElement, LinkStyle {
    as: string;
    /**
     * Sets or retrieves the character set used to encode the object.
     * @deprecated
     */
    charset: string;
    crossOrigin: string | null;
    disabled: boolean;
    /** Sets or retrieves a destination URL or an anchor point. */
    href: string;
    /** Sets or retrieves the language code of the object. */
    hreflang: string;
    imageSizes: string;
    imageSrcset: string;
    integrity: string;
    /** Sets or retrieves the media type. */
    media: string;
    referrerPolicy: string;
    /** Sets or retrieves the relationship between the object and the destination of the link. */
    rel: string;
    readonly relList: DOMTokenList;
    /**
     * Sets or retrieves the relationship between the object and the destination of the link.
     * @deprecated
     */
    rev: string;
    readonly sizes: DOMTokenList;
    /**
     * Sets or retrieves the window or frame at which to target content.
     * @deprecated
     */
    target: string;
    /** Sets or retrieves the MIME type of the object. */
    type: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLinkElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLinkElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLLinkElement: {
    prototype: HTMLLinkElement;
    new(): HTMLLinkElement;
};

/** Provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of map elements. */
interface HTMLMapElement extends HTMLElement {
    /** Retrieves a collection of the area objects defined for the given map object. */
    readonly areas: HTMLCollection;
    /** Sets or retrieves the name of the object. */
    name: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMapElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMapElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLMapElement: {
    prototype: HTMLMapElement;
    new(): HTMLMapElement;
};

/**
 * Provides methods to manipulate <marquee> elements.
 * @deprecated
 */
interface HTMLMarqueeElement extends HTMLElement {
    /** @deprecated */
    behavior: string;
    /** @deprecated */
    bgColor: string;
    /** @deprecated */
    direction: string;
    /** @deprecated */
    height: string;
    /** @deprecated */
    hspace: number;
    /** @deprecated */
    loop: number;
    /** @deprecated */
    scrollAmount: number;
    /** @deprecated */
    scrollDelay: number;
    /** @deprecated */
    trueSpeed: boolean;
    /** @deprecated */
    vspace: number;
    /** @deprecated */
    width: string;
    /** @deprecated */
    start(): void;
    /** @deprecated */
    stop(): void;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMarqueeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMarqueeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

/** @deprecated */
declare var HTMLMarqueeElement: {
    prototype: HTMLMarqueeElement;
    new(): HTMLMarqueeElement;
};

interface HTMLMediaElementEventMap extends HTMLElementEventMap {
    "encrypted": MediaEncryptedEvent;
    "waitingforkey": Event;
}

/** Adds to HTMLElement the properties and methods needed to support basic media-related capabilities that are common to audio and video. */
interface HTMLMediaElement extends HTMLElement {
    /** Gets or sets a value that indicates whether to start playing the media automatically. */
    autoplay: boolean;
    /** Gets a collection of buffered time ranges. */
    readonly buffered: TimeRanges;
    /** Gets or sets a flag that indicates whether the client provides a set of controls for the media (in case the developer does not include controls for the player). */
    controls: boolean;
    crossOrigin: string | null;
    /** Gets the address or URL of the current media resource that is selected by IHTMLMediaElement. */
    readonly currentSrc: string;
    /** Gets or sets the current playback position, in seconds. */
    currentTime: number;
    defaultMuted: boolean;
    /** Gets or sets the default playback rate when the user is not using fast forward or reverse for a video or audio resource. */
    defaultPlaybackRate: number;
    disableRemotePlayback: boolean;
    /** Returns the duration in seconds of the current media resource. A NaN value is returned if duration is not available, or Infinity if the media resource is streaming. */
    readonly duration: number;
    /** Gets information about whether the playback has ended or not. */
    readonly ended: boolean;
    /** Returns an object representing the current error state of the audio or video element. */
    readonly error: MediaError | null;
    /** Gets or sets a flag to specify whether playback should restart after it completes. */
    loop: boolean;
    /** Available only in secure contexts. */
    readonly mediaKeys: MediaKeys | null;
    /** Gets or sets a flag that indicates whether the audio (either audio or the audio track on video media) is muted. */
    muted: boolean;
    /** Gets the current network activity for the element. */
    readonly networkState: number;
    onencrypted: ((this: HTMLMediaElement, ev: MediaEncryptedEvent) => any) | null;
    onwaitingforkey: ((this: HTMLMediaElement, ev: Event) => any) | null;
    /** Gets a flag that specifies whether playback is paused. */
    readonly paused: boolean;
    /** Gets or sets the current rate of speed for the media resource to play. This speed is expressed as a multiple of the normal speed of the media resource. */
    playbackRate: number;
    /** Gets TimeRanges for the current media resource that has been played. */
    readonly played: TimeRanges;
    /** Gets or sets a value indicating what data should be preloaded, if any. */
    preload: "none" | "metadata" | "auto" | "";
    preservesPitch: boolean;
    readonly readyState: number;
    readonly remote: RemotePlayback;
    /** Returns a TimeRanges object that represents the ranges of the current media resource that can be seeked. */
    readonly seekable: TimeRanges;
    /** Gets a flag that indicates whether the client is currently moving to a new playback position in the media resource. */
    readonly seeking: boolean;
    /** The address or URL of the a media resource that is to be considered. */
    src: string;
    srcObject: MediaProvider | null;
    readonly textTracks: TextTrackList;
    /** Gets or sets the volume level for audio portions of the media element. */
    volume: number;
    addTextTrack(kind: TextTrackKind, label?: string, language?: string): TextTrack;
    /** Returns a string that specifies whether the client can play a given media resource type. */
    canPlayType(type: string): CanPlayTypeResult;
    fastSeek(time: number): void;
    /** Resets the audio or video object and loads a new media resource. */
    load(): void;
    /** Pauses the current playback and sets paused to TRUE. This can be used to test whether the media is playing or paused. You can also use the pause or play events to tell whether the media is playing or not. */
    pause(): void;
    /** Loads and starts playback of a media resource. */
    play(): Promise<void>;
    /** Available only in secure contexts. */
    setMediaKeys(mediaKeys: MediaKeys | null): Promise<void>;
    readonly NETWORK_EMPTY: 0;
    readonly NETWORK_IDLE: 1;
    readonly NETWORK_LOADING: 2;
    readonly NETWORK_NO_SOURCE: 3;
    readonly HAVE_NOTHING: 0;
    readonly HAVE_METADATA: 1;
    readonly HAVE_CURRENT_DATA: 2;
    readonly HAVE_FUTURE_DATA: 3;
    readonly HAVE_ENOUGH_DATA: 4;
    addEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLMediaElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLMediaElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLMediaElement: {
    prototype: HTMLMediaElement;
    new(): HTMLMediaElement;
    readonly NETWORK_EMPTY: 0;
    readonly NETWORK_IDLE: 1;
    readonly NETWORK_LOADING: 2;
    readonly NETWORK_NO_SOURCE: 3;
    readonly HAVE_NOTHING: 0;
    readonly HAVE_METADATA: 1;
    readonly HAVE_CURRENT_DATA: 2;
    readonly HAVE_FUTURE_DATA: 3;
    readonly HAVE_ENOUGH_DATA: 4;
};

interface HTMLMenuElement extends HTMLElement {
    /** @deprecated */
    compact: boolean;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMenuElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMenuElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLMenuElement: {
    prototype: HTMLMenuElement;
    new(): HTMLMenuElement;
};

/** Contains descriptive metadata about a document. It inherits all of the properties and methods described in the HTMLElement interface. */
interface HTMLMetaElement extends HTMLElement {
    /** Gets or sets meta-information to associate with httpEquiv or name. */
    content: string;
    /** Gets or sets information used to bind the value of a content attribute of a meta element to an HTTP response header. */
    httpEquiv: string;
    media: string;
    /** Sets or retrieves the value specified in the content attribute of the meta object. */
    name: string;
    /**
     * Sets or retrieves a scheme to be used in interpreting the value of a property specified for the object.
     * @deprecated
     */
    scheme: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMetaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMetaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLMetaElement: {
    prototype: HTMLMetaElement;
    new(): HTMLMetaElement;
};

/** The HTML <meter> elements expose the HTMLMeterElement interface, which provides special properties and methods (beyond the HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of <meter> elements. */
interface HTMLMeterElement extends HTMLElement {
    high: number;
    readonly labels: NodeListOf<HTMLLabelElement>;
    low: number;
    max: number;
    min: number;
    optimum: number;
    value: number;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMeterElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMeterElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLMeterElement: {
    prototype: HTMLMeterElement;
    new(): HTMLMeterElement;
};

/** Provides special properties (beyond the regular methods and properties available through the HTMLElement interface they also have available to them by inheritance) for manipulating modification elements, that is <del> and <ins>. */
interface HTMLModElement extends HTMLElement {
    /** Sets or retrieves reference information about the object. */
    cite: string;
    /** Sets or retrieves the date and time of a modification to the object. */
    dateTime: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLModElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLModElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLModElement: {
    prototype: HTMLModElement;
    new(): HTMLModElement;
};

/** Provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating ordered list elements. */
interface HTMLOListElement extends HTMLElement {
    /** @deprecated */
    compact: boolean;
    reversed: boolean;
    /** The starting number. */
    start: number;
    type: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLOListElement: {
    prototype: HTMLOListElement;
    new(): HTMLOListElement;
};

/** Provides special properties and methods (beyond those on the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <object> element, representing external resources. */
interface HTMLObjectElement extends HTMLElement {
    /** @deprecated */
    align: string;
    /**
     * Sets or retrieves a character string that can be used to implement your own archive functionality for the object.
     * @deprecated
     */
    archive: string;
    /** @deprecated */
    border: string;
    /**
     * Sets or retrieves the URL of the file containing the compiled Java class.
     * @deprecated
     */
    code: string;
    /**
     * Sets or retrieves the URL of the component.
     * @deprecated
     */
    codeBase: string;
    /**
     * Sets or retrieves the Internet media type for the code associated with the object.
     * @deprecated
     */
    codeType: string;
    /** Retrieves the document object of the page or frame. */
    readonly contentDocument: Document | null;
    readonly contentWindow: WindowProxy | null;
    /** Sets or retrieves the URL that references the data of the object. */
    data: string;
    /** @deprecated */
    declare: boolean;
    /** Retrieves a reference to the form that the object is embedded in. */
    readonly form: HTMLFormElement | null;
    /** Sets or retrieves the height of the object. */
    height: string;
    /** @deprecated */
    hspace: number;
    /** Sets or retrieves the name of the object. */
    name: string;
    /**
     * Sets or retrieves a message to be displayed while an object is loading.
     * @deprecated
     */
    standby: string;
    /** Sets or retrieves the MIME type of the object. */
    type: string;
    /** Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map. */
    useMap: string;
    /** Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting. */
    readonly validationMessage: string;
    /** Returns a  ValidityState object that represents the validity states of an element. */
    readonly validity: ValidityState;
    /** @deprecated */
    vspace: number;
    /** Sets or retrieves the width of the object. */
    width: string;
    /** Returns whether an element will successfully validate based on forms validation rules and constraints. */
    readonly willValidate: boolean;
    /** Returns whether a form will validate when it is submitted, without having to submit it. */
    checkValidity(): boolean;
    getSVGDocument(): Document | null;
    reportValidity(): boolean;
    /**
     * Sets a custom error message that is displayed when a form is submitted.
     * @param error Sets a custom error message that is displayed when a form is submitted.
     */
    setCustomValidity(error: string): void;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLObjectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLObjectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLObjectElement: {
    prototype: HTMLObjectElement;
    new(): HTMLObjectElement;
};

/** Provides special properties and methods (beyond the regular HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of <optgroup> elements. */
interface HTMLOptGroupElement extends HTMLElement {
    disabled: boolean;
    /** Sets or retrieves a value that you can use to implement your own label functionality for the object. */
    label: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptGroupElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptGroupElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLOptGroupElement: {
    prototype: HTMLOptGroupElement;
    new(): HTMLOptGroupElement;
};

/** <option> elements and inherits all classes and methods of the HTMLElement interface. */
interface HTMLOptionElement extends HTMLElement {
    /** Sets or retrieves the status of an option. */
    defaultSelected: boolean;
    disabled: boolean;
    /** Retrieves a reference to the form that the object is embedded in. */
    readonly form: HTMLFormElement | null;
    /** Sets or retrieves the ordinal position of an option in a list box. */
    readonly index: number;
    /** Sets or retrieves a value that you can use to implement your own label functionality for the object. */
    label: string;
    /** Sets or retrieves whether the option in the list box is the default item. */
    selected: boolean;
    /** Sets or retrieves the text string specified by the option tag. */
    text: string;
    /** Sets or retrieves the value which is returned to the server when the form control is submitted. */
    value: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLOptionElement: {
    prototype: HTMLOptionElement;
    new(): HTMLOptionElement;
};

/** HTMLOptionsCollection is an interface representing a collection of HTML option elements (in document order) and offers methods and properties for traversing the list as well as optionally altering its items. This type is returned solely by the "options" property of select. */
interface HTMLOptionsCollection extends HTMLCollectionOf<HTMLOptionElement> {
    /**
     * Returns the number of elements in the collection.
     *
     * When set to a smaller number, truncates the number of option elements in the corresponding container.
     *
     * When set to a greater number, adds new blank option elements to that container.
     */
    length: number;
    /**
     * Returns the index of the first selected item, if any, or −1 if there is no selected item.
     *
     * Can be set, to change the selection.
     */
    selectedIndex: number;
    /**
     * Inserts element before the node given by before.
     *
     * The before argument can be a number, in which case element is inserted before the item with that number, or an element from the collection, in which case element is inserted before that element.
     *
     * If before is omitted, null, or a number out of range, then element will be added at the end of the list.
     *
     * This method will throw a "HierarchyRequestError" DOMException if element is an ancestor of the element into which it is to be inserted.
     */
    add(element: HTMLOptionElement | HTMLOptGroupElement, before?: HTMLElement | number | null): void;
    /** Removes the item with index index from the collection. */
    remove(index: number): void;
}

declare var HTMLOptionsCollection: {
    prototype: HTMLOptionsCollection;
    new(): HTMLOptionsCollection;
};

interface HTMLOrSVGElement {
    autofocus: boolean;
    readonly dataset: DOMStringMap;
    nonce?: string;
    tabIndex: number;
    blur(): void;
    focus(options?: FocusOptions): void;
}

/** Provides properties and methods (beyond those inherited from HTMLElement) for manipulating the layout and presentation of <output> elements. */
interface HTMLOutputElement extends HTMLElement {
    defaultValue: string;
    readonly form: HTMLFormElement | null;
    readonly htmlFor: DOMTokenList;
    readonly labels: NodeListOf<HTMLLabelElement>;
    name: string;
    /** Returns the string "output". */
    readonly type: string;
    readonly validationMessage: string;
    readonly validity: ValidityState;
    /**
     * Returns the element's current value.
     *
     * Can be set, to change the value.
     */
    value: string;
    readonly willValidate: boolean;
    checkValidity(): boolean;
    reportValidity(): boolean;
    setCustomValidity(error: string): void;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOutputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOutputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLOutputElement: {
    prototype: HTMLOutputElement;
    new(): HTMLOutputElement;
};

/** Provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating <p> elements. */
interface HTMLParagraphElement extends HTMLElement {
    /**
     * Sets or retrieves how the object is aligned with adjacent text.
     * @deprecated
     */
    align: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParagraphElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParagraphElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLParagraphElement: {
    prototype: HTMLParagraphElement;
    new(): HTMLParagraphElement;
};

/**
 * Provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating <param> elements, representing a pair of a key and a value that acts as a parameter for an <object> element.
 * @deprecated
 */
interface HTMLParamElement extends HTMLElement {
    /**
     * Sets or retrieves the name of an input parameter for an element.
     * @deprecated
     */
    name: string;
    /**
     * Sets or retrieves the content type of the resource designated by the value attribute.
     * @deprecated
     */
    type: string;
    /**
     * Sets or retrieves the value of an input parameter for an element.
     * @deprecated
     */
    value: string;
    /**
     * Sets or retrieves the data type of the value attribute.
     * @deprecated
     */
    valueType: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParamElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParamElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

/** @deprecated */
declare var HTMLParamElement: {
    prototype: HTMLParamElement;
    new(): HTMLParamElement;
};

/** A <picture> HTML element. It doesn't implement specific properties or methods. */
interface HTMLPictureElement extends HTMLElement {
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPictureElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPictureElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLPictureElement: {
    prototype: HTMLPictureElement;
    new(): HTMLPictureElement;
};

/** Exposes specific properties and methods (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating a block of preformatted text (<pre>). */
interface HTMLPreElement extends HTMLElement {
    /**
     * Sets or gets a value that you can use to implement your own width functionality for the object.
     * @deprecated
     */
    width: number;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPreElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPreElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLPreElement: {
    prototype: HTMLPreElement;
    new(): HTMLPreElement;
};

/** Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <progress> elements. */
interface HTMLProgressElement extends HTMLElement {
    readonly labels: NodeListOf<HTMLLabelElement>;
    /** Defines the maximum, or "done" value for a progress element. */
    max: number;
    /** Returns the quotient of value/max when the value attribute is set (determinate progress bar), or -1 when the value attribute is missing (indeterminate progress bar). */
    readonly position: number;
    /** Sets or gets the current value of a progress element. The value must be a non-negative number between 0 and the max value. */
    value: number;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLProgressElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLProgressElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLProgressElement: {
    prototype: HTMLProgressElement;
    new(): HTMLProgressElement;
};

/** Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating quoting elements, like <blockquote> and <q>, but not the <cite> element. */
interface HTMLQuoteElement extends HTMLElement {
    /** Sets or retrieves reference information about the object. */
    cite: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLQuoteElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLQuoteElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLQuoteElement: {
    prototype: HTMLQuoteElement;
    new(): HTMLQuoteElement;
};

/** HTML <script> elements expose the HTMLScriptElement interface, which provides special properties and methods for manipulating the behavior and execution of <script> elements (beyond the inherited HTMLElement interface). */
interface HTMLScriptElement extends HTMLElement {
    async: boolean;
    /**
     * Sets or retrieves the character set used to encode the object.
     * @deprecated
     */
    charset: string;
    crossOrigin: string | null;
    /** Sets or retrieves the status of the script. */
    defer: boolean;
    /**
     * Sets or retrieves the event for which the script is written.
     * @deprecated
     */
    event: string;
    /**
     * Sets or retrieves the object that is bound to the event script.
     * @deprecated
     */
    htmlFor: string;
    integrity: string;
    noModule: boolean;
    referrerPolicy: string;
    /** Retrieves the URL to an external file that contains the source code or data. */
    src: string;
    /** Retrieves or sets the text of the object as a string. */
    text: string;
    /** Sets or retrieves the MIME type for the associated scripting engine. */
    type: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLScriptElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLScriptElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLScriptElement: {
    prototype: HTMLScriptElement;
    new(): HTMLScriptElement;
    supports(type: string): boolean;
};

/** A <select> HTML Element. These elements also share all of the properties and methods of other HTML elements via the HTMLElement interface. */
interface HTMLSelectElement extends HTMLElement {
    autocomplete: string;
    disabled: boolean;
    /** Retrieves a reference to the form that the object is embedded in. */
    readonly form: HTMLFormElement | null;
    readonly labels: NodeListOf<HTMLLabelElement>;
    /** Sets or retrieves the number of objects in a collection. */
    length: number;
    /** Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list. */
    multiple: boolean;
    /** Sets or retrieves the name of the object. */
    name: string;
    /** Returns an HTMLOptionsCollection of the list of options. */
    readonly options: HTMLOptionsCollection;
    /** When present, marks an element that can't be submitted without a value. */
    required: boolean;
    /** Sets or retrieves the index of the selected option in a select object. */
    selectedIndex: number;
    readonly selectedOptions: HTMLCollectionOf<HTMLOptionElement>;
    /** Sets or retrieves the number of rows in the list box. */
    size: number;
    /** Retrieves the type of select control based on the value of the MULTIPLE attribute. */
    readonly type: string;
    /** Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting. */
    readonly validationMessage: string;
    /** Returns a  ValidityState object that represents the validity states of an element. */
    readonly validity: ValidityState;
    /** Sets or retrieves the value which is returned to the server when the form control is submitted. */
    value: string;
    /** Returns whether an element will successfully validate based on forms validation rules and constraints. */
    readonly willValidate: boolean;
    /**
     * Adds an element to the areas, controlRange, or options collection.
     * @param element Variant of type Number that specifies the index position in the collection where the element is placed. If no value is given, the method places the element at the end of the collection.
     * @param before Variant of type Object that specifies an element to insert before, or null to append the object to the collection.
     */
    add(element: HTMLOptionElement | HTMLOptGroupElement, before?: HTMLElement | number | null): void;
    /** Returns whether a form will validate when it is submitted, without having to submit it. */
    checkValidity(): boolean;
    /**
     * Retrieves a select object or an object from an options collection.
     * @param name Variant of type Number or String that specifies the object or collection to retrieve. If this parameter is an integer, it is the zero-based index of the object. If this parameter is a string, all objects with matching name or id properties are retrieved, and a collection is returned if more than one match is made.
     * @param index Variant of type Number that specifies the zero-based index of the object to retrieve when a collection is returned.
     */
    item(index: number): HTMLOptionElement | null;
    /**
     * Retrieves a select object or an object from an options collection.
     * @param namedItem A String that specifies the name or id property of the object to retrieve. A collection is returned if more than one match is made.
     */
    namedItem(name: string): HTMLOptionElement | null;
    /**
     * Removes an element from the collection.
     * @param index Number that specifies the zero-based index of the element to remove from the collection.
     */
    remove(): void;
    remove(index: number): void;
    reportValidity(): boolean;
    /**
     * Sets a custom error message that is displayed when a form is submitted.
     * @param error Sets a custom error message that is displayed when a form is submitted.
     */
    setCustomValidity(error: string): void;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSelectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSelectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    [name: number]: HTMLOptionElement | HTMLOptGroupElement;
}

declare var HTMLSelectElement: {
    prototype: HTMLSelectElement;
    new(): HTMLSelectElement;
};

interface HTMLSlotElement extends HTMLElement {
    name: string;
    assign(...nodes: (Element | Text)[]): void;
    assignedElements(options?: AssignedNodesOptions): Element[];
    assignedNodes(options?: AssignedNodesOptions): Node[];
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSlotElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSlotElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLSlotElement: {
    prototype: HTMLSlotElement;
    new(): HTMLSlotElement;
};

/** Provides special properties (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating <source> elements. */
interface HTMLSourceElement extends HTMLElement {
    height: number;
    /** Gets or sets the intended media type of the media source. */
    media: string;
    sizes: string;
    /** The address or URL of the a media resource that is to be considered. */
    src: string;
    srcset: string;
    /** Gets or sets the MIME type of a media resource. */
    type: string;
    width: number;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSourceElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSourceElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLSourceElement: {
    prototype: HTMLSourceElement;
    new(): HTMLSourceElement;
};

/** A <span> element and derives from the HTMLElement interface, but without implementing any additional properties or methods. */
interface HTMLSpanElement extends HTMLElement {
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSpanElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSpanElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLSpanElement: {
    prototype: HTMLSpanElement;
    new(): HTMLSpanElement;
};

/** A <style> element. It inherits properties and methods from its parent, HTMLElement, and from LinkStyle. */
interface HTMLStyleElement extends HTMLElement, LinkStyle {
    /** Enables or disables the style sheet. */
    disabled: boolean;
    /** Sets or retrieves the media type. */
    media: string;
    /**
     * Retrieves the CSS language in which the style sheet is written.
     * @deprecated
     */
    type: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLStyleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLStyleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLStyleElement: {
    prototype: HTMLStyleElement;
    new(): HTMLStyleElement;
};

/** Special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating table caption elements. */
interface HTMLTableCaptionElement extends HTMLElement {
    /**
     * Sets or retrieves the alignment of the caption or legend.
     * @deprecated
     */
    align: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCaptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCaptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLTableCaptionElement: {
    prototype: HTMLTableCaptionElement;
    new(): HTMLTableCaptionElement;
};

/** Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of table cells, either header or data cells, in an HTML document. */
interface HTMLTableCellElement extends HTMLElement {
    /** Sets or retrieves abbreviated text for the object. */
    abbr: string;
    /**
     * Sets or retrieves how the object is aligned with adjacent text.
     * @deprecated
     */
    align: string;
    /**
     * Sets or retrieves a comma-delimited list of conceptual categories associated with the object.
     * @deprecated
     */
    axis: string;
    /** @deprecated */
    bgColor: string;
    /** Retrieves the position of the object in the cells collection of a row. */
    readonly cellIndex: number;
    /** @deprecated */
    ch: string;
    /** @deprecated */
    chOff: string;
    /** Sets or retrieves the number columns in the table that the object should span. */
    colSpan: number;
    /** Sets or retrieves a list of header cells that provide information for the object. */
    headers: string;
    /**
     * Sets or retrieves the height of the object.
     * @deprecated
     */
    height: string;
    /**
     * Sets or retrieves whether the browser automatically performs wordwrap.
     * @deprecated
     */
    noWrap: boolean;
    /** Sets or retrieves how many rows in a table the cell should span. */
    rowSpan: number;
    /** Sets or retrieves the group of cells in a table to which the object's information applies. */
    scope: string;
    /** @deprecated */
    vAlign: string;
    /**
     * Sets or retrieves the width of the object.
     * @deprecated
     */
    width: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLTableCellElement: {
    prototype: HTMLTableCellElement;
    new(): HTMLTableCellElement;
};

/** Provides special properties (beyond the HTMLElement interface it also has available to it inheritance) for manipulating single or grouped table column elements. */
interface HTMLTableColElement extends HTMLElement {
    /**
     * Sets or retrieves the alignment of the object relative to the display or table.
     * @deprecated
     */
    align: string;
    /** @deprecated */
    ch: string;
    /** @deprecated */
    chOff: string;
    /** Sets or retrieves the number of columns in the group. */
    span: number;
    /** @deprecated */
    vAlign: string;
    /**
     * Sets or retrieves the width of the object.
     * @deprecated
     */
    width: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableColElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableColElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLTableColElement: {
    prototype: HTMLTableColElement;
    new(): HTMLTableColElement;
};

/** @deprecated prefer HTMLTableCellElement */
interface HTMLTableDataCellElement extends HTMLTableCellElement {
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableDataCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableDataCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

/** Provides special properties and methods (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating the layout and presentation of tables in an HTML document. */
interface HTMLTableElement extends HTMLElement {
    /**
     * Sets or retrieves a value that indicates the table alignment.
     * @deprecated
     */
    align: string;
    /** @deprecated */
    bgColor: string;
    /**
     * Sets or retrieves the width of the border to draw around the object.
     * @deprecated
     */
    border: string;
    /** Retrieves the caption object of a table. */
    caption: HTMLTableCaptionElement | null;
    /**
     * Sets or retrieves the amount of space between the border of the cell and the content of the cell.
     * @deprecated
     */
    cellPadding: string;
    /**
     * Sets or retrieves the amount of space between cells in a table.
     * @deprecated
     */
    cellSpacing: string;
    /**
     * Sets or retrieves the way the border frame around the table is displayed.
     * @deprecated
     */
    frame: string;
    /** Sets or retrieves the number of horizontal rows contained in the object. */
    readonly rows: HTMLCollectionOf<HTMLTableRowElement>;
    /**
     * Sets or retrieves which dividing lines (inner borders) are displayed.
     * @deprecated
     */
    rules: string;
    /**
     * Sets or retrieves a description and/or structure of the object.
     * @deprecated
     */
    summary: string;
    /** Retrieves a collection of all tBody objects in the table. Objects in this collection are in source order. */
    readonly tBodies: HTMLCollectionOf<HTMLTableSectionElement>;
    /** Retrieves the tFoot object of the table. */
    tFoot: HTMLTableSectionElement | null;
    /** Retrieves the tHead object of the table. */
    tHead: HTMLTableSectionElement | null;
    /**
     * Sets or retrieves the width of the object.
     * @deprecated
     */
    width: string;
    /** Creates an empty caption element in the table. */
    createCaption(): HTMLTableCaptionElement;
    /** Creates an empty tBody element in the table. */
    createTBody(): HTMLTableSectionElement;
    /** Creates an empty tFoot element in the table. */
    createTFoot(): HTMLTableSectionElement;
    /** Returns the tHead element object if successful, or null otherwise. */
    createTHead(): HTMLTableSectionElement;
    /** Deletes the caption element and its contents from the table. */
    deleteCaption(): void;
    /**
     * Removes the specified row (tr) from the element and from the rows collection.
     * @param index Number that specifies the zero-based position in the rows collection of the row to remove.
     */
    deleteRow(index: number): void;
    /** Deletes the tFoot element and its contents from the table. */
    deleteTFoot(): void;
    /** Deletes the tHead element and its contents from the table. */
    deleteTHead(): void;
    /**
     * Creates a new row (tr) in the table, and adds the row to the rows collection.
     * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.
     */
    insertRow(index?: number): HTMLTableRowElement;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLTableElement: {
    prototype: HTMLTableElement;
    new(): HTMLTableElement;
};

/** @deprecated prefer HTMLTableCellElement */
interface HTMLTableHeaderCellElement extends HTMLTableCellElement {
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableHeaderCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableHeaderCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

/** Provides special properties and methods (beyond the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of rows in an HTML table. */
interface HTMLTableRowElement extends HTMLElement {
    /**
     * Sets or retrieves how the object is aligned with adjacent text.
     * @deprecated
     */
    align: string;
    /** @deprecated */
    bgColor: string;
    /** Retrieves a collection of all cells in the table row. */
    readonly cells: HTMLCollectionOf<HTMLTableCellElement>;
    /** @deprecated */
    ch: string;
    /** @deprecated */
    chOff: string;
    /** Retrieves the position of the object in the rows collection for the table. */
    readonly rowIndex: number;
    /** Retrieves the position of the object in the collection. */
    readonly sectionRowIndex: number;
    /** @deprecated */
    vAlign: string;
    /**
     * Removes the specified cell from the table row, as well as from the cells collection.
     * @param index Number that specifies the zero-based position of the cell to remove from the table row. If no value is provided, the last cell in the cells collection is deleted.
     */
    deleteCell(index: number): void;
    /**
     * Creates a new cell in the table row, and adds the cell to the cells collection.
     * @param index Number that specifies where to insert the cell in the tr. The default value is -1, which appends the new cell to the end of the cells collection.
     */
    insertCell(index?: number): HTMLTableCellElement;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableRowElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableRowElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLTableRowElement: {
    prototype: HTMLTableRowElement;
    new(): HTMLTableRowElement;
};

/** Provides special properties and methods (beyond the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of sections, that is headers, footers and bodies, in an HTML table. */
interface HTMLTableSectionElement extends HTMLElement {
    /**
     * Sets or retrieves a value that indicates the table alignment.
     * @deprecated
     */
    align: string;
    /** @deprecated */
    ch: string;
    /** @deprecated */
    chOff: string;
    /** Sets or retrieves the number of horizontal rows contained in the object. */
    readonly rows: HTMLCollectionOf<HTMLTableRowElement>;
    /** @deprecated */
    vAlign: string;
    /**
     * Removes the specified row (tr) from the element and from the rows collection.
     * @param index Number that specifies the zero-based position in the rows collection of the row to remove.
     */
    deleteRow(index: number): void;
    /**
     * Creates a new row (tr) in the table, and adds the row to the rows collection.
     * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.
     */
    insertRow(index?: number): HTMLTableRowElement;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableSectionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableSectionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLTableSectionElement: {
    prototype: HTMLTableSectionElement;
    new(): HTMLTableSectionElement;
};

/** Enables access to the contents of an HTML <template> element. */
interface HTMLTemplateElement extends HTMLElement {
    /** Returns the template contents (a DocumentFragment). */
    readonly content: DocumentFragment;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTemplateElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTemplateElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLTemplateElement: {
    prototype: HTMLTemplateElement;
    new(): HTMLTemplateElement;
};

/** Provides special properties and methods for manipulating the layout and presentation of <textarea> elements. */
interface HTMLTextAreaElement extends HTMLElement {
    autocomplete: string;
    /** Sets or retrieves the width of the object. */
    cols: number;
    /** Sets or retrieves the initial contents of the object. */
    defaultValue: string;
    dirName: string;
    disabled: boolean;
    /** Retrieves a reference to the form that the object is embedded in. */
    readonly form: HTMLFormElement | null;
    readonly labels: NodeListOf<HTMLLabelElement>;
    /** Sets or retrieves the maximum number of characters that the user can enter in a text control. */
    maxLength: number;
    minLength: number;
    /** Sets or retrieves the name of the object. */
    name: string;
    /** Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field. */
    placeholder: string;
    /** Sets or retrieves the value indicated whether the content of the object is read-only. */
    readOnly: boolean;
    /** When present, marks an element that can't be submitted without a value. */
    required: boolean;
    /** Sets or retrieves the number of horizontal rows contained in the object. */
    rows: number;
    selectionDirection: "forward" | "backward" | "none";
    /** Gets or sets the end position or offset of a text selection. */
    selectionEnd: number;
    /** Gets or sets the starting position or offset of a text selection. */
    selectionStart: number;
    readonly textLength: number;
    /** Retrieves the type of control. */
    readonly type: string;
    /** Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting. */
    readonly validationMessage: string;
    /** Returns a  ValidityState object that represents the validity states of an element. */
    readonly validity: ValidityState;
    /** Retrieves or sets the text in the entry field of the textArea element. */
    value: string;
    /** Returns whether an element will successfully validate based on forms validation rules and constraints. */
    readonly willValidate: boolean;
    /** Sets or retrieves how to handle wordwrapping in the object. */
    wrap: string;
    /** Returns whether a form will validate when it is submitted, without having to submit it. */
    checkValidity(): boolean;
    reportValidity(): boolean;
    /** Highlights the input area of a form element. */
    select(): void;
    /**
     * Sets a custom error message that is displayed when a form is submitted.
     * @param error Sets a custom error message that is displayed when a form is submitted.
     */
    setCustomValidity(error: string): void;
    setRangeText(replacement: string): void;
    setRangeText(replacement: string, start: number, end: number, selectionMode?: SelectionMode): void;
    /**
     * Sets the start and end positions of a selection in a text field.
     * @param start The offset into the text field for the start of the selection.
     * @param end The offset into the text field for the end of the selection.
     * @param direction The direction in which the selection is performed.
     */
    setSelectionRange(start: number | null, end: number | null, direction?: "forward" | "backward" | "none"): void;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTextAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTextAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLTextAreaElement: {
    prototype: HTMLTextAreaElement;
    new(): HTMLTextAreaElement;
};

/** Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <time> elements. */
interface HTMLTimeElement extends HTMLElement {
    dateTime: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTimeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTimeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLTimeElement: {
    prototype: HTMLTimeElement;
    new(): HTMLTimeElement;
};

/** Contains the title for a document. This element inherits all of the properties and methods of the HTMLElement interface. */
interface HTMLTitleElement extends HTMLElement {
    /** Retrieves or sets the text of the object as a string. */
    text: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTitleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTitleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLTitleElement: {
    prototype: HTMLTitleElement;
    new(): HTMLTitleElement;
};

/** The HTMLTrackElement */
interface HTMLTrackElement extends HTMLElement {
    default: boolean;
    kind: string;
    label: string;
    readonly readyState: number;
    src: string;
    srclang: string;
    /** Returns the TextTrack object corresponding to the text track of the track element. */
    readonly track: TextTrack;
    readonly NONE: 0;
    readonly LOADING: 1;
    readonly LOADED: 2;
    readonly ERROR: 3;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTrackElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTrackElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLTrackElement: {
    prototype: HTMLTrackElement;
    new(): HTMLTrackElement;
    readonly NONE: 0;
    readonly LOADING: 1;
    readonly LOADED: 2;
    readonly ERROR: 3;
};

/** Provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating unordered list elements. */
interface HTMLUListElement extends HTMLElement {
    /** @deprecated */
    compact: boolean;
    /** @deprecated */
    type: string;
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLUListElement: {
    prototype: HTMLUListElement;
    new(): HTMLUListElement;
};

/** An invalid HTML element and derives from the HTMLElement interface, but without implementing any additional properties or methods. */
interface HTMLUnknownElement extends HTMLElement {
    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUnknownElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUnknownElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLUnknownElement: {
    prototype: HTMLUnknownElement;
    new(): HTMLUnknownElement;
};

interface HTMLVideoElementEventMap extends HTMLMediaElementEventMap {
    "enterpictureinpicture": Event;
    "leavepictureinpicture": Event;
}

/** Provides special properties and methods for manipulating video objects. It also inherits properties and methods of HTMLMediaElement and HTMLElement. */
interface HTMLVideoElement extends HTMLMediaElement {
    disablePictureInPicture: boolean;
    /** Gets or sets the height of the video element. */
    height: number;
    onenterpictureinpicture: ((this: HTMLVideoElement, ev: Event) => any) | null;
    onleavepictureinpicture: ((this: HTMLVideoElement, ev: Event) => any) | null;
    /** Gets or sets the playsinline of the video element. for example, On iPhone, video elements will now be allowed to play inline, and will not automatically enter fullscreen mode when playback begins. */
    playsInline: boolean;
    /** Gets or sets a URL of an image to display, for example, like a movie poster. This can be a still frame from the video, or another image if no video data is available. */
    poster: string;
    /** Gets the intrinsic height of a video in CSS pixels, or zero if the dimensions are not known. */
    readonly videoHeight: number;
    /** Gets the intrinsic width of a video in CSS pixels, or zero if the dimensions are not known. */
    readonly videoWidth: number;
    /** Gets or sets the width of the video element. */
    width: number;
    cancelVideoFrameCallback(handle: number): void;
    getVideoPlaybackQuality(): VideoPlaybackQuality;
    requestPictureInPicture(): Promise<PictureInPictureWindow>;
    requestVideoFrameCallback(callback: VideoFrameRequestCallback): number;
    addEventListener<K extends keyof HTMLVideoElementEventMap>(type: K, listener: (this: HTMLVideoElement, ev: HTMLVideoElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof HTMLVideoElementEventMap>(type: K, listener: (this: HTMLVideoElement, ev: HTMLVideoElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLVideoElement: {
    prototype: HTMLVideoElement;
    new(): HTMLVideoElement;
};

/** Events that fire when the fragment identifier of the URL has changed. */
interface HashChangeEvent extends Event {
    /** Returns the URL of the session history entry that is now current. */
    readonly newURL: string;
    /** Returns the URL of the session history entry that was previously current. */
    readonly oldURL: string;
}

declare var HashChangeEvent: {
    prototype: HashChangeEvent;
    new(type: string, eventInitDict?: HashChangeEventInit): HashChangeEvent;
};

/** This Fetch API interface allows you to perform various actions on HTTP request and response headers. These actions include retrieving, setting, adding to, and removing. A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs.  You can add to this using methods like append() (see Examples.) In all methods of this interface, header names are matched by case-insensitive byte sequence. */
interface Headers {
    append(name: string, value: string): void;
    delete(name: string): void;
    get(name: string): string | null;
    has(name: string): boolean;
    set(name: string, value: string): void;
    forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any): void;
}

declare var Headers: {
    prototype: Headers;
    new(init?: HeadersInit): Headers;
};

/** Allows manipulation of the browser session history, that is the pages visited in the tab or frame that the current page is loaded in. */
interface History {
    readonly length: number;
    scrollRestoration: ScrollRestoration;
    readonly state: any;
    back(): void;
    forward(): void;
    go(delta?: number): void;
    pushState(data: any, unused: string, url?: string | URL | null): void;
    replaceState(data: any, unused: string, url?: string | URL | null): void;
}

declare var History: {
    prototype: History;
    new(): History;
};

/** This IndexedDB API interface represents a cursor for traversing or iterating over multiple records in a database. */
interface IDBCursor {
    /** Returns the direction ("next", "nextunique", "prev" or "prevunique") of the cursor. */
    readonly direction: IDBCursorDirection;
    /** Returns the key of the cursor. Throws a "InvalidStateError" DOMException if the cursor is advancing or is finished. */
    readonly key: IDBValidKey;
    /** Returns the effective key of the cursor. Throws a "InvalidStateError" DOMException if the cursor is advancing or is finished. */
    readonly primaryKey: IDBValidKey;
    readonly request: IDBRequest;
    /** Returns the IDBObjectStore or IDBIndex the cursor was opened from. */
    readonly source: IDBObjectStore | IDBIndex;
    /** Advances the cursor through the next count records in range. */
    advance(count: number): void;
    /** Advances the cursor to the next record in range. */
    continue(key?: IDBValidKey): void;
    /** Advances the cursor to the next record in range matching or after key and primaryKey. Throws an "InvalidAccessError" DOMException if the source is not an index. */
    continuePrimaryKey(key: IDBValidKey, primaryKey: IDBValidKey): void;
    /**
     * Delete the record pointed at by the cursor with a new value.
     *
     * If successful, request's result will be undefined.
     */
    delete(): IDBRequest<undefined>;
    /**
     * Updated the record pointed at by the cursor with a new value.
     *
     * Throws a "DataError" DOMException if the effective object store uses in-line keys and the key would have changed.
     *
     * If successful, request's result will be the record's key.
     */
    update(value: any): IDBRequest<IDBValidKey>;
}

declare var IDBCursor: {
    prototype: IDBCursor;
    new(): IDBCursor;
};

/** This IndexedDB API interface represents a cursor for traversing or iterating over multiple records in a database. It is the same as the IDBCursor, except that it includes the value property. */
interface IDBCursorWithValue extends IDBCursor {
    /** Returns the cursor's current value. */
    readonly value: any;
}

declare var IDBCursorWithValue: {
    prototype: IDBCursorWithValue;
    new(): IDBCursorWithValue;
};

interface IDBDatabaseEventMap {
    "abort": Event;
    "close": Event;
    "error": Event;
    "versionchange": IDBVersionChangeEvent;
}

/** This IndexedDB API interface provides a connection to a database; you can use an IDBDatabase object to open a transaction on your database then create, manipulate, and delete objects (data) in that database. The interface provides the only way to get and manage versions of the database. */
interface IDBDatabase extends EventTarget {
    /** Returns the name of the database. */
    readonly name: string;
    /** Returns a list of the names of object stores in the database. */
    readonly objectStoreNames: DOMStringList;
    onabort: ((this: IDBDatabase, ev: Event) => any) | null;
    onclose: ((this: IDBDatabase, ev: Event) => any) | null;
    onerror: ((this: IDBDatabase, ev: Event) => any) | null;
    onversionchange: ((this: IDBDatabase, ev: IDBVersionChangeEvent) => any) | null;
    /** Returns the version of the database. */
    readonly version: number;
    /** Closes the connection once all running transactions have finished. */
    close(): void;
    /**
     * Creates a new object store with the given name and options and returns a new IDBObjectStore.
     *
     * Throws a "InvalidStateError" DOMException if not called within an upgrade transaction.
     */
    createObjectStore(name: string, options?: IDBObjectStoreParameters): IDBObjectStore;
    /**
     * Deletes the object store with the given name.
     *
     * Throws a "InvalidStateError" DOMException if not called within an upgrade transaction.
     */
    deleteObjectStore(name: string): void;
    /** Returns a new transaction with the given mode ("readonly" or "readwrite") and scope which can be a single object store name or an array of names. */
    transaction(storeNames: string | string[], mode?: IDBTransactionMode, options?: IDBTransactionOptions): IDBTransaction;
    addEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var IDBDatabase: {
    prototype: IDBDatabase;
    new(): IDBDatabase;
};

/** In the following code snippet, we make a request to open a database, and include handlers for the success and error cases. For a full working example, see our To-do Notifications app (view example live.) */
interface IDBFactory {
    /**
     * Compares two values as keys. Returns -1 if key1 precedes key2, 1 if key2 precedes key1, and 0 if the keys are equal.
     *
     * Throws a "DataError" DOMException if either input is not a valid key.
     */
    cmp(first: any, second: any): number;
    databases(): Promise<IDBDatabaseInfo[]>;
    /** Attempts to delete the named database. If the database already exists and there are open connections that don't close in response to a versionchange event, the request will be blocked until all they close. If the request is successful request's result will be null. */
    deleteDatabase(name: string): IDBOpenDBRequest;
    /** Attempts to open a connection to the named database with the current version, or 1 if it does not already exist. If the request is successful request's result will be the connection. */
    open(name: string, version?: number): IDBOpenDBRequest;
}

declare var IDBFactory: {
    prototype: IDBFactory;
    new(): IDBFactory;
};

/** IDBIndex interface of the IndexedDB API provides asynchronous access to an index in a database. An index is a kind of object store for looking up records in another object store, called the referenced object store. You use this interface to retrieve data. */
interface IDBIndex {
    readonly keyPath: string | string[];
    readonly multiEntry: boolean;
    /** Returns the name of the index. */
    name: string;
    /** Returns the IDBObjectStore the index belongs to. */
    readonly objectStore: IDBObjectStore;
    readonly unique: boolean;
    /**
     * Retrieves the number of records matching the given key or key range in query.
     *
     * If successful, request's result will be the count.
     */
    count(query?: IDBValidKey | IDBKeyRange): IDBRequest<number>;
    /**
     * Retrieves the value of the first record matching the given key or key range in query.
     *
     * If successful, request's result will be the value, or undefined if there was no matching record.
     */
    get(query: IDBValidKey | IDBKeyRange): IDBRequest<any>;
    /**
     * Retrieves the values of the records matching the given key or key range in query (up to count if given).
     *
     * If successful, request's result will be an Array of the values.
     */
    getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<any[]>;
    /**
     * Retrieves the keys of records matching the given key or key range in query (up to count if given).
     *
     * If successful, request's result will be an Array of the keys.
     */
    getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<IDBValidKey[]>;
    /**
     * Retrieves the key of the first record matching the given key or key range in query.
     *
     * If successful, request's result will be the key, or undefined if there was no matching record.
     */
    getKey(query: IDBValidKey | IDBKeyRange): IDBRequest<IDBValidKey | undefined>;
    /**
     * Opens a cursor over the records matching query, ordered by direction. If query is null, all records in index are matched.
     *
     * If successful, request's result will be an IDBCursorWithValue, or null if there were no matching records.
     */
    openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursorWithValue | null>;
    /**
     * Opens a cursor with key only flag set over the records matching query, ordered by direction. If query is null, all records in index are matched.
     *
     * If successful, request's result will be an IDBCursor, or null if there were no matching records.
     */
    openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursor | null>;
}

declare var IDBIndex: {
    prototype: IDBIndex;
    new(): IDBIndex;
};

/** A key range can be a single value or a range with upper and lower bounds or endpoints. If the key range has both upper and lower bounds, then it is bounded; if it has no bounds, it is unbounded. A bounded key range can either be open (the endpoints are excluded) or closed (the endpoints are included). To retrieve all keys within a certain range, you can use the following code constructs: */
interface IDBKeyRange {
    /** Returns lower bound, or undefined if none. */
    readonly lower: any;
    /** Returns true if the lower open flag is set, and false otherwise. */
    readonly lowerOpen: boolean;
    /** Returns upper bound, or undefined if none. */
    readonly upper: any;
    /** Returns true if the upper open flag is set, and false otherwise. */
    readonly upperOpen: boolean;
    /** Returns true if key is included in the range, and false otherwise. */
    includes(key: any): boolean;
}

declare var IDBKeyRange: {
    prototype: IDBKeyRange;
    new(): IDBKeyRange;
    /** Returns a new IDBKeyRange spanning from lower to upper. If lowerOpen is true, lower is not included in the range. If upperOpen is true, upper is not included in the range. */
    bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange;
    /** Returns a new IDBKeyRange starting at key with no upper bound. If open is true, key is not included in the range. */
    lowerBound(lower: any, open?: boolean): IDBKeyRange;
    /** Returns a new IDBKeyRange spanning only key. */
    only(value: any): IDBKeyRange;
    /** Returns a new IDBKeyRange with no lower bound and ending at key. If open is true, key is not included in the range. */
    upperBound(upper: any, open?: boolean): IDBKeyRange;
};

/** This example shows a variety of different uses of object stores, from updating the data structure with IDBObjectStore.createIndex inside an onupgradeneeded function, to adding a new item to our object store with IDBObjectStore.add. For a full working example, see our To-do Notifications app (view example live.) */
interface IDBObjectStore {
    /** Returns true if the store has a key generator, and false otherwise. */
    readonly autoIncrement: boolean;
    /** Returns a list of the names of indexes in the store. */
    readonly indexNames: DOMStringList;
    /** Returns the key path of the store, or null if none. */
    readonly keyPath: string | string[];
    /** Returns the name of the store. */
    name: string;
    /** Returns the associated transaction. */
    readonly transaction: IDBTransaction;
    /**
     * Adds or updates a record in store with the given value and key.
     *
     * If the store uses in-line keys and key is specified a "DataError" DOMException will be thrown.
     *
     * If put() is used, any existing record with the key will be replaced. If add() is used, and if a record with the key already exists the request will fail, with request's error set to a "ConstraintError" DOMException.
     *
     * If successful, request's result will be the record's key.
     */
    add(value: any, key?: IDBValidKey): IDBRequest<IDBValidKey>;
    /**
     * Deletes all records in store.
     *
     * If successful, request's result will be undefined.
     */
    clear(): IDBRequest<undefined>;
    /**
     * Retrieves the number of records matching the given key or key range in query.
     *
     * If successful, request's result will be the count.
     */
    count(query?: IDBValidKey | IDBKeyRange): IDBRequest<number>;
    /**
     * Creates a new index in store with the given name, keyPath and options and returns a new IDBIndex. If the keyPath and options define constraints that cannot be satisfied with the data already in store the upgrade transaction will abort with a "ConstraintError" DOMException.
     *
     * Throws an "InvalidStateError" DOMException if not called within an upgrade transaction.
     */
    createIndex(name: string, keyPath: string | string[], options?: IDBIndexParameters): IDBIndex;
    /**
     * Deletes records in store with the given key or in the given key range in query.
     *
     * If successful, request's result will be undefined.
     */
    delete(query: IDBValidKey | IDBKeyRange): IDBRequest<undefined>;
    /**
     * Deletes the index in store with the given name.
     *
     * Throws an "InvalidStateError" DOMException if not called within an upgrade transaction.
     */
    deleteIndex(name: string): void;
    /**
     * Retrieves the value of the first record matching the given key or key range in query.
     *
     * If successful, request's result will be the value, or undefined if there was no matching record.
     */
    get(query: IDBValidKey | IDBKeyRange): IDBRequest<any>;
    /**
     * Retrieves the values of the records matching the given key or key range in query (up to count if given).
     *
     * If successful, request's result will be an Array of the values.
     */
    getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<any[]>;
    /**
     * Retrieves the keys of records matching the given key or key range in query (up to count if given).
     *
     * If successful, request's result will be an Array of the keys.
     */
    getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<IDBValidKey[]>;
    /**
     * Retrieves the key of the first record matching the given key or key range in query.
     *
     * If successful, request's result will be the key, or undefined if there was no matching record.
     */
    getKey(query: IDBValidKey | IDBKeyRange): IDBRequest<IDBValidKey | undefined>;
    index(name: string): IDBIndex;
    /**
     * Opens a cursor over the records matching query, ordered by direction. If query is null, all records in store are matched.
     *
     * If successful, request's result will be an IDBCursorWithValue pointing at the first matching record, or null if there were no matching records.
     */
    openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursorWithValue | null>;
    /**
     * Opens a cursor with key only flag set over the records matching query, ordered by direction. If query is null, all records in store are matched.
     *
     * If successful, request's result will be an IDBCursor pointing at the first matching record, or null if there were no matching records.
     */
    openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursor | null>;
    /**
     * Adds or updates a record in store with the given value and key.
     *
     * If the store uses in-line keys and key is specified a "DataError" DOMException will be thrown.
     *
     * If put() is used, any existing record with the key will be replaced. If add() is used, and if a record with the key already exists the request will fail, with request's error set to a "ConstraintError" DOMException.
     *
     * If successful, request's result will be the record's key.
     */
    put(value: any, key?: IDBValidKey): IDBRequest<IDBValidKey>;
}

declare var IDBObjectStore: {
    prototype: IDBObjectStore;
    new(): IDBObjectStore;
};

interface IDBOpenDBRequestEventMap extends IDBRequestEventMap {
    "blocked": IDBVersionChangeEvent;
    "upgradeneeded": IDBVersionChangeEvent;
}

/** Also inherits methods from its parents IDBRequest and EventTarget. */
interface IDBOpenDBRequest extends IDBRequest<IDBDatabase> {
    onblocked: ((this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any) | null;
    onupgradeneeded: ((this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any) | null;
    addEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var IDBOpenDBRequest: {
    prototype: IDBOpenDBRequest;
    new(): IDBOpenDBRequest;
};

interface IDBRequestEventMap {
    "error": Event;
    "success": Event;
}

/** The request object does not initially contain any information about the result of the operation, but once information becomes available, an event is fired on the request, and the information becomes available through the properties of the IDBRequest instance. */
interface IDBRequest<T = any> extends EventTarget {
    /** When a request is completed, returns the error (a DOMException), or null if the request succeeded. Throws a "InvalidStateError" DOMException if the request is still pending. */
    readonly error: DOMException | null;
    onerror: ((this: IDBRequest<T>, ev: Event) => any) | null;
    onsuccess: ((this: IDBRequest<T>, ev: Event) => any) | null;
    /** Returns "pending" until a request is complete, then returns "done". */
    readonly readyState: IDBRequestReadyState;
    /** When a request is completed, returns the result, or undefined if the request failed. Throws a "InvalidStateError" DOMException if the request is still pending. */
    readonly result: T;
    /** Returns the IDBObjectStore, IDBIndex, or IDBCursor the request was made against, or null if is was an open request. */
    readonly source: IDBObjectStore | IDBIndex | IDBCursor;
    /** Returns the IDBTransaction the request was made within. If this as an open request, then it returns an upgrade transaction while it is running, or null otherwise. */
    readonly transaction: IDBTransaction | null;
    addEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest<T>, ev: IDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest<T>, ev: IDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var IDBRequest: {
    prototype: IDBRequest;
    new(): IDBRequest;
};

interface IDBTransactionEventMap {
    "abort": Event;
    "complete": Event;
    "error": Event;
}

interface IDBTransaction extends EventTarget {
    /** Returns the transaction's connection. */
    readonly db: IDBDatabase;
    readonly durability: IDBTransactionDurability;
    /** If the transaction was aborted, returns the error (a DOMException) providing the reason. */
    readonly error: DOMException | null;
    /** Returns the mode the transaction was created with ("readonly" or "readwrite"), or "versionchange" for an upgrade transaction. */
    readonly mode: IDBTransactionMode;
    /** Returns a list of the names of object stores in the transaction's scope. For an upgrade transaction this is all object stores in the database. */
    readonly objectStoreNames: DOMStringList;
    onabort: ((this: IDBTransaction, ev: Event) => any) | null;
    oncomplete: ((this: IDBTransaction, ev: Event) => any) | null;
    onerror: ((this: IDBTransaction, ev: Event) => any) | null;
    /** Aborts the transaction. All pending requests will fail with a "AbortError" DOMException and all changes made to the database will be reverted. */
    abort(): void;
    commit(): void;
    /** Returns an IDBObjectStore in the transaction's scope. */
    objectStore(name: string): IDBObjectStore;
    addEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var IDBTransaction: {
    prototype: IDBTransaction;
    new(): IDBTransaction;
};

/** This IndexedDB API interface indicates that the version of the database has changed, as the result of an IDBOpenDBRequest.onupgradeneeded event handler function. */
interface IDBVersionChangeEvent extends Event {
    readonly newVersion: number | null;
    readonly oldVersion: number;
}

declare var IDBVersionChangeEvent: {
    prototype: IDBVersionChangeEvent;
    new(type: string, eventInitDict?: IDBVersionChangeEventInit): IDBVersionChangeEvent;
};

/** The IIRFilterNode interface of the Web Audio API is a AudioNode processor which implements a general infinite impulse response (IIR)  filter; this type of filter can be used to implement tone control devices and graphic equalizers as well. It lets the parameters of the filter response be specified, so that it can be tuned as needed. */
interface IIRFilterNode extends AudioNode {
    getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void;
}

declare var IIRFilterNode: {
    prototype: IIRFilterNode;
    new(context: BaseAudioContext, options: IIRFilterOptions): IIRFilterNode;
};

interface IdleDeadline {
    readonly didTimeout: boolean;
    timeRemaining(): DOMHighResTimeStamp;
}

declare var IdleDeadline: {
    prototype: IdleDeadline;
    new(): IdleDeadline;
};

interface ImageBitmap {
    /** Returns the intrinsic height of the image, in CSS pixels. */
    readonly height: number;
    /** Returns the intrinsic width of the image, in CSS pixels. */
    readonly width: number;
    /** Releases imageBitmap's underlying bitmap data. */
    close(): void;
}

declare var ImageBitmap: {
    prototype: ImageBitmap;
    new(): ImageBitmap;
};

interface ImageBitmapRenderingContext {
    /** Returns the canvas element that the context is bound to. */
    readonly canvas: HTMLCanvasElement | OffscreenCanvas;
    /** Transfers the underlying bitmap data from imageBitmap to context, and the bitmap becomes the contents of the canvas element to which context is bound. */
    transferFromImageBitmap(bitmap: ImageBitmap | null): void;
}

declare var ImageBitmapRenderingContext: {
    prototype: ImageBitmapRenderingContext;
    new(): ImageBitmapRenderingContext;
};

/** The underlying pixel data of an area of a <canvas> element. It is created using the ImageData() constructor or creator methods on the CanvasRenderingContext2D object associated with a canvas: createImageData() and getImageData(). It can also be used to set a part of the canvas by using putImageData(). */
interface ImageData {
    readonly colorSpace: PredefinedColorSpace;
    /** Returns the one-dimensional array containing the data in RGBA order, as integers in the range 0 to 255. */
    readonly data: Uint8ClampedArray;
    /** Returns the actual dimensions of the data in the ImageData object, in pixels. */
    readonly height: number;
    /** Returns the actual dimensions of the data in the ImageData object, in pixels. */
    readonly width: number;
}

declare var ImageData: {
    prototype: ImageData;
    new(sw: number, sh: number, settings?: ImageDataSettings): ImageData;
    new(data: Uint8ClampedArray, sw: number, sh?: number, settings?: ImageDataSettings): ImageData;
};

interface InnerHTML {
    innerHTML: string;
}

/** Available only in secure contexts. */
interface InputDeviceInfo extends MediaDeviceInfo {
}

declare var InputDeviceInfo: {
    prototype: InputDeviceInfo;
    new(): InputDeviceInfo;
};

interface InputEvent extends UIEvent {
    readonly data: string | null;
    readonly dataTransfer: DataTransfer | null;
    readonly inputType: string;
    readonly isComposing: boolean;
    getTargetRanges(): StaticRange[];
}

declare var InputEvent: {
    prototype: InputEvent;
    new(type: string, eventInitDict?: InputEventInit): InputEvent;
};

/** provides a way to asynchronously observe changes in the intersection of a target element with an ancestor element or with a top-level document's viewport. */
interface IntersectionObserver {
    readonly root: Element | Document | null;
    readonly rootMargin: string;
    readonly thresholds: ReadonlyArray<number>;
    disconnect(): void;
    observe(target: Element): void;
    takeRecords(): IntersectionObserverEntry[];
    unobserve(target: Element): void;
}

declare var IntersectionObserver: {
    prototype: IntersectionObserver;
    new(callback: IntersectionObserverCallback, options?: IntersectionObserverInit): IntersectionObserver;
};

/** This Intersection Observer API interface describes the intersection between the target element and its root container at a specific moment of transition. */
interface IntersectionObserverEntry {
    readonly boundingClientRect: DOMRectReadOnly;
    readonly intersectionRatio: number;
    readonly intersectionRect: DOMRectReadOnly;
    readonly isIntersecting: boolean;
    readonly rootBounds: DOMRectReadOnly | null;
    readonly target: Element;
    readonly time: DOMHighResTimeStamp;
}

declare var IntersectionObserverEntry: {
    prototype: IntersectionObserverEntry;
    new(intersectionObserverEntryInit: IntersectionObserverEntryInit): IntersectionObserverEntry;
};

interface KHR_parallel_shader_compile {
    readonly COMPLETION_STATUS_KHR: 0x91B1;
}

/** KeyboardEvent objects describe a user interaction with the keyboard; each event describes a single interaction between the user and a key (or combination of a key with modifier keys) on the keyboard. */
interface KeyboardEvent extends UIEvent {
    readonly altKey: boolean;
    /** @deprecated */
    readonly charCode: number;
    readonly code: string;
    readonly ctrlKey: boolean;
    readonly isComposing: boolean;
    readonly key: string;
    /** @deprecated */
    readonly keyCode: number;
    readonly location: number;
    readonly metaKey: boolean;
    readonly repeat: boolean;
    readonly shiftKey: boolean;
    getModifierState(keyArg: string): boolean;
    /** @deprecated */
    initKeyboardEvent(typeArg: string, bubblesArg?: boolean, cancelableArg?: boolean, viewArg?: Window | null, keyArg?: string, locationArg?: number, ctrlKey?: boolean, altKey?: boolean, shiftKey?: boolean, metaKey?: boolean): void;
    readonly DOM_KEY_LOCATION_STANDARD: 0x00;
    readonly DOM_KEY_LOCATION_LEFT: 0x01;
    readonly DOM_KEY_LOCATION_RIGHT: 0x02;
    readonly DOM_KEY_LOCATION_NUMPAD: 0x03;
}

declare var KeyboardEvent: {
    prototype: KeyboardEvent;
    new(type: string, eventInitDict?: KeyboardEventInit): KeyboardEvent;
    readonly DOM_KEY_LOCATION_STANDARD: 0x00;
    readonly DOM_KEY_LOCATION_LEFT: 0x01;
    readonly DOM_KEY_LOCATION_RIGHT: 0x02;
    readonly DOM_KEY_LOCATION_NUMPAD: 0x03;
};

interface KeyframeEffect extends AnimationEffect {
    composite: CompositeOperation;
    iterationComposite: IterationCompositeOperation;
    pseudoElement: string | null;
    target: Element | null;
    getKeyframes(): ComputedKeyframe[];
    setKeyframes(keyframes: Keyframe[] | PropertyIndexedKeyframes | null): void;
}

declare var KeyframeEffect: {
    prototype: KeyframeEffect;
    new(target: Element | null, keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeEffectOptions): KeyframeEffect;
    new(source: KeyframeEffect): KeyframeEffect;
};

interface LinkStyle {
    readonly sheet: CSSStyleSheet | null;
}

/** The location (URL) of the object it is linked to. Changes done on it are reflected on the object it relates to. Both the Document and Window interface have such a linked Location, accessible via Document.location and Window.location respectively. */
interface Location {
    /** Returns a DOMStringList object listing the origins of the ancestor browsing contexts, from the parent browsing context to the top-level browsing context. */
    readonly ancestorOrigins: DOMStringList;
    /**
     * Returns the Location object's URL's fragment (includes leading "#" if non-empty).
     *
     * Can be set, to navigate to the same URL with a changed fragment (ignores leading "#").
     */
    hash: string;
    /**
     * Returns the Location object's URL's host and port (if different from the default port for the scheme).
     *
     * Can be set, to navigate to the same URL with a changed host and port.
     */
    host: string;
    /**
     * Returns the Location object's URL's host.
     *
     * Can be set, to navigate to the same URL with a changed host.
     */
    hostname: string;
    /**
     * Returns the Location object's URL.
     *
     * Can be set, to navigate to the given URL.
     */
    href: string;
    toString(): string;
    /** Returns the Location object's URL's origin. */
    readonly origin: string;
    /**
     * Returns the Location object's URL's path.
     *
     * Can be set, to navigate to the same URL with a changed path.
     */
    pathname: string;
    /**
     * Returns the Location object's URL's port.
     *
     * Can be set, to navigate to the same URL with a changed port.
     */
    port: string;
    /**
     * Returns the Location object's URL's scheme.
     *
     * Can be set, to navigate to the same URL with a changed scheme.
     */
    protocol: string;
    /**
     * Returns the Location object's URL's query (includes leading "?" if non-empty).
     *
     * Can be set, to navigate to the same URL with a changed query (ignores leading "?").
     */
    search: string;
    /** Navigates to the given URL. */
    assign(url: string | URL): void;
    /** Reloads the current page. */
    reload(): void;
    /** Removes the current page from the session history and navigates to the given URL. */
    replace(url: string | URL): void;
}

declare var Location: {
    prototype: Location;
    new(): Location;
};

/** Available only in secure contexts. */
interface Lock {
    readonly mode: LockMode;
    readonly name: string;
}

declare var Lock: {
    prototype: Lock;
    new(): Lock;
};

/** Available only in secure contexts. */
interface LockManager {
    query(): Promise<LockManagerSnapshot>;
    request(name: string, callback: LockGrantedCallback): Promise<any>;
    request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise<any>;
}

declare var LockManager: {
    prototype: LockManager;
    new(): LockManager;
};

interface MIDIAccessEventMap {
    "statechange": Event;
}

/** Available only in secure contexts. */
interface MIDIAccess extends EventTarget {
    readonly inputs: MIDIInputMap;
    onstatechange: ((this: MIDIAccess, ev: Event) => any) | null;
    readonly outputs: MIDIOutputMap;
    readonly sysexEnabled: boolean;
    addEventListener<K extends keyof MIDIAccessEventMap>(type: K, listener: (this: MIDIAccess, ev: MIDIAccessEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof MIDIAccessEventMap>(type: K, listener: (this: MIDIAccess, ev: MIDIAccessEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var MIDIAccess: {
    prototype: MIDIAccess;
    new(): MIDIAccess;
};

/** Available only in secure contexts. */
interface MIDIConnectionEvent extends Event {
    readonly port: MIDIPort;
}

declare var MIDIConnectionEvent: {
    prototype: MIDIConnectionEvent;
    new(type: string, eventInitDict?: MIDIConnectionEventInit): MIDIConnectionEvent;
};

interface MIDIInputEventMap extends MIDIPortEventMap {
    "midimessage": Event;
}

/** Available only in secure contexts. */
interface MIDIInput extends MIDIPort {
    onmidimessage: ((this: MIDIInput, ev: Event) => any) | null;
    addEventListener<K extends keyof MIDIInputEventMap>(type: K, listener: (this: MIDIInput, ev: MIDIInputEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof MIDIInputEventMap>(type: K, listener: (this: MIDIInput, ev: MIDIInputEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var MIDIInput: {
    prototype: MIDIInput;
    new(): MIDIInput;
};

/** Available only in secure contexts. */
interface MIDIInputMap {
    forEach(callbackfn: (value: MIDIInput, key: string, parent: MIDIInputMap) => void, thisArg?: any): void;
}

declare var MIDIInputMap: {
    prototype: MIDIInputMap;
    new(): MIDIInputMap;
};

/** Available only in secure contexts. */
interface MIDIMessageEvent extends Event {
    readonly data: Uint8Array;
}

declare var MIDIMessageEvent: {
    prototype: MIDIMessageEvent;
    new(type: string, eventInitDict?: MIDIMessageEventInit): MIDIMessageEvent;
};

/** Available only in secure contexts. */
interface MIDIOutput extends MIDIPort {
    send(data: number[], timestamp?: DOMHighResTimeStamp): void;
    addEventListener<K extends keyof MIDIPortEventMap>(type: K, listener: (this: MIDIOutput, ev: MIDIPortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof MIDIPortEventMap>(type: K, listener: (this: MIDIOutput, ev: MIDIPortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var MIDIOutput: {
    prototype: MIDIOutput;
    new(): MIDIOutput;
};

/** Available only in secure contexts. */
interface MIDIOutputMap {
    forEach(callbackfn: (value: MIDIOutput, key: string, parent: MIDIOutputMap) => void, thisArg?: any): void;
}

declare var MIDIOutputMap: {
    prototype: MIDIOutputMap;
    new(): MIDIOutputMap;
};

interface MIDIPortEventMap {
    "statechange": Event;
}

/** Available only in secure contexts. */
interface MIDIPort extends EventTarget {
    readonly connection: MIDIPortConnectionState;
    readonly id: string;
    readonly manufacturer: string | null;
    readonly name: string | null;
    onstatechange: ((this: MIDIPort, ev: Event) => any) | null;
    readonly state: MIDIPortDeviceState;
    readonly type: MIDIPortType;
    readonly version: string | null;
    close(): Promise<MIDIPort>;
    open(): Promise<MIDIPort>;
    addEventListener<K extends keyof MIDIPortEventMap>(type: K, listener: (this: MIDIPort, ev: MIDIPortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof MIDIPortEventMap>(type: K, listener: (this: MIDIPort, ev: MIDIPortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var MIDIPort: {
    prototype: MIDIPort;
    new(): MIDIPort;
};

interface MathMLElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap {
}

interface MathMLElement extends Element, ElementCSSInlineStyle, GlobalEventHandlers, HTMLOrSVGElement {
    addEventListener<K extends keyof MathMLElementEventMap>(type: K, listener: (this: MathMLElement, ev: MathMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof MathMLElementEventMap>(type: K, listener: (this: MathMLElement, ev: MathMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var MathMLElement: {
    prototype: MathMLElement;
    new(): MathMLElement;
};

interface MediaCapabilities {
    decodingInfo(configuration: MediaDecodingConfiguration): Promise<MediaCapabilitiesDecodingInfo>;
    encodingInfo(configuration: MediaEncodingConfiguration): Promise<MediaCapabilitiesEncodingInfo>;
}

declare var MediaCapabilities: {
    prototype: MediaCapabilities;
    new(): MediaCapabilities;
};

/**
 * The MediaDevicesInfo interface contains information that describes a single media input or output device.
 * Available only in secure contexts.
 */
interface MediaDeviceInfo {
    readonly deviceId: string;
    readonly groupId: string;
    readonly kind: MediaDeviceKind;
    readonly label: string;
    toJSON(): any;
}

declare var MediaDeviceInfo: {
    prototype: MediaDeviceInfo;
    new(): MediaDeviceInfo;
};

interface MediaDevicesEventMap {
    "devicechange": Event;
}

/**
 * Provides access to connected media input devices like cameras and microphones, as well as screen sharing. In essence, it lets you obtain access to any hardware source of media data.
 * Available only in secure contexts.
 */
interface MediaDevices extends EventTarget {
    ondevicechange: ((this: MediaDevices, ev: Event) => any) | null;
    enumerateDevices(): Promise<MediaDeviceInfo[]>;
    getDisplayMedia(options?: DisplayMediaStreamOptions): Promise<MediaStream>;
    getSupportedConstraints(): MediaTrackSupportedConstraints;
    getUserMedia(constraints?: MediaStreamConstraints): Promise<MediaStream>;
    addEventListener<K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var MediaDevices: {
    prototype: MediaDevices;
    new(): MediaDevices;
};

/** A MediaElementSourceNode has no inputs and exactly one output, and is created using the AudioContext.createMediaElementSource method. The amount of channels in the output equals the number of channels of the audio referenced by the HTMLMediaElement used in the creation of the node, or is 1 if the HTMLMediaElement has no audio. */
interface MediaElementAudioSourceNode extends AudioNode {
    readonly mediaElement: HTMLMediaElement;
}

declare var MediaElementAudioSourceNode: {
    prototype: MediaElementAudioSourceNode;
    new(context: AudioContext, options: MediaElementAudioSourceOptions): MediaElementAudioSourceNode;
};

interface MediaEncryptedEvent extends Event {
    readonly initData: ArrayBuffer | null;
    readonly initDataType: string;
}

declare var MediaEncryptedEvent: {
    prototype: MediaEncryptedEvent;
    new(type: string, eventInitDict?: MediaEncryptedEventInit): MediaEncryptedEvent;
};

/** An error which occurred while handling media in an HTML media element based on HTMLMediaElement, such as <audio> or <video>. */
interface MediaError {
    readonly code: number;
    readonly message: string;
    readonly MEDIA_ERR_ABORTED: 1;
    readonly MEDIA_ERR_NETWORK: 2;
    readonly MEDIA_ERR_DECODE: 3;
    readonly MEDIA_ERR_SRC_NOT_SUPPORTED: 4;
}

declare var MediaError: {
    prototype: MediaError;
    new(): MediaError;
    readonly MEDIA_ERR_ABORTED: 1;
    readonly MEDIA_ERR_NETWORK: 2;
    readonly MEDIA_ERR_DECODE: 3;
    readonly MEDIA_ERR_SRC_NOT_SUPPORTED: 4;
};

/**
 * This EncryptedMediaExtensions API interface contains the content and related data when the content decryption module generates a message for the session.
 * Available only in secure contexts.
 */
interface MediaKeyMessageEvent extends Event {
    readonly message: ArrayBuffer;
    readonly messageType: MediaKeyMessageType;
}

declare var MediaKeyMessageEvent: {
    prototype: MediaKeyMessageEvent;
    new(type: string, eventInitDict: MediaKeyMessageEventInit): MediaKeyMessageEvent;
};

interface MediaKeySessionEventMap {
    "keystatuseschange": Event;
    "message": MediaKeyMessageEvent;
}

/**
 * This EncryptedMediaExtensions API interface represents a context for message exchange with a content decryption module (CDM).
 * Available only in secure contexts.
 */
interface MediaKeySession extends EventTarget {
    readonly closed: Promise<MediaKeySessionClosedReason>;
    readonly expiration: number;
    readonly keyStatuses: MediaKeyStatusMap;
    onkeystatuseschange: ((this: MediaKeySession, ev: Event) => any) | null;
    onmessage: ((this: MediaKeySession, ev: MediaKeyMessageEvent) => any) | null;
    readonly sessionId: string;
    close(): Promise<void>;
    generateRequest(initDataType: string, initData: BufferSource): Promise<void>;
    load(sessionId: string): Promise<boolean>;
    remove(): Promise<void>;
    update(response: BufferSource): Promise<void>;
    addEventListener<K extends keyof MediaKeySessionEventMap>(type: K, listener: (this: MediaKeySession, ev: MediaKeySessionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof MediaKeySessionEventMap>(type: K, listener: (this: MediaKeySession, ev: MediaKeySessionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var MediaKeySession: {
    prototype: MediaKeySession;
    new(): MediaKeySession;
};

/**
 * This EncryptedMediaExtensions API interface is a read-only map of media key statuses by key IDs.
 * Available only in secure contexts.
 */
interface MediaKeyStatusMap {
    readonly size: number;
    get(keyId: BufferSource): MediaKeyStatus | undefined;
    has(keyId: BufferSource): boolean;
    forEach(callbackfn: (value: MediaKeyStatus, key: BufferSource, parent: MediaKeyStatusMap) => void, thisArg?: any): void;
}

declare var MediaKeyStatusMap: {
    prototype: MediaKeyStatusMap;
    new(): MediaKeyStatusMap;
};

/**
 * This EncryptedMediaExtensions API interface provides access to a Key System for decryption and/or a content protection provider. You can request an instance of this object using the Navigator.requestMediaKeySystemAccess method.
 * Available only in secure contexts.
 */
interface MediaKeySystemAccess {
    readonly keySystem: string;
    createMediaKeys(): Promise<MediaKeys>;
    getConfiguration(): MediaKeySystemConfiguration;
}

declare var MediaKeySystemAccess: {
    prototype: MediaKeySystemAccess;
    new(): MediaKeySystemAccess;
};

/**
 * This EncryptedMediaExtensions API interface the represents a set of keys that an associated HTMLMediaElement can use for decryption of media data during playback.
 * Available only in secure contexts.
 */
interface MediaKeys {
    createSession(sessionType?: MediaKeySessionType): MediaKeySession;
    setServerCertificate(serverCertificate: BufferSource): Promise<boolean>;
}

declare var MediaKeys: {
    prototype: MediaKeys;
    new(): MediaKeys;
};

interface MediaList {
    readonly length: number;
    mediaText: string;
    toString(): string;
    appendMedium(medium: string): void;
    deleteMedium(medium: string): void;
    item(index: number): string | null;
    [index: number]: string;
}

declare var MediaList: {
    prototype: MediaList;
    new(): MediaList;
};

interface MediaMetadata {
    album: string;
    artist: string;
    artwork: ReadonlyArray<MediaImage>;
    title: string;
}

declare var MediaMetadata: {
    prototype: MediaMetadata;
    new(init?: MediaMetadataInit): MediaMetadata;
};

interface MediaQueryListEventMap {
    "change": MediaQueryListEvent;
}

/** Stores information on a media query applied to a document, and handles sending notifications to listeners when the media query state change (i.e. when the media query test starts or stops evaluating to true). */
interface MediaQueryList extends EventTarget {
    readonly matches: boolean;
    readonly media: string;
    onchange: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null;
    /** @deprecated */
    addListener(callback: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null): void;
    /** @deprecated */
    removeListener(callback: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null): void;
    addEventListener<K extends keyof MediaQueryListEventMap>(type: K, listener: (this: MediaQueryList, ev: MediaQueryListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof MediaQueryListEventMap>(type: K, listener: (this: MediaQueryList, ev: MediaQueryListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var MediaQueryList: {
    prototype: MediaQueryList;
    new(): MediaQueryList;
};

interface MediaQueryListEvent extends Event {
    readonly matches: boolean;
    readonly media: string;
}

declare var MediaQueryListEvent: {
    prototype: MediaQueryListEvent;
    new(type: string, eventInitDict?: MediaQueryListEventInit): MediaQueryListEvent;
};

interface MediaRecorderEventMap {
    "dataavailable": BlobEvent;
    "error": Event;
    "pause": Event;
    "resume": Event;
    "start": Event;
    "stop": Event;
}

interface MediaRecorder extends EventTarget {
    readonly audioBitsPerSecond: number;
    readonly mimeType: string;
    ondataavailable: ((this: MediaRecorder, ev: BlobEvent) => any) | null;
    onerror: ((this: MediaRecorder, ev: Event) => any) | null;
    onpause: ((this: MediaRecorder, ev: Event) => any) | null;
    onresume: ((this: MediaRecorder, ev: Event) => any) | null;
    onstart: ((this: MediaRecorder, ev: Event) => any) | null;
    onstop: ((this: MediaRecorder, ev: Event) => any) | null;
    readonly state: RecordingState;
    readonly stream: MediaStream;
    readonly videoBitsPerSecond: number;
    pause(): void;
    requestData(): void;
    resume(): void;
    start(timeslice?: number): void;
    stop(): void;
    addEventListener<K extends keyof MediaRecorderEventMap>(type: K, listener: (this: MediaRecorder, ev: MediaRecorderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof MediaRecorderEventMap>(type: K, listener: (this: MediaRecorder, ev: MediaRecorderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var MediaRecorder: {
    prototype: MediaRecorder;
    new(stream: MediaStream, options?: MediaRecorderOptions): MediaRecorder;
    isTypeSupported(type: string): boolean;
};

interface MediaSession {
    metadata: MediaMetadata | null;
    playbackState: MediaSessionPlaybackState;
    setActionHandler(action: MediaSessionAction, handler: MediaSessionActionHandler | null): void;
    setPositionState(state?: MediaPositionState): void;
}

declare var MediaSession: {
    prototype: MediaSession;
    new(): MediaSession;
};

interface MediaSourceEventMap {
    "sourceclose": Event;
    "sourceended": Event;
    "sourceopen": Event;
}

/** This Media Source Extensions API interface represents a source of media data for an HTMLMediaElement object. A MediaSource object can be attached to a HTMLMediaElement to be played in the user agent. */
interface MediaSource extends EventTarget {
    readonly activeSourceBuffers: SourceBufferList;
    duration: number;
    onsourceclose: ((this: MediaSource, ev: Event) => any) | null;
    onsourceended: ((this: MediaSource, ev: Event) => any) | null;
    onsourceopen: ((this: MediaSource, ev: Event) => any) | null;
    readonly readyState: ReadyState;
    readonly sourceBuffers: SourceBufferList;
    addSourceBuffer(type: string): SourceBuffer;
    clearLiveSeekableRange(): void;
    endOfStream(error?: EndOfStreamError): void;
    removeSourceBuffer(sourceBuffer: SourceBuffer): void;
    setLiveSeekableRange(start: number, end: number): void;
    addEventListener<K extends keyof MediaSourceEventMap>(type: K, listener: (this: MediaSource, ev: MediaSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof MediaSourceEventMap>(type: K, listener: (this: MediaSource, ev: MediaSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var MediaSource: {
    prototype: MediaSource;
    new(): MediaSource;
    isTypeSupported(type: string): boolean;
};

interface MediaStreamEventMap {
    "addtrack": MediaStreamTrackEvent;
    "removetrack": MediaStreamTrackEvent;
}

/** A stream of media content. A stream consists of several tracks such as video or audio tracks. Each track is specified as an instance of MediaStreamTrack. */
interface MediaStream extends EventTarget {
    readonly active: boolean;
    readonly id: string;
    onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
    onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
    addTrack(track: MediaStreamTrack): void;
    clone(): MediaStream;
    getAudioTracks(): MediaStreamTrack[];
    getTrackById(trackId: string): MediaStreamTrack | null;
    getTracks(): MediaStreamTrack[];
    getVideoTracks(): MediaStreamTrack[];
    removeTrack(track: MediaStreamTrack): void;
    addEventListener<K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var MediaStream: {
    prototype: MediaStream;
    new(): MediaStream;
    new(stream: MediaStream): MediaStream;
    new(tracks: MediaStreamTrack[]): MediaStream;
};

interface MediaStreamAudioDestinationNode extends AudioNode {
    readonly stream: MediaStream;
}

declare var MediaStreamAudioDestinationNode: {
    prototype: MediaStreamAudioDestinationNode;
    new(context: AudioContext, options?: AudioNodeOptions): MediaStreamAudioDestinationNode;
};

/** A type of AudioNode which operates as an audio source whose media is received from a MediaStream obtained using the WebRTC or Media Capture and Streams APIs. */
interface MediaStreamAudioSourceNode extends AudioNode {
    readonly mediaStream: MediaStream;
}

declare var MediaStreamAudioSourceNode: {
    prototype: MediaStreamAudioSourceNode;
    new(context: AudioContext, options: MediaStreamAudioSourceOptions): MediaStreamAudioSourceNode;
};

interface MediaStreamTrackEventMap {
    "ended": Event;
    "mute": Event;
    "unmute": Event;
}

/** A single media track within a stream; typically, these are audio or video tracks, but other track types may exist as well. */
interface MediaStreamTrack extends EventTarget {
    contentHint: string;
    enabled: boolean;
    readonly id: string;
    readonly kind: string;
    readonly label: string;
    readonly muted: boolean;
    onended: ((this: MediaStreamTrack, ev: Event) => any) | null;
    onmute: ((this: MediaStreamTrack, ev: Event) => any) | null;
    onunmute: ((this: MediaStreamTrack, ev: Event) => any) | null;
    readonly readyState: MediaStreamTrackState;
    applyConstraints(constraints?: MediaTrackConstraints): Promise<void>;
    clone(): MediaStreamTrack;
    getCapabilities(): MediaTrackCapabilities;
    getConstraints(): MediaTrackConstraints;
    getSettings(): MediaTrackSettings;
    stop(): void;
    addEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var MediaStreamTrack: {
    prototype: MediaStreamTrack;
    new(): MediaStreamTrack;
};

/** Events which indicate that a MediaStream has had tracks added to or removed from the stream through calls to Media Stream API methods. These events are sent to the stream when these changes occur. */
interface MediaStreamTrackEvent extends Event {
    readonly track: MediaStreamTrack;
}

declare var MediaStreamTrackEvent: {
    prototype: MediaStreamTrackEvent;
    new(type: string, eventInitDict: MediaStreamTrackEventInit): MediaStreamTrackEvent;
};

/** This Channel Messaging API interface allows us to create a new message channel and send data through it via its two MessagePort properties. */
interface MessageChannel {
    /** Returns the first MessagePort object. */
    readonly port1: MessagePort;
    /** Returns the second MessagePort object. */
    readonly port2: MessagePort;
}

declare var MessageChannel: {
    prototype: MessageChannel;
    new(): MessageChannel;
};

/** A message received by a target object. */
interface MessageEvent<T = any> extends Event {
    /** Returns the data of the message. */
    readonly data: T;
    /** Returns the last event ID string, for server-sent events. */
    readonly lastEventId: string;
    /** Returns the origin of the message, for server-sent events and cross-document messaging. */
    readonly origin: string;
    /** Returns the MessagePort array sent with the message, for cross-document messaging and channel messaging. */
    readonly ports: ReadonlyArray<MessagePort>;
    /** Returns the WindowProxy of the source window, for cross-document messaging, and the MessagePort being attached, in the connect event fired at SharedWorkerGlobalScope objects. */
    readonly source: MessageEventSource | null;
    /** @deprecated */
    initMessageEvent(type: string, bubbles?: boolean, cancelable?: boolean, data?: any, origin?: string, lastEventId?: string, source?: MessageEventSource | null, ports?: MessagePort[]): void;
}

declare var MessageEvent: {
    prototype: MessageEvent;
    new<T>(type: string, eventInitDict?: MessageEventInit<T>): MessageEvent<T>;
};

interface MessagePortEventMap {
    "message": MessageEvent;
    "messageerror": MessageEvent;
}

/** This Channel Messaging API interface represents one of the two ports of a MessageChannel, allowing messages to be sent from one port and listening out for them arriving at the other. */
interface MessagePort extends EventTarget {
    onmessage: ((this: MessagePort, ev: MessageEvent) => any) | null;
    onmessageerror: ((this: MessagePort, ev: MessageEvent) => any) | null;
    /** Disconnects the port, so that it is no longer active. */
    close(): void;
    /**
     * Posts a message through the channel. Objects listed in transfer are transferred, not just cloned, meaning that they are no longer usable on the sending side.
     *
     * Throws a "DataCloneError" DOMException if transfer contains duplicate objects or port, or if message could not be cloned.
     */
    postMessage(message: any, transfer: Transferable[]): void;
    postMessage(message: any, options?: StructuredSerializeOptions): void;
    /** Begins dispatching messages received on the port. */
    start(): void;
    addEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var MessagePort: {
    prototype: MessagePort;
    new(): MessagePort;
};

/**
 * Provides contains information about a MIME type associated with a particular plugin. NavigatorPlugins.mimeTypes returns an array of this object.
 * @deprecated
 */
interface MimeType {
    /**
     * Returns the MIME type's description.
     * @deprecated
     */
    readonly description: string;
    /**
     * Returns the Plugin object that implements this MIME type.
     * @deprecated
     */
    readonly enabledPlugin: Plugin;
    /**
     * Returns the MIME type's typical file extensions, in a comma-separated list.
     * @deprecated
     */
    readonly suffixes: string;
    /**
     * Returns the MIME type.
     * @deprecated
     */
    readonly type: string;
}

/** @deprecated */
declare var MimeType: {
    prototype: MimeType;
    new(): MimeType;
};

/**
 * Returns an array of MimeType instances, each of which contains information about a supported browser plugins. This object is returned by NavigatorPlugins.mimeTypes.
 * @deprecated
 */
interface MimeTypeArray {
    /** @deprecated */
    readonly length: number;
    /** @deprecated */
    item(index: number): MimeType | null;
    /** @deprecated */
    namedItem(name: string): MimeType | null;
    [index: number]: MimeType;
}

/** @deprecated */
declare var MimeTypeArray: {
    prototype: MimeTypeArray;
    new(): MimeTypeArray;
};

/** Events that occur due to the user interacting with a pointing device (such as a mouse). Common events using this interface include click, dblclick, mouseup, mousedown. */
interface MouseEvent extends UIEvent {
    readonly altKey: boolean;
    readonly button: number;
    readonly buttons: number;
    readonly clientX: number;
    readonly clientY: number;
    readonly ctrlKey: boolean;
    readonly metaKey: boolean;
    readonly movementX: number;
    readonly movementY: number;
    readonly offsetX: number;
    readonly offsetY: number;
    readonly pageX: number;
    readonly pageY: number;
    readonly relatedTarget: EventTarget | null;
    readonly screenX: number;
    readonly screenY: number;
    readonly shiftKey: boolean;
    readonly x: number;
    readonly y: number;
    getModifierState(keyArg: string): boolean;
    /** @deprecated */
    initMouseEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, ctrlKeyArg: boolean, altKeyArg: boolean, shiftKeyArg: boolean, metaKeyArg: boolean, buttonArg: number, relatedTargetArg: EventTarget | null): void;
}

declare var MouseEvent: {
    prototype: MouseEvent;
    new(type: string, eventInitDict?: MouseEventInit): MouseEvent;
};

/**
 * Provides event properties that are specific to modifications to the Document Object Model (DOM) hierarchy and nodes.
 * @deprecated DOM4 [DOM] provides a new mechanism using a MutationObserver interface which addresses the use cases that mutation events solve, but in a more performant manner. Thus, this specification describes mutation events for reference and completeness of legacy behavior, but deprecates the use of the MutationEvent interface.
 */
interface MutationEvent extends Event {
    /** @deprecated */
    readonly attrChange: number;
    /** @deprecated */
    readonly attrName: string;
    /** @deprecated */
    readonly newValue: string;
    /** @deprecated */
    readonly prevValue: string;
    /** @deprecated */
    readonly relatedNode: Node | null;
    /** @deprecated */
    initMutationEvent(typeArg: string, bubblesArg?: boolean, cancelableArg?: boolean, relatedNodeArg?: Node | null, prevValueArg?: string, newValueArg?: string, attrNameArg?: string, attrChangeArg?: number): void;
    readonly MODIFICATION: 1;
    readonly ADDITION: 2;
    readonly REMOVAL: 3;
}

/** @deprecated */
declare var MutationEvent: {
    prototype: MutationEvent;
    new(): MutationEvent;
    readonly MODIFICATION: 1;
    readonly ADDITION: 2;
    readonly REMOVAL: 3;
};

/** Provides the ability to watch for changes being made to the DOM tree. It is designed as a replacement for the older Mutation Events feature which was part of the DOM3 Events specification. */
interface MutationObserver {
    /** Stops observer from observing any mutations. Until the observe() method is used again, observer's callback will not be invoked. */
    disconnect(): void;
    /**
     * Instructs the user agent to observe a given target (a node) and report any mutations based on the criteria given by options (an object).
     *
     * The options argument allows for setting mutation observation options via object members.
     */
    observe(target: Node, options?: MutationObserverInit): void;
    /** Empties the record queue and returns what was in there. */
    takeRecords(): MutationRecord[];
}

declare var MutationObserver: {
    prototype: MutationObserver;
    new(callback: MutationCallback): MutationObserver;
};

/** A MutationRecord represents an individual DOM mutation. It is the object that is passed to MutationObserver's callback. */
interface MutationRecord {
    /** Return the nodes added and removed respectively. */
    readonly addedNodes: NodeList;
    /** Returns the local name of the changed attribute, and null otherwise. */
    readonly attributeName: string | null;
    /** Returns the namespace of the changed attribute, and null otherwise. */
    readonly attributeNamespace: string | null;
    /** Return the previous and next sibling respectively of the added or removed nodes, and null otherwise. */
    readonly nextSibling: Node | null;
    /** The return value depends on type. For "attributes", it is the value of the changed attribute before the change. For "characterData", it is the data of the changed node before the change. For "childList", it is null. */
    readonly oldValue: string | null;
    /** Return the previous and next sibling respectively of the added or removed nodes, and null otherwise. */
    readonly previousSibling: Node | null;
    /** Return the nodes added and removed respectively. */
    readonly removedNodes: NodeList;
    /** Returns the node the mutation affected, depending on the type. For "attributes", it is the element whose attribute changed. For "characterData", it is the CharacterData node. For "childList", it is the node whose children changed. */
    readonly target: Node;
    /** Returns "attributes" if it was an attribute mutation. "characterData" if it was a mutation to a CharacterData node. And "childList" if it was a mutation to the tree of nodes. */
    readonly type: MutationRecordType;
}

declare var MutationRecord: {
    prototype: MutationRecord;
    new(): MutationRecord;
};

/** A collection of Attr objects. Objects inside a NamedNodeMap are not in any particular order, unlike NodeList, although they may be accessed by an index as in an array. */
interface NamedNodeMap {
    readonly length: number;
    getNamedItem(qualifiedName: string): Attr | null;
    getNamedItemNS(namespace: string | null, localName: string): Attr | null;
    item(index: number): Attr | null;
    removeNamedItem(qualifiedName: string): Attr;
    removeNamedItemNS(namespace: string | null, localName: string): Attr;
    setNamedItem(attr: Attr): Attr | null;
    setNamedItemNS(attr: Attr): Attr | null;
    [index: number]: Attr;
}

declare var NamedNodeMap: {
    prototype: NamedNodeMap;
    new(): NamedNodeMap;
};

/** Available only in secure contexts. */
interface NavigationPreloadManager {
    disable(): Promise<void>;
    enable(): Promise<void>;
    getState(): Promise<NavigationPreloadState>;
    setHeaderValue(value: string): Promise<void>;
}

declare var NavigationPreloadManager: {
    prototype: NavigationPreloadManager;
    new(): NavigationPreloadManager;
};

/** The state and the identity of the user agent. It allows scripts to query it and to register themselves to carry on some activities. */
interface Navigator extends NavigatorAutomationInformation, NavigatorConcurrentHardware, NavigatorContentUtils, NavigatorCookies, NavigatorID, NavigatorLanguage, NavigatorLocks, NavigatorOnLine, NavigatorPlugins, NavigatorStorage {
    /** Available only in secure contexts. */
    readonly clipboard: Clipboard;
    /** Available only in secure contexts. */
    readonly credentials: CredentialsContainer;
    readonly doNotTrack: string | null;
    readonly geolocation: Geolocation;
    readonly maxTouchPoints: number;
    readonly mediaCapabilities: MediaCapabilities;
    /** Available only in secure contexts. */
    readonly mediaDevices: MediaDevices;
    readonly mediaSession: MediaSession;
    readonly permissions: Permissions;
    /** Available only in secure contexts. */
    readonly serviceWorker: ServiceWorkerContainer;
    /** Available only in secure contexts. */
    canShare(data?: ShareData): boolean;
    getGamepads(): (Gamepad | null)[];
    /** Available only in secure contexts. */
    requestMIDIAccess(options?: MIDIOptions): Promise<MIDIAccess>;
    /** Available only in secure contexts. */
    requestMediaKeySystemAccess(keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]): Promise<MediaKeySystemAccess>;
    sendBeacon(url: string | URL, data?: BodyInit | null): boolean;
    /** Available only in secure contexts. */
    share(data?: ShareData): Promise<void>;
    vibrate(pattern: VibratePattern): boolean;
}

declare var Navigator: {
    prototype: Navigator;
    new(): Navigator;
};

interface NavigatorAutomationInformation {
    readonly webdriver: boolean;
}

interface NavigatorConcurrentHardware {
    readonly hardwareConcurrency: number;
}

interface NavigatorContentUtils {
    /** Available only in secure contexts. */
    registerProtocolHandler(scheme: string, url: string | URL): void;
}

interface NavigatorCookies {
    readonly cookieEnabled: boolean;
}

interface NavigatorID {
    /** @deprecated */
    readonly appCodeName: string;
    /** @deprecated */
    readonly appName: string;
    /** @deprecated */
    readonly appVersion: string;
    /** @deprecated */
    readonly platform: string;
    /** @deprecated */
    readonly product: string;
    /** @deprecated */
    readonly productSub: string;
    readonly userAgent: string;
    /** @deprecated */
    readonly vendor: string;
    /** @deprecated */
    readonly vendorSub: string;
}

interface NavigatorLanguage {
    readonly language: string;
    readonly languages: ReadonlyArray<string>;
}

/** Available only in secure contexts. */
interface NavigatorLocks {
    readonly locks: LockManager;
}

interface NavigatorOnLine {
    readonly onLine: boolean;
}

interface NavigatorPlugins {
    /** @deprecated */
    readonly mimeTypes: MimeTypeArray;
    readonly pdfViewerEnabled: boolean;
    /** @deprecated */
    readonly plugins: PluginArray;
    /** @deprecated */
    javaEnabled(): boolean;
}

/** Available only in secure contexts. */
interface NavigatorStorage {
    readonly storage: StorageManager;
}

/** Node is an interface from which a number of DOM API object types inherit. It allows those types to be treated similarly; for example, inheriting the same set of methods, or being tested in the same way. */
interface Node extends EventTarget {
    /** Returns node's node document's document base URL. */
    readonly baseURI: string;
    /** Returns the children. */
    readonly childNodes: NodeListOf<ChildNode>;
    /** Returns the first child. */
    readonly firstChild: ChildNode | null;
    /** Returns true if node is connected and false otherwise. */
    readonly isConnected: boolean;
    /** Returns the last child. */
    readonly lastChild: ChildNode | null;
    /** Returns the next sibling. */
    readonly nextSibling: ChildNode | null;
    /** Returns a string appropriate for the type of node. */
    readonly nodeName: string;
    /** Returns the type of node. */
    readonly nodeType: number;
    nodeValue: string | null;
    /** Returns the node document. Returns null for documents. */
    readonly ownerDocument: Document | null;
    /** Returns the parent element. */
    readonly parentElement: HTMLElement | null;
    /** Returns the parent. */
    readonly parentNode: ParentNode | null;
    /** Returns the previous sibling. */
    readonly previousSibling: ChildNode | null;
    textContent: string | null;
    appendChild<T extends Node>(node: T): T;
    /** Returns a copy of node. If deep is true, the copy also includes the node's descendants. */
    cloneNode(deep?: boolean): Node;
    /** Returns a bitmask indicating the position of other relative to node. */
    compareDocumentPosition(other: Node): number;
    /** Returns true if other is an inclusive descendant of node, and false otherwise. */
    contains(other: Node | null): boolean;
    /** Returns node's root. */
    getRootNode(options?: GetRootNodeOptions): Node;
    /** Returns whether node has children. */
    hasChildNodes(): boolean;
    insertBefore<T extends Node>(node: T, child: Node | null): T;
    isDefaultNamespace(namespace: string | null): boolean;
    /** Returns whether node and otherNode have the same properties. */
    isEqualNode(otherNode: Node | null): boolean;
    isSameNode(otherNode: Node | null): boolean;
    lookupNamespaceURI(prefix: string | null): string | null;
    lookupPrefix(namespace: string | null): string | null;
    /** Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes. */
    normalize(): void;
    removeChild<T extends Node>(child: T): T;
    replaceChild<T extends Node>(node: Node, child: T): T;
    /** node is an element. */
    readonly ELEMENT_NODE: 1;
    readonly ATTRIBUTE_NODE: 2;
    /** node is a Text node. */
    readonly TEXT_NODE: 3;
    /** node is a CDATASection node. */
    readonly CDATA_SECTION_NODE: 4;
    readonly ENTITY_REFERENCE_NODE: 5;
    readonly ENTITY_NODE: 6;
    /** node is a ProcessingInstruction node. */
    readonly PROCESSING_INSTRUCTION_NODE: 7;
    /** node is a Comment node. */
    readonly COMMENT_NODE: 8;
    /** node is a document. */
    readonly DOCUMENT_NODE: 9;
    /** node is a doctype. */
    readonly DOCUMENT_TYPE_NODE: 10;
    /** node is a DocumentFragment node. */
    readonly DOCUMENT_FRAGMENT_NODE: 11;
    readonly NOTATION_NODE: 12;
    /** Set when node and other are not in the same tree. */
    readonly DOCUMENT_POSITION_DISCONNECTED: 0x01;
    /** Set when other is preceding node. */
    readonly DOCUMENT_POSITION_PRECEDING: 0x02;
    /** Set when other is following node. */
    readonly DOCUMENT_POSITION_FOLLOWING: 0x04;
    /** Set when other is an ancestor of node. */
    readonly DOCUMENT_POSITION_CONTAINS: 0x08;
    /** Set when other is a descendant of node. */
    readonly DOCUMENT_POSITION_CONTAINED_BY: 0x10;
    readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20;
}

declare var Node: {
    prototype: Node;
    new(): Node;
    /** node is an element. */
    readonly ELEMENT_NODE: 1;
    readonly ATTRIBUTE_NODE: 2;
    /** node is a Text node. */
    readonly TEXT_NODE: 3;
    /** node is a CDATASection node. */
    readonly CDATA_SECTION_NODE: 4;
    readonly ENTITY_REFERENCE_NODE: 5;
    readonly ENTITY_NODE: 6;
    /** node is a ProcessingInstruction node. */
    readonly PROCESSING_INSTRUCTION_NODE: 7;
    /** node is a Comment node. */
    readonly COMMENT_NODE: 8;
    /** node is a document. */
    readonly DOCUMENT_NODE: 9;
    /** node is a doctype. */
    readonly DOCUMENT_TYPE_NODE: 10;
    /** node is a DocumentFragment node. */
    readonly DOCUMENT_FRAGMENT_NODE: 11;
    readonly NOTATION_NODE: 12;
    /** Set when node and other are not in the same tree. */
    readonly DOCUMENT_POSITION_DISCONNECTED: 0x01;
    /** Set when other is preceding node. */
    readonly DOCUMENT_POSITION_PRECEDING: 0x02;
    /** Set when other is following node. */
    readonly DOCUMENT_POSITION_FOLLOWING: 0x04;
    /** Set when other is an ancestor of node. */
    readonly DOCUMENT_POSITION_CONTAINS: 0x08;
    /** Set when other is a descendant of node. */
    readonly DOCUMENT_POSITION_CONTAINED_BY: 0x10;
    readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20;
};

/** An iterator over the members of a list of the nodes in a subtree of the DOM. The nodes will be returned in document order. */
interface NodeIterator {
    readonly filter: NodeFilter | null;
    readonly pointerBeforeReferenceNode: boolean;
    readonly referenceNode: Node;
    readonly root: Node;
    readonly whatToShow: number;
    /** @deprecated */
    detach(): void;
    nextNode(): Node | null;
    previousNode(): Node | null;
}

declare var NodeIterator: {
    prototype: NodeIterator;
    new(): NodeIterator;
};

/** NodeList objects are collections of nodes, usually returned by properties such as Node.childNodes and methods such as document.querySelectorAll(). */
interface NodeList {
    /** Returns the number of nodes in the collection. */
    readonly length: number;
    /** Returns the node with index index from the collection. The nodes are sorted in tree order. */
    item(index: number): Node | null;
    /**
     * Performs the specified action for each node in an list.
     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the list.
     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
     */
    forEach(callbackfn: (value: Node, key: number, parent: NodeList) => void, thisArg?: any): void;
    [index: number]: Node;
}

declare var NodeList: {
    prototype: NodeList;
    new(): NodeList;
};

interface NodeListOf<TNode extends Node> extends NodeList {
    item(index: number): TNode;
    /**
     * Performs the specified action for each node in an list.
     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the list.
     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
     */
    forEach(callbackfn: (value: TNode, key: number, parent: NodeListOf<TNode>) => void, thisArg?: any): void;
    [index: number]: TNode;
}

interface NonDocumentTypeChildNode {
    /** Returns the first following sibling that is an element, and null otherwise. */
    readonly nextElementSibling: Element | null;
    /** Returns the first preceding sibling that is an element, and null otherwise. */
    readonly previousElementSibling: Element | null;
}

interface NonElementParentNode {
    /** Returns the first element within node's descendants whose ID is elementId. */
    getElementById(elementId: string): Element | null;
}

interface NotificationEventMap {
    "click": Event;
    "close": Event;
    "error": Event;
    "show": Event;
}

/** This Notifications API interface is used to configure and display desktop notifications to the user. */
interface Notification extends EventTarget {
    readonly body: string;
    readonly data: any;
    readonly dir: NotificationDirection;
    readonly icon: string;
    readonly lang: string;
    onclick: ((this: Notification, ev: Event) => any) | null;
    onclose: ((this: Notification, ev: Event) => any) | null;
    onerror: ((this: Notification, ev: Event) => any) | null;
    onshow: ((this: Notification, ev: Event) => any) | null;
    readonly tag: string;
    readonly title: string;
    close(): void;
    addEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var Notification: {
    prototype: Notification;
    new(title: string, options?: NotificationOptions): Notification;
    readonly permission: NotificationPermission;
    requestPermission(deprecatedCallback?: NotificationPermissionCallback): Promise<NotificationPermission>;
};

interface OES_draw_buffers_indexed {
    blendEquationSeparateiOES(buf: GLuint, modeRGB: GLenum, modeAlpha: GLenum): void;
    blendEquationiOES(buf: GLuint, mode: GLenum): void;
    blendFuncSeparateiOES(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;
    blendFunciOES(buf: GLuint, src: GLenum, dst: GLenum): void;
    colorMaskiOES(buf: GLuint, r: GLboolean, g: GLboolean, b: GLboolean, a: GLboolean): void;
    disableiOES(target: GLenum, index: GLuint): void;
    enableiOES(target: GLenum, index: GLuint): void;
}

/** The OES_element_index_uint extension is part of the WebGL API and adds support for gl.UNSIGNED_INT types to WebGLRenderingContext.drawElements(). */
interface OES_element_index_uint {
}

interface OES_fbo_render_mipmap {
}

/** The OES_standard_derivatives extension is part of the WebGL API and adds the GLSL derivative functions dFdx, dFdy, and fwidth. */
interface OES_standard_derivatives {
    readonly FRAGMENT_SHADER_DERIVATIVE_HINT_OES: 0x8B8B;
}

/** The OES_texture_float extension is part of the WebGL API and exposes floating-point pixel types for textures. */
interface OES_texture_float {
}

/** The OES_texture_float_linear extension is part of the WebGL API and allows linear filtering with floating-point pixel types for textures. */
interface OES_texture_float_linear {
}

/** The OES_texture_half_float extension is part of the WebGL API and adds texture formats with 16- (aka half float) and 32-bit floating-point components. */
interface OES_texture_half_float {
    readonly HALF_FLOAT_OES: 0x8D61;
}

/** The OES_texture_half_float_linear extension is part of the WebGL API and allows linear filtering with half floating-point pixel types for textures. */
interface OES_texture_half_float_linear {
}

interface OES_vertex_array_object {
    bindVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;
    createVertexArrayOES(): WebGLVertexArrayObjectOES | null;
    deleteVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;
    isVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): GLboolean;
    readonly VERTEX_ARRAY_BINDING_OES: 0x85B5;
}

interface OVR_multiview2 {
    framebufferTextureMultiviewOVR(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, baseViewIndex: GLint, numViews: GLsizei): void;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR: 0x9630;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR: 0x9632;
    readonly MAX_VIEWS_OVR: 0x9631;
    readonly FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR: 0x9633;
}

/** The Web Audio API OfflineAudioCompletionEvent interface represents events that occur when the processing of an OfflineAudioContext is terminated. The complete event implements this interface. */
interface OfflineAudioCompletionEvent extends Event {
    readonly renderedBuffer: AudioBuffer;
}

declare var OfflineAudioCompletionEvent: {
    prototype: OfflineAudioCompletionEvent;
    new(type: string, eventInitDict: OfflineAudioCompletionEventInit): OfflineAudioCompletionEvent;
};

interface OfflineAudioContextEventMap extends BaseAudioContextEventMap {
    "complete": OfflineAudioCompletionEvent;
}

/** An AudioContext interface representing an audio-processing graph built from linked together AudioNodes. In contrast with a standard AudioContext, an OfflineAudioContext doesn't render the audio to the device hardware; instead, it generates it, as fast as it can, and outputs the result to an AudioBuffer. */
interface OfflineAudioContext extends BaseAudioContext {
    readonly length: number;
    oncomplete: ((this: OfflineAudioContext, ev: OfflineAudioCompletionEvent) => any) | null;
    resume(): Promise<void>;
    startRendering(): Promise<AudioBuffer>;
    suspend(suspendTime: number): Promise<void>;
    addEventListener<K extends keyof OfflineAudioContextEventMap>(type: K, listener: (this: OfflineAudioContext, ev: OfflineAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof OfflineAudioContextEventMap>(type: K, listener: (this: OfflineAudioContext, ev: OfflineAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var OfflineAudioContext: {
    prototype: OfflineAudioContext;
    new(contextOptions: OfflineAudioContextOptions): OfflineAudioContext;
    new(numberOfChannels: number, length: number, sampleRate: number): OfflineAudioContext;
};

interface OffscreenCanvasEventMap {
    "contextlost": Event;
    "contextrestored": Event;
}

interface OffscreenCanvas extends EventTarget {
    /**
     * These attributes return the dimensions of the OffscreenCanvas object's bitmap.
     *
     * They can be set, to replace the bitmap with a new, transparent black bitmap of the specified dimensions (effectively resizing it).
     */
    height: number;
    oncontextlost: ((this: OffscreenCanvas, ev: Event) => any) | null;
    oncontextrestored: ((this: OffscreenCanvas, ev: Event) => any) | null;
    /**
     * These attributes return the dimensions of the OffscreenCanvas object's bitmap.
     *
     * They can be set, to replace the bitmap with a new, transparent black bitmap of the specified dimensions (effectively resizing it).
     */
    width: number;
    /**
     * Returns a promise that will fulfill with a new Blob object representing a file containing the image in the OffscreenCanvas object.
     *
     * The argument, if provided, is a dictionary that controls the encoding options of the image file to be created. The type field specifies the file format and has a default value of "image/png"; that type is also used if the requested type isn't supported. If the image format supports variable quality (such as "image/jpeg"), then the quality field is a number in the range 0.0 to 1.0 inclusive indicating the desired quality level for the resulting image.
     */
    convertToBlob(options?: ImageEncodeOptions): Promise<Blob>;
    /**
     * Returns an object that exposes an API for drawing on the OffscreenCanvas object. contextId specifies the desired API: "2d", "bitmaprenderer", "webgl", or "webgl2". options is handled by that API.
     *
     * This specification defines the "2d" context below, which is similar but distinct from the "2d" context that is created from a canvas element. The WebGL specifications define the "webgl" and "webgl2" contexts. [WEBGL]
     *
     * Returns null if the canvas has already been initialized with another context type (e.g., trying to get a "2d" context after getting a "webgl" context).
     */
    getContext(contextId: "2d", options?: any): OffscreenCanvasRenderingContext2D | null;
    getContext(contextId: "bitmaprenderer", options?: any): ImageBitmapRenderingContext | null;
    getContext(contextId: "webgl", options?: any): WebGLRenderingContext | null;
    getContext(contextId: "webgl2", options?: any): WebGL2RenderingContext | null;
    getContext(contextId: OffscreenRenderingContextId, options?: any): OffscreenRenderingContext | null;
    /** Returns a newly created ImageBitmap object with the image in the OffscreenCanvas object. The image in the OffscreenCanvas object is replaced with a new blank image. */
    transferToImageBitmap(): ImageBitmap;
    addEventListener<K extends keyof OffscreenCanvasEventMap>(type: K, listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof OffscreenCanvasEventMap>(type: K, listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var OffscreenCanvas: {
    prototype: OffscreenCanvas;
    new(width: number, height: number): OffscreenCanvas;
};

interface OffscreenCanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPath, CanvasPathDrawingStyles, CanvasRect, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform {
    readonly canvas: OffscreenCanvas;
    commit(): void;
}

declare var OffscreenCanvasRenderingContext2D: {
    prototype: OffscreenCanvasRenderingContext2D;
    new(): OffscreenCanvasRenderingContext2D;
};

/** The OscillatorNode interface represents a periodic waveform, such as a sine wave. It is an AudioScheduledSourceNode audio-processing module that causes a specified frequency of a given wave to be created—in effect, a constant tone. */
interface OscillatorNode extends AudioScheduledSourceNode {
    readonly detune: AudioParam;
    readonly frequency: AudioParam;
    type: OscillatorType;
    setPeriodicWave(periodicWave: PeriodicWave): void;
    addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: OscillatorNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: OscillatorNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var OscillatorNode: {
    prototype: OscillatorNode;
    new(context: BaseAudioContext, options?: OscillatorOptions): OscillatorNode;
};

interface OverconstrainedError extends Error {
    readonly constraint: string;
}

declare var OverconstrainedError: {
    prototype: OverconstrainedError;
    new(constraint: string, message?: string): OverconstrainedError;
};

/** The PageTransitionEvent is fired when a document is being loaded or unloaded. */
interface PageTransitionEvent extends Event {
    /**
     * For the pageshow event, returns false if the page is newly being loaded (and the load event will fire). Otherwise, returns true.
     *
     * For the pagehide event, returns false if the page is going away for the last time. Otherwise, returns true, meaning that (if nothing conspires to make the page unsalvageable) the page might be reused if the user navigates back to this page.
     *
     * Things that can cause the page to be unsalvageable include:
     *
     * The user agent decided to not keep the Document alive in a session history entry after unload
     * Having iframes that are not salvageable
     * Active WebSocket objects
     * Aborting a Document
     */
    readonly persisted: boolean;
}

declare var PageTransitionEvent: {
    prototype: PageTransitionEvent;
    new(type: string, eventInitDict?: PageTransitionEventInit): PageTransitionEvent;
};

/** A PannerNode always has exactly one input and one output: the input can be mono or stereo but the output is always stereo (2 channels); you can't have panning effects without at least two audio channels! */
interface PannerNode extends AudioNode {
    coneInnerAngle: number;
    coneOuterAngle: number;
    coneOuterGain: number;
    distanceModel: DistanceModelType;
    maxDistance: number;
    readonly orientationX: AudioParam;
    readonly orientationY: AudioParam;
    readonly orientationZ: AudioParam;
    panningModel: PanningModelType;
    readonly positionX: AudioParam;
    readonly positionY: AudioParam;
    readonly positionZ: AudioParam;
    refDistance: number;
    rolloffFactor: number;
    /** @deprecated */
    setOrientation(x: number, y: number, z: number): void;
    /** @deprecated */
    setPosition(x: number, y: number, z: number): void;
}

declare var PannerNode: {
    prototype: PannerNode;
    new(context: BaseAudioContext, options?: PannerOptions): PannerNode;
};

interface ParentNode extends Node {
    readonly childElementCount: number;
    /** Returns the child elements. */
    readonly children: HTMLCollection;
    /** Returns the first child that is an element, and null otherwise. */
    readonly firstElementChild: Element | null;
    /** Returns the last child that is an element, and null otherwise. */
    readonly lastElementChild: Element | null;
    /**
     * Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
     *
     * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
     */
    append(...nodes: (Node | string)[]): void;
    /**
     * Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
     *
     * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
     */
    prepend(...nodes: (Node | string)[]): void;
    /** Returns the first element that is a descendant of node that matches selectors. */
    querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;
    querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;
    querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;
    /** @deprecated */
    querySelector<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): HTMLElementDeprecatedTagNameMap[K] | null;
    querySelector<E extends Element = Element>(selectors: string): E | null;
    /** Returns all element descendants of node that match selectors. */
    querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;
    querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;
    querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;
    /** @deprecated */
    querySelectorAll<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): NodeListOf<HTMLElementDeprecatedTagNameMap[K]>;
    querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;
    /**
     * Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
     *
     * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
     */
    replaceChildren(...nodes: (Node | string)[]): void;
}

/** This Canvas 2D API interface is used to declare a path that can then be used on a CanvasRenderingContext2D object. The path methods of the CanvasRenderingContext2D interface are also present on this interface, which gives you the convenience of being able to retain and replay your path whenever desired. */
interface Path2D extends CanvasPath {
    /** Adds to the path the path given by the argument. */
    addPath(path: Path2D, transform?: DOMMatrix2DInit): void;
}

declare var Path2D: {
    prototype: Path2D;
    new(path?: Path2D | string): Path2D;
};

/** Available only in secure contexts. */
interface PaymentMethodChangeEvent extends PaymentRequestUpdateEvent {
    readonly methodDetails: any;
    readonly methodName: string;
}

declare var PaymentMethodChangeEvent: {
    prototype: PaymentMethodChangeEvent;
    new(type: string, eventInitDict?: PaymentMethodChangeEventInit): PaymentMethodChangeEvent;
};

interface PaymentRequestEventMap {
    "paymentmethodchange": Event;
}

/**
 * This Payment Request API interface is the primary access point into the API, and lets web content and apps accept payments from the end user.
 * Available only in secure contexts.
 */
interface PaymentRequest extends EventTarget {
    readonly id: string;
    onpaymentmethodchange: ((this: PaymentRequest, ev: Event) => any) | null;
    abort(): Promise<void>;
    canMakePayment(): Promise<boolean>;
    show(detailsPromise?: PaymentDetailsUpdate | PromiseLike<PaymentDetailsUpdate>): Promise<PaymentResponse>;
    addEventListener<K extends keyof PaymentRequestEventMap>(type: K, listener: (this: PaymentRequest, ev: PaymentRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof PaymentRequestEventMap>(type: K, listener: (this: PaymentRequest, ev: PaymentRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var PaymentRequest: {
    prototype: PaymentRequest;
    new(methodData: PaymentMethodData[], details: PaymentDetailsInit): PaymentRequest;
};

/**
 * This Payment Request API interface enables a web page to update the details of a PaymentRequest in response to a user action.
 * Available only in secure contexts.
 */
interface PaymentRequestUpdateEvent extends Event {
    updateWith(detailsPromise: PaymentDetailsUpdate | PromiseLike<PaymentDetailsUpdate>): void;
}

declare var PaymentRequestUpdateEvent: {
    prototype: PaymentRequestUpdateEvent;
    new(type: string, eventInitDict?: PaymentRequestUpdateEventInit): PaymentRequestUpdateEvent;
};

/**
 * This Payment Request API interface is returned after a user selects a payment method and approves a payment request.
 * Available only in secure contexts.
 */
interface PaymentResponse extends EventTarget {
    readonly details: any;
    readonly methodName: string;
    readonly requestId: string;
    complete(result?: PaymentComplete): Promise<void>;
    retry(errorFields?: PaymentValidationErrors): Promise<void>;
    toJSON(): any;
}

declare var PaymentResponse: {
    prototype: PaymentResponse;
    new(): PaymentResponse;
};

interface PerformanceEventMap {
    "resourcetimingbufferfull": Event;
}

/** Provides access to performance-related information for the current page. It's part of the High Resolution Time API, but is enhanced by the Performance Timeline API, the Navigation Timing API, the User Timing API, and the Resource Timing API. */
interface Performance extends EventTarget {
    readonly eventCounts: EventCounts;
    /** @deprecated */
    readonly navigation: PerformanceNavigation;
    onresourcetimingbufferfull: ((this: Performance, ev: Event) => any) | null;
    readonly timeOrigin: DOMHighResTimeStamp;
    /** @deprecated */
    readonly timing: PerformanceTiming;
    clearMarks(markName?: string): void;
    clearMeasures(measureName?: string): void;
    clearResourceTimings(): void;
    getEntries(): PerformanceEntryList;
    getEntriesByName(name: string, type?: string): PerformanceEntryList;
    getEntriesByType(type: string): PerformanceEntryList;
    mark(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;
    measure(measureName: string, startOrMeasureOptions?: string | PerformanceMeasureOptions, endMark?: string): PerformanceMeasure;
    now(): DOMHighResTimeStamp;
    setResourceTimingBufferSize(maxSize: number): void;
    toJSON(): any;
    addEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var Performance: {
    prototype: Performance;
    new(): Performance;
};

/** Encapsulates a single performance metric that is part of the performance timeline. A performance entry can be directly created by making a performance mark or measure (for example by calling the mark() method) at an explicit point in an application. Performance entries are also created in indirect ways such as loading a resource (such as an image). */
interface PerformanceEntry {
    readonly duration: DOMHighResTimeStamp;
    readonly entryType: string;
    readonly name: string;
    readonly startTime: DOMHighResTimeStamp;
    toJSON(): any;
}

declare var PerformanceEntry: {
    prototype: PerformanceEntry;
    new(): PerformanceEntry;
};

interface PerformanceEventTiming extends PerformanceEntry {
    readonly cancelable: boolean;
    readonly processingEnd: DOMHighResTimeStamp;
    readonly processingStart: DOMHighResTimeStamp;
    readonly target: Node | null;
    toJSON(): any;
}

declare var PerformanceEventTiming: {
    prototype: PerformanceEventTiming;
    new(): PerformanceEventTiming;
};

/** PerformanceMark is an abstract interface for PerformanceEntry objects with an entryType of "mark". Entries of this type are created by calling performance.mark() to add a named DOMHighResTimeStamp (the mark) to the browser's performance timeline. */
interface PerformanceMark extends PerformanceEntry {
    readonly detail: any;
}

declare var PerformanceMark: {
    prototype: PerformanceMark;
    new(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;
};

/** PerformanceMeasure is an abstract interface for PerformanceEntry objects with an entryType of "measure". Entries of this type are created by calling performance.measure() to add a named DOMHighResTimeStamp (the measure) between two marks to the browser's performance timeline. */
interface PerformanceMeasure extends PerformanceEntry {
    readonly detail: any;
}

declare var PerformanceMeasure: {
    prototype: PerformanceMeasure;
    new(): PerformanceMeasure;
};

/**
 * The legacy PerformanceNavigation interface represents information about how the navigation to the current document was done.
 * @deprecated This interface is deprecated in the Navigation Timing Level 2 specification. Please use the PerformanceNavigationTiming interface instead.
 */
interface PerformanceNavigation {
    /** @deprecated */
    readonly redirectCount: number;
    /** @deprecated */
    readonly type: number;
    /** @deprecated */
    toJSON(): any;
    readonly TYPE_NAVIGATE: 0;
    readonly TYPE_RELOAD: 1;
    readonly TYPE_BACK_FORWARD: 2;
    readonly TYPE_RESERVED: 255;
}

/** @deprecated */
declare var PerformanceNavigation: {
    prototype: PerformanceNavigation;
    new(): PerformanceNavigation;
    readonly TYPE_NAVIGATE: 0;
    readonly TYPE_RELOAD: 1;
    readonly TYPE_BACK_FORWARD: 2;
    readonly TYPE_RESERVED: 255;
};

/** Provides methods and properties to store and retrieve metrics regarding the browser's document navigation events. For example, this interface can be used to determine how much time it takes to load or unload a document. */
interface PerformanceNavigationTiming extends PerformanceResourceTiming {
    readonly domComplete: DOMHighResTimeStamp;
    readonly domContentLoadedEventEnd: DOMHighResTimeStamp;
    readonly domContentLoadedEventStart: DOMHighResTimeStamp;
    readonly domInteractive: DOMHighResTimeStamp;
    readonly loadEventEnd: DOMHighResTimeStamp;
    readonly loadEventStart: DOMHighResTimeStamp;
    readonly redirectCount: number;
    readonly type: NavigationTimingType;
    readonly unloadEventEnd: DOMHighResTimeStamp;
    readonly unloadEventStart: DOMHighResTimeStamp;
    toJSON(): any;
}

declare var PerformanceNavigationTiming: {
    prototype: PerformanceNavigationTiming;
    new(): PerformanceNavigationTiming;
};

interface PerformanceObserver {
    disconnect(): void;
    observe(options?: PerformanceObserverInit): void;
    takeRecords(): PerformanceEntryList;
}

declare var PerformanceObserver: {
    prototype: PerformanceObserver;
    new(callback: PerformanceObserverCallback): PerformanceObserver;
    readonly supportedEntryTypes: ReadonlyArray<string>;
};

interface PerformanceObserverEntryList {
    getEntries(): PerformanceEntryList;
    getEntriesByName(name: string, type?: string): PerformanceEntryList;
    getEntriesByType(type: string): PerformanceEntryList;
}

declare var PerformanceObserverEntryList: {
    prototype: PerformanceObserverEntryList;
    new(): PerformanceObserverEntryList;
};

interface PerformancePaintTiming extends PerformanceEntry {
}

declare var PerformancePaintTiming: {
    prototype: PerformancePaintTiming;
    new(): PerformancePaintTiming;
};

/** Enables retrieval and analysis of detailed network timing data regarding the loading of an application's resources. An application can use the timing metrics to determine, for example, the length of time it takes to fetch a specific resource, such as an XMLHttpRequest, <SVG>, image, or script. */
interface PerformanceResourceTiming extends PerformanceEntry {
    readonly connectEnd: DOMHighResTimeStamp;
    readonly connectStart: DOMHighResTimeStamp;
    readonly decodedBodySize: number;
    readonly domainLookupEnd: DOMHighResTimeStamp;
    readonly domainLookupStart: DOMHighResTimeStamp;
    readonly encodedBodySize: number;
    readonly fetchStart: DOMHighResTimeStamp;
    readonly initiatorType: string;
    readonly nextHopProtocol: string;
    readonly redirectEnd: DOMHighResTimeStamp;
    readonly redirectStart: DOMHighResTimeStamp;
    readonly requestStart: DOMHighResTimeStamp;
    readonly responseEnd: DOMHighResTimeStamp;
    readonly responseStart: DOMHighResTimeStamp;
    readonly secureConnectionStart: DOMHighResTimeStamp;
    readonly serverTiming: ReadonlyArray<PerformanceServerTiming>;
    readonly transferSize: number;
    readonly workerStart: DOMHighResTimeStamp;
    toJSON(): any;
}

declare var PerformanceResourceTiming: {
    prototype: PerformanceResourceTiming;
    new(): PerformanceResourceTiming;
};

interface PerformanceServerTiming {
    readonly description: string;
    readonly duration: DOMHighResTimeStamp;
    readonly name: string;
    toJSON(): any;
}

declare var PerformanceServerTiming: {
    prototype: PerformanceServerTiming;
    new(): PerformanceServerTiming;
};

/**
 * A legacy interface kept for backwards compatibility and contains properties that offer performance timing information for various events which occur during the loading and use of the current page. You get a PerformanceTiming object describing your page using the window.performance.timing property.
 * @deprecated This interface is deprecated in the Navigation Timing Level 2 specification. Please use the PerformanceNavigationTiming interface instead.
 */
interface PerformanceTiming {
    /** @deprecated */
    readonly connectEnd: number;
    /** @deprecated */
    readonly connectStart: number;
    /** @deprecated */
    readonly domComplete: number;
    /** @deprecated */
    readonly domContentLoadedEventEnd: number;
    /** @deprecated */
    readonly domContentLoadedEventStart: number;
    /** @deprecated */
    readonly domInteractive: number;
    /** @deprecated */
    readonly domLoading: number;
    /** @deprecated */
    readonly domainLookupEnd: number;
    /** @deprecated */
    readonly domainLookupStart: number;
    /** @deprecated */
    readonly fetchStart: number;
    /** @deprecated */
    readonly loadEventEnd: number;
    /** @deprecated */
    readonly loadEventStart: number;
    /** @deprecated */
    readonly navigationStart: number;
    /** @deprecated */
    readonly redirectEnd: number;
    /** @deprecated */
    readonly redirectStart: number;
    /** @deprecated */
    readonly requestStart: number;
    /** @deprecated */
    readonly responseEnd: number;
    /** @deprecated */
    readonly responseStart: number;
    /** @deprecated */
    readonly secureConnectionStart: number;
    /** @deprecated */
    readonly unloadEventEnd: number;
    /** @deprecated */
    readonly unloadEventStart: number;
    /** @deprecated */
    toJSON(): any;
}

/** @deprecated */
declare var PerformanceTiming: {
    prototype: PerformanceTiming;
    new(): PerformanceTiming;
};

/** PeriodicWave has no inputs or outputs; it is used to define custom oscillators when calling OscillatorNode.setPeriodicWave(). The PeriodicWave itself is created/returned by AudioContext.createPeriodicWave(). */
interface PeriodicWave {
}

declare var PeriodicWave: {
    prototype: PeriodicWave;
    new(context: BaseAudioContext, options?: PeriodicWaveOptions): PeriodicWave;
};

interface PermissionStatusEventMap {
    "change": Event;
}

interface PermissionStatus extends EventTarget {
    readonly name: string;
    onchange: ((this: PermissionStatus, ev: Event) => any) | null;
    readonly state: PermissionState;
    addEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var PermissionStatus: {
    prototype: PermissionStatus;
    new(): PermissionStatus;
};

interface Permissions {
    query(permissionDesc: PermissionDescriptor): Promise<PermissionStatus>;
}

declare var Permissions: {
    prototype: Permissions;
    new(): Permissions;
};

interface PictureInPictureEvent extends Event {
    readonly pictureInPictureWindow: PictureInPictureWindow;
}

declare var PictureInPictureEvent: {
    prototype: PictureInPictureEvent;
    new(type: string, eventInitDict: PictureInPictureEventInit): PictureInPictureEvent;
};

interface PictureInPictureWindowEventMap {
    "resize": Event;
}

interface PictureInPictureWindow extends EventTarget {
    readonly height: number;
    onresize: ((this: PictureInPictureWindow, ev: Event) => any) | null;
    readonly width: number;
    addEventListener<K extends keyof PictureInPictureWindowEventMap>(type: K, listener: (this: PictureInPictureWindow, ev: PictureInPictureWindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof PictureInPictureWindowEventMap>(type: K, listener: (this: PictureInPictureWindow, ev: PictureInPictureWindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var PictureInPictureWindow: {
    prototype: PictureInPictureWindow;
    new(): PictureInPictureWindow;
};

/**
 * Provides information about a browser plugin.
 * @deprecated
 */
interface Plugin {
    /**
     * Returns the plugin's description.
     * @deprecated
     */
    readonly description: string;
    /**
     * Returns the plugin library's filename, if applicable on the current platform.
     * @deprecated
     */
    readonly filename: string;
    /**
     * Returns the number of MIME types, represented by MimeType objects, supported by the plugin.
     * @deprecated
     */
    readonly length: number;
    /**
     * Returns the plugin's name.
     * @deprecated
     */
    readonly name: string;
    /**
     * Returns the specified MimeType object.
     * @deprecated
     */
    item(index: number): MimeType | null;
    /** @deprecated */
    namedItem(name: string): MimeType | null;
    [index: number]: MimeType;
}

/** @deprecated */
declare var Plugin: {
    prototype: Plugin;
    new(): Plugin;
};

/**
 * Used to store a list of Plugin objects describing the available plugins; it's returned by the window.navigator.plugins property. The PluginArray is not a JavaScript array, but has the length property and supports accessing individual items using bracket notation (plugins[2]), as well as via item(index) and namedItem("name") methods.
 * @deprecated
 */
interface PluginArray {
    /** @deprecated */
    readonly length: number;
    /** @deprecated */
    item(index: number): Plugin | null;
    /** @deprecated */
    namedItem(name: string): Plugin | null;
    /** @deprecated */
    refresh(): void;
    [index: number]: Plugin;
}

/** @deprecated */
declare var PluginArray: {
    prototype: PluginArray;
    new(): PluginArray;
};

/** The state of a DOM event produced by a pointer such as the geometry of the contact point, the device type that generated the event, the amount of pressure that was applied on the contact surface, etc. */
interface PointerEvent extends MouseEvent {
    readonly height: number;
    readonly isPrimary: boolean;
    readonly pointerId: number;
    readonly pointerType: string;
    readonly pressure: number;
    readonly tangentialPressure: number;
    readonly tiltX: number;
    readonly tiltY: number;
    readonly twist: number;
    readonly width: number;
    /** Available only in secure contexts. */
    getCoalescedEvents(): PointerEvent[];
    getPredictedEvents(): PointerEvent[];
}

declare var PointerEvent: {
    prototype: PointerEvent;
    new(type: string, eventInitDict?: PointerEventInit): PointerEvent;
};

/** PopStateEvent is an event handler for the popstate event on the window. */
interface PopStateEvent extends Event {
    /** Returns a copy of the information that was provided to pushState() or replaceState(). */
    readonly state: any;
}

declare var PopStateEvent: {
    prototype: PopStateEvent;
    new(type: string, eventInitDict?: PopStateEventInit): PopStateEvent;
};

/** A processing instruction embeds application-specific instructions in XML which can be ignored by other applications that don't recognize them. */
interface ProcessingInstruction extends CharacterData, LinkStyle {
    readonly ownerDocument: Document;
    readonly target: string;
}

declare var ProcessingInstruction: {
    prototype: ProcessingInstruction;
    new(): ProcessingInstruction;
};

/** Events measuring progress of an underlying process, like an HTTP request (for an XMLHttpRequest, or the loading of the underlying resource of an <img>, <audio>, <video>, <style> or <link>). */
interface ProgressEvent<T extends EventTarget = EventTarget> extends Event {
    readonly lengthComputable: boolean;
    readonly loaded: number;
    readonly target: T | null;
    readonly total: number;
}

declare var ProgressEvent: {
    prototype: ProgressEvent;
    new(type: string, eventInitDict?: ProgressEventInit): ProgressEvent;
};

interface PromiseRejectionEvent extends Event {
    readonly promise: Promise<any>;
    readonly reason: any;
}

declare var PromiseRejectionEvent: {
    prototype: PromiseRejectionEvent;
    new(type: string, eventInitDict: PromiseRejectionEventInit): PromiseRejectionEvent;
};

/** Available only in secure contexts. */
interface PublicKeyCredential extends Credential {
    readonly authenticatorAttachment: string | null;
    readonly rawId: ArrayBuffer;
    readonly response: AuthenticatorResponse;
    getClientExtensionResults(): AuthenticationExtensionsClientOutputs;
}

declare var PublicKeyCredential: {
    prototype: PublicKeyCredential;
    new(): PublicKeyCredential;
    isConditionalMediationAvailable(): Promise<boolean>;
    isUserVerifyingPlatformAuthenticatorAvailable(): Promise<boolean>;
};

/**
 * This Push API interface provides a way to receive notifications from third-party servers as well as request URLs for push notifications.
 * Available only in secure contexts.
 */
interface PushManager {
    getSubscription(): Promise<PushSubscription | null>;
    permissionState(options?: PushSubscriptionOptionsInit): Promise<PermissionState>;
    subscribe(options?: PushSubscriptionOptionsInit): Promise<PushSubscription>;
}

declare var PushManager: {
    prototype: PushManager;
    new(): PushManager;
    readonly supportedContentEncodings: ReadonlyArray<string>;
};

/**
 * This Push API interface provides a subcription's URL endpoint and allows unsubscription from a push service.
 * Available only in secure contexts.
 */
interface PushSubscription {
    readonly endpoint: string;
    readonly expirationTime: EpochTimeStamp | null;
    readonly options: PushSubscriptionOptions;
    getKey(name: PushEncryptionKeyName): ArrayBuffer | null;
    toJSON(): PushSubscriptionJSON;
    unsubscribe(): Promise<boolean>;
}

declare var PushSubscription: {
    prototype: PushSubscription;
    new(): PushSubscription;
};

/** Available only in secure contexts. */
interface PushSubscriptionOptions {
    readonly applicationServerKey: ArrayBuffer | null;
    readonly userVisibleOnly: boolean;
}

declare var PushSubscriptionOptions: {
    prototype: PushSubscriptionOptions;
    new(): PushSubscriptionOptions;
};

interface RTCCertificate {
    readonly expires: EpochTimeStamp;
    getFingerprints(): RTCDtlsFingerprint[];
}

declare var RTCCertificate: {
    prototype: RTCCertificate;
    new(): RTCCertificate;
};

interface RTCDTMFSenderEventMap {
    "tonechange": RTCDTMFToneChangeEvent;
}

interface RTCDTMFSender extends EventTarget {
    readonly canInsertDTMF: boolean;
    ontonechange: ((this: RTCDTMFSender, ev: RTCDTMFToneChangeEvent) => any) | null;
    readonly toneBuffer: string;
    insertDTMF(tones: string, duration?: number, interToneGap?: number): void;
    addEventListener<K extends keyof RTCDTMFSenderEventMap>(type: K, listener: (this: RTCDTMFSender, ev: RTCDTMFSenderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof RTCDTMFSenderEventMap>(type: K, listener: (this: RTCDTMFSender, ev: RTCDTMFSenderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var RTCDTMFSender: {
    prototype: RTCDTMFSender;
    new(): RTCDTMFSender;
};

/** Events sent to indicate that DTMF tones have started or finished playing. This interface is used by the tonechange event. */
interface RTCDTMFToneChangeEvent extends Event {
    readonly tone: string;
}

declare var RTCDTMFToneChangeEvent: {
    prototype: RTCDTMFToneChangeEvent;
    new(type: string, eventInitDict?: RTCDTMFToneChangeEventInit): RTCDTMFToneChangeEvent;
};

interface RTCDataChannelEventMap {
    "bufferedamountlow": Event;
    "close": Event;
    "closing": Event;
    "error": Event;
    "message": MessageEvent;
    "open": Event;
}

interface RTCDataChannel extends EventTarget {
    binaryType: BinaryType;
    readonly bufferedAmount: number;
    bufferedAmountLowThreshold: number;
    readonly id: number | null;
    readonly label: string;
    readonly maxPacketLifeTime: number | null;
    readonly maxRetransmits: number | null;
    readonly negotiated: boolean;
    onbufferedamountlow: ((this: RTCDataChannel, ev: Event) => any) | null;
    onclose: ((this: RTCDataChannel, ev: Event) => any) | null;
    onclosing: ((this: RTCDataChannel, ev: Event) => any) | null;
    onerror: ((this: RTCDataChannel, ev: Event) => any) | null;
    onmessage: ((this: RTCDataChannel, ev: MessageEvent) => any) | null;
    onopen: ((this: RTCDataChannel, ev: Event) => any) | null;
    readonly ordered: boolean;
    readonly protocol: string;
    readonly readyState: RTCDataChannelState;
    close(): void;
    send(data: string): void;
    send(data: Blob): void;
    send(data: ArrayBuffer): void;
    send(data: ArrayBufferView): void;
    addEventListener<K extends keyof RTCDataChannelEventMap>(type: K, listener: (this: RTCDataChannel, ev: RTCDataChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof RTCDataChannelEventMap>(type: K, listener: (this: RTCDataChannel, ev: RTCDataChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var RTCDataChannel: {
    prototype: RTCDataChannel;
    new(): RTCDataChannel;
};

interface RTCDataChannelEvent extends Event {
    readonly channel: RTCDataChannel;
}

declare var RTCDataChannelEvent: {
    prototype: RTCDataChannelEvent;
    new(type: string, eventInitDict: RTCDataChannelEventInit): RTCDataChannelEvent;
};

interface RTCDtlsTransportEventMap {
    "error": Event;
    "statechange": Event;
}

interface RTCDtlsTransport extends EventTarget {
    readonly iceTransport: RTCIceTransport;
    onerror: ((this: RTCDtlsTransport, ev: Event) => any) | null;
    onstatechange: ((this: RTCDtlsTransport, ev: Event) => any) | null;
    readonly state: RTCDtlsTransportState;
    getRemoteCertificates(): ArrayBuffer[];
    addEventListener<K extends keyof RTCDtlsTransportEventMap>(type: K, listener: (this: RTCDtlsTransport, ev: RTCDtlsTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof RTCDtlsTransportEventMap>(type: K, listener: (this: RTCDtlsTransport, ev: RTCDtlsTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var RTCDtlsTransport: {
    prototype: RTCDtlsTransport;
    new(): RTCDtlsTransport;
};

interface RTCEncodedAudioFrame {
    data: ArrayBuffer;
    readonly timestamp: number;
    getMetadata(): RTCEncodedAudioFrameMetadata;
}

declare var RTCEncodedAudioFrame: {
    prototype: RTCEncodedAudioFrame;
    new(): RTCEncodedAudioFrame;
};

interface RTCEncodedVideoFrame {
    data: ArrayBuffer;
    readonly timestamp: number;
    readonly type: RTCEncodedVideoFrameType;
    getMetadata(): RTCEncodedVideoFrameMetadata;
}

declare var RTCEncodedVideoFrame: {
    prototype: RTCEncodedVideoFrame;
    new(): RTCEncodedVideoFrame;
};

interface RTCError extends DOMException {
    readonly errorDetail: RTCErrorDetailType;
    readonly receivedAlert: number | null;
    readonly sctpCauseCode: number | null;
    readonly sdpLineNumber: number | null;
    readonly sentAlert: number | null;
}

declare var RTCError: {
    prototype: RTCError;
    new(init: RTCErrorInit, message?: string): RTCError;
};

interface RTCErrorEvent extends Event {
    readonly error: RTCError;
}

declare var RTCErrorEvent: {
    prototype: RTCErrorEvent;
    new(type: string, eventInitDict: RTCErrorEventInit): RTCErrorEvent;
};

/** The RTCIceCandidate interface—part of the WebRTC API—represents a candidate Internet Connectivity Establishment (ICE) configuration which may be used to establish an RTCPeerConnection. */
interface RTCIceCandidate {
    readonly address: string | null;
    readonly candidate: string;
    readonly component: RTCIceComponent | null;
    readonly foundation: string | null;
    readonly port: number | null;
    readonly priority: number | null;
    readonly protocol: RTCIceProtocol | null;
    readonly relatedAddress: string | null;
    readonly relatedPort: number | null;
    readonly sdpMLineIndex: number | null;
    readonly sdpMid: string | null;
    readonly tcpType: RTCIceTcpCandidateType | null;
    readonly type: RTCIceCandidateType | null;
    readonly usernameFragment: string | null;
    toJSON(): RTCIceCandidateInit;
}

declare var RTCIceCandidate: {
    prototype: RTCIceCandidate;
    new(candidateInitDict?: RTCIceCandidateInit): RTCIceCandidate;
};

interface RTCIceTransportEventMap {
    "gatheringstatechange": Event;
    "statechange": Event;
}

/** Provides access to information about the ICE transport layer over which the data is being sent and received. */
interface RTCIceTransport extends EventTarget {
    readonly gatheringState: RTCIceGathererState;
    ongatheringstatechange: ((this: RTCIceTransport, ev: Event) => any) | null;
    onstatechange: ((this: RTCIceTransport, ev: Event) => any) | null;
    readonly state: RTCIceTransportState;
    addEventListener<K extends keyof RTCIceTransportEventMap>(type: K, listener: (this: RTCIceTransport, ev: RTCIceTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof RTCIceTransportEventMap>(type: K, listener: (this: RTCIceTransport, ev: RTCIceTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var RTCIceTransport: {
    prototype: RTCIceTransport;
    new(): RTCIceTransport;
};

interface RTCPeerConnectionEventMap {
    "connectionstatechange": Event;
    "datachannel": RTCDataChannelEvent;
    "icecandidate": RTCPeerConnectionIceEvent;
    "icecandidateerror": Event;
    "iceconnectionstatechange": Event;
    "icegatheringstatechange": Event;
    "negotiationneeded": Event;
    "signalingstatechange": Event;
    "track": RTCTrackEvent;
}

/** A WebRTC connection between the local computer and a remote peer. It provides methods to connect to a remote peer, maintain and monitor the connection, and close the connection once it's no longer needed. */
interface RTCPeerConnection extends EventTarget {
    readonly canTrickleIceCandidates: boolean | null;
    readonly connectionState: RTCPeerConnectionState;
    readonly currentLocalDescription: RTCSessionDescription | null;
    readonly currentRemoteDescription: RTCSessionDescription | null;
    readonly iceConnectionState: RTCIceConnectionState;
    readonly iceGatheringState: RTCIceGatheringState;
    readonly localDescription: RTCSessionDescription | null;
    onconnectionstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
    ondatachannel: ((this: RTCPeerConnection, ev: RTCDataChannelEvent) => any) | null;
    onicecandidate: ((this: RTCPeerConnection, ev: RTCPeerConnectionIceEvent) => any) | null;
    onicecandidateerror: ((this: RTCPeerConnection, ev: Event) => any) | null;
    oniceconnectionstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
    onicegatheringstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
    onnegotiationneeded: ((this: RTCPeerConnection, ev: Event) => any) | null;
    onsignalingstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
    ontrack: ((this: RTCPeerConnection, ev: RTCTrackEvent) => any) | null;
    readonly pendingLocalDescription: RTCSessionDescription | null;
    readonly pendingRemoteDescription: RTCSessionDescription | null;
    readonly remoteDescription: RTCSessionDescription | null;
    readonly sctp: RTCSctpTransport | null;
    readonly signalingState: RTCSignalingState;
    addIceCandidate(candidate?: RTCIceCandidateInit): Promise<void>;
    /** @deprecated */
    addIceCandidate(candidate: RTCIceCandidateInit, successCallback: VoidFunction, failureCallback: RTCPeerConnectionErrorCallback): Promise<void>;
    addTrack(track: MediaStreamTrack, ...streams: MediaStream[]): RTCRtpSender;
    addTransceiver(trackOrKind: MediaStreamTrack | string, init?: RTCRtpTransceiverInit): RTCRtpTransceiver;
    close(): void;
    createAnswer(options?: RTCAnswerOptions): Promise<RTCSessionDescriptionInit>;
    /** @deprecated */
    createAnswer(successCallback: RTCSessionDescriptionCallback, failureCallback: RTCPeerConnectionErrorCallback): Promise<void>;
    createDataChannel(label: string, dataChannelDict?: RTCDataChannelInit): RTCDataChannel;
    createOffer(options?: RTCOfferOptions): Promise<RTCSessionDescriptionInit>;
    /** @deprecated */
    createOffer(successCallback: RTCSessionDescriptionCallback, failureCallback: RTCPeerConnectionErrorCallback, options?: RTCOfferOptions): Promise<void>;
    getConfiguration(): RTCConfiguration;
    getReceivers(): RTCRtpReceiver[];
    getSenders(): RTCRtpSender[];
    getStats(selector?: MediaStreamTrack | null): Promise<RTCStatsReport>;
    getTransceivers(): RTCRtpTransceiver[];
    removeTrack(sender: RTCRtpSender): void;
    restartIce(): void;
    setConfiguration(configuration?: RTCConfiguration): void;
    setLocalDescription(description?: RTCLocalSessionDescriptionInit): Promise<void>;
    /** @deprecated */
    setLocalDescription(description: RTCLocalSessionDescriptionInit, successCallback: VoidFunction, failureCallback: RTCPeerConnectionErrorCallback): Promise<void>;
    setRemoteDescription(description: RTCSessionDescriptionInit): Promise<void>;
    /** @deprecated */
    setRemoteDescription(description: RTCSessionDescriptionInit, successCallback: VoidFunction, failureCallback: RTCPeerConnectionErrorCallback): Promise<void>;
    addEventListener<K extends keyof RTCPeerConnectionEventMap>(type: K, listener: (this: RTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof RTCPeerConnectionEventMap>(type: K, listener: (this: RTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var RTCPeerConnection: {
    prototype: RTCPeerConnection;
    new(configuration?: RTCConfiguration): RTCPeerConnection;
    generateCertificate(keygenAlgorithm: AlgorithmIdentifier): Promise<RTCCertificate>;
};

interface RTCPeerConnectionIceErrorEvent extends Event {
    readonly address: string | null;
    readonly errorCode: number;
    readonly errorText: string;
    readonly port: number | null;
    readonly url: string;
}

declare var RTCPeerConnectionIceErrorEvent: {
    prototype: RTCPeerConnectionIceErrorEvent;
    new(type: string, eventInitDict: RTCPeerConnectionIceErrorEventInit): RTCPeerConnectionIceErrorEvent;
};

/** Events that occurs in relation to ICE candidates with the target, usually an RTCPeerConnection. Only one event is of this type: icecandidate. */
interface RTCPeerConnectionIceEvent extends Event {
    readonly candidate: RTCIceCandidate | null;
}

declare var RTCPeerConnectionIceEvent: {
    prototype: RTCPeerConnectionIceEvent;
    new(type: string, eventInitDict?: RTCPeerConnectionIceEventInit): RTCPeerConnectionIceEvent;
};

/** This WebRTC API interface manages the reception and decoding of data for a MediaStreamTrack on an RTCPeerConnection. */
interface RTCRtpReceiver {
    readonly track: MediaStreamTrack;
    readonly transport: RTCDtlsTransport | null;
    getContributingSources(): RTCRtpContributingSource[];
    getParameters(): RTCRtpReceiveParameters;
    getStats(): Promise<RTCStatsReport>;
    getSynchronizationSources(): RTCRtpSynchronizationSource[];
}

declare var RTCRtpReceiver: {
    prototype: RTCRtpReceiver;
    new(): RTCRtpReceiver;
    getCapabilities(kind: string): RTCRtpCapabilities | null;
};

/** Provides the ability to control and obtain details about how a particular MediaStreamTrack is encoded and sent to a remote peer. */
interface RTCRtpSender {
    readonly dtmf: RTCDTMFSender | null;
    readonly track: MediaStreamTrack | null;
    readonly transport: RTCDtlsTransport | null;
    getParameters(): RTCRtpSendParameters;
    getStats(): Promise<RTCStatsReport>;
    replaceTrack(withTrack: MediaStreamTrack | null): Promise<void>;
    setParameters(parameters: RTCRtpSendParameters): Promise<void>;
    setStreams(...streams: MediaStream[]): void;
}

declare var RTCRtpSender: {
    prototype: RTCRtpSender;
    new(): RTCRtpSender;
    getCapabilities(kind: string): RTCRtpCapabilities | null;
};

interface RTCRtpTransceiver {
    readonly currentDirection: RTCRtpTransceiverDirection | null;
    direction: RTCRtpTransceiverDirection;
    readonly mid: string | null;
    readonly receiver: RTCRtpReceiver;
    readonly sender: RTCRtpSender;
    setCodecPreferences(codecs: RTCRtpCodecCapability[]): void;
    stop(): void;
}

declare var RTCRtpTransceiver: {
    prototype: RTCRtpTransceiver;
    new(): RTCRtpTransceiver;
};

interface RTCSctpTransportEventMap {
    "statechange": Event;
}

interface RTCSctpTransport extends EventTarget {
    readonly maxChannels: number | null;
    readonly maxMessageSize: number;
    onstatechange: ((this: RTCSctpTransport, ev: Event) => any) | null;
    readonly state: RTCSctpTransportState;
    readonly transport: RTCDtlsTransport;
    addEventListener<K extends keyof RTCSctpTransportEventMap>(type: K, listener: (this: RTCSctpTransport, ev: RTCSctpTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof RTCSctpTransportEventMap>(type: K, listener: (this: RTCSctpTransport, ev: RTCSctpTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var RTCSctpTransport: {
    prototype: RTCSctpTransport;
    new(): RTCSctpTransport;
};

/** One end of a connection—or potential connection—and how it's configured. Each RTCSessionDescription consists of a description type indicating which part of the offer/answer negotiation process it describes and of the SDP descriptor of the session. */
interface RTCSessionDescription {
    readonly sdp: string;
    readonly type: RTCSdpType;
    toJSON(): any;
}

declare var RTCSessionDescription: {
    prototype: RTCSessionDescription;
    new(descriptionInitDict: RTCSessionDescriptionInit): RTCSessionDescription;
};

interface RTCStatsReport {
    forEach(callbackfn: (value: any, key: string, parent: RTCStatsReport) => void, thisArg?: any): void;
}

declare var RTCStatsReport: {
    prototype: RTCStatsReport;
    new(): RTCStatsReport;
};

interface RTCTrackEvent extends Event {
    readonly receiver: RTCRtpReceiver;
    readonly streams: ReadonlyArray<MediaStream>;
    readonly track: MediaStreamTrack;
    readonly transceiver: RTCRtpTransceiver;
}

declare var RTCTrackEvent: {
    prototype: RTCTrackEvent;
    new(type: string, eventInitDict: RTCTrackEventInit): RTCTrackEvent;
};

interface RadioNodeList extends NodeList {
    value: string;
}

declare var RadioNodeList: {
    prototype: RadioNodeList;
    new(): RadioNodeList;
};

/** A fragment of a document that can contain nodes and parts of text nodes. */
interface Range extends AbstractRange {
    /** Returns the node, furthest away from the document, that is an ancestor of both range's start node and end node. */
    readonly commonAncestorContainer: Node;
    cloneContents(): DocumentFragment;
    cloneRange(): Range;
    collapse(toStart?: boolean): void;
    compareBoundaryPoints(how: number, sourceRange: Range): number;
    /** Returns −1 if the point is before the range, 0 if the point is in the range, and 1 if the point is after the range. */
    comparePoint(node: Node, offset: number): number;
    createContextualFragment(fragment: string): DocumentFragment;
    deleteContents(): void;
    detach(): void;
    extractContents(): DocumentFragment;
    getBoundingClientRect(): DOMRect;
    getClientRects(): DOMRectList;
    insertNode(node: Node): void;
    /** Returns whether range intersects node. */
    intersectsNode(node: Node): boolean;
    isPointInRange(node: Node, offset: number): boolean;
    selectNode(node: Node): void;
    selectNodeContents(node: Node): void;
    setEnd(node: Node, offset: number): void;
    setEndAfter(node: Node): void;
    setEndBefore(node: Node): void;
    setStart(node: Node, offset: number): void;
    setStartAfter(node: Node): void;
    setStartBefore(node: Node): void;
    surroundContents(newParent: Node): void;
    toString(): string;
    readonly START_TO_START: 0;
    readonly START_TO_END: 1;
    readonly END_TO_END: 2;
    readonly END_TO_START: 3;
}

declare var Range: {
    prototype: Range;
    new(): Range;
    readonly START_TO_START: 0;
    readonly START_TO_END: 1;
    readonly END_TO_END: 2;
    readonly END_TO_START: 3;
    toString(): string;
};

interface ReadableByteStreamController {
    readonly byobRequest: ReadableStreamBYOBRequest | null;
    readonly desiredSize: number | null;
    close(): void;
    enqueue(chunk: ArrayBufferView): void;
    error(e?: any): void;
}

declare var ReadableByteStreamController: {
    prototype: ReadableByteStreamController;
    new(): ReadableByteStreamController;
};

/** This Streams API interface represents a readable stream of byte data. The Fetch API offers a concrete instance of a ReadableStream through the body property of a Response object. */
interface ReadableStream<R = any> {
    readonly locked: boolean;
    cancel(reason?: any): Promise<void>;
    getReader(options: { mode: "byob" }): ReadableStreamBYOBReader;
    getReader(): ReadableStreamDefaultReader<R>;
    getReader(options?: ReadableStreamGetReaderOptions): ReadableStreamReader<R>;
    pipeThrough<T>(transform: ReadableWritablePair<T, R>, options?: StreamPipeOptions): ReadableStream<T>;
    pipeTo(destination: WritableStream<R>, options?: StreamPipeOptions): Promise<void>;
    tee(): [ReadableStream<R>, ReadableStream<R>];
}

declare var ReadableStream: {
    prototype: ReadableStream;
    new(underlyingSource: UnderlyingByteSource, strategy?: { highWaterMark?: number }): ReadableStream<Uint8Array>;
    new<R = any>(underlyingSource: UnderlyingDefaultSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
    new<R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
};

interface ReadableStreamBYOBReader extends ReadableStreamGenericReader {
    read<T extends ArrayBufferView>(view: T): Promise<ReadableStreamReadResult<T>>;
    releaseLock(): void;
}

declare var ReadableStreamBYOBReader: {
    prototype: ReadableStreamBYOBReader;
    new(stream: ReadableStream): ReadableStreamBYOBReader;
};

interface ReadableStreamBYOBRequest {
    readonly view: ArrayBufferView | null;
    respond(bytesWritten: number): void;
    respondWithNewView(view: ArrayBufferView): void;
}

declare var ReadableStreamBYOBRequest: {
    prototype: ReadableStreamBYOBRequest;
    new(): ReadableStreamBYOBRequest;
};

interface ReadableStreamDefaultController<R = any> {
    readonly desiredSize: number | null;
    close(): void;
    enqueue(chunk?: R): void;
    error(e?: any): void;
}

declare var ReadableStreamDefaultController: {
    prototype: ReadableStreamDefaultController;
    new(): ReadableStreamDefaultController;
};

interface ReadableStreamDefaultReader<R = any> extends ReadableStreamGenericReader {
    read(): Promise<ReadableStreamReadResult<R>>;
    releaseLock(): void;
}

declare var ReadableStreamDefaultReader: {
    prototype: ReadableStreamDefaultReader;
    new<R = any>(stream: ReadableStream<R>): ReadableStreamDefaultReader<R>;
};

interface ReadableStreamGenericReader {
    readonly closed: Promise<undefined>;
    cancel(reason?: any): Promise<void>;
}

interface RemotePlaybackEventMap {
    "connect": Event;
    "connecting": Event;
    "disconnect": Event;
}

interface RemotePlayback extends EventTarget {
    onconnect: ((this: RemotePlayback, ev: Event) => any) | null;
    onconnecting: ((this: RemotePlayback, ev: Event) => any) | null;
    ondisconnect: ((this: RemotePlayback, ev: Event) => any) | null;
    readonly state: RemotePlaybackState;
    cancelWatchAvailability(id?: number): Promise<void>;
    prompt(): Promise<void>;
    watchAvailability(callback: RemotePlaybackAvailabilityCallback): Promise<number>;
    addEventListener<K extends keyof RemotePlaybackEventMap>(type: K, listener: (this: RemotePlayback, ev: RemotePlaybackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof RemotePlaybackEventMap>(type: K, listener: (this: RemotePlayback, ev: RemotePlaybackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var RemotePlayback: {
    prototype: RemotePlayback;
    new(): RemotePlayback;
};

/** This Fetch API interface represents a resource request. */
interface Request extends Body {
    /** Returns the cache mode associated with request, which is a string indicating how the request will interact with the browser's cache when fetching. */
    readonly cache: RequestCache;
    /** Returns the credentials mode associated with request, which is a string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL. */
    readonly credentials: RequestCredentials;
    /** Returns the kind of resource requested by request, e.g., "document" or "script". */
    readonly destination: RequestDestination;
    /** Returns a Headers object consisting of the headers associated with request. Note that headers added in the network layer by the user agent will not be accounted for in this object, e.g., the "Host" header. */
    readonly headers: Headers;
    /** Returns request's subresource integrity metadata, which is a cryptographic hash of the resource being fetched. Its value consists of multiple hashes separated by whitespace. [SRI] */
    readonly integrity: string;
    /** Returns a boolean indicating whether or not request can outlive the global in which it was created. */
    readonly keepalive: boolean;
    /** Returns request's HTTP method, which is "GET" by default. */
    readonly method: string;
    /** Returns the mode associated with request, which is a string indicating whether the request will use CORS, or will be restricted to same-origin URLs. */
    readonly mode: RequestMode;
    /** Returns the redirect mode associated with request, which is a string indicating how redirects for the request will be handled during fetching. A request will follow redirects by default. */
    readonly redirect: RequestRedirect;
    /** Returns the referrer of request. Its value can be a same-origin URL if explicitly set in init, the empty string to indicate no referrer, and "about:client" when defaulting to the global's default. This is used during fetching to determine the value of the \`Referer\` header of the request being made. */
    readonly referrer: string;
    /** Returns the referrer policy associated with request. This is used during fetching to compute the value of the request's referrer. */
    readonly referrerPolicy: ReferrerPolicy;
    /** Returns the signal associated with request, which is an AbortSignal object indicating whether or not request has been aborted, and its abort event handler. */
    readonly signal: AbortSignal;
    /** Returns the URL of request as a string. */
    readonly url: string;
    clone(): Request;
}

declare var Request: {
    prototype: Request;
    new(input: RequestInfo | URL, init?: RequestInit): Request;
};

interface ResizeObserver {
    disconnect(): void;
    observe(target: Element, options?: ResizeObserverOptions): void;
    unobserve(target: Element): void;
}

declare var ResizeObserver: {
    prototype: ResizeObserver;
    new(callback: ResizeObserverCallback): ResizeObserver;
};

interface ResizeObserverEntry {
    readonly borderBoxSize: ReadonlyArray<ResizeObserverSize>;
    readonly contentBoxSize: ReadonlyArray<ResizeObserverSize>;
    readonly contentRect: DOMRectReadOnly;
    readonly devicePixelContentBoxSize: ReadonlyArray<ResizeObserverSize>;
    readonly target: Element;
}

declare var ResizeObserverEntry: {
    prototype: ResizeObserverEntry;
    new(): ResizeObserverEntry;
};

interface ResizeObserverSize {
    readonly blockSize: number;
    readonly inlineSize: number;
}

declare var ResizeObserverSize: {
    prototype: ResizeObserverSize;
    new(): ResizeObserverSize;
};

/** This Fetch API interface represents the response to a request. */
interface Response extends Body {
    readonly headers: Headers;
    readonly ok: boolean;
    readonly redirected: boolean;
    readonly status: number;
    readonly statusText: string;
    readonly type: ResponseType;
    readonly url: string;
    clone(): Response;
}

declare var Response: {
    prototype: Response;
    new(body?: BodyInit | null, init?: ResponseInit): Response;
    error(): Response;
    redirect(url: string | URL, status?: number): Response;
};

/** Provides access to the properties of <a> element, as well as methods to manipulate them. */
interface SVGAElement extends SVGGraphicsElement, SVGURIReference {
    rel: string;
    readonly relList: DOMTokenList;
    readonly target: SVGAnimatedString;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGAElement: {
    prototype: SVGAElement;
    new(): SVGAElement;
};

/** Used to represent a value that can be an <angle> or <number> value. An SVGAngle reflected through the animVal attribute is always read only. */
interface SVGAngle {
    readonly unitType: number;
    value: number;
    valueAsString: string;
    valueInSpecifiedUnits: number;
    convertToSpecifiedUnits(unitType: number): void;
    newValueSpecifiedUnits(unitType: number, valueInSpecifiedUnits: number): void;
    readonly SVG_ANGLETYPE_UNKNOWN: 0;
    readonly SVG_ANGLETYPE_UNSPECIFIED: 1;
    readonly SVG_ANGLETYPE_DEG: 2;
    readonly SVG_ANGLETYPE_RAD: 3;
    readonly SVG_ANGLETYPE_GRAD: 4;
}

declare var SVGAngle: {
    prototype: SVGAngle;
    new(): SVGAngle;
    readonly SVG_ANGLETYPE_UNKNOWN: 0;
    readonly SVG_ANGLETYPE_UNSPECIFIED: 1;
    readonly SVG_ANGLETYPE_DEG: 2;
    readonly SVG_ANGLETYPE_RAD: 3;
    readonly SVG_ANGLETYPE_GRAD: 4;
};

interface SVGAnimateElement extends SVGAnimationElement {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGAnimateElement: {
    prototype: SVGAnimateElement;
    new(): SVGAnimateElement;
};

interface SVGAnimateMotionElement extends SVGAnimationElement {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateMotionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateMotionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGAnimateMotionElement: {
    prototype: SVGAnimateMotionElement;
    new(): SVGAnimateMotionElement;
};

interface SVGAnimateTransformElement extends SVGAnimationElement {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateTransformElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateTransformElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGAnimateTransformElement: {
    prototype: SVGAnimateTransformElement;
    new(): SVGAnimateTransformElement;
};

/** Used for attributes of basic type <angle> which can be animated. */
interface SVGAnimatedAngle {
    readonly animVal: SVGAngle;
    readonly baseVal: SVGAngle;
}

declare var SVGAnimatedAngle: {
    prototype: SVGAnimatedAngle;
    new(): SVGAnimatedAngle;
};

/** Used for attributes of type boolean which can be animated. */
interface SVGAnimatedBoolean {
    readonly animVal: boolean;
    baseVal: boolean;
}

declare var SVGAnimatedBoolean: {
    prototype: SVGAnimatedBoolean;
    new(): SVGAnimatedBoolean;
};

/** Used for attributes whose value must be a constant from a particular enumeration and which can be animated. */
interface SVGAnimatedEnumeration {
    readonly animVal: number;
    baseVal: number;
}

declare var SVGAnimatedEnumeration: {
    prototype: SVGAnimatedEnumeration;
    new(): SVGAnimatedEnumeration;
};

/** Used for attributes of basic type <integer> which can be animated. */
interface SVGAnimatedInteger {
    readonly animVal: number;
    baseVal: number;
}

declare var SVGAnimatedInteger: {
    prototype: SVGAnimatedInteger;
    new(): SVGAnimatedInteger;
};

/** Used for attributes of basic type <length> which can be animated. */
interface SVGAnimatedLength {
    readonly animVal: SVGLength;
    readonly baseVal: SVGLength;
}

declare var SVGAnimatedLength: {
    prototype: SVGAnimatedLength;
    new(): SVGAnimatedLength;
};

/** Used for attributes of type SVGLengthList which can be animated. */
interface SVGAnimatedLengthList {
    readonly animVal: SVGLengthList;
    readonly baseVal: SVGLengthList;
}

declare var SVGAnimatedLengthList: {
    prototype: SVGAnimatedLengthList;
    new(): SVGAnimatedLengthList;
};

/** Used for attributes of basic type <Number> which can be animated. */
interface SVGAnimatedNumber {
    readonly animVal: number;
    baseVal: number;
}

declare var SVGAnimatedNumber: {
    prototype: SVGAnimatedNumber;
    new(): SVGAnimatedNumber;
};

/** The SVGAnimatedNumber interface is used for attributes which take a list of numbers and which can be animated. */
interface SVGAnimatedNumberList {
    readonly animVal: SVGNumberList;
    readonly baseVal: SVGNumberList;
}

declare var SVGAnimatedNumberList: {
    prototype: SVGAnimatedNumberList;
    new(): SVGAnimatedNumberList;
};

interface SVGAnimatedPoints {
    readonly animatedPoints: SVGPointList;
    readonly points: SVGPointList;
}

/** Used for attributes of type SVGPreserveAspectRatio which can be animated. */
interface SVGAnimatedPreserveAspectRatio {
    readonly animVal: SVGPreserveAspectRatio;
    readonly baseVal: SVGPreserveAspectRatio;
}

declare var SVGAnimatedPreserveAspectRatio: {
    prototype: SVGAnimatedPreserveAspectRatio;
    new(): SVGAnimatedPreserveAspectRatio;
};

/** Used for attributes of basic SVGRect which can be animated. */
interface SVGAnimatedRect {
    readonly animVal: DOMRectReadOnly;
    readonly baseVal: DOMRect;
}

declare var SVGAnimatedRect: {
    prototype: SVGAnimatedRect;
    new(): SVGAnimatedRect;
};

/** The SVGAnimatedString interface represents string attributes which can be animated from each SVG declaration. You need to create SVG attribute before doing anything else, everything should be declared inside this. */
interface SVGAnimatedString {
    readonly animVal: string;
    baseVal: string;
}

declare var SVGAnimatedString: {
    prototype: SVGAnimatedString;
    new(): SVGAnimatedString;
};

/** Used for attributes which take a list of numbers and which can be animated. */
interface SVGAnimatedTransformList {
    readonly animVal: SVGTransformList;
    readonly baseVal: SVGTransformList;
}

declare var SVGAnimatedTransformList: {
    prototype: SVGAnimatedTransformList;
    new(): SVGAnimatedTransformList;
};

interface SVGAnimationElement extends SVGElement, SVGTests {
    readonly targetElement: SVGElement | null;
    beginElement(): void;
    beginElementAt(offset: number): void;
    endElement(): void;
    endElementAt(offset: number): void;
    getCurrentTime(): number;
    getSimpleDuration(): number;
    getStartTime(): number;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimationElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimationElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGAnimationElement: {
    prototype: SVGAnimationElement;
    new(): SVGAnimationElement;
};

/** An interface for the <circle> element. The circle element is defined by the cx and cy attributes that denote the coordinates of the centre of the circle. */
interface SVGCircleElement extends SVGGeometryElement {
    readonly cx: SVGAnimatedLength;
    readonly cy: SVGAnimatedLength;
    readonly r: SVGAnimatedLength;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGCircleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGCircleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGCircleElement: {
    prototype: SVGCircleElement;
    new(): SVGCircleElement;
};

/** Provides access to the properties of <clipPath> elements, as well as methods to manipulate them. */
interface SVGClipPathElement extends SVGElement {
    readonly clipPathUnits: SVGAnimatedEnumeration;
    readonly transform: SVGAnimatedTransformList;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGClipPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGClipPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGClipPathElement: {
    prototype: SVGClipPathElement;
    new(): SVGClipPathElement;
};

/** A base interface used by the component transfer function interfaces. */
interface SVGComponentTransferFunctionElement extends SVGElement {
    readonly amplitude: SVGAnimatedNumber;
    readonly exponent: SVGAnimatedNumber;
    readonly intercept: SVGAnimatedNumber;
    readonly offset: SVGAnimatedNumber;
    readonly slope: SVGAnimatedNumber;
    readonly tableValues: SVGAnimatedNumberList;
    readonly type: SVGAnimatedEnumeration;
    readonly SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN: 0;
    readonly SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY: 1;
    readonly SVG_FECOMPONENTTRANSFER_TYPE_TABLE: 2;
    readonly SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE: 3;
    readonly SVG_FECOMPONENTTRANSFER_TYPE_LINEAR: 4;
    readonly SVG_FECOMPONENTTRANSFER_TYPE_GAMMA: 5;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGComponentTransferFunctionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGComponentTransferFunctionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGComponentTransferFunctionElement: {
    prototype: SVGComponentTransferFunctionElement;
    new(): SVGComponentTransferFunctionElement;
    readonly SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN: 0;
    readonly SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY: 1;
    readonly SVG_FECOMPONENTTRANSFER_TYPE_TABLE: 2;
    readonly SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE: 3;
    readonly SVG_FECOMPONENTTRANSFER_TYPE_LINEAR: 4;
    readonly SVG_FECOMPONENTTRANSFER_TYPE_GAMMA: 5;
};

/** Corresponds to the <defs> element. */
interface SVGDefsElement extends SVGGraphicsElement {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDefsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDefsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGDefsElement: {
    prototype: SVGDefsElement;
    new(): SVGDefsElement;
};

/** Corresponds to the <desc> element. */
interface SVGDescElement extends SVGElement {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDescElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDescElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGDescElement: {
    prototype: SVGDescElement;
    new(): SVGDescElement;
};

interface SVGElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap {
}

/** All of the SVG DOM interfaces that correspond directly to elements in the SVG language derive from the SVGElement interface. */
interface SVGElement extends Element, ElementCSSInlineStyle, GlobalEventHandlers, HTMLOrSVGElement {
    /** @deprecated */
    readonly className: any;
    readonly ownerSVGElement: SVGSVGElement | null;
    readonly viewportElement: SVGElement | null;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGElement: {
    prototype: SVGElement;
    new(): SVGElement;
};

/** Provides access to the properties of <ellipse> elements. */
interface SVGEllipseElement extends SVGGeometryElement {
    readonly cx: SVGAnimatedLength;
    readonly cy: SVGAnimatedLength;
    readonly rx: SVGAnimatedLength;
    readonly ry: SVGAnimatedLength;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGEllipseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGEllipseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGEllipseElement: {
    prototype: SVGEllipseElement;
    new(): SVGEllipseElement;
};

/** Corresponds to the <feBlend> element. */
interface SVGFEBlendElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
    readonly in1: SVGAnimatedString;
    readonly in2: SVGAnimatedString;
    readonly mode: SVGAnimatedEnumeration;
    readonly SVG_FEBLEND_MODE_UNKNOWN: 0;
    readonly SVG_FEBLEND_MODE_NORMAL: 1;
    readonly SVG_FEBLEND_MODE_MULTIPLY: 2;
    readonly SVG_FEBLEND_MODE_SCREEN: 3;
    readonly SVG_FEBLEND_MODE_DARKEN: 4;
    readonly SVG_FEBLEND_MODE_LIGHTEN: 5;
    readonly SVG_FEBLEND_MODE_OVERLAY: 6;
    readonly SVG_FEBLEND_MODE_COLOR_DODGE: 7;
    readonly SVG_FEBLEND_MODE_COLOR_BURN: 8;
    readonly SVG_FEBLEND_MODE_HARD_LIGHT: 9;
    readonly SVG_FEBLEND_MODE_SOFT_LIGHT: 10;
    readonly SVG_FEBLEND_MODE_DIFFERENCE: 11;
    readonly SVG_FEBLEND_MODE_EXCLUSION: 12;
    readonly SVG_FEBLEND_MODE_HUE: 13;
    readonly SVG_FEBLEND_MODE_SATURATION: 14;
    readonly SVG_FEBLEND_MODE_COLOR: 15;
    readonly SVG_FEBLEND_MODE_LUMINOSITY: 16;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEBlendElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEBlendElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEBlendElement: {
    prototype: SVGFEBlendElement;
    new(): SVGFEBlendElement;
    readonly SVG_FEBLEND_MODE_UNKNOWN: 0;
    readonly SVG_FEBLEND_MODE_NORMAL: 1;
    readonly SVG_FEBLEND_MODE_MULTIPLY: 2;
    readonly SVG_FEBLEND_MODE_SCREEN: 3;
    readonly SVG_FEBLEND_MODE_DARKEN: 4;
    readonly SVG_FEBLEND_MODE_LIGHTEN: 5;
    readonly SVG_FEBLEND_MODE_OVERLAY: 6;
    readonly SVG_FEBLEND_MODE_COLOR_DODGE: 7;
    readonly SVG_FEBLEND_MODE_COLOR_BURN: 8;
    readonly SVG_FEBLEND_MODE_HARD_LIGHT: 9;
    readonly SVG_FEBLEND_MODE_SOFT_LIGHT: 10;
    readonly SVG_FEBLEND_MODE_DIFFERENCE: 11;
    readonly SVG_FEBLEND_MODE_EXCLUSION: 12;
    readonly SVG_FEBLEND_MODE_HUE: 13;
    readonly SVG_FEBLEND_MODE_SATURATION: 14;
    readonly SVG_FEBLEND_MODE_COLOR: 15;
    readonly SVG_FEBLEND_MODE_LUMINOSITY: 16;
};

/** Corresponds to the <feColorMatrix> element. */
interface SVGFEColorMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
    readonly in1: SVGAnimatedString;
    readonly type: SVGAnimatedEnumeration;
    readonly values: SVGAnimatedNumberList;
    readonly SVG_FECOLORMATRIX_TYPE_UNKNOWN: 0;
    readonly SVG_FECOLORMATRIX_TYPE_MATRIX: 1;
    readonly SVG_FECOLORMATRIX_TYPE_SATURATE: 2;
    readonly SVG_FECOLORMATRIX_TYPE_HUEROTATE: 3;
    readonly SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: 4;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEColorMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEColorMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEColorMatrixElement: {
    prototype: SVGFEColorMatrixElement;
    new(): SVGFEColorMatrixElement;
    readonly SVG_FECOLORMATRIX_TYPE_UNKNOWN: 0;
    readonly SVG_FECOLORMATRIX_TYPE_MATRIX: 1;
    readonly SVG_FECOLORMATRIX_TYPE_SATURATE: 2;
    readonly SVG_FECOLORMATRIX_TYPE_HUEROTATE: 3;
    readonly SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: 4;
};

/** Corresponds to the <feComponentTransfer> element. */
interface SVGFEComponentTransferElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
    readonly in1: SVGAnimatedString;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEComponentTransferElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEComponentTransferElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEComponentTransferElement: {
    prototype: SVGFEComponentTransferElement;
    new(): SVGFEComponentTransferElement;
};

/** Corresponds to the <feComposite> element. */
interface SVGFECompositeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
    readonly in1: SVGAnimatedString;
    readonly in2: SVGAnimatedString;
    readonly k1: SVGAnimatedNumber;
    readonly k2: SVGAnimatedNumber;
    readonly k3: SVGAnimatedNumber;
    readonly k4: SVGAnimatedNumber;
    readonly operator: SVGAnimatedEnumeration;
    readonly SVG_FECOMPOSITE_OPERATOR_UNKNOWN: 0;
    readonly SVG_FECOMPOSITE_OPERATOR_OVER: 1;
    readonly SVG_FECOMPOSITE_OPERATOR_IN: 2;
    readonly SVG_FECOMPOSITE_OPERATOR_OUT: 3;
    readonly SVG_FECOMPOSITE_OPERATOR_ATOP: 4;
    readonly SVG_FECOMPOSITE_OPERATOR_XOR: 5;
    readonly SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: 6;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFECompositeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFECompositeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFECompositeElement: {
    prototype: SVGFECompositeElement;
    new(): SVGFECompositeElement;
    readonly SVG_FECOMPOSITE_OPERATOR_UNKNOWN: 0;
    readonly SVG_FECOMPOSITE_OPERATOR_OVER: 1;
    readonly SVG_FECOMPOSITE_OPERATOR_IN: 2;
    readonly SVG_FECOMPOSITE_OPERATOR_OUT: 3;
    readonly SVG_FECOMPOSITE_OPERATOR_ATOP: 4;
    readonly SVG_FECOMPOSITE_OPERATOR_XOR: 5;
    readonly SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: 6;
};

/** Corresponds to the <feConvolveMatrix> element. */
interface SVGFEConvolveMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
    readonly bias: SVGAnimatedNumber;
    readonly divisor: SVGAnimatedNumber;
    readonly edgeMode: SVGAnimatedEnumeration;
    readonly in1: SVGAnimatedString;
    readonly kernelMatrix: SVGAnimatedNumberList;
    readonly kernelUnitLengthX: SVGAnimatedNumber;
    readonly kernelUnitLengthY: SVGAnimatedNumber;
    readonly orderX: SVGAnimatedInteger;
    readonly orderY: SVGAnimatedInteger;
    readonly preserveAlpha: SVGAnimatedBoolean;
    readonly targetX: SVGAnimatedInteger;
    readonly targetY: SVGAnimatedInteger;
    readonly SVG_EDGEMODE_UNKNOWN: 0;
    readonly SVG_EDGEMODE_DUPLICATE: 1;
    readonly SVG_EDGEMODE_WRAP: 2;
    readonly SVG_EDGEMODE_NONE: 3;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEConvolveMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEConvolveMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEConvolveMatrixElement: {
    prototype: SVGFEConvolveMatrixElement;
    new(): SVGFEConvolveMatrixElement;
    readonly SVG_EDGEMODE_UNKNOWN: 0;
    readonly SVG_EDGEMODE_DUPLICATE: 1;
    readonly SVG_EDGEMODE_WRAP: 2;
    readonly SVG_EDGEMODE_NONE: 3;
};

/** Corresponds to the <feDiffuseLighting> element. */
interface SVGFEDiffuseLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
    readonly diffuseConstant: SVGAnimatedNumber;
    readonly in1: SVGAnimatedString;
    readonly kernelUnitLengthX: SVGAnimatedNumber;
    readonly kernelUnitLengthY: SVGAnimatedNumber;
    readonly surfaceScale: SVGAnimatedNumber;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDiffuseLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDiffuseLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEDiffuseLightingElement: {
    prototype: SVGFEDiffuseLightingElement;
    new(): SVGFEDiffuseLightingElement;
};

/** Corresponds to the <feDisplacementMap> element. */
interface SVGFEDisplacementMapElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
    readonly in1: SVGAnimatedString;
    readonly in2: SVGAnimatedString;
    readonly scale: SVGAnimatedNumber;
    readonly xChannelSelector: SVGAnimatedEnumeration;
    readonly yChannelSelector: SVGAnimatedEnumeration;
    readonly SVG_CHANNEL_UNKNOWN: 0;
    readonly SVG_CHANNEL_R: 1;
    readonly SVG_CHANNEL_G: 2;
    readonly SVG_CHANNEL_B: 3;
    readonly SVG_CHANNEL_A: 4;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDisplacementMapElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDisplacementMapElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEDisplacementMapElement: {
    prototype: SVGFEDisplacementMapElement;
    new(): SVGFEDisplacementMapElement;
    readonly SVG_CHANNEL_UNKNOWN: 0;
    readonly SVG_CHANNEL_R: 1;
    readonly SVG_CHANNEL_G: 2;
    readonly SVG_CHANNEL_B: 3;
    readonly SVG_CHANNEL_A: 4;
};

/** Corresponds to the <feDistantLight> element. */
interface SVGFEDistantLightElement extends SVGElement {
    readonly azimuth: SVGAnimatedNumber;
    readonly elevation: SVGAnimatedNumber;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDistantLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDistantLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEDistantLightElement: {
    prototype: SVGFEDistantLightElement;
    new(): SVGFEDistantLightElement;
};

interface SVGFEDropShadowElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
    readonly dx: SVGAnimatedNumber;
    readonly dy: SVGAnimatedNumber;
    readonly in1: SVGAnimatedString;
    readonly stdDeviationX: SVGAnimatedNumber;
    readonly stdDeviationY: SVGAnimatedNumber;
    setStdDeviation(stdDeviationX: number, stdDeviationY: number): void;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDropShadowElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDropShadowElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEDropShadowElement: {
    prototype: SVGFEDropShadowElement;
    new(): SVGFEDropShadowElement;
};

/** Corresponds to the <feFlood> element. */
interface SVGFEFloodElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFloodElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFloodElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEFloodElement: {
    prototype: SVGFEFloodElement;
    new(): SVGFEFloodElement;
};

/** Corresponds to the <feFuncA> element. */
interface SVGFEFuncAElement extends SVGComponentTransferFunctionElement {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEFuncAElement: {
    prototype: SVGFEFuncAElement;
    new(): SVGFEFuncAElement;
};

/** Corresponds to the <feFuncB> element. */
interface SVGFEFuncBElement extends SVGComponentTransferFunctionElement {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncBElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncBElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEFuncBElement: {
    prototype: SVGFEFuncBElement;
    new(): SVGFEFuncBElement;
};

/** Corresponds to the <feFuncG> element. */
interface SVGFEFuncGElement extends SVGComponentTransferFunctionElement {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEFuncGElement: {
    prototype: SVGFEFuncGElement;
    new(): SVGFEFuncGElement;
};

/** Corresponds to the <feFuncR> element. */
interface SVGFEFuncRElement extends SVGComponentTransferFunctionElement {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncRElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncRElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEFuncRElement: {
    prototype: SVGFEFuncRElement;
    new(): SVGFEFuncRElement;
};

/** Corresponds to the <feGaussianBlur> element. */
interface SVGFEGaussianBlurElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
    readonly in1: SVGAnimatedString;
    readonly stdDeviationX: SVGAnimatedNumber;
    readonly stdDeviationY: SVGAnimatedNumber;
    setStdDeviation(stdDeviationX: number, stdDeviationY: number): void;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEGaussianBlurElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEGaussianBlurElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEGaussianBlurElement: {
    prototype: SVGFEGaussianBlurElement;
    new(): SVGFEGaussianBlurElement;
};

/** Corresponds to the <feImage> element. */
interface SVGFEImageElement extends SVGElement, SVGFilterPrimitiveStandardAttributes, SVGURIReference {
    readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEImageElement: {
    prototype: SVGFEImageElement;
    new(): SVGFEImageElement;
};

/** Corresponds to the <feMerge> element. */
interface SVGFEMergeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEMergeElement: {
    prototype: SVGFEMergeElement;
    new(): SVGFEMergeElement;
};

/** Corresponds to the <feMergeNode> element. */
interface SVGFEMergeNodeElement extends SVGElement {
    readonly in1: SVGAnimatedString;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeNodeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeNodeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEMergeNodeElement: {
    prototype: SVGFEMergeNodeElement;
    new(): SVGFEMergeNodeElement;
};

/** Corresponds to the <feMorphology> element. */
interface SVGFEMorphologyElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
    readonly in1: SVGAnimatedString;
    readonly operator: SVGAnimatedEnumeration;
    readonly radiusX: SVGAnimatedNumber;
    readonly radiusY: SVGAnimatedNumber;
    readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: 0;
    readonly SVG_MORPHOLOGY_OPERATOR_ERODE: 1;
    readonly SVG_MORPHOLOGY_OPERATOR_DILATE: 2;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMorphologyElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMorphologyElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEMorphologyElement: {
    prototype: SVGFEMorphologyElement;
    new(): SVGFEMorphologyElement;
    readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: 0;
    readonly SVG_MORPHOLOGY_OPERATOR_ERODE: 1;
    readonly SVG_MORPHOLOGY_OPERATOR_DILATE: 2;
};

/** Corresponds to the <feOffset> element. */
interface SVGFEOffsetElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
    readonly dx: SVGAnimatedNumber;
    readonly dy: SVGAnimatedNumber;
    readonly in1: SVGAnimatedString;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEOffsetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEOffsetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEOffsetElement: {
    prototype: SVGFEOffsetElement;
    new(): SVGFEOffsetElement;
};

/** Corresponds to the <fePointLight> element. */
interface SVGFEPointLightElement extends SVGElement {
    readonly x: SVGAnimatedNumber;
    readonly y: SVGAnimatedNumber;
    readonly z: SVGAnimatedNumber;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEPointLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEPointLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFEPointLightElement: {
    prototype: SVGFEPointLightElement;
    new(): SVGFEPointLightElement;
};

/** Corresponds to the <feSpecularLighting> element. */
interface SVGFESpecularLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
    readonly in1: SVGAnimatedString;
    readonly kernelUnitLengthX: SVGAnimatedNumber;
    readonly kernelUnitLengthY: SVGAnimatedNumber;
    readonly specularConstant: SVGAnimatedNumber;
    readonly specularExponent: SVGAnimatedNumber;
    readonly surfaceScale: SVGAnimatedNumber;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpecularLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpecularLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFESpecularLightingElement: {
    prototype: SVGFESpecularLightingElement;
    new(): SVGFESpecularLightingElement;
};

/** Corresponds to the <feSpotLight> element. */
interface SVGFESpotLightElement extends SVGElement {
    readonly limitingConeAngle: SVGAnimatedNumber;
    readonly pointsAtX: SVGAnimatedNumber;
    readonly pointsAtY: SVGAnimatedNumber;
    readonly pointsAtZ: SVGAnimatedNumber;
    readonly specularExponent: SVGAnimatedNumber;
    readonly x: SVGAnimatedNumber;
    readonly y: SVGAnimatedNumber;
    readonly z: SVGAnimatedNumber;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpotLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpotLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFESpotLightElement: {
    prototype: SVGFESpotLightElement;
    new(): SVGFESpotLightElement;
};

/** Corresponds to the <feTile> element. */
interface SVGFETileElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
    readonly in1: SVGAnimatedString;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETileElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETileElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFETileElement: {
    prototype: SVGFETileElement;
    new(): SVGFETileElement;
};

/** Corresponds to the <feTurbulence> element. */
interface SVGFETurbulenceElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
    readonly baseFrequencyX: SVGAnimatedNumber;
    readonly baseFrequencyY: SVGAnimatedNumber;
    readonly numOctaves: SVGAnimatedInteger;
    readonly seed: SVGAnimatedNumber;
    readonly stitchTiles: SVGAnimatedEnumeration;
    readonly type: SVGAnimatedEnumeration;
    readonly SVG_TURBULENCE_TYPE_UNKNOWN: 0;
    readonly SVG_TURBULENCE_TYPE_FRACTALNOISE: 1;
    readonly SVG_TURBULENCE_TYPE_TURBULENCE: 2;
    readonly SVG_STITCHTYPE_UNKNOWN: 0;
    readonly SVG_STITCHTYPE_STITCH: 1;
    readonly SVG_STITCHTYPE_NOSTITCH: 2;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETurbulenceElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETurbulenceElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFETurbulenceElement: {
    prototype: SVGFETurbulenceElement;
    new(): SVGFETurbulenceElement;
    readonly SVG_TURBULENCE_TYPE_UNKNOWN: 0;
    readonly SVG_TURBULENCE_TYPE_FRACTALNOISE: 1;
    readonly SVG_TURBULENCE_TYPE_TURBULENCE: 2;
    readonly SVG_STITCHTYPE_UNKNOWN: 0;
    readonly SVG_STITCHTYPE_STITCH: 1;
    readonly SVG_STITCHTYPE_NOSTITCH: 2;
};

/** Provides access to the properties of <filter> elements, as well as methods to manipulate them. */
interface SVGFilterElement extends SVGElement, SVGURIReference {
    readonly filterUnits: SVGAnimatedEnumeration;
    readonly height: SVGAnimatedLength;
    readonly primitiveUnits: SVGAnimatedEnumeration;
    readonly width: SVGAnimatedLength;
    readonly x: SVGAnimatedLength;
    readonly y: SVGAnimatedLength;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFilterElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFilterElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGFilterElement: {
    prototype: SVGFilterElement;
    new(): SVGFilterElement;
};

interface SVGFilterPrimitiveStandardAttributes {
    readonly height: SVGAnimatedLength;
    readonly result: SVGAnimatedString;
    readonly width: SVGAnimatedLength;
    readonly x: SVGAnimatedLength;
    readonly y: SVGAnimatedLength;
}

interface SVGFitToViewBox {
    readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;
    readonly viewBox: SVGAnimatedRect;
}

/** Provides access to the properties of <foreignObject> elements, as well as methods to manipulate them. */
interface SVGForeignObjectElement extends SVGGraphicsElement {
    readonly height: SVGAnimatedLength;
    readonly width: SVGAnimatedLength;
    readonly x: SVGAnimatedLength;
    readonly y: SVGAnimatedLength;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGForeignObjectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGForeignObjectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGForeignObjectElement: {
    prototype: SVGForeignObjectElement;
    new(): SVGForeignObjectElement;
};

/** Corresponds to the <g> element. */
interface SVGGElement extends SVGGraphicsElement {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGGElement: {
    prototype: SVGGElement;
    new(): SVGGElement;
};

interface SVGGeometryElement extends SVGGraphicsElement {
    readonly pathLength: SVGAnimatedNumber;
    getPointAtLength(distance: number): DOMPoint;
    getTotalLength(): number;
    isPointInFill(point?: DOMPointInit): boolean;
    isPointInStroke(point?: DOMPointInit): boolean;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGeometryElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGeometryElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGGeometryElement: {
    prototype: SVGGeometryElement;
    new(): SVGGeometryElement;
};

/** The SVGGradient interface is a base interface used by SVGLinearGradientElement and SVGRadialGradientElement. */
interface SVGGradientElement extends SVGElement, SVGURIReference {
    readonly gradientTransform: SVGAnimatedTransformList;
    readonly gradientUnits: SVGAnimatedEnumeration;
    readonly spreadMethod: SVGAnimatedEnumeration;
    readonly SVG_SPREADMETHOD_UNKNOWN: 0;
    readonly SVG_SPREADMETHOD_PAD: 1;
    readonly SVG_SPREADMETHOD_REFLECT: 2;
    readonly SVG_SPREADMETHOD_REPEAT: 3;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGGradientElement: {
    prototype: SVGGradientElement;
    new(): SVGGradientElement;
    readonly SVG_SPREADMETHOD_UNKNOWN: 0;
    readonly SVG_SPREADMETHOD_PAD: 1;
    readonly SVG_SPREADMETHOD_REFLECT: 2;
    readonly SVG_SPREADMETHOD_REPEAT: 3;
};

/** SVG elements whose primary purpose is to directly render graphics into a group. */
interface SVGGraphicsElement extends SVGElement, SVGTests {
    readonly transform: SVGAnimatedTransformList;
    getBBox(options?: SVGBoundingBoxOptions): DOMRect;
    getCTM(): DOMMatrix | null;
    getScreenCTM(): DOMMatrix | null;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGraphicsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGraphicsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGGraphicsElement: {
    prototype: SVGGraphicsElement;
    new(): SVGGraphicsElement;
};

/** Corresponds to the <image> element. */
interface SVGImageElement extends SVGGraphicsElement, SVGURIReference {
    readonly height: SVGAnimatedLength;
    readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;
    readonly width: SVGAnimatedLength;
    readonly x: SVGAnimatedLength;
    readonly y: SVGAnimatedLength;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGImageElement: {
    prototype: SVGImageElement;
    new(): SVGImageElement;
};

/** Correspond to the <length> basic data type. */
interface SVGLength {
    readonly unitType: number;
    value: number;
    valueAsString: string;
    valueInSpecifiedUnits: number;
    convertToSpecifiedUnits(unitType: number): void;
    newValueSpecifiedUnits(unitType: number, valueInSpecifiedUnits: number): void;
    readonly SVG_LENGTHTYPE_UNKNOWN: 0;
    readonly SVG_LENGTHTYPE_NUMBER: 1;
    readonly SVG_LENGTHTYPE_PERCENTAGE: 2;
    readonly SVG_LENGTHTYPE_EMS: 3;
    readonly SVG_LENGTHTYPE_EXS: 4;
    readonly SVG_LENGTHTYPE_PX: 5;
    readonly SVG_LENGTHTYPE_CM: 6;
    readonly SVG_LENGTHTYPE_MM: 7;
    readonly SVG_LENGTHTYPE_IN: 8;
    readonly SVG_LENGTHTYPE_PT: 9;
    readonly SVG_LENGTHTYPE_PC: 10;
}

declare var SVGLength: {
    prototype: SVGLength;
    new(): SVGLength;
    readonly SVG_LENGTHTYPE_UNKNOWN: 0;
    readonly SVG_LENGTHTYPE_NUMBER: 1;
    readonly SVG_LENGTHTYPE_PERCENTAGE: 2;
    readonly SVG_LENGTHTYPE_EMS: 3;
    readonly SVG_LENGTHTYPE_EXS: 4;
    readonly SVG_LENGTHTYPE_PX: 5;
    readonly SVG_LENGTHTYPE_CM: 6;
    readonly SVG_LENGTHTYPE_MM: 7;
    readonly SVG_LENGTHTYPE_IN: 8;
    readonly SVG_LENGTHTYPE_PT: 9;
    readonly SVG_LENGTHTYPE_PC: 10;
};

/** The SVGLengthList defines a list of SVGLength objects. */
interface SVGLengthList {
    readonly length: number;
    readonly numberOfItems: number;
    appendItem(newItem: SVGLength): SVGLength;
    clear(): void;
    getItem(index: number): SVGLength;
    initialize(newItem: SVGLength): SVGLength;
    insertItemBefore(newItem: SVGLength, index: number): SVGLength;
    removeItem(index: number): SVGLength;
    replaceItem(newItem: SVGLength, index: number): SVGLength;
    [index: number]: SVGLength;
}

declare var SVGLengthList: {
    prototype: SVGLengthList;
    new(): SVGLengthList;
};

/** Provides access to the properties of <line> elements, as well as methods to manipulate them. */
interface SVGLineElement extends SVGGeometryElement {
    readonly x1: SVGAnimatedLength;
    readonly x2: SVGAnimatedLength;
    readonly y1: SVGAnimatedLength;
    readonly y2: SVGAnimatedLength;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGLineElement: {
    prototype: SVGLineElement;
    new(): SVGLineElement;
};

/** Corresponds to the <linearGradient> element. */
interface SVGLinearGradientElement extends SVGGradientElement {
    readonly x1: SVGAnimatedLength;
    readonly x2: SVGAnimatedLength;
    readonly y1: SVGAnimatedLength;
    readonly y2: SVGAnimatedLength;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLinearGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLinearGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGLinearGradientElement: {
    prototype: SVGLinearGradientElement;
    new(): SVGLinearGradientElement;
};

interface SVGMPathElement extends SVGElement, SVGURIReference {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGMPathElement: {
    prototype: SVGMPathElement;
    new(): SVGMPathElement;
};

interface SVGMarkerElement extends SVGElement, SVGFitToViewBox {
    readonly markerHeight: SVGAnimatedLength;
    readonly markerUnits: SVGAnimatedEnumeration;
    readonly markerWidth: SVGAnimatedLength;
    readonly orientAngle: SVGAnimatedAngle;
    readonly orientType: SVGAnimatedEnumeration;
    readonly refX: SVGAnimatedLength;
    readonly refY: SVGAnimatedLength;
    setOrientToAngle(angle: SVGAngle): void;
    setOrientToAuto(): void;
    readonly SVG_MARKERUNITS_UNKNOWN: 0;
    readonly SVG_MARKERUNITS_USERSPACEONUSE: 1;
    readonly SVG_MARKERUNITS_STROKEWIDTH: 2;
    readonly SVG_MARKER_ORIENT_UNKNOWN: 0;
    readonly SVG_MARKER_ORIENT_AUTO: 1;
    readonly SVG_MARKER_ORIENT_ANGLE: 2;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMarkerElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMarkerElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGMarkerElement: {
    prototype: SVGMarkerElement;
    new(): SVGMarkerElement;
    readonly SVG_MARKERUNITS_UNKNOWN: 0;
    readonly SVG_MARKERUNITS_USERSPACEONUSE: 1;
    readonly SVG_MARKERUNITS_STROKEWIDTH: 2;
    readonly SVG_MARKER_ORIENT_UNKNOWN: 0;
    readonly SVG_MARKER_ORIENT_AUTO: 1;
    readonly SVG_MARKER_ORIENT_ANGLE: 2;
};

/** Provides access to the properties of <mask> elements, as well as methods to manipulate them. */
interface SVGMaskElement extends SVGElement {
    readonly height: SVGAnimatedLength;
    readonly maskContentUnits: SVGAnimatedEnumeration;
    readonly maskUnits: SVGAnimatedEnumeration;
    readonly width: SVGAnimatedLength;
    readonly x: SVGAnimatedLength;
    readonly y: SVGAnimatedLength;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMaskElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMaskElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGMaskElement: {
    prototype: SVGMaskElement;
    new(): SVGMaskElement;
};

/** Corresponds to the <metadata> element. */
interface SVGMetadataElement extends SVGElement {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMetadataElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMetadataElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGMetadataElement: {
    prototype: SVGMetadataElement;
    new(): SVGMetadataElement;
};

/** Corresponds to the <number> basic data type. */
interface SVGNumber {
    value: number;
}

declare var SVGNumber: {
    prototype: SVGNumber;
    new(): SVGNumber;
};

/** The SVGNumberList defines a list of SVGNumber objects. */
interface SVGNumberList {
    readonly length: number;
    readonly numberOfItems: number;
    appendItem(newItem: SVGNumber): SVGNumber;
    clear(): void;
    getItem(index: number): SVGNumber;
    initialize(newItem: SVGNumber): SVGNumber;
    insertItemBefore(newItem: SVGNumber, index: number): SVGNumber;
    removeItem(index: number): SVGNumber;
    replaceItem(newItem: SVGNumber, index: number): SVGNumber;
    [index: number]: SVGNumber;
}

declare var SVGNumberList: {
    prototype: SVGNumberList;
    new(): SVGNumberList;
};

/** Corresponds to the <path> element. */
interface SVGPathElement extends SVGGeometryElement {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGPathElement: {
    prototype: SVGPathElement;
    new(): SVGPathElement;
};

/** Corresponds to the <pattern> element. */
interface SVGPatternElement extends SVGElement, SVGFitToViewBox, SVGURIReference {
    readonly height: SVGAnimatedLength;
    readonly patternContentUnits: SVGAnimatedEnumeration;
    readonly patternTransform: SVGAnimatedTransformList;
    readonly patternUnits: SVGAnimatedEnumeration;
    readonly width: SVGAnimatedLength;
    readonly x: SVGAnimatedLength;
    readonly y: SVGAnimatedLength;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPatternElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPatternElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGPatternElement: {
    prototype: SVGPatternElement;
    new(): SVGPatternElement;
};

interface SVGPointList {
    readonly length: number;
    readonly numberOfItems: number;
    appendItem(newItem: DOMPoint): DOMPoint;
    clear(): void;
    getItem(index: number): DOMPoint;
    initialize(newItem: DOMPoint): DOMPoint;
    insertItemBefore(newItem: DOMPoint, index: number): DOMPoint;
    removeItem(index: number): DOMPoint;
    replaceItem(newItem: DOMPoint, index: number): DOMPoint;
    [index: number]: DOMPoint;
}

declare var SVGPointList: {
    prototype: SVGPointList;
    new(): SVGPointList;
};

/** Provides access to the properties of <polygon> elements, as well as methods to manipulate them. */
interface SVGPolygonElement extends SVGGeometryElement, SVGAnimatedPoints {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolygonElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolygonElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGPolygonElement: {
    prototype: SVGPolygonElement;
    new(): SVGPolygonElement;
};

/** Provides access to the properties of <polyline> elements, as well as methods to manipulate them. */
interface SVGPolylineElement extends SVGGeometryElement, SVGAnimatedPoints {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolylineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolylineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGPolylineElement: {
    prototype: SVGPolylineElement;
    new(): SVGPolylineElement;
};

/** Corresponds to the preserveAspectRatio attribute, which is available for some of SVG's elements. */
interface SVGPreserveAspectRatio {
    align: number;
    meetOrSlice: number;
    readonly SVG_PRESERVEASPECTRATIO_UNKNOWN: 0;
    readonly SVG_PRESERVEASPECTRATIO_NONE: 1;
    readonly SVG_PRESERVEASPECTRATIO_XMINYMIN: 2;
    readonly SVG_PRESERVEASPECTRATIO_XMIDYMIN: 3;
    readonly SVG_PRESERVEASPECTRATIO_XMAXYMIN: 4;
    readonly SVG_PRESERVEASPECTRATIO_XMINYMID: 5;
    readonly SVG_PRESERVEASPECTRATIO_XMIDYMID: 6;
    readonly SVG_PRESERVEASPECTRATIO_XMAXYMID: 7;
    readonly SVG_PRESERVEASPECTRATIO_XMINYMAX: 8;
    readonly SVG_PRESERVEASPECTRATIO_XMIDYMAX: 9;
    readonly SVG_PRESERVEASPECTRATIO_XMAXYMAX: 10;
    readonly SVG_MEETORSLICE_UNKNOWN: 0;
    readonly SVG_MEETORSLICE_MEET: 1;
    readonly SVG_MEETORSLICE_SLICE: 2;
}

declare var SVGPreserveAspectRatio: {
    prototype: SVGPreserveAspectRatio;
    new(): SVGPreserveAspectRatio;
    readonly SVG_PRESERVEASPECTRATIO_UNKNOWN: 0;
    readonly SVG_PRESERVEASPECTRATIO_NONE: 1;
    readonly SVG_PRESERVEASPECTRATIO_XMINYMIN: 2;
    readonly SVG_PRESERVEASPECTRATIO_XMIDYMIN: 3;
    readonly SVG_PRESERVEASPECTRATIO_XMAXYMIN: 4;
    readonly SVG_PRESERVEASPECTRATIO_XMINYMID: 5;
    readonly SVG_PRESERVEASPECTRATIO_XMIDYMID: 6;
    readonly SVG_PRESERVEASPECTRATIO_XMAXYMID: 7;
    readonly SVG_PRESERVEASPECTRATIO_XMINYMAX: 8;
    readonly SVG_PRESERVEASPECTRATIO_XMIDYMAX: 9;
    readonly SVG_PRESERVEASPECTRATIO_XMAXYMAX: 10;
    readonly SVG_MEETORSLICE_UNKNOWN: 0;
    readonly SVG_MEETORSLICE_MEET: 1;
    readonly SVG_MEETORSLICE_SLICE: 2;
};

/** Corresponds to the <RadialGradient> element. */
interface SVGRadialGradientElement extends SVGGradientElement {
    readonly cx: SVGAnimatedLength;
    readonly cy: SVGAnimatedLength;
    readonly fr: SVGAnimatedLength;
    readonly fx: SVGAnimatedLength;
    readonly fy: SVGAnimatedLength;
    readonly r: SVGAnimatedLength;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRadialGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRadialGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGRadialGradientElement: {
    prototype: SVGRadialGradientElement;
    new(): SVGRadialGradientElement;
};

/** Provides access to the properties of <rect> elements, as well as methods to manipulate them. */
interface SVGRectElement extends SVGGeometryElement {
    readonly height: SVGAnimatedLength;
    readonly rx: SVGAnimatedLength;
    readonly ry: SVGAnimatedLength;
    readonly width: SVGAnimatedLength;
    readonly x: SVGAnimatedLength;
    readonly y: SVGAnimatedLength;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGRectElement: {
    prototype: SVGRectElement;
    new(): SVGRectElement;
};

interface SVGSVGElementEventMap extends SVGElementEventMap, WindowEventHandlersEventMap {
}

/** Provides access to the properties of <svg> elements, as well as methods to manipulate them. This interface contains also various miscellaneous commonly-used utility methods, such as matrix operations and the ability to control the time of redraw on visual rendering devices. */
interface SVGSVGElement extends SVGGraphicsElement, SVGFitToViewBox, WindowEventHandlers {
    currentScale: number;
    readonly currentTranslate: DOMPointReadOnly;
    readonly height: SVGAnimatedLength;
    readonly width: SVGAnimatedLength;
    readonly x: SVGAnimatedLength;
    readonly y: SVGAnimatedLength;
    animationsPaused(): boolean;
    checkEnclosure(element: SVGElement, rect: DOMRectReadOnly): boolean;
    checkIntersection(element: SVGElement, rect: DOMRectReadOnly): boolean;
    createSVGAngle(): SVGAngle;
    createSVGLength(): SVGLength;
    createSVGMatrix(): DOMMatrix;
    createSVGNumber(): SVGNumber;
    createSVGPoint(): DOMPoint;
    createSVGRect(): DOMRect;
    createSVGTransform(): SVGTransform;
    createSVGTransformFromMatrix(matrix?: DOMMatrix2DInit): SVGTransform;
    deselectAll(): void;
    /** @deprecated */
    forceRedraw(): void;
    getCurrentTime(): number;
    getElementById(elementId: string): Element;
    getEnclosureList(rect: DOMRectReadOnly, referenceElement: SVGElement | null): NodeListOf<SVGCircleElement | SVGEllipseElement | SVGImageElement | SVGLineElement | SVGPathElement | SVGPolygonElement | SVGPolylineElement | SVGRectElement | SVGTextElement | SVGUseElement>;
    getIntersectionList(rect: DOMRectReadOnly, referenceElement: SVGElement | null): NodeListOf<SVGCircleElement | SVGEllipseElement | SVGImageElement | SVGLineElement | SVGPathElement | SVGPolygonElement | SVGPolylineElement | SVGRectElement | SVGTextElement | SVGUseElement>;
    pauseAnimations(): void;
    setCurrentTime(seconds: number): void;
    /** @deprecated */
    suspendRedraw(maxWaitMilliseconds: number): number;
    unpauseAnimations(): void;
    /** @deprecated */
    unsuspendRedraw(suspendHandleID: number): void;
    /** @deprecated */
    unsuspendRedrawAll(): void;
    addEventListener<K extends keyof SVGSVGElementEventMap>(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGSVGElementEventMap>(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGSVGElement: {
    prototype: SVGSVGElement;
    new(): SVGSVGElement;
};

/** Corresponds to the SVG <script> element. */
interface SVGScriptElement extends SVGElement, SVGURIReference {
    type: string;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGScriptElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGScriptElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGScriptElement: {
    prototype: SVGScriptElement;
    new(): SVGScriptElement;
};

interface SVGSetElement extends SVGAnimationElement {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGSetElement: {
    prototype: SVGSetElement;
    new(): SVGSetElement;
};

/** Corresponds to the <stop> element. */
interface SVGStopElement extends SVGElement {
    readonly offset: SVGAnimatedNumber;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStopElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStopElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGStopElement: {
    prototype: SVGStopElement;
    new(): SVGStopElement;
};

/** The SVGStringList defines a list of DOMString objects. */
interface SVGStringList {
    readonly length: number;
    readonly numberOfItems: number;
    appendItem(newItem: string): string;
    clear(): void;
    getItem(index: number): string;
    initialize(newItem: string): string;
    insertItemBefore(newItem: string, index: number): string;
    removeItem(index: number): string;
    replaceItem(newItem: string, index: number): string;
    [index: number]: string;
}

declare var SVGStringList: {
    prototype: SVGStringList;
    new(): SVGStringList;
};

/** Corresponds to the SVG <style> element. */
interface SVGStyleElement extends SVGElement, LinkStyle {
    disabled: boolean;
    media: string;
    title: string;
    /** @deprecated */
    type: string;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStyleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStyleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGStyleElement: {
    prototype: SVGStyleElement;
    new(): SVGStyleElement;
};

/** Corresponds to the <switch> element. */
interface SVGSwitchElement extends SVGGraphicsElement {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSwitchElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSwitchElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGSwitchElement: {
    prototype: SVGSwitchElement;
    new(): SVGSwitchElement;
};

/** Corresponds to the <symbol> element. */
interface SVGSymbolElement extends SVGElement, SVGFitToViewBox {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSymbolElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSymbolElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGSymbolElement: {
    prototype: SVGSymbolElement;
    new(): SVGSymbolElement;
};

/** A <tspan> element. */
interface SVGTSpanElement extends SVGTextPositioningElement {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTSpanElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTSpanElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGTSpanElement: {
    prototype: SVGTSpanElement;
    new(): SVGTSpanElement;
};

interface SVGTests {
    readonly requiredExtensions: SVGStringList;
    readonly systemLanguage: SVGStringList;
}

/** Implemented by elements that support rendering child text content. It is inherited by various text-related interfaces, such as SVGTextElement, SVGTSpanElement, SVGTRefElement, SVGAltGlyphElement and SVGTextPathElement. */
interface SVGTextContentElement extends SVGGraphicsElement {
    readonly lengthAdjust: SVGAnimatedEnumeration;
    readonly textLength: SVGAnimatedLength;
    getCharNumAtPosition(point?: DOMPointInit): number;
    getComputedTextLength(): number;
    getEndPositionOfChar(charnum: number): DOMPoint;
    getExtentOfChar(charnum: number): DOMRect;
    getNumberOfChars(): number;
    getRotationOfChar(charnum: number): number;
    getStartPositionOfChar(charnum: number): DOMPoint;
    getSubStringLength(charnum: number, nchars: number): number;
    /** @deprecated */
    selectSubString(charnum: number, nchars: number): void;
    readonly LENGTHADJUST_UNKNOWN: 0;
    readonly LENGTHADJUST_SPACING: 1;
    readonly LENGTHADJUST_SPACINGANDGLYPHS: 2;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextContentElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextContentElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGTextContentElement: {
    prototype: SVGTextContentElement;
    new(): SVGTextContentElement;
    readonly LENGTHADJUST_UNKNOWN: 0;
    readonly LENGTHADJUST_SPACING: 1;
    readonly LENGTHADJUST_SPACINGANDGLYPHS: 2;
};

/** Corresponds to the <text> elements. */
interface SVGTextElement extends SVGTextPositioningElement {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGTextElement: {
    prototype: SVGTextElement;
    new(): SVGTextElement;
};

/** Corresponds to the <textPath> element. */
interface SVGTextPathElement extends SVGTextContentElement, SVGURIReference {
    readonly method: SVGAnimatedEnumeration;
    readonly spacing: SVGAnimatedEnumeration;
    readonly startOffset: SVGAnimatedLength;
    readonly TEXTPATH_METHODTYPE_UNKNOWN: 0;
    readonly TEXTPATH_METHODTYPE_ALIGN: 1;
    readonly TEXTPATH_METHODTYPE_STRETCH: 2;
    readonly TEXTPATH_SPACINGTYPE_UNKNOWN: 0;
    readonly TEXTPATH_SPACINGTYPE_AUTO: 1;
    readonly TEXTPATH_SPACINGTYPE_EXACT: 2;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGTextPathElement: {
    prototype: SVGTextPathElement;
    new(): SVGTextPathElement;
    readonly TEXTPATH_METHODTYPE_UNKNOWN: 0;
    readonly TEXTPATH_METHODTYPE_ALIGN: 1;
    readonly TEXTPATH_METHODTYPE_STRETCH: 2;
    readonly TEXTPATH_SPACINGTYPE_UNKNOWN: 0;
    readonly TEXTPATH_SPACINGTYPE_AUTO: 1;
    readonly TEXTPATH_SPACINGTYPE_EXACT: 2;
};

/** Implemented by elements that support attributes that position individual text glyphs. It is inherited by SVGTextElement, SVGTSpanElement, SVGTRefElement and SVGAltGlyphElement. */
interface SVGTextPositioningElement extends SVGTextContentElement {
    readonly dx: SVGAnimatedLengthList;
    readonly dy: SVGAnimatedLengthList;
    readonly rotate: SVGAnimatedNumberList;
    readonly x: SVGAnimatedLengthList;
    readonly y: SVGAnimatedLengthList;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPositioningElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPositioningElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGTextPositioningElement: {
    prototype: SVGTextPositioningElement;
    new(): SVGTextPositioningElement;
};

/** Corresponds to the <title> element. */
interface SVGTitleElement extends SVGElement {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTitleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTitleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGTitleElement: {
    prototype: SVGTitleElement;
    new(): SVGTitleElement;
};

/** SVGTransform is the interface for one of the component transformations within an SVGTransformList; thus, an SVGTransform object corresponds to a single component (e.g., scale(…) or matrix(…)) within a transform attribute. */
interface SVGTransform {
    readonly angle: number;
    readonly matrix: DOMMatrix;
    readonly type: number;
    setMatrix(matrix?: DOMMatrix2DInit): void;
    setRotate(angle: number, cx: number, cy: number): void;
    setScale(sx: number, sy: number): void;
    setSkewX(angle: number): void;
    setSkewY(angle: number): void;
    setTranslate(tx: number, ty: number): void;
    readonly SVG_TRANSFORM_UNKNOWN: 0;
    readonly SVG_TRANSFORM_MATRIX: 1;
    readonly SVG_TRANSFORM_TRANSLATE: 2;
    readonly SVG_TRANSFORM_SCALE: 3;
    readonly SVG_TRANSFORM_ROTATE: 4;
    readonly SVG_TRANSFORM_SKEWX: 5;
    readonly SVG_TRANSFORM_SKEWY: 6;
}

declare var SVGTransform: {
    prototype: SVGTransform;
    new(): SVGTransform;
    readonly SVG_TRANSFORM_UNKNOWN: 0;
    readonly SVG_TRANSFORM_MATRIX: 1;
    readonly SVG_TRANSFORM_TRANSLATE: 2;
    readonly SVG_TRANSFORM_SCALE: 3;
    readonly SVG_TRANSFORM_ROTATE: 4;
    readonly SVG_TRANSFORM_SKEWX: 5;
    readonly SVG_TRANSFORM_SKEWY: 6;
};

/** The SVGTransformList defines a list of SVGTransform objects. */
interface SVGTransformList {
    readonly length: number;
    readonly numberOfItems: number;
    appendItem(newItem: SVGTransform): SVGTransform;
    clear(): void;
    consolidate(): SVGTransform | null;
    createSVGTransformFromMatrix(matrix?: DOMMatrix2DInit): SVGTransform;
    getItem(index: number): SVGTransform;
    initialize(newItem: SVGTransform): SVGTransform;
    insertItemBefore(newItem: SVGTransform, index: number): SVGTransform;
    removeItem(index: number): SVGTransform;
    replaceItem(newItem: SVGTransform, index: number): SVGTransform;
    [index: number]: SVGTransform;
}

declare var SVGTransformList: {
    prototype: SVGTransformList;
    new(): SVGTransformList;
};

interface SVGURIReference {
    readonly href: SVGAnimatedString;
}

/** A commonly used set of constants used for reflecting gradientUnits, patternContentUnits and other similar attributes. */
interface SVGUnitTypes {
    readonly SVG_UNIT_TYPE_UNKNOWN: 0;
    readonly SVG_UNIT_TYPE_USERSPACEONUSE: 1;
    readonly SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: 2;
}

declare var SVGUnitTypes: {
    prototype: SVGUnitTypes;
    new(): SVGUnitTypes;
    readonly SVG_UNIT_TYPE_UNKNOWN: 0;
    readonly SVG_UNIT_TYPE_USERSPACEONUSE: 1;
    readonly SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: 2;
};

/** Corresponds to the <use> element. */
interface SVGUseElement extends SVGGraphicsElement, SVGURIReference {
    readonly height: SVGAnimatedLength;
    readonly width: SVGAnimatedLength;
    readonly x: SVGAnimatedLength;
    readonly y: SVGAnimatedLength;
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGUseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGUseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGUseElement: {
    prototype: SVGUseElement;
    new(): SVGUseElement;
};

/** Provides access to the properties of <view> elements, as well as methods to manipulate them. */
interface SVGViewElement extends SVGElement, SVGFitToViewBox {
    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGViewElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGViewElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SVGViewElement: {
    prototype: SVGViewElement;
    new(): SVGViewElement;
};

/** A screen, usually the one on which the current window is being rendered, and is obtained using window.screen. */
interface Screen {
    readonly availHeight: number;
    readonly availWidth: number;
    readonly colorDepth: number;
    readonly height: number;
    readonly orientation: ScreenOrientation;
    readonly pixelDepth: number;
    readonly width: number;
}

declare var Screen: {
    prototype: Screen;
    new(): Screen;
};

interface ScreenOrientationEventMap {
    "change": Event;
}

interface ScreenOrientation extends EventTarget {
    readonly angle: number;
    onchange: ((this: ScreenOrientation, ev: Event) => any) | null;
    readonly type: OrientationType;
    lock(orientation: OrientationLockType): Promise<void>;
    unlock(): void;
    addEventListener<K extends keyof ScreenOrientationEventMap>(type: K, listener: (this: ScreenOrientation, ev: ScreenOrientationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof ScreenOrientationEventMap>(type: K, listener: (this: ScreenOrientation, ev: ScreenOrientationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var ScreenOrientation: {
    prototype: ScreenOrientation;
    new(): ScreenOrientation;
};

interface ScriptProcessorNodeEventMap {
    "audioprocess": AudioProcessingEvent;
}

/**
 * Allows the generation, processing, or analyzing of audio using JavaScript.
 * @deprecated As of the August 29 2014 Web Audio API spec publication, this feature has been marked as deprecated, and was replaced by AudioWorklet (see AudioWorkletNode).
 */
interface ScriptProcessorNode extends AudioNode {
    /** @deprecated */
    readonly bufferSize: number;
    /** @deprecated */
    onaudioprocess: ((this: ScriptProcessorNode, ev: AudioProcessingEvent) => any) | null;
    addEventListener<K extends keyof ScriptProcessorNodeEventMap>(type: K, listener: (this: ScriptProcessorNode, ev: ScriptProcessorNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof ScriptProcessorNodeEventMap>(type: K, listener: (this: ScriptProcessorNode, ev: ScriptProcessorNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

/** @deprecated */
declare var ScriptProcessorNode: {
    prototype: ScriptProcessorNode;
    new(): ScriptProcessorNode;
};

/** Inherits from Event, and represents the event object of an event sent on a document or worker when its content security policy is violated. */
interface SecurityPolicyViolationEvent extends Event {
    readonly blockedURI: string;
    readonly columnNumber: number;
    readonly disposition: SecurityPolicyViolationEventDisposition;
    readonly documentURI: string;
    readonly effectiveDirective: string;
    readonly lineNumber: number;
    readonly originalPolicy: string;
    readonly referrer: string;
    readonly sample: string;
    readonly sourceFile: string;
    readonly statusCode: number;
    readonly violatedDirective: string;
}

declare var SecurityPolicyViolationEvent: {
    prototype: SecurityPolicyViolationEvent;
    new(type: string, eventInitDict?: SecurityPolicyViolationEventInit): SecurityPolicyViolationEvent;
};

/** A Selection object represents the range of text selected by the user or the current position of the caret. To obtain a Selection object for examination or modification, call Window.getSelection(). */
interface Selection {
    readonly anchorNode: Node | null;
    readonly anchorOffset: number;
    readonly focusNode: Node | null;
    readonly focusOffset: number;
    readonly isCollapsed: boolean;
    readonly rangeCount: number;
    readonly type: string;
    addRange(range: Range): void;
    collapse(node: Node | null, offset?: number): void;
    collapseToEnd(): void;
    collapseToStart(): void;
    containsNode(node: Node, allowPartialContainment?: boolean): boolean;
    deleteFromDocument(): void;
    empty(): void;
    extend(node: Node, offset?: number): void;
    getRangeAt(index: number): Range;
    modify(alter?: string, direction?: string, granularity?: string): void;
    removeAllRanges(): void;
    removeRange(range: Range): void;
    selectAllChildren(node: Node): void;
    setBaseAndExtent(anchorNode: Node, anchorOffset: number, focusNode: Node, focusOffset: number): void;
    setPosition(node: Node | null, offset?: number): void;
    toString(): string;
}

declare var Selection: {
    prototype: Selection;
    new(): Selection;
    toString(): string;
};

interface ServiceWorkerEventMap extends AbstractWorkerEventMap {
    "statechange": Event;
}

/**
 * This ServiceWorker API interface provides a reference to a service worker. Multiple browsing contexts (e.g. pages, workers, etc.) can be associated with the same service worker, each through a unique ServiceWorker object.
 * Available only in secure contexts.
 */
interface ServiceWorker extends EventTarget, AbstractWorker {
    onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
    readonly scriptURL: string;
    readonly state: ServiceWorkerState;
    postMessage(message: any, transfer: Transferable[]): void;
    postMessage(message: any, options?: StructuredSerializeOptions): void;
    addEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var ServiceWorker: {
    prototype: ServiceWorker;
    new(): ServiceWorker;
};

interface ServiceWorkerContainerEventMap {
    "controllerchange": Event;
    "message": MessageEvent;
    "messageerror": MessageEvent;
}

/**
 * The ServiceWorkerContainer interface of the ServiceWorker API provides an object representing the service worker as an overall unit in the network ecosystem, including facilities to register, unregister and update service workers, and access the state of service workers and their registrations.
 * Available only in secure contexts.
 */
interface ServiceWorkerContainer extends EventTarget {
    readonly controller: ServiceWorker | null;
    oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
    onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
    onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
    readonly ready: Promise<ServiceWorkerRegistration>;
    getRegistration(clientURL?: string | URL): Promise<ServiceWorkerRegistration | undefined>;
    getRegistrations(): Promise<ReadonlyArray<ServiceWorkerRegistration>>;
    register(scriptURL: string | URL, options?: RegistrationOptions): Promise<ServiceWorkerRegistration>;
    startMessages(): void;
    addEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var ServiceWorkerContainer: {
    prototype: ServiceWorkerContainer;
    new(): ServiceWorkerContainer;
};

interface ServiceWorkerRegistrationEventMap {
    "updatefound": Event;
}

/**
 * This ServiceWorker API interface represents the service worker registration. You register a service worker to control one or more pages that share the same origin.
 * Available only in secure contexts.
 */
interface ServiceWorkerRegistration extends EventTarget {
    readonly active: ServiceWorker | null;
    readonly installing: ServiceWorker | null;
    readonly navigationPreload: NavigationPreloadManager;
    onupdatefound: ((this: ServiceWorkerRegistration, ev: Event) => any) | null;
    readonly pushManager: PushManager;
    readonly scope: string;
    readonly updateViaCache: ServiceWorkerUpdateViaCache;
    readonly waiting: ServiceWorker | null;
    getNotifications(filter?: GetNotificationOptions): Promise<Notification[]>;
    showNotification(title: string, options?: NotificationOptions): Promise<void>;
    unregister(): Promise<boolean>;
    update(): Promise<void>;
    addEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var ServiceWorkerRegistration: {
    prototype: ServiceWorkerRegistration;
    new(): ServiceWorkerRegistration;
};

interface ShadowRootEventMap {
    "slotchange": Event;
}

interface ShadowRoot extends DocumentFragment, DocumentOrShadowRoot, InnerHTML {
    readonly delegatesFocus: boolean;
    readonly host: Element;
    readonly mode: ShadowRootMode;
    onslotchange: ((this: ShadowRoot, ev: Event) => any) | null;
    readonly slotAssignment: SlotAssignmentMode;
    /** Throws a "NotSupportedError" DOMException if context object is a shadow root. */
    addEventListener<K extends keyof ShadowRootEventMap>(type: K, listener: (this: ShadowRoot, ev: ShadowRootEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof ShadowRootEventMap>(type: K, listener: (this: ShadowRoot, ev: ShadowRootEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var ShadowRoot: {
    prototype: ShadowRoot;
    new(): ShadowRoot;
};

interface SharedWorker extends EventTarget, AbstractWorker {
    /** Returns sharedWorker's MessagePort object which can be used to communicate with the global environment. */
    readonly port: MessagePort;
    addEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: SharedWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: SharedWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SharedWorker: {
    prototype: SharedWorker;
    new(scriptURL: string | URL, options?: string | WorkerOptions): SharedWorker;
};

interface Slottable {
    readonly assignedSlot: HTMLSlotElement | null;
}

interface SourceBufferEventMap {
    "abort": Event;
    "error": Event;
    "update": Event;
    "updateend": Event;
    "updatestart": Event;
}

/** A chunk of media to be passed into an HTMLMediaElement and played, via a MediaSource object. This can be made up of one or several media segments. */
interface SourceBuffer extends EventTarget {
    appendWindowEnd: number;
    appendWindowStart: number;
    readonly buffered: TimeRanges;
    mode: AppendMode;
    onabort: ((this: SourceBuffer, ev: Event) => any) | null;
    onerror: ((this: SourceBuffer, ev: Event) => any) | null;
    onupdate: ((this: SourceBuffer, ev: Event) => any) | null;
    onupdateend: ((this: SourceBuffer, ev: Event) => any) | null;
    onupdatestart: ((this: SourceBuffer, ev: Event) => any) | null;
    timestampOffset: number;
    readonly updating: boolean;
    abort(): void;
    appendBuffer(data: BufferSource): void;
    changeType(type: string): void;
    remove(start: number, end: number): void;
    addEventListener<K extends keyof SourceBufferEventMap>(type: K, listener: (this: SourceBuffer, ev: SourceBufferEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SourceBufferEventMap>(type: K, listener: (this: SourceBuffer, ev: SourceBufferEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SourceBuffer: {
    prototype: SourceBuffer;
    new(): SourceBuffer;
};

interface SourceBufferListEventMap {
    "addsourcebuffer": Event;
    "removesourcebuffer": Event;
}

/** A simple container list for multiple SourceBuffer objects. */
interface SourceBufferList extends EventTarget {
    readonly length: number;
    onaddsourcebuffer: ((this: SourceBufferList, ev: Event) => any) | null;
    onremovesourcebuffer: ((this: SourceBufferList, ev: Event) => any) | null;
    addEventListener<K extends keyof SourceBufferListEventMap>(type: K, listener: (this: SourceBufferList, ev: SourceBufferListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SourceBufferListEventMap>(type: K, listener: (this: SourceBufferList, ev: SourceBufferListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    [index: number]: SourceBuffer;
}

declare var SourceBufferList: {
    prototype: SourceBufferList;
    new(): SourceBufferList;
};

interface SpeechRecognitionAlternative {
    readonly confidence: number;
    readonly transcript: string;
}

declare var SpeechRecognitionAlternative: {
    prototype: SpeechRecognitionAlternative;
    new(): SpeechRecognitionAlternative;
};

interface SpeechRecognitionResult {
    readonly isFinal: boolean;
    readonly length: number;
    item(index: number): SpeechRecognitionAlternative;
    [index: number]: SpeechRecognitionAlternative;
}

declare var SpeechRecognitionResult: {
    prototype: SpeechRecognitionResult;
    new(): SpeechRecognitionResult;
};

interface SpeechRecognitionResultList {
    readonly length: number;
    item(index: number): SpeechRecognitionResult;
    [index: number]: SpeechRecognitionResult;
}

declare var SpeechRecognitionResultList: {
    prototype: SpeechRecognitionResultList;
    new(): SpeechRecognitionResultList;
};

interface SpeechSynthesisEventMap {
    "voiceschanged": Event;
}

/** This Web Speech API interface is the controller interface for the speech service; this can be used to retrieve information about the synthesis voices available on the device, start and pause speech, and other commands besides. */
interface SpeechSynthesis extends EventTarget {
    onvoiceschanged: ((this: SpeechSynthesis, ev: Event) => any) | null;
    readonly paused: boolean;
    readonly pending: boolean;
    readonly speaking: boolean;
    cancel(): void;
    getVoices(): SpeechSynthesisVoice[];
    pause(): void;
    resume(): void;
    speak(utterance: SpeechSynthesisUtterance): void;
    addEventListener<K extends keyof SpeechSynthesisEventMap>(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SpeechSynthesisEventMap>(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SpeechSynthesis: {
    prototype: SpeechSynthesis;
    new(): SpeechSynthesis;
};

interface SpeechSynthesisErrorEvent extends SpeechSynthesisEvent {
    readonly error: SpeechSynthesisErrorCode;
}

declare var SpeechSynthesisErrorEvent: {
    prototype: SpeechSynthesisErrorEvent;
    new(type: string, eventInitDict: SpeechSynthesisErrorEventInit): SpeechSynthesisErrorEvent;
};

/** This Web Speech API interface contains information about the current state of SpeechSynthesisUtterance objects that have been processed in the speech service. */
interface SpeechSynthesisEvent extends Event {
    readonly charIndex: number;
    readonly charLength: number;
    readonly elapsedTime: number;
    readonly name: string;
    readonly utterance: SpeechSynthesisUtterance;
}

declare var SpeechSynthesisEvent: {
    prototype: SpeechSynthesisEvent;
    new(type: string, eventInitDict: SpeechSynthesisEventInit): SpeechSynthesisEvent;
};

interface SpeechSynthesisUtteranceEventMap {
    "boundary": SpeechSynthesisEvent;
    "end": SpeechSynthesisEvent;
    "error": SpeechSynthesisErrorEvent;
    "mark": SpeechSynthesisEvent;
    "pause": SpeechSynthesisEvent;
    "resume": SpeechSynthesisEvent;
    "start": SpeechSynthesisEvent;
}

/** This Web Speech API interface represents a speech request. It contains the content the speech service should read and information about how to read it (e.g. language, pitch and volume.) */
interface SpeechSynthesisUtterance extends EventTarget {
    lang: string;
    onboundary: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;
    onend: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;
    onerror: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisErrorEvent) => any) | null;
    onmark: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;
    onpause: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;
    onresume: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;
    onstart: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;
    pitch: number;
    rate: number;
    text: string;
    voice: SpeechSynthesisVoice | null;
    volume: number;
    addEventListener<K extends keyof SpeechSynthesisUtteranceEventMap>(type: K, listener: (this: SpeechSynthesisUtterance, ev: SpeechSynthesisUtteranceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SpeechSynthesisUtteranceEventMap>(type: K, listener: (this: SpeechSynthesisUtterance, ev: SpeechSynthesisUtteranceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SpeechSynthesisUtterance: {
    prototype: SpeechSynthesisUtterance;
    new(text?: string): SpeechSynthesisUtterance;
};

/** This Web Speech API interface represents a voice that the system supports. Every SpeechSynthesisVoice has its own relative speech service including information about language, name and URI. */
interface SpeechSynthesisVoice {
    readonly default: boolean;
    readonly lang: string;
    readonly localService: boolean;
    readonly name: string;
    readonly voiceURI: string;
}

declare var SpeechSynthesisVoice: {
    prototype: SpeechSynthesisVoice;
    new(): SpeechSynthesisVoice;
};

interface StaticRange extends AbstractRange {
}

declare var StaticRange: {
    prototype: StaticRange;
    new(init: StaticRangeInit): StaticRange;
};

/** The pan property takes a unitless value between -1 (full left pan) and 1 (full right pan). This interface was introduced as a much simpler way to apply a simple panning effect than having to use a full PannerNode. */
interface StereoPannerNode extends AudioNode {
    readonly pan: AudioParam;
}

declare var StereoPannerNode: {
    prototype: StereoPannerNode;
    new(context: BaseAudioContext, options?: StereoPannerOptions): StereoPannerNode;
};

/** This Web Storage API interface provides access to a particular domain's session or local storage. It allows, for example, the addition, modification, or deletion of stored data items. */
interface Storage {
    /** Returns the number of key/value pairs. */
    readonly length: number;
    /**
     * Removes all key/value pairs, if there are any.
     *
     * Dispatches a storage event on Window objects holding an equivalent Storage object.
     */
    clear(): void;
    /** Returns the current value associated with the given key, or null if the given key does not exist. */
    getItem(key: string): string | null;
    /** Returns the name of the nth key, or null if n is greater than or equal to the number of key/value pairs. */
    key(index: number): string | null;
    /**
     * Removes the key/value pair with the given key, if a key/value pair with the given key exists.
     *
     * Dispatches a storage event on Window objects holding an equivalent Storage object.
     */
    removeItem(key: string): void;
    /**
     * Sets the value of the pair identified by key to value, creating a new key/value pair if none existed for key previously.
     *
     * Throws a "QuotaExceededError" DOMException exception if the new value couldn't be set. (Setting could fail if, e.g., the user has disabled storage for the site, or if the quota has been exceeded.)
     *
     * Dispatches a storage event on Window objects holding an equivalent Storage object.
     */
    setItem(key: string, value: string): void;
    [name: string]: any;
}

declare var Storage: {
    prototype: Storage;
    new(): Storage;
};

/** A StorageEvent is sent to a window when a storage area it has access to is changed within the context of another document. */
interface StorageEvent extends Event {
    /** Returns the key of the storage item being changed. */
    readonly key: string | null;
    /** Returns the new value of the key of the storage item whose value is being changed. */
    readonly newValue: string | null;
    /** Returns the old value of the key of the storage item whose value is being changed. */
    readonly oldValue: string | null;
    /** Returns the Storage object that was affected. */
    readonly storageArea: Storage | null;
    /** Returns the URL of the document whose storage item changed. */
    readonly url: string;
    /** @deprecated */
    initStorageEvent(type: string, bubbles?: boolean, cancelable?: boolean, key?: string | null, oldValue?: string | null, newValue?: string | null, url?: string | URL, storageArea?: Storage | null): void;
}

declare var StorageEvent: {
    prototype: StorageEvent;
    new(type: string, eventInitDict?: StorageEventInit): StorageEvent;
};

/** Available only in secure contexts. */
interface StorageManager {
    estimate(): Promise<StorageEstimate>;
    getDirectory(): Promise<FileSystemDirectoryHandle>;
    persist(): Promise<boolean>;
    persisted(): Promise<boolean>;
}

declare var StorageManager: {
    prototype: StorageManager;
    new(): StorageManager;
};

/** @deprecated */
interface StyleMedia {
    type: string;
    matchMedium(mediaquery: string): boolean;
}

/** A single style sheet. CSS style sheets will further implement the more specialized CSSStyleSheet interface. */
interface StyleSheet {
    disabled: boolean;
    readonly href: string | null;
    readonly media: MediaList;
    readonly ownerNode: Element | ProcessingInstruction | null;
    readonly parentStyleSheet: CSSStyleSheet | null;
    readonly title: string | null;
    readonly type: string;
}

declare var StyleSheet: {
    prototype: StyleSheet;
    new(): StyleSheet;
};

/** A list of StyleSheet. */
interface StyleSheetList {
    readonly length: number;
    item(index: number): CSSStyleSheet | null;
    [index: number]: CSSStyleSheet;
}

declare var StyleSheetList: {
    prototype: StyleSheetList;
    new(): StyleSheetList;
};

interface SubmitEvent extends Event {
    /** Returns the element representing the submit button that triggered the form submission, or null if the submission was not triggered by a button. */
    readonly submitter: HTMLElement | null;
}

declare var SubmitEvent: {
    prototype: SubmitEvent;
    new(type: string, eventInitDict?: SubmitEventInit): SubmitEvent;
};

/**
 * This Web Crypto API interface provides a number of low-level cryptographic functions. It is accessed via the Crypto.subtle properties available in a window context (via Window.crypto).
 * Available only in secure contexts.
 */
interface SubtleCrypto {
    decrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;
    deriveBits(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, length: number): Promise<ArrayBuffer>;
    deriveKey(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
    digest(algorithm: AlgorithmIdentifier, data: BufferSource): Promise<ArrayBuffer>;
    encrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;
    exportKey(format: "jwk", key: CryptoKey): Promise<JsonWebKey>;
    exportKey(format: Exclude<KeyFormat, "jwk">, key: CryptoKey): Promise<ArrayBuffer>;
    generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKeyPair>;
    generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
    generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair | CryptoKey>;
    importKey(format: "jwk", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
    importKey(format: Exclude<KeyFormat, "jwk">, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
    sign(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;
    unwrapKey(format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
    verify(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, signature: BufferSource, data: BufferSource): Promise<boolean>;
    wrapKey(format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams): Promise<ArrayBuffer>;
}

declare var SubtleCrypto: {
    prototype: SubtleCrypto;
    new(): SubtleCrypto;
};

/** The textual content of Element or Attr. If an element has no markup within its content, it has a single child implementing Text that contains the element's text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children. */
interface Text extends CharacterData, Slottable {
    /** Returns the combined data of all direct Text node siblings. */
    readonly wholeText: string;
    /** Splits data at the given offset and returns the remainder as Text node. */
    splitText(offset: number): Text;
}

declare var Text: {
    prototype: Text;
    new(data?: string): Text;
};

/** A decoder for a specific method, that is a specific character encoding, like utf-8, iso-8859-2, koi8, cp1261, gbk, etc. A decoder takes a stream of bytes as input and emits a stream of code points. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays. */
interface TextDecoder extends TextDecoderCommon {
    /**
     * Returns the result of running encoding's decoder. The method can be invoked zero or more times with options's stream set to true, and then once without options's stream (or set to false), to process a fragmented input. If the invocation without options's stream (or set to false) has no input, it's clearest to omit both arguments.
     *
     * \`\`\`
     * var string = "", decoder = new TextDecoder(encoding), buffer;
     * while(buffer = next_chunk()) {
     *   string += decoder.decode(buffer, {stream:true});
     * }
     * string += decoder.decode(); // end-of-queue
     * \`\`\`
     *
     * If the error mode is "fatal" and encoding's decoder returns error, throws a TypeError.
     */
    decode(input?: BufferSource, options?: TextDecodeOptions): string;
}

declare var TextDecoder: {
    prototype: TextDecoder;
    new(label?: string, options?: TextDecoderOptions): TextDecoder;
};

interface TextDecoderCommon {
    /** Returns encoding's name, lowercased. */
    readonly encoding: string;
    /** Returns true if error mode is "fatal", otherwise false. */
    readonly fatal: boolean;
    /** Returns the value of ignore BOM. */
    readonly ignoreBOM: boolean;
}

interface TextDecoderStream extends GenericTransformStream, TextDecoderCommon {
    readonly readable: ReadableStream<string>;
    readonly writable: WritableStream<BufferSource>;
}

declare var TextDecoderStream: {
    prototype: TextDecoderStream;
    new(label?: string, options?: TextDecoderOptions): TextDecoderStream;
};

/** TextEncoder takes a stream of code points as input and emits a stream of bytes. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays. */
interface TextEncoder extends TextEncoderCommon {
    /** Returns the result of running UTF-8's encoder. */
    encode(input?: string): Uint8Array;
    /** Runs the UTF-8 encoder on source, stores the result of that operation into destination, and returns the progress made as an object wherein read is the number of converted code units of source and written is the number of bytes modified in destination. */
    encodeInto(source: string, destination: Uint8Array): TextEncoderEncodeIntoResult;
}

declare var TextEncoder: {
    prototype: TextEncoder;
    new(): TextEncoder;
};

interface TextEncoderCommon {
    /** Returns "utf-8". */
    readonly encoding: string;
}

interface TextEncoderStream extends GenericTransformStream, TextEncoderCommon {
    readonly readable: ReadableStream<Uint8Array>;
    readonly writable: WritableStream<string>;
}

declare var TextEncoderStream: {
    prototype: TextEncoderStream;
    new(): TextEncoderStream;
};

/** The dimensions of a piece of text in the canvas, as created by the CanvasRenderingContext2D.measureText() method. */
interface TextMetrics {
    /** Returns the measurement described below. */
    readonly actualBoundingBoxAscent: number;
    /** Returns the measurement described below. */
    readonly actualBoundingBoxDescent: number;
    /** Returns the measurement described below. */
    readonly actualBoundingBoxLeft: number;
    /** Returns the measurement described below. */
    readonly actualBoundingBoxRight: number;
    /** Returns the measurement described below. */
    readonly fontBoundingBoxAscent: number;
    /** Returns the measurement described below. */
    readonly fontBoundingBoxDescent: number;
    /** Returns the measurement described below. */
    readonly width: number;
}

declare var TextMetrics: {
    prototype: TextMetrics;
    new(): TextMetrics;
};

interface TextTrackEventMap {
    "cuechange": Event;
}

/** This interface also inherits properties from EventTarget. */
interface TextTrack extends EventTarget {
    /** Returns the text track cues from the text track list of cues that are currently active (i.e. that start before the current playback position and end after it), as a TextTrackCueList object. */
    readonly activeCues: TextTrackCueList | null;
    /** Returns the text track list of cues, as a TextTrackCueList object. */
    readonly cues: TextTrackCueList | null;
    /**
     * Returns the ID of the given track.
     *
     * For in-band tracks, this is the ID that can be used with a fragment if the format supports media fragment syntax, and that can be used with the getTrackById() method.
     *
     * For TextTrack objects corresponding to track elements, this is the ID of the track element.
     */
    readonly id: string;
    /** Returns the text track in-band metadata track dispatch type string. */
    readonly inBandMetadataTrackDispatchType: string;
    /** Returns the text track kind string. */
    readonly kind: TextTrackKind;
    /** Returns the text track label, if there is one, or the empty string otherwise (indicating that a custom label probably needs to be generated from the other attributes of the object if the object is exposed to the user). */
    readonly label: string;
    /** Returns the text track language string. */
    readonly language: string;
    /**
     * Returns the text track mode, represented by a string from the following list:
     *
     * Can be set, to change the mode.
     */
    mode: TextTrackMode;
    oncuechange: ((this: TextTrack, ev: Event) => any) | null;
    /** Adds the given cue to textTrack's text track list of cues. */
    addCue(cue: TextTrackCue): void;
    /** Removes the given cue from textTrack's text track list of cues. */
    removeCue(cue: TextTrackCue): void;
    addEventListener<K extends keyof TextTrackEventMap>(type: K, listener: (this: TextTrack, ev: TextTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof TextTrackEventMap>(type: K, listener: (this: TextTrack, ev: TextTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var TextTrack: {
    prototype: TextTrack;
    new(): TextTrack;
};

interface TextTrackCueEventMap {
    "enter": Event;
    "exit": Event;
}

/** TextTrackCues represent a string of text that will be displayed for some duration of time on a TextTrack. This includes the start and end times that the cue will be displayed. A TextTrackCue cannot be used directly, instead one of the derived types (e.g. VTTCue) must be used. */
interface TextTrackCue extends EventTarget {
    /**
     * Returns the text track cue end time, in seconds.
     *
     * Can be set.
     */
    endTime: number;
    /**
     * Returns the text track cue identifier.
     *
     * Can be set.
     */
    id: string;
    onenter: ((this: TextTrackCue, ev: Event) => any) | null;
    onexit: ((this: TextTrackCue, ev: Event) => any) | null;
    /**
     * Returns true if the text track cue pause-on-exit flag is set, false otherwise.
     *
     * Can be set.
     */
    pauseOnExit: boolean;
    /**
     * Returns the text track cue start time, in seconds.
     *
     * Can be set.
     */
    startTime: number;
    /** Returns the TextTrack object to which this text track cue belongs, if any, or null otherwise. */
    readonly track: TextTrack | null;
    addEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: TextTrackCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: TextTrackCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var TextTrackCue: {
    prototype: TextTrackCue;
    new(): TextTrackCue;
};

interface TextTrackCueList {
    /** Returns the number of cues in the list. */
    readonly length: number;
    /**
     * Returns the first text track cue (in text track cue order) with text track cue identifier id.
     *
     * Returns null if none of the cues have the given identifier or if the argument is the empty string.
     */
    getCueById(id: string): TextTrackCue | null;
    [index: number]: TextTrackCue;
}

declare var TextTrackCueList: {
    prototype: TextTrackCueList;
    new(): TextTrackCueList;
};

interface TextTrackListEventMap {
    "addtrack": TrackEvent;
    "change": Event;
    "removetrack": TrackEvent;
}

interface TextTrackList extends EventTarget {
    readonly length: number;
    onaddtrack: ((this: TextTrackList, ev: TrackEvent) => any) | null;
    onchange: ((this: TextTrackList, ev: Event) => any) | null;
    onremovetrack: ((this: TextTrackList, ev: TrackEvent) => any) | null;
    getTrackById(id: string): TextTrack | null;
    addEventListener<K extends keyof TextTrackListEventMap>(type: K, listener: (this: TextTrackList, ev: TextTrackListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof TextTrackListEventMap>(type: K, listener: (this: TextTrackList, ev: TextTrackListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    [index: number]: TextTrack;
}

declare var TextTrackList: {
    prototype: TextTrackList;
    new(): TextTrackList;
};

/** Used to represent a set of time ranges, primarily for the purpose of tracking which portions of media have been buffered when loading it for use by the <audio> and <video> elements. */
interface TimeRanges {
    /** Returns the number of ranges in the object. */
    readonly length: number;
    /**
     * Returns the time for the end of the range with the given index.
     *
     * Throws an "IndexSizeError" DOMException if the index is out of range.
     */
    end(index: number): number;
    /**
     * Returns the time for the start of the range with the given index.
     *
     * Throws an "IndexSizeError" DOMException if the index is out of range.
     */
    start(index: number): number;
}

declare var TimeRanges: {
    prototype: TimeRanges;
    new(): TimeRanges;
};

/** A single contact point on a touch-sensitive device. The contact point is commonly a finger or stylus and the device may be a touchscreen or trackpad. */
interface Touch {
    readonly clientX: number;
    readonly clientY: number;
    readonly force: number;
    readonly identifier: number;
    readonly pageX: number;
    readonly pageY: number;
    readonly radiusX: number;
    readonly radiusY: number;
    readonly rotationAngle: number;
    readonly screenX: number;
    readonly screenY: number;
    readonly target: EventTarget;
}

declare var Touch: {
    prototype: Touch;
    new(touchInitDict: TouchInit): Touch;
};

/** An event sent when the state of contacts with a touch-sensitive surface changes. This surface can be a touch screen or trackpad, for example. The event can describe one or more points of contact with the screen and includes support for detecting movement, addition and removal of contact points, and so forth. */
interface TouchEvent extends UIEvent {
    readonly altKey: boolean;
    readonly changedTouches: TouchList;
    readonly ctrlKey: boolean;
    readonly metaKey: boolean;
    readonly shiftKey: boolean;
    readonly targetTouches: TouchList;
    readonly touches: TouchList;
}

declare var TouchEvent: {
    prototype: TouchEvent;
    new(type: string, eventInitDict?: TouchEventInit): TouchEvent;
};

/** A list of contact points on a touch surface. For example, if the user has three fingers on the touch surface (such as a screen or trackpad), the corresponding TouchList object would have one Touch object for each finger, for a total of three entries. */
interface TouchList {
    readonly length: number;
    item(index: number): Touch | null;
    [index: number]: Touch;
}

declare var TouchList: {
    prototype: TouchList;
    new(): TouchList;
};

/** The TrackEvent interface, part of the HTML DOM specification, is used for events which represent changes to the set of available tracks on an HTML media element; these events are addtrack and removetrack. */
interface TrackEvent extends Event {
    /** Returns the track object (TextTrack, AudioTrack, or VideoTrack) to which the event relates. */
    readonly track: TextTrack | null;
}

declare var TrackEvent: {
    prototype: TrackEvent;
    new(type: string, eventInitDict?: TrackEventInit): TrackEvent;
};

interface TransformStream<I = any, O = any> {
    readonly readable: ReadableStream<O>;
    readonly writable: WritableStream<I>;
}

declare var TransformStream: {
    prototype: TransformStream;
    new<I = any, O = any>(transformer?: Transformer<I, O>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<O>): TransformStream<I, O>;
};

interface TransformStreamDefaultController<O = any> {
    readonly desiredSize: number | null;
    enqueue(chunk?: O): void;
    error(reason?: any): void;
    terminate(): void;
}

declare var TransformStreamDefaultController: {
    prototype: TransformStreamDefaultController;
    new(): TransformStreamDefaultController;
};

/** Events providing information related to transitions. */
interface TransitionEvent extends Event {
    readonly elapsedTime: number;
    readonly propertyName: string;
    readonly pseudoElement: string;
}

declare var TransitionEvent: {
    prototype: TransitionEvent;
    new(type: string, transitionEventInitDict?: TransitionEventInit): TransitionEvent;
};

/** The nodes of a document subtree and a position within them. */
interface TreeWalker {
    currentNode: Node;
    readonly filter: NodeFilter | null;
    readonly root: Node;
    readonly whatToShow: number;
    firstChild(): Node | null;
    lastChild(): Node | null;
    nextNode(): Node | null;
    nextSibling(): Node | null;
    parentNode(): Node | null;
    previousNode(): Node | null;
    previousSibling(): Node | null;
}

declare var TreeWalker: {
    prototype: TreeWalker;
    new(): TreeWalker;
};

/** Simple user interface events. */
interface UIEvent extends Event {
    readonly detail: number;
    readonly view: Window | null;
    /** @deprecated */
    readonly which: number;
    /** @deprecated */
    initUIEvent(typeArg: string, bubblesArg?: boolean, cancelableArg?: boolean, viewArg?: Window | null, detailArg?: number): void;
}

declare var UIEvent: {
    prototype: UIEvent;
    new(type: string, eventInitDict?: UIEventInit): UIEvent;
};

/** The URL interface represents an object providing static methods used for creating object URLs. */
interface URL {
    hash: string;
    host: string;
    hostname: string;
    href: string;
    toString(): string;
    readonly origin: string;
    password: string;
    pathname: string;
    port: string;
    protocol: string;
    search: string;
    readonly searchParams: URLSearchParams;
    username: string;
    toJSON(): string;
}

declare var URL: {
    prototype: URL;
    new(url: string | URL, base?: string | URL): URL;
    createObjectURL(obj: Blob | MediaSource): string;
    revokeObjectURL(url: string): void;
};

type webkitURL = URL;
declare var webkitURL: typeof URL;

interface URLSearchParams {
    /** Appends a specified key/value pair as a new search parameter. */
    append(name: string, value: string): void;
    /** Deletes the given search parameter, and its associated value, from the list of all search parameters. */
    delete(name: string): void;
    /** Returns the first value associated to the given search parameter. */
    get(name: string): string | null;
    /** Returns all the values association with a given search parameter. */
    getAll(name: string): string[];
    /** Returns a Boolean indicating if such a search parameter exists. */
    has(name: string): boolean;
    /** Sets the value associated to a given search parameter to the given value. If there were several values, delete the others. */
    set(name: string, value: string): void;
    sort(): void;
    /** Returns a string containing a query string suitable for use in a URL. Does not include the question mark. */
    toString(): string;
    forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any): void;
}

declare var URLSearchParams: {
    prototype: URLSearchParams;
    new(init?: string[][] | Record<string, string> | string | URLSearchParams): URLSearchParams;
    toString(): string;
};

interface VTTCue extends TextTrackCue {
    align: AlignSetting;
    line: LineAndPositionSetting;
    lineAlign: LineAlignSetting;
    position: LineAndPositionSetting;
    positionAlign: PositionAlignSetting;
    region: VTTRegion | null;
    size: number;
    snapToLines: boolean;
    text: string;
    vertical: DirectionSetting;
    getCueAsHTML(): DocumentFragment;
    addEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: VTTCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: VTTCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var VTTCue: {
    prototype: VTTCue;
    new(startTime: number, endTime: number, text: string): VTTCue;
};

interface VTTRegion {
    id: string;
    lines: number;
    regionAnchorX: number;
    regionAnchorY: number;
    scroll: ScrollSetting;
    viewportAnchorX: number;
    viewportAnchorY: number;
    width: number;
}

declare var VTTRegion: {
    prototype: VTTRegion;
    new(): VTTRegion;
};

/** The validity states that an element can be in, with respect to constraint validation. Together, they help explain why an element's value fails to validate, if it's not valid. */
interface ValidityState {
    readonly badInput: boolean;
    readonly customError: boolean;
    readonly patternMismatch: boolean;
    readonly rangeOverflow: boolean;
    readonly rangeUnderflow: boolean;
    readonly stepMismatch: boolean;
    readonly tooLong: boolean;
    readonly tooShort: boolean;
    readonly typeMismatch: boolean;
    readonly valid: boolean;
    readonly valueMissing: boolean;
}

declare var ValidityState: {
    prototype: ValidityState;
    new(): ValidityState;
};

interface VideoColorSpace {
    readonly fullRange: boolean | null;
    readonly matrix: VideoMatrixCoefficients | null;
    readonly primaries: VideoColorPrimaries | null;
    readonly transfer: VideoTransferCharacteristics | null;
    toJSON(): VideoColorSpaceInit;
}

declare var VideoColorSpace: {
    prototype: VideoColorSpace;
    new(init?: VideoColorSpaceInit): VideoColorSpace;
};

/** Returned by the HTMLVideoElement.getVideoPlaybackQuality() method and contains metrics that can be used to determine the playback quality of a video. */
interface VideoPlaybackQuality {
    /** @deprecated */
    readonly corruptedVideoFrames: number;
    readonly creationTime: DOMHighResTimeStamp;
    readonly droppedVideoFrames: number;
    readonly totalVideoFrames: number;
}

declare var VideoPlaybackQuality: {
    prototype: VideoPlaybackQuality;
    new(): VideoPlaybackQuality;
};

interface VisualViewportEventMap {
    "resize": Event;
    "scroll": Event;
}

interface VisualViewport extends EventTarget {
    readonly height: number;
    readonly offsetLeft: number;
    readonly offsetTop: number;
    onresize: ((this: VisualViewport, ev: Event) => any) | null;
    onscroll: ((this: VisualViewport, ev: Event) => any) | null;
    readonly pageLeft: number;
    readonly pageTop: number;
    readonly scale: number;
    readonly width: number;
    addEventListener<K extends keyof VisualViewportEventMap>(type: K, listener: (this: VisualViewport, ev: VisualViewportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof VisualViewportEventMap>(type: K, listener: (this: VisualViewport, ev: VisualViewportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var VisualViewport: {
    prototype: VisualViewport;
    new(): VisualViewport;
};

interface WEBGL_color_buffer_float {
    readonly RGBA32F_EXT: 0x8814;
    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 0x8211;
    readonly UNSIGNED_NORMALIZED_EXT: 0x8C17;
}

interface WEBGL_compressed_texture_astc {
    getSupportedProfiles(): string[];
    readonly COMPRESSED_RGBA_ASTC_4x4_KHR: 0x93B0;
    readonly COMPRESSED_RGBA_ASTC_5x4_KHR: 0x93B1;
    readonly COMPRESSED_RGBA_ASTC_5x5_KHR: 0x93B2;
    readonly COMPRESSED_RGBA_ASTC_6x5_KHR: 0x93B3;
    readonly COMPRESSED_RGBA_ASTC_6x6_KHR: 0x93B4;
    readonly COMPRESSED_RGBA_ASTC_8x5_KHR: 0x93B5;
    readonly COMPRESSED_RGBA_ASTC_8x6_KHR: 0x93B6;
    readonly COMPRESSED_RGBA_ASTC_8x8_KHR: 0x93B7;
    readonly COMPRESSED_RGBA_ASTC_10x5_KHR: 0x93B8;
    readonly COMPRESSED_RGBA_ASTC_10x6_KHR: 0x93B9;
    readonly COMPRESSED_RGBA_ASTC_10x8_KHR: 0x93BA;
    readonly COMPRESSED_RGBA_ASTC_10x10_KHR: 0x93BB;
    readonly COMPRESSED_RGBA_ASTC_12x10_KHR: 0x93BC;
    readonly COMPRESSED_RGBA_ASTC_12x12_KHR: 0x93BD;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: 0x93D0;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR: 0x93D1;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR: 0x93D2;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR: 0x93D3;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR: 0x93D4;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR: 0x93D5;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR: 0x93D6;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR: 0x93D7;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR: 0x93D8;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR: 0x93D9;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR: 0x93DA;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR: 0x93DB;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR: 0x93DC;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR: 0x93DD;
}

interface WEBGL_compressed_texture_etc {
    readonly COMPRESSED_R11_EAC: 0x9270;
    readonly COMPRESSED_SIGNED_R11_EAC: 0x9271;
    readonly COMPRESSED_RG11_EAC: 0x9272;
    readonly COMPRESSED_SIGNED_RG11_EAC: 0x9273;
    readonly COMPRESSED_RGB8_ETC2: 0x9274;
    readonly COMPRESSED_SRGB8_ETC2: 0x9275;
    readonly COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9276;
    readonly COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9277;
    readonly COMPRESSED_RGBA8_ETC2_EAC: 0x9278;
    readonly COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 0x9279;
}

interface WEBGL_compressed_texture_etc1 {
    readonly COMPRESSED_RGB_ETC1_WEBGL: 0x8D64;
}

/** The WEBGL_compressed_texture_s3tc extension is part of the WebGL API and exposes four S3TC compressed texture formats. */
interface WEBGL_compressed_texture_s3tc {
    readonly COMPRESSED_RGB_S3TC_DXT1_EXT: 0x83F0;
    readonly COMPRESSED_RGBA_S3TC_DXT1_EXT: 0x83F1;
    readonly COMPRESSED_RGBA_S3TC_DXT3_EXT: 0x83F2;
    readonly COMPRESSED_RGBA_S3TC_DXT5_EXT: 0x83F3;
}

interface WEBGL_compressed_texture_s3tc_srgb {
    readonly COMPRESSED_SRGB_S3TC_DXT1_EXT: 0x8C4C;
    readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 0x8C4D;
    readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 0x8C4E;
    readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 0x8C4F;
}

/** The WEBGL_debug_renderer_info extension is part of the WebGL API and exposes two constants with information about the graphics driver for debugging purposes. */
interface WEBGL_debug_renderer_info {
    readonly UNMASKED_VENDOR_WEBGL: 0x9245;
    readonly UNMASKED_RENDERER_WEBGL: 0x9246;
}

interface WEBGL_debug_shaders {
    getTranslatedShaderSource(shader: WebGLShader): string;
}

/** The WEBGL_depth_texture extension is part of the WebGL API and defines 2D depth and depth-stencil textures. */
interface WEBGL_depth_texture {
    readonly UNSIGNED_INT_24_8_WEBGL: 0x84FA;
}

interface WEBGL_draw_buffers {
    drawBuffersWEBGL(buffers: GLenum[]): void;
    readonly COLOR_ATTACHMENT0_WEBGL: 0x8CE0;
    readonly COLOR_ATTACHMENT1_WEBGL: 0x8CE1;
    readonly COLOR_ATTACHMENT2_WEBGL: 0x8CE2;
    readonly COLOR_ATTACHMENT3_WEBGL: 0x8CE3;
    readonly COLOR_ATTACHMENT4_WEBGL: 0x8CE4;
    readonly COLOR_ATTACHMENT5_WEBGL: 0x8CE5;
    readonly COLOR_ATTACHMENT6_WEBGL: 0x8CE6;
    readonly COLOR_ATTACHMENT7_WEBGL: 0x8CE7;
    readonly COLOR_ATTACHMENT8_WEBGL: 0x8CE8;
    readonly COLOR_ATTACHMENT9_WEBGL: 0x8CE9;
    readonly COLOR_ATTACHMENT10_WEBGL: 0x8CEA;
    readonly COLOR_ATTACHMENT11_WEBGL: 0x8CEB;
    readonly COLOR_ATTACHMENT12_WEBGL: 0x8CEC;
    readonly COLOR_ATTACHMENT13_WEBGL: 0x8CED;
    readonly COLOR_ATTACHMENT14_WEBGL: 0x8CEE;
    readonly COLOR_ATTACHMENT15_WEBGL: 0x8CEF;
    readonly DRAW_BUFFER0_WEBGL: 0x8825;
    readonly DRAW_BUFFER1_WEBGL: 0x8826;
    readonly DRAW_BUFFER2_WEBGL: 0x8827;
    readonly DRAW_BUFFER3_WEBGL: 0x8828;
    readonly DRAW_BUFFER4_WEBGL: 0x8829;
    readonly DRAW_BUFFER5_WEBGL: 0x882A;
    readonly DRAW_BUFFER6_WEBGL: 0x882B;
    readonly DRAW_BUFFER7_WEBGL: 0x882C;
    readonly DRAW_BUFFER8_WEBGL: 0x882D;
    readonly DRAW_BUFFER9_WEBGL: 0x882E;
    readonly DRAW_BUFFER10_WEBGL: 0x882F;
    readonly DRAW_BUFFER11_WEBGL: 0x8830;
    readonly DRAW_BUFFER12_WEBGL: 0x8831;
    readonly DRAW_BUFFER13_WEBGL: 0x8832;
    readonly DRAW_BUFFER14_WEBGL: 0x8833;
    readonly DRAW_BUFFER15_WEBGL: 0x8834;
    readonly MAX_COLOR_ATTACHMENTS_WEBGL: 0x8CDF;
    readonly MAX_DRAW_BUFFERS_WEBGL: 0x8824;
}

interface WEBGL_lose_context {
    loseContext(): void;
    restoreContext(): void;
}

interface WEBGL_multi_draw {
    multiDrawArraysInstancedWEBGL(mode: GLenum, firstsList: Int32Array | GLint[], firstsOffset: GLuint, countsList: Int32Array | GLsizei[], countsOffset: GLuint, instanceCountsList: Int32Array | GLsizei[], instanceCountsOffset: GLuint, drawcount: GLsizei): void;
    multiDrawArraysWEBGL(mode: GLenum, firstsList: Int32Array | GLint[], firstsOffset: GLuint, countsList: Int32Array | GLsizei[], countsOffset: GLuint, drawcount: GLsizei): void;
    multiDrawElementsInstancedWEBGL(mode: GLenum, countsList: Int32Array | GLsizei[], countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | GLsizei[], offsetsOffset: GLuint, instanceCountsList: Int32Array | GLsizei[], instanceCountsOffset: GLuint, drawcount: GLsizei): void;
    multiDrawElementsWEBGL(mode: GLenum, countsList: Int32Array | GLsizei[], countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | GLsizei[], offsetsOffset: GLuint, drawcount: GLsizei): void;
}

/** A WaveShaperNode always has exactly one input and one output. */
interface WaveShaperNode extends AudioNode {
    curve: Float32Array | null;
    oversample: OverSampleType;
}

declare var WaveShaperNode: {
    prototype: WaveShaperNode;
    new(context: BaseAudioContext, options?: WaveShaperOptions): WaveShaperNode;
};

interface WebGL2RenderingContext extends WebGL2RenderingContextBase, WebGL2RenderingContextOverloads, WebGLRenderingContextBase {
}

declare var WebGL2RenderingContext: {
    prototype: WebGL2RenderingContext;
    new(): WebGL2RenderingContext;
    readonly READ_BUFFER: 0x0C02;
    readonly UNPACK_ROW_LENGTH: 0x0CF2;
    readonly UNPACK_SKIP_ROWS: 0x0CF3;
    readonly UNPACK_SKIP_PIXELS: 0x0CF4;
    readonly PACK_ROW_LENGTH: 0x0D02;
    readonly PACK_SKIP_ROWS: 0x0D03;
    readonly PACK_SKIP_PIXELS: 0x0D04;
    readonly COLOR: 0x1800;
    readonly DEPTH: 0x1801;
    readonly STENCIL: 0x1802;
    readonly RED: 0x1903;
    readonly RGB8: 0x8051;
    readonly RGBA8: 0x8058;
    readonly RGB10_A2: 0x8059;
    readonly TEXTURE_BINDING_3D: 0x806A;
    readonly UNPACK_SKIP_IMAGES: 0x806D;
    readonly UNPACK_IMAGE_HEIGHT: 0x806E;
    readonly TEXTURE_3D: 0x806F;
    readonly TEXTURE_WRAP_R: 0x8072;
    readonly MAX_3D_TEXTURE_SIZE: 0x8073;
    readonly UNSIGNED_INT_2_10_10_10_REV: 0x8368;
    readonly MAX_ELEMENTS_VERTICES: 0x80E8;
    readonly MAX_ELEMENTS_INDICES: 0x80E9;
    readonly TEXTURE_MIN_LOD: 0x813A;
    readonly TEXTURE_MAX_LOD: 0x813B;
    readonly TEXTURE_BASE_LEVEL: 0x813C;
    readonly TEXTURE_MAX_LEVEL: 0x813D;
    readonly MIN: 0x8007;
    readonly MAX: 0x8008;
    readonly DEPTH_COMPONENT24: 0x81A6;
    readonly MAX_TEXTURE_LOD_BIAS: 0x84FD;
    readonly TEXTURE_COMPARE_MODE: 0x884C;
    readonly TEXTURE_COMPARE_FUNC: 0x884D;
    readonly CURRENT_QUERY: 0x8865;
    readonly QUERY_RESULT: 0x8866;
    readonly QUERY_RESULT_AVAILABLE: 0x8867;
    readonly STREAM_READ: 0x88E1;
    readonly STREAM_COPY: 0x88E2;
    readonly STATIC_READ: 0x88E5;
    readonly STATIC_COPY: 0x88E6;
    readonly DYNAMIC_READ: 0x88E9;
    readonly DYNAMIC_COPY: 0x88EA;
    readonly MAX_DRAW_BUFFERS: 0x8824;
    readonly DRAW_BUFFER0: 0x8825;
    readonly DRAW_BUFFER1: 0x8826;
    readonly DRAW_BUFFER2: 0x8827;
    readonly DRAW_BUFFER3: 0x8828;
    readonly DRAW_BUFFER4: 0x8829;
    readonly DRAW_BUFFER5: 0x882A;
    readonly DRAW_BUFFER6: 0x882B;
    readonly DRAW_BUFFER7: 0x882C;
    readonly DRAW_BUFFER8: 0x882D;
    readonly DRAW_BUFFER9: 0x882E;
    readonly DRAW_BUFFER10: 0x882F;
    readonly DRAW_BUFFER11: 0x8830;
    readonly DRAW_BUFFER12: 0x8831;
    readonly DRAW_BUFFER13: 0x8832;
    readonly DRAW_BUFFER14: 0x8833;
    readonly DRAW_BUFFER15: 0x8834;
    readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 0x8B49;
    readonly MAX_VERTEX_UNIFORM_COMPONENTS: 0x8B4A;
    readonly SAMPLER_3D: 0x8B5F;
    readonly SAMPLER_2D_SHADOW: 0x8B62;
    readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 0x8B8B;
    readonly PIXEL_PACK_BUFFER: 0x88EB;
    readonly PIXEL_UNPACK_BUFFER: 0x88EC;
    readonly PIXEL_PACK_BUFFER_BINDING: 0x88ED;
    readonly PIXEL_UNPACK_BUFFER_BINDING: 0x88EF;
    readonly FLOAT_MAT2x3: 0x8B65;
    readonly FLOAT_MAT2x4: 0x8B66;
    readonly FLOAT_MAT3x2: 0x8B67;
    readonly FLOAT_MAT3x4: 0x8B68;
    readonly FLOAT_MAT4x2: 0x8B69;
    readonly FLOAT_MAT4x3: 0x8B6A;
    readonly SRGB: 0x8C40;
    readonly SRGB8: 0x8C41;
    readonly SRGB8_ALPHA8: 0x8C43;
    readonly COMPARE_REF_TO_TEXTURE: 0x884E;
    readonly RGBA32F: 0x8814;
    readonly RGB32F: 0x8815;
    readonly RGBA16F: 0x881A;
    readonly RGB16F: 0x881B;
    readonly VERTEX_ATTRIB_ARRAY_INTEGER: 0x88FD;
    readonly MAX_ARRAY_TEXTURE_LAYERS: 0x88FF;
    readonly MIN_PROGRAM_TEXEL_OFFSET: 0x8904;
    readonly MAX_PROGRAM_TEXEL_OFFSET: 0x8905;
    readonly MAX_VARYING_COMPONENTS: 0x8B4B;
    readonly TEXTURE_2D_ARRAY: 0x8C1A;
    readonly TEXTURE_BINDING_2D_ARRAY: 0x8C1D;
    readonly R11F_G11F_B10F: 0x8C3A;
    readonly UNSIGNED_INT_10F_11F_11F_REV: 0x8C3B;
    readonly RGB9_E5: 0x8C3D;
    readonly UNSIGNED_INT_5_9_9_9_REV: 0x8C3E;
    readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 0x8C7F;
    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 0x8C80;
    readonly TRANSFORM_FEEDBACK_VARYINGS: 0x8C83;
    readonly TRANSFORM_FEEDBACK_BUFFER_START: 0x8C84;
    readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 0x8C85;
    readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 0x8C88;
    readonly RASTERIZER_DISCARD: 0x8C89;
    readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 0x8C8A;
    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 0x8C8B;
    readonly INTERLEAVED_ATTRIBS: 0x8C8C;
    readonly SEPARATE_ATTRIBS: 0x8C8D;
    readonly TRANSFORM_FEEDBACK_BUFFER: 0x8C8E;
    readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 0x8C8F;
    readonly RGBA32UI: 0x8D70;
    readonly RGB32UI: 0x8D71;
    readonly RGBA16UI: 0x8D76;
    readonly RGB16UI: 0x8D77;
    readonly RGBA8UI: 0x8D7C;
    readonly RGB8UI: 0x8D7D;
    readonly RGBA32I: 0x8D82;
    readonly RGB32I: 0x8D83;
    readonly RGBA16I: 0x8D88;
    readonly RGB16I: 0x8D89;
    readonly RGBA8I: 0x8D8E;
    readonly RGB8I: 0x8D8F;
    readonly RED_INTEGER: 0x8D94;
    readonly RGB_INTEGER: 0x8D98;
    readonly RGBA_INTEGER: 0x8D99;
    readonly SAMPLER_2D_ARRAY: 0x8DC1;
    readonly SAMPLER_2D_ARRAY_SHADOW: 0x8DC4;
    readonly SAMPLER_CUBE_SHADOW: 0x8DC5;
    readonly UNSIGNED_INT_VEC2: 0x8DC6;
    readonly UNSIGNED_INT_VEC3: 0x8DC7;
    readonly UNSIGNED_INT_VEC4: 0x8DC8;
    readonly INT_SAMPLER_2D: 0x8DCA;
    readonly INT_SAMPLER_3D: 0x8DCB;
    readonly INT_SAMPLER_CUBE: 0x8DCC;
    readonly INT_SAMPLER_2D_ARRAY: 0x8DCF;
    readonly UNSIGNED_INT_SAMPLER_2D: 0x8DD2;
    readonly UNSIGNED_INT_SAMPLER_3D: 0x8DD3;
    readonly UNSIGNED_INT_SAMPLER_CUBE: 0x8DD4;
    readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 0x8DD7;
    readonly DEPTH_COMPONENT32F: 0x8CAC;
    readonly DEPTH32F_STENCIL8: 0x8CAD;
    readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 0x8DAD;
    readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 0x8210;
    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 0x8211;
    readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 0x8212;
    readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 0x8213;
    readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 0x8214;
    readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 0x8215;
    readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 0x8216;
    readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 0x8217;
    readonly FRAMEBUFFER_DEFAULT: 0x8218;
    readonly UNSIGNED_INT_24_8: 0x84FA;
    readonly DEPTH24_STENCIL8: 0x88F0;
    readonly UNSIGNED_NORMALIZED: 0x8C17;
    readonly DRAW_FRAMEBUFFER_BINDING: 0x8CA6;
    readonly READ_FRAMEBUFFER: 0x8CA8;
    readonly DRAW_FRAMEBUFFER: 0x8CA9;
    readonly READ_FRAMEBUFFER_BINDING: 0x8CAA;
    readonly RENDERBUFFER_SAMPLES: 0x8CAB;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 0x8CD4;
    readonly MAX_COLOR_ATTACHMENTS: 0x8CDF;
    readonly COLOR_ATTACHMENT1: 0x8CE1;
    readonly COLOR_ATTACHMENT2: 0x8CE2;
    readonly COLOR_ATTACHMENT3: 0x8CE3;
    readonly COLOR_ATTACHMENT4: 0x8CE4;
    readonly COLOR_ATTACHMENT5: 0x8CE5;
    readonly COLOR_ATTACHMENT6: 0x8CE6;
    readonly COLOR_ATTACHMENT7: 0x8CE7;
    readonly COLOR_ATTACHMENT8: 0x8CE8;
    readonly COLOR_ATTACHMENT9: 0x8CE9;
    readonly COLOR_ATTACHMENT10: 0x8CEA;
    readonly COLOR_ATTACHMENT11: 0x8CEB;
    readonly COLOR_ATTACHMENT12: 0x8CEC;
    readonly COLOR_ATTACHMENT13: 0x8CED;
    readonly COLOR_ATTACHMENT14: 0x8CEE;
    readonly COLOR_ATTACHMENT15: 0x8CEF;
    readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 0x8D56;
    readonly MAX_SAMPLES: 0x8D57;
    readonly HALF_FLOAT: 0x140B;
    readonly RG: 0x8227;
    readonly RG_INTEGER: 0x8228;
    readonly R8: 0x8229;
    readonly RG8: 0x822B;
    readonly R16F: 0x822D;
    readonly R32F: 0x822E;
    readonly RG16F: 0x822F;
    readonly RG32F: 0x8230;
    readonly R8I: 0x8231;
    readonly R8UI: 0x8232;
    readonly R16I: 0x8233;
    readonly R16UI: 0x8234;
    readonly R32I: 0x8235;
    readonly R32UI: 0x8236;
    readonly RG8I: 0x8237;
    readonly RG8UI: 0x8238;
    readonly RG16I: 0x8239;
    readonly RG16UI: 0x823A;
    readonly RG32I: 0x823B;
    readonly RG32UI: 0x823C;
    readonly VERTEX_ARRAY_BINDING: 0x85B5;
    readonly R8_SNORM: 0x8F94;
    readonly RG8_SNORM: 0x8F95;
    readonly RGB8_SNORM: 0x8F96;
    readonly RGBA8_SNORM: 0x8F97;
    readonly SIGNED_NORMALIZED: 0x8F9C;
    readonly COPY_READ_BUFFER: 0x8F36;
    readonly COPY_WRITE_BUFFER: 0x8F37;
    readonly COPY_READ_BUFFER_BINDING: 0x8F36;
    readonly COPY_WRITE_BUFFER_BINDING: 0x8F37;
    readonly UNIFORM_BUFFER: 0x8A11;
    readonly UNIFORM_BUFFER_BINDING: 0x8A28;
    readonly UNIFORM_BUFFER_START: 0x8A29;
    readonly UNIFORM_BUFFER_SIZE: 0x8A2A;
    readonly MAX_VERTEX_UNIFORM_BLOCKS: 0x8A2B;
    readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 0x8A2D;
    readonly MAX_COMBINED_UNIFORM_BLOCKS: 0x8A2E;
    readonly MAX_UNIFORM_BUFFER_BINDINGS: 0x8A2F;
    readonly MAX_UNIFORM_BLOCK_SIZE: 0x8A30;
    readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 0x8A31;
    readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 0x8A33;
    readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 0x8A34;
    readonly ACTIVE_UNIFORM_BLOCKS: 0x8A36;
    readonly UNIFORM_TYPE: 0x8A37;
    readonly UNIFORM_SIZE: 0x8A38;
    readonly UNIFORM_BLOCK_INDEX: 0x8A3A;
    readonly UNIFORM_OFFSET: 0x8A3B;
    readonly UNIFORM_ARRAY_STRIDE: 0x8A3C;
    readonly UNIFORM_MATRIX_STRIDE: 0x8A3D;
    readonly UNIFORM_IS_ROW_MAJOR: 0x8A3E;
    readonly UNIFORM_BLOCK_BINDING: 0x8A3F;
    readonly UNIFORM_BLOCK_DATA_SIZE: 0x8A40;
    readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 0x8A42;
    readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 0x8A43;
    readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 0x8A44;
    readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 0x8A46;
    readonly INVALID_INDEX: 0xFFFFFFFF;
    readonly MAX_VERTEX_OUTPUT_COMPONENTS: 0x9122;
    readonly MAX_FRAGMENT_INPUT_COMPONENTS: 0x9125;
    readonly MAX_SERVER_WAIT_TIMEOUT: 0x9111;
    readonly OBJECT_TYPE: 0x9112;
    readonly SYNC_CONDITION: 0x9113;
    readonly SYNC_STATUS: 0x9114;
    readonly SYNC_FLAGS: 0x9115;
    readonly SYNC_FENCE: 0x9116;
    readonly SYNC_GPU_COMMANDS_COMPLETE: 0x9117;
    readonly UNSIGNALED: 0x9118;
    readonly SIGNALED: 0x9119;
    readonly ALREADY_SIGNALED: 0x911A;
    readonly TIMEOUT_EXPIRED: 0x911B;
    readonly CONDITION_SATISFIED: 0x911C;
    readonly WAIT_FAILED: 0x911D;
    readonly SYNC_FLUSH_COMMANDS_BIT: 0x00000001;
    readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 0x88FE;
    readonly ANY_SAMPLES_PASSED: 0x8C2F;
    readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 0x8D6A;
    readonly SAMPLER_BINDING: 0x8919;
    readonly RGB10_A2UI: 0x906F;
    readonly INT_2_10_10_10_REV: 0x8D9F;
    readonly TRANSFORM_FEEDBACK: 0x8E22;
    readonly TRANSFORM_FEEDBACK_PAUSED: 0x8E23;
    readonly TRANSFORM_FEEDBACK_ACTIVE: 0x8E24;
    readonly TRANSFORM_FEEDBACK_BINDING: 0x8E25;
    readonly TEXTURE_IMMUTABLE_FORMAT: 0x912F;
    readonly MAX_ELEMENT_INDEX: 0x8D6B;
    readonly TEXTURE_IMMUTABLE_LEVELS: 0x82DF;
    readonly TIMEOUT_IGNORED: -1;
    readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 0x9247;
    readonly DEPTH_BUFFER_BIT: 0x00000100;
    readonly STENCIL_BUFFER_BIT: 0x00000400;
    readonly COLOR_BUFFER_BIT: 0x00004000;
    readonly POINTS: 0x0000;
    readonly LINES: 0x0001;
    readonly LINE_LOOP: 0x0002;
    readonly LINE_STRIP: 0x0003;
    readonly TRIANGLES: 0x0004;
    readonly TRIANGLE_STRIP: 0x0005;
    readonly TRIANGLE_FAN: 0x0006;
    readonly ZERO: 0;
    readonly ONE: 1;
    readonly SRC_COLOR: 0x0300;
    readonly ONE_MINUS_SRC_COLOR: 0x0301;
    readonly SRC_ALPHA: 0x0302;
    readonly ONE_MINUS_SRC_ALPHA: 0x0303;
    readonly DST_ALPHA: 0x0304;
    readonly ONE_MINUS_DST_ALPHA: 0x0305;
    readonly DST_COLOR: 0x0306;
    readonly ONE_MINUS_DST_COLOR: 0x0307;
    readonly SRC_ALPHA_SATURATE: 0x0308;
    readonly FUNC_ADD: 0x8006;
    readonly BLEND_EQUATION: 0x8009;
    readonly BLEND_EQUATION_RGB: 0x8009;
    readonly BLEND_EQUATION_ALPHA: 0x883D;
    readonly FUNC_SUBTRACT: 0x800A;
    readonly FUNC_REVERSE_SUBTRACT: 0x800B;
    readonly BLEND_DST_RGB: 0x80C8;
    readonly BLEND_SRC_RGB: 0x80C9;
    readonly BLEND_DST_ALPHA: 0x80CA;
    readonly BLEND_SRC_ALPHA: 0x80CB;
    readonly CONSTANT_COLOR: 0x8001;
    readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;
    readonly CONSTANT_ALPHA: 0x8003;
    readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;
    readonly BLEND_COLOR: 0x8005;
    readonly ARRAY_BUFFER: 0x8892;
    readonly ELEMENT_ARRAY_BUFFER: 0x8893;
    readonly ARRAY_BUFFER_BINDING: 0x8894;
    readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;
    readonly STREAM_DRAW: 0x88E0;
    readonly STATIC_DRAW: 0x88E4;
    readonly DYNAMIC_DRAW: 0x88E8;
    readonly BUFFER_SIZE: 0x8764;
    readonly BUFFER_USAGE: 0x8765;
    readonly CURRENT_VERTEX_ATTRIB: 0x8626;
    readonly FRONT: 0x0404;
    readonly BACK: 0x0405;
    readonly FRONT_AND_BACK: 0x0408;
    readonly CULL_FACE: 0x0B44;
    readonly BLEND: 0x0BE2;
    readonly DITHER: 0x0BD0;
    readonly STENCIL_TEST: 0x0B90;
    readonly DEPTH_TEST: 0x0B71;
    readonly SCISSOR_TEST: 0x0C11;
    readonly POLYGON_OFFSET_FILL: 0x8037;
    readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;
    readonly SAMPLE_COVERAGE: 0x80A0;
    readonly NO_ERROR: 0;
    readonly INVALID_ENUM: 0x0500;
    readonly INVALID_VALUE: 0x0501;
    readonly INVALID_OPERATION: 0x0502;
    readonly OUT_OF_MEMORY: 0x0505;
    readonly CW: 0x0900;
    readonly CCW: 0x0901;
    readonly LINE_WIDTH: 0x0B21;
    readonly ALIASED_POINT_SIZE_RANGE: 0x846D;
    readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;
    readonly CULL_FACE_MODE: 0x0B45;
    readonly FRONT_FACE: 0x0B46;
    readonly DEPTH_RANGE: 0x0B70;
    readonly DEPTH_WRITEMASK: 0x0B72;
    readonly DEPTH_CLEAR_VALUE: 0x0B73;
    readonly DEPTH_FUNC: 0x0B74;
    readonly STENCIL_CLEAR_VALUE: 0x0B91;
    readonly STENCIL_FUNC: 0x0B92;
    readonly STENCIL_FAIL: 0x0B94;
    readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;
    readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;
    readonly STENCIL_REF: 0x0B97;
    readonly STENCIL_VALUE_MASK: 0x0B93;
    readonly STENCIL_WRITEMASK: 0x0B98;
    readonly STENCIL_BACK_FUNC: 0x8800;
    readonly STENCIL_BACK_FAIL: 0x8801;
    readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;
    readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;
    readonly STENCIL_BACK_REF: 0x8CA3;
    readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;
    readonly STENCIL_BACK_WRITEMASK: 0x8CA5;
    readonly VIEWPORT: 0x0BA2;
    readonly SCISSOR_BOX: 0x0C10;
    readonly COLOR_CLEAR_VALUE: 0x0C22;
    readonly COLOR_WRITEMASK: 0x0C23;
    readonly UNPACK_ALIGNMENT: 0x0CF5;
    readonly PACK_ALIGNMENT: 0x0D05;
    readonly MAX_TEXTURE_SIZE: 0x0D33;
    readonly MAX_VIEWPORT_DIMS: 0x0D3A;
    readonly SUBPIXEL_BITS: 0x0D50;
    readonly RED_BITS: 0x0D52;
    readonly GREEN_BITS: 0x0D53;
    readonly BLUE_BITS: 0x0D54;
    readonly ALPHA_BITS: 0x0D55;
    readonly DEPTH_BITS: 0x0D56;
    readonly STENCIL_BITS: 0x0D57;
    readonly POLYGON_OFFSET_UNITS: 0x2A00;
    readonly POLYGON_OFFSET_FACTOR: 0x8038;
    readonly TEXTURE_BINDING_2D: 0x8069;
    readonly SAMPLE_BUFFERS: 0x80A8;
    readonly SAMPLES: 0x80A9;
    readonly SAMPLE_COVERAGE_VALUE: 0x80AA;
    readonly SAMPLE_COVERAGE_INVERT: 0x80AB;
    readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;
    readonly DONT_CARE: 0x1100;
    readonly FASTEST: 0x1101;
    readonly NICEST: 0x1102;
    readonly GENERATE_MIPMAP_HINT: 0x8192;
    readonly BYTE: 0x1400;
    readonly UNSIGNED_BYTE: 0x1401;
    readonly SHORT: 0x1402;
    readonly UNSIGNED_SHORT: 0x1403;
    readonly INT: 0x1404;
    readonly UNSIGNED_INT: 0x1405;
    readonly FLOAT: 0x1406;
    readonly DEPTH_COMPONENT: 0x1902;
    readonly ALPHA: 0x1906;
    readonly RGB: 0x1907;
    readonly RGBA: 0x1908;
    readonly LUMINANCE: 0x1909;
    readonly LUMINANCE_ALPHA: 0x190A;
    readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;
    readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;
    readonly UNSIGNED_SHORT_5_6_5: 0x8363;
    readonly FRAGMENT_SHADER: 0x8B30;
    readonly VERTEX_SHADER: 0x8B31;
    readonly MAX_VERTEX_ATTRIBS: 0x8869;
    readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;
    readonly MAX_VARYING_VECTORS: 0x8DFC;
    readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;
    readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;
    readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;
    readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;
    readonly SHADER_TYPE: 0x8B4F;
    readonly DELETE_STATUS: 0x8B80;
    readonly LINK_STATUS: 0x8B82;
    readonly VALIDATE_STATUS: 0x8B83;
    readonly ATTACHED_SHADERS: 0x8B85;
    readonly ACTIVE_UNIFORMS: 0x8B86;
    readonly ACTIVE_ATTRIBUTES: 0x8B89;
    readonly SHADING_LANGUAGE_VERSION: 0x8B8C;
    readonly CURRENT_PROGRAM: 0x8B8D;
    readonly NEVER: 0x0200;
    readonly LESS: 0x0201;
    readonly EQUAL: 0x0202;
    readonly LEQUAL: 0x0203;
    readonly GREATER: 0x0204;
    readonly NOTEQUAL: 0x0205;
    readonly GEQUAL: 0x0206;
    readonly ALWAYS: 0x0207;
    readonly KEEP: 0x1E00;
    readonly REPLACE: 0x1E01;
    readonly INCR: 0x1E02;
    readonly DECR: 0x1E03;
    readonly INVERT: 0x150A;
    readonly INCR_WRAP: 0x8507;
    readonly DECR_WRAP: 0x8508;
    readonly VENDOR: 0x1F00;
    readonly RENDERER: 0x1F01;
    readonly VERSION: 0x1F02;
    readonly NEAREST: 0x2600;
    readonly LINEAR: 0x2601;
    readonly NEAREST_MIPMAP_NEAREST: 0x2700;
    readonly LINEAR_MIPMAP_NEAREST: 0x2701;
    readonly NEAREST_MIPMAP_LINEAR: 0x2702;
    readonly LINEAR_MIPMAP_LINEAR: 0x2703;
    readonly TEXTURE_MAG_FILTER: 0x2800;
    readonly TEXTURE_MIN_FILTER: 0x2801;
    readonly TEXTURE_WRAP_S: 0x2802;
    readonly TEXTURE_WRAP_T: 0x2803;
    readonly TEXTURE_2D: 0x0DE1;
    readonly TEXTURE: 0x1702;
    readonly TEXTURE_CUBE_MAP: 0x8513;
    readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;
    readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;
    readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;
    readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;
    readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;
    readonly TEXTURE0: 0x84C0;
    readonly TEXTURE1: 0x84C1;
    readonly TEXTURE2: 0x84C2;
    readonly TEXTURE3: 0x84C3;
    readonly TEXTURE4: 0x84C4;
    readonly TEXTURE5: 0x84C5;
    readonly TEXTURE6: 0x84C6;
    readonly TEXTURE7: 0x84C7;
    readonly TEXTURE8: 0x84C8;
    readonly TEXTURE9: 0x84C9;
    readonly TEXTURE10: 0x84CA;
    readonly TEXTURE11: 0x84CB;
    readonly TEXTURE12: 0x84CC;
    readonly TEXTURE13: 0x84CD;
    readonly TEXTURE14: 0x84CE;
    readonly TEXTURE15: 0x84CF;
    readonly TEXTURE16: 0x84D0;
    readonly TEXTURE17: 0x84D1;
    readonly TEXTURE18: 0x84D2;
    readonly TEXTURE19: 0x84D3;
    readonly TEXTURE20: 0x84D4;
    readonly TEXTURE21: 0x84D5;
    readonly TEXTURE22: 0x84D6;
    readonly TEXTURE23: 0x84D7;
    readonly TEXTURE24: 0x84D8;
    readonly TEXTURE25: 0x84D9;
    readonly TEXTURE26: 0x84DA;
    readonly TEXTURE27: 0x84DB;
    readonly TEXTURE28: 0x84DC;
    readonly TEXTURE29: 0x84DD;
    readonly TEXTURE30: 0x84DE;
    readonly TEXTURE31: 0x84DF;
    readonly ACTIVE_TEXTURE: 0x84E0;
    readonly REPEAT: 0x2901;
    readonly CLAMP_TO_EDGE: 0x812F;
    readonly MIRRORED_REPEAT: 0x8370;
    readonly FLOAT_VEC2: 0x8B50;
    readonly FLOAT_VEC3: 0x8B51;
    readonly FLOAT_VEC4: 0x8B52;
    readonly INT_VEC2: 0x8B53;
    readonly INT_VEC3: 0x8B54;
    readonly INT_VEC4: 0x8B55;
    readonly BOOL: 0x8B56;
    readonly BOOL_VEC2: 0x8B57;
    readonly BOOL_VEC3: 0x8B58;
    readonly BOOL_VEC4: 0x8B59;
    readonly FLOAT_MAT2: 0x8B5A;
    readonly FLOAT_MAT3: 0x8B5B;
    readonly FLOAT_MAT4: 0x8B5C;
    readonly SAMPLER_2D: 0x8B5E;
    readonly SAMPLER_CUBE: 0x8B60;
    readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;
    readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;
    readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;
    readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;
    readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;
    readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;
    readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;
    readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;
    readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;
    readonly COMPILE_STATUS: 0x8B81;
    readonly LOW_FLOAT: 0x8DF0;
    readonly MEDIUM_FLOAT: 0x8DF1;
    readonly HIGH_FLOAT: 0x8DF2;
    readonly LOW_INT: 0x8DF3;
    readonly MEDIUM_INT: 0x8DF4;
    readonly HIGH_INT: 0x8DF5;
    readonly FRAMEBUFFER: 0x8D40;
    readonly RENDERBUFFER: 0x8D41;
    readonly RGBA4: 0x8056;
    readonly RGB5_A1: 0x8057;
    readonly RGB565: 0x8D62;
    readonly DEPTH_COMPONENT16: 0x81A5;
    readonly STENCIL_INDEX8: 0x8D48;
    readonly DEPTH_STENCIL: 0x84F9;
    readonly RENDERBUFFER_WIDTH: 0x8D42;
    readonly RENDERBUFFER_HEIGHT: 0x8D43;
    readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;
    readonly RENDERBUFFER_RED_SIZE: 0x8D50;
    readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;
    readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;
    readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;
    readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;
    readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;
    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;
    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;
    readonly COLOR_ATTACHMENT0: 0x8CE0;
    readonly DEPTH_ATTACHMENT: 0x8D00;
    readonly STENCIL_ATTACHMENT: 0x8D20;
    readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;
    readonly NONE: 0;
    readonly FRAMEBUFFER_COMPLETE: 0x8CD5;
    readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;
    readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;
    readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;
    readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;
    readonly FRAMEBUFFER_BINDING: 0x8CA6;
    readonly RENDERBUFFER_BINDING: 0x8CA7;
    readonly MAX_RENDERBUFFER_SIZE: 0x84E8;
    readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;
    readonly UNPACK_FLIP_Y_WEBGL: 0x9240;
    readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;
    readonly CONTEXT_LOST_WEBGL: 0x9242;
    readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;
    readonly BROWSER_DEFAULT_WEBGL: 0x9244;
};

interface WebGL2RenderingContextBase {
    beginQuery(target: GLenum, query: WebGLQuery): void;
    beginTransformFeedback(primitiveMode: GLenum): void;
    bindBufferBase(target: GLenum, index: GLuint, buffer: WebGLBuffer | null): void;
    bindBufferRange(target: GLenum, index: GLuint, buffer: WebGLBuffer | null, offset: GLintptr, size: GLsizeiptr): void;
    bindSampler(unit: GLuint, sampler: WebGLSampler | null): void;
    bindTransformFeedback(target: GLenum, tf: WebGLTransformFeedback | null): void;
    bindVertexArray(array: WebGLVertexArrayObject | null): void;
    blitFramebuffer(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum): void;
    clearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint): void;
    clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Float32List, srcOffset?: GLuint): void;
    clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Int32List, srcOffset?: GLuint): void;
    clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Uint32List, srcOffset?: GLuint): void;
    clientWaitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLuint64): GLenum;
    compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;
    compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;
    compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;
    compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;
    copyBufferSubData(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr): void;
    copyTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
    createQuery(): WebGLQuery | null;
    createSampler(): WebGLSampler | null;
    createTransformFeedback(): WebGLTransformFeedback | null;
    createVertexArray(): WebGLVertexArrayObject | null;
    deleteQuery(query: WebGLQuery | null): void;
    deleteSampler(sampler: WebGLSampler | null): void;
    deleteSync(sync: WebGLSync | null): void;
    deleteTransformFeedback(tf: WebGLTransformFeedback | null): void;
    deleteVertexArray(vertexArray: WebGLVertexArrayObject | null): void;
    drawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei): void;
    drawBuffers(buffers: GLenum[]): void;
    drawElementsInstanced(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei): void;
    drawRangeElements(mode: GLenum, start: GLuint, end: GLuint, count: GLsizei, type: GLenum, offset: GLintptr): void;
    endQuery(target: GLenum): void;
    endTransformFeedback(): void;
    fenceSync(condition: GLenum, flags: GLbitfield): WebGLSync | null;
    framebufferTextureLayer(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, layer: GLint): void;
    getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: GLuint): string | null;
    getActiveUniformBlockParameter(program: WebGLProgram, uniformBlockIndex: GLuint, pname: GLenum): any;
    getActiveUniforms(program: WebGLProgram, uniformIndices: GLuint[], pname: GLenum): any;
    getBufferSubData(target: GLenum, srcByteOffset: GLintptr, dstBuffer: ArrayBufferView, dstOffset?: GLuint, length?: GLuint): void;
    getFragDataLocation(program: WebGLProgram, name: string): GLint;
    getIndexedParameter(target: GLenum, index: GLuint): any;
    getInternalformatParameter(target: GLenum, internalformat: GLenum, pname: GLenum): any;
    getQuery(target: GLenum, pname: GLenum): WebGLQuery | null;
    getQueryParameter(query: WebGLQuery, pname: GLenum): any;
    getSamplerParameter(sampler: WebGLSampler, pname: GLenum): any;
    getSyncParameter(sync: WebGLSync, pname: GLenum): any;
    getTransformFeedbackVarying(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;
    getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string): GLuint;
    getUniformIndices(program: WebGLProgram, uniformNames: string[]): GLuint[] | null;
    invalidateFramebuffer(target: GLenum, attachments: GLenum[]): void;
    invalidateSubFramebuffer(target: GLenum, attachments: GLenum[], x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
    isQuery(query: WebGLQuery | null): GLboolean;
    isSampler(sampler: WebGLSampler | null): GLboolean;
    isSync(sync: WebGLSync | null): GLboolean;
    isTransformFeedback(tf: WebGLTransformFeedback | null): GLboolean;
    isVertexArray(vertexArray: WebGLVertexArrayObject | null): GLboolean;
    pauseTransformFeedback(): void;
    readBuffer(src: GLenum): void;
    renderbufferStorageMultisample(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;
    resumeTransformFeedback(): void;
    samplerParameterf(sampler: WebGLSampler, pname: GLenum, param: GLfloat): void;
    samplerParameteri(sampler: WebGLSampler, pname: GLenum, param: GLint): void;
    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;
    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView | null): void;
    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;
    texStorage2D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;
    texStorage3D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei): void;
    texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;
    texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;
    texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView | null, srcOffset?: GLuint): void;
    transformFeedbackVaryings(program: WebGLProgram, varyings: string[], bufferMode: GLenum): void;
    uniform1ui(location: WebGLUniformLocation | null, v0: GLuint): void;
    uniform1uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform2ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint): void;
    uniform2uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform3ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint): void;
    uniform3uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform4ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint): void;
    uniform4uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint): void;
    uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    vertexAttribDivisor(index: GLuint, divisor: GLuint): void;
    vertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint): void;
    vertexAttribI4iv(index: GLuint, values: Int32List): void;
    vertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint): void;
    vertexAttribI4uiv(index: GLuint, values: Uint32List): void;
    vertexAttribIPointer(index: GLuint, size: GLint, type: GLenum, stride: GLsizei, offset: GLintptr): void;
    waitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLint64): void;
    readonly READ_BUFFER: 0x0C02;
    readonly UNPACK_ROW_LENGTH: 0x0CF2;
    readonly UNPACK_SKIP_ROWS: 0x0CF3;
    readonly UNPACK_SKIP_PIXELS: 0x0CF4;
    readonly PACK_ROW_LENGTH: 0x0D02;
    readonly PACK_SKIP_ROWS: 0x0D03;
    readonly PACK_SKIP_PIXELS: 0x0D04;
    readonly COLOR: 0x1800;
    readonly DEPTH: 0x1801;
    readonly STENCIL: 0x1802;
    readonly RED: 0x1903;
    readonly RGB8: 0x8051;
    readonly RGBA8: 0x8058;
    readonly RGB10_A2: 0x8059;
    readonly TEXTURE_BINDING_3D: 0x806A;
    readonly UNPACK_SKIP_IMAGES: 0x806D;
    readonly UNPACK_IMAGE_HEIGHT: 0x806E;
    readonly TEXTURE_3D: 0x806F;
    readonly TEXTURE_WRAP_R: 0x8072;
    readonly MAX_3D_TEXTURE_SIZE: 0x8073;
    readonly UNSIGNED_INT_2_10_10_10_REV: 0x8368;
    readonly MAX_ELEMENTS_VERTICES: 0x80E8;
    readonly MAX_ELEMENTS_INDICES: 0x80E9;
    readonly TEXTURE_MIN_LOD: 0x813A;
    readonly TEXTURE_MAX_LOD: 0x813B;
    readonly TEXTURE_BASE_LEVEL: 0x813C;
    readonly TEXTURE_MAX_LEVEL: 0x813D;
    readonly MIN: 0x8007;
    readonly MAX: 0x8008;
    readonly DEPTH_COMPONENT24: 0x81A6;
    readonly MAX_TEXTURE_LOD_BIAS: 0x84FD;
    readonly TEXTURE_COMPARE_MODE: 0x884C;
    readonly TEXTURE_COMPARE_FUNC: 0x884D;
    readonly CURRENT_QUERY: 0x8865;
    readonly QUERY_RESULT: 0x8866;
    readonly QUERY_RESULT_AVAILABLE: 0x8867;
    readonly STREAM_READ: 0x88E1;
    readonly STREAM_COPY: 0x88E2;
    readonly STATIC_READ: 0x88E5;
    readonly STATIC_COPY: 0x88E6;
    readonly DYNAMIC_READ: 0x88E9;
    readonly DYNAMIC_COPY: 0x88EA;
    readonly MAX_DRAW_BUFFERS: 0x8824;
    readonly DRAW_BUFFER0: 0x8825;
    readonly DRAW_BUFFER1: 0x8826;
    readonly DRAW_BUFFER2: 0x8827;
    readonly DRAW_BUFFER3: 0x8828;
    readonly DRAW_BUFFER4: 0x8829;
    readonly DRAW_BUFFER5: 0x882A;
    readonly DRAW_BUFFER6: 0x882B;
    readonly DRAW_BUFFER7: 0x882C;
    readonly DRAW_BUFFER8: 0x882D;
    readonly DRAW_BUFFER9: 0x882E;
    readonly DRAW_BUFFER10: 0x882F;
    readonly DRAW_BUFFER11: 0x8830;
    readonly DRAW_BUFFER12: 0x8831;
    readonly DRAW_BUFFER13: 0x8832;
    readonly DRAW_BUFFER14: 0x8833;
    readonly DRAW_BUFFER15: 0x8834;
    readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 0x8B49;
    readonly MAX_VERTEX_UNIFORM_COMPONENTS: 0x8B4A;
    readonly SAMPLER_3D: 0x8B5F;
    readonly SAMPLER_2D_SHADOW: 0x8B62;
    readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 0x8B8B;
    readonly PIXEL_PACK_BUFFER: 0x88EB;
    readonly PIXEL_UNPACK_BUFFER: 0x88EC;
    readonly PIXEL_PACK_BUFFER_BINDING: 0x88ED;
    readonly PIXEL_UNPACK_BUFFER_BINDING: 0x88EF;
    readonly FLOAT_MAT2x3: 0x8B65;
    readonly FLOAT_MAT2x4: 0x8B66;
    readonly FLOAT_MAT3x2: 0x8B67;
    readonly FLOAT_MAT3x4: 0x8B68;
    readonly FLOAT_MAT4x2: 0x8B69;
    readonly FLOAT_MAT4x3: 0x8B6A;
    readonly SRGB: 0x8C40;
    readonly SRGB8: 0x8C41;
    readonly SRGB8_ALPHA8: 0x8C43;
    readonly COMPARE_REF_TO_TEXTURE: 0x884E;
    readonly RGBA32F: 0x8814;
    readonly RGB32F: 0x8815;
    readonly RGBA16F: 0x881A;
    readonly RGB16F: 0x881B;
    readonly VERTEX_ATTRIB_ARRAY_INTEGER: 0x88FD;
    readonly MAX_ARRAY_TEXTURE_LAYERS: 0x88FF;
    readonly MIN_PROGRAM_TEXEL_OFFSET: 0x8904;
    readonly MAX_PROGRAM_TEXEL_OFFSET: 0x8905;
    readonly MAX_VARYING_COMPONENTS: 0x8B4B;
    readonly TEXTURE_2D_ARRAY: 0x8C1A;
    readonly TEXTURE_BINDING_2D_ARRAY: 0x8C1D;
    readonly R11F_G11F_B10F: 0x8C3A;
    readonly UNSIGNED_INT_10F_11F_11F_REV: 0x8C3B;
    readonly RGB9_E5: 0x8C3D;
    readonly UNSIGNED_INT_5_9_9_9_REV: 0x8C3E;
    readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 0x8C7F;
    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 0x8C80;
    readonly TRANSFORM_FEEDBACK_VARYINGS: 0x8C83;
    readonly TRANSFORM_FEEDBACK_BUFFER_START: 0x8C84;
    readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 0x8C85;
    readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 0x8C88;
    readonly RASTERIZER_DISCARD: 0x8C89;
    readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 0x8C8A;
    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 0x8C8B;
    readonly INTERLEAVED_ATTRIBS: 0x8C8C;
    readonly SEPARATE_ATTRIBS: 0x8C8D;
    readonly TRANSFORM_FEEDBACK_BUFFER: 0x8C8E;
    readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 0x8C8F;
    readonly RGBA32UI: 0x8D70;
    readonly RGB32UI: 0x8D71;
    readonly RGBA16UI: 0x8D76;
    readonly RGB16UI: 0x8D77;
    readonly RGBA8UI: 0x8D7C;
    readonly RGB8UI: 0x8D7D;
    readonly RGBA32I: 0x8D82;
    readonly RGB32I: 0x8D83;
    readonly RGBA16I: 0x8D88;
    readonly RGB16I: 0x8D89;
    readonly RGBA8I: 0x8D8E;
    readonly RGB8I: 0x8D8F;
    readonly RED_INTEGER: 0x8D94;
    readonly RGB_INTEGER: 0x8D98;
    readonly RGBA_INTEGER: 0x8D99;
    readonly SAMPLER_2D_ARRAY: 0x8DC1;
    readonly SAMPLER_2D_ARRAY_SHADOW: 0x8DC4;
    readonly SAMPLER_CUBE_SHADOW: 0x8DC5;
    readonly UNSIGNED_INT_VEC2: 0x8DC6;
    readonly UNSIGNED_INT_VEC3: 0x8DC7;
    readonly UNSIGNED_INT_VEC4: 0x8DC8;
    readonly INT_SAMPLER_2D: 0x8DCA;
    readonly INT_SAMPLER_3D: 0x8DCB;
    readonly INT_SAMPLER_CUBE: 0x8DCC;
    readonly INT_SAMPLER_2D_ARRAY: 0x8DCF;
    readonly UNSIGNED_INT_SAMPLER_2D: 0x8DD2;
    readonly UNSIGNED_INT_SAMPLER_3D: 0x8DD3;
    readonly UNSIGNED_INT_SAMPLER_CUBE: 0x8DD4;
    readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 0x8DD7;
    readonly DEPTH_COMPONENT32F: 0x8CAC;
    readonly DEPTH32F_STENCIL8: 0x8CAD;
    readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 0x8DAD;
    readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 0x8210;
    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 0x8211;
    readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 0x8212;
    readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 0x8213;
    readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 0x8214;
    readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 0x8215;
    readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 0x8216;
    readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 0x8217;
    readonly FRAMEBUFFER_DEFAULT: 0x8218;
    readonly UNSIGNED_INT_24_8: 0x84FA;
    readonly DEPTH24_STENCIL8: 0x88F0;
    readonly UNSIGNED_NORMALIZED: 0x8C17;
    readonly DRAW_FRAMEBUFFER_BINDING: 0x8CA6;
    readonly READ_FRAMEBUFFER: 0x8CA8;
    readonly DRAW_FRAMEBUFFER: 0x8CA9;
    readonly READ_FRAMEBUFFER_BINDING: 0x8CAA;
    readonly RENDERBUFFER_SAMPLES: 0x8CAB;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 0x8CD4;
    readonly MAX_COLOR_ATTACHMENTS: 0x8CDF;
    readonly COLOR_ATTACHMENT1: 0x8CE1;
    readonly COLOR_ATTACHMENT2: 0x8CE2;
    readonly COLOR_ATTACHMENT3: 0x8CE3;
    readonly COLOR_ATTACHMENT4: 0x8CE4;
    readonly COLOR_ATTACHMENT5: 0x8CE5;
    readonly COLOR_ATTACHMENT6: 0x8CE6;
    readonly COLOR_ATTACHMENT7: 0x8CE7;
    readonly COLOR_ATTACHMENT8: 0x8CE8;
    readonly COLOR_ATTACHMENT9: 0x8CE9;
    readonly COLOR_ATTACHMENT10: 0x8CEA;
    readonly COLOR_ATTACHMENT11: 0x8CEB;
    readonly COLOR_ATTACHMENT12: 0x8CEC;
    readonly COLOR_ATTACHMENT13: 0x8CED;
    readonly COLOR_ATTACHMENT14: 0x8CEE;
    readonly COLOR_ATTACHMENT15: 0x8CEF;
    readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 0x8D56;
    readonly MAX_SAMPLES: 0x8D57;
    readonly HALF_FLOAT: 0x140B;
    readonly RG: 0x8227;
    readonly RG_INTEGER: 0x8228;
    readonly R8: 0x8229;
    readonly RG8: 0x822B;
    readonly R16F: 0x822D;
    readonly R32F: 0x822E;
    readonly RG16F: 0x822F;
    readonly RG32F: 0x8230;
    readonly R8I: 0x8231;
    readonly R8UI: 0x8232;
    readonly R16I: 0x8233;
    readonly R16UI: 0x8234;
    readonly R32I: 0x8235;
    readonly R32UI: 0x8236;
    readonly RG8I: 0x8237;
    readonly RG8UI: 0x8238;
    readonly RG16I: 0x8239;
    readonly RG16UI: 0x823A;
    readonly RG32I: 0x823B;
    readonly RG32UI: 0x823C;
    readonly VERTEX_ARRAY_BINDING: 0x85B5;
    readonly R8_SNORM: 0x8F94;
    readonly RG8_SNORM: 0x8F95;
    readonly RGB8_SNORM: 0x8F96;
    readonly RGBA8_SNORM: 0x8F97;
    readonly SIGNED_NORMALIZED: 0x8F9C;
    readonly COPY_READ_BUFFER: 0x8F36;
    readonly COPY_WRITE_BUFFER: 0x8F37;
    readonly COPY_READ_BUFFER_BINDING: 0x8F36;
    readonly COPY_WRITE_BUFFER_BINDING: 0x8F37;
    readonly UNIFORM_BUFFER: 0x8A11;
    readonly UNIFORM_BUFFER_BINDING: 0x8A28;
    readonly UNIFORM_BUFFER_START: 0x8A29;
    readonly UNIFORM_BUFFER_SIZE: 0x8A2A;
    readonly MAX_VERTEX_UNIFORM_BLOCKS: 0x8A2B;
    readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 0x8A2D;
    readonly MAX_COMBINED_UNIFORM_BLOCKS: 0x8A2E;
    readonly MAX_UNIFORM_BUFFER_BINDINGS: 0x8A2F;
    readonly MAX_UNIFORM_BLOCK_SIZE: 0x8A30;
    readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 0x8A31;
    readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 0x8A33;
    readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 0x8A34;
    readonly ACTIVE_UNIFORM_BLOCKS: 0x8A36;
    readonly UNIFORM_TYPE: 0x8A37;
    readonly UNIFORM_SIZE: 0x8A38;
    readonly UNIFORM_BLOCK_INDEX: 0x8A3A;
    readonly UNIFORM_OFFSET: 0x8A3B;
    readonly UNIFORM_ARRAY_STRIDE: 0x8A3C;
    readonly UNIFORM_MATRIX_STRIDE: 0x8A3D;
    readonly UNIFORM_IS_ROW_MAJOR: 0x8A3E;
    readonly UNIFORM_BLOCK_BINDING: 0x8A3F;
    readonly UNIFORM_BLOCK_DATA_SIZE: 0x8A40;
    readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 0x8A42;
    readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 0x8A43;
    readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 0x8A44;
    readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 0x8A46;
    readonly INVALID_INDEX: 0xFFFFFFFF;
    readonly MAX_VERTEX_OUTPUT_COMPONENTS: 0x9122;
    readonly MAX_FRAGMENT_INPUT_COMPONENTS: 0x9125;
    readonly MAX_SERVER_WAIT_TIMEOUT: 0x9111;
    readonly OBJECT_TYPE: 0x9112;
    readonly SYNC_CONDITION: 0x9113;
    readonly SYNC_STATUS: 0x9114;
    readonly SYNC_FLAGS: 0x9115;
    readonly SYNC_FENCE: 0x9116;
    readonly SYNC_GPU_COMMANDS_COMPLETE: 0x9117;
    readonly UNSIGNALED: 0x9118;
    readonly SIGNALED: 0x9119;
    readonly ALREADY_SIGNALED: 0x911A;
    readonly TIMEOUT_EXPIRED: 0x911B;
    readonly CONDITION_SATISFIED: 0x911C;
    readonly WAIT_FAILED: 0x911D;
    readonly SYNC_FLUSH_COMMANDS_BIT: 0x00000001;
    readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 0x88FE;
    readonly ANY_SAMPLES_PASSED: 0x8C2F;
    readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 0x8D6A;
    readonly SAMPLER_BINDING: 0x8919;
    readonly RGB10_A2UI: 0x906F;
    readonly INT_2_10_10_10_REV: 0x8D9F;
    readonly TRANSFORM_FEEDBACK: 0x8E22;
    readonly TRANSFORM_FEEDBACK_PAUSED: 0x8E23;
    readonly TRANSFORM_FEEDBACK_ACTIVE: 0x8E24;
    readonly TRANSFORM_FEEDBACK_BINDING: 0x8E25;
    readonly TEXTURE_IMMUTABLE_FORMAT: 0x912F;
    readonly MAX_ELEMENT_INDEX: 0x8D6B;
    readonly TEXTURE_IMMUTABLE_LEVELS: 0x82DF;
    readonly TIMEOUT_IGNORED: -1;
    readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 0x9247;
}

interface WebGL2RenderingContextOverloads {
    bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;
    bufferData(target: GLenum, srcData: BufferSource | null, usage: GLenum): void;
    bufferData(target: GLenum, srcData: ArrayBufferView, usage: GLenum, srcOffset: GLuint, length?: GLuint): void;
    bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: BufferSource): void;
    bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: ArrayBufferView, srcOffset: GLuint, length?: GLuint): void;
    compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;
    compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;
    compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;
    compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;
    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView | null): void;
    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, offset: GLintptr): void;
    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView, dstOffset: GLuint): void;
    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
    texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;
    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;
    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;
    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;
    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;
    uniform1fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform1iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform2fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform2iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform3fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform3iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform4fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform4iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
}

/** Part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getActiveAttrib() and WebGLRenderingContext.getActiveUniform() methods. */
interface WebGLActiveInfo {
    readonly name: string;
    readonly size: GLint;
    readonly type: GLenum;
}

declare var WebGLActiveInfo: {
    prototype: WebGLActiveInfo;
    new(): WebGLActiveInfo;
};

/** Part of the WebGL API and represents an opaque buffer object storing data such as vertices or colors. */
interface WebGLBuffer {
}

declare var WebGLBuffer: {
    prototype: WebGLBuffer;
    new(): WebGLBuffer;
};

/** The WebContextEvent interface is part of the WebGL API and is an interface for an event that is generated in response to a status change to the WebGL rendering context. */
interface WebGLContextEvent extends Event {
    readonly statusMessage: string;
}

declare var WebGLContextEvent: {
    prototype: WebGLContextEvent;
    new(type: string, eventInit?: WebGLContextEventInit): WebGLContextEvent;
};

/** Part of the WebGL API and represents a collection of buffers that serve as a rendering destination. */
interface WebGLFramebuffer {
}

declare var WebGLFramebuffer: {
    prototype: WebGLFramebuffer;
    new(): WebGLFramebuffer;
};

/** The WebGLProgram is part of the WebGL API and is a combination of two compiled WebGLShaders consisting of a vertex shader and a fragment shader (both written in GLSL). */
interface WebGLProgram {
}

declare var WebGLProgram: {
    prototype: WebGLProgram;
    new(): WebGLProgram;
};

interface WebGLQuery {
}

declare var WebGLQuery: {
    prototype: WebGLQuery;
    new(): WebGLQuery;
};

/** Part of the WebGL API and represents a buffer that can contain an image, or can be source or target of an rendering operation. */
interface WebGLRenderbuffer {
}

declare var WebGLRenderbuffer: {
    prototype: WebGLRenderbuffer;
    new(): WebGLRenderbuffer;
};

/** Provides an interface to the OpenGL ES 2.0 graphics rendering context for the drawing surface of an HTML <canvas> element. */
interface WebGLRenderingContext extends WebGLRenderingContextBase, WebGLRenderingContextOverloads {
}

declare var WebGLRenderingContext: {
    prototype: WebGLRenderingContext;
    new(): WebGLRenderingContext;
    readonly DEPTH_BUFFER_BIT: 0x00000100;
    readonly STENCIL_BUFFER_BIT: 0x00000400;
    readonly COLOR_BUFFER_BIT: 0x00004000;
    readonly POINTS: 0x0000;
    readonly LINES: 0x0001;
    readonly LINE_LOOP: 0x0002;
    readonly LINE_STRIP: 0x0003;
    readonly TRIANGLES: 0x0004;
    readonly TRIANGLE_STRIP: 0x0005;
    readonly TRIANGLE_FAN: 0x0006;
    readonly ZERO: 0;
    readonly ONE: 1;
    readonly SRC_COLOR: 0x0300;
    readonly ONE_MINUS_SRC_COLOR: 0x0301;
    readonly SRC_ALPHA: 0x0302;
    readonly ONE_MINUS_SRC_ALPHA: 0x0303;
    readonly DST_ALPHA: 0x0304;
    readonly ONE_MINUS_DST_ALPHA: 0x0305;
    readonly DST_COLOR: 0x0306;
    readonly ONE_MINUS_DST_COLOR: 0x0307;
    readonly SRC_ALPHA_SATURATE: 0x0308;
    readonly FUNC_ADD: 0x8006;
    readonly BLEND_EQUATION: 0x8009;
    readonly BLEND_EQUATION_RGB: 0x8009;
    readonly BLEND_EQUATION_ALPHA: 0x883D;
    readonly FUNC_SUBTRACT: 0x800A;
    readonly FUNC_REVERSE_SUBTRACT: 0x800B;
    readonly BLEND_DST_RGB: 0x80C8;
    readonly BLEND_SRC_RGB: 0x80C9;
    readonly BLEND_DST_ALPHA: 0x80CA;
    readonly BLEND_SRC_ALPHA: 0x80CB;
    readonly CONSTANT_COLOR: 0x8001;
    readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;
    readonly CONSTANT_ALPHA: 0x8003;
    readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;
    readonly BLEND_COLOR: 0x8005;
    readonly ARRAY_BUFFER: 0x8892;
    readonly ELEMENT_ARRAY_BUFFER: 0x8893;
    readonly ARRAY_BUFFER_BINDING: 0x8894;
    readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;
    readonly STREAM_DRAW: 0x88E0;
    readonly STATIC_DRAW: 0x88E4;
    readonly DYNAMIC_DRAW: 0x88E8;
    readonly BUFFER_SIZE: 0x8764;
    readonly BUFFER_USAGE: 0x8765;
    readonly CURRENT_VERTEX_ATTRIB: 0x8626;
    readonly FRONT: 0x0404;
    readonly BACK: 0x0405;
    readonly FRONT_AND_BACK: 0x0408;
    readonly CULL_FACE: 0x0B44;
    readonly BLEND: 0x0BE2;
    readonly DITHER: 0x0BD0;
    readonly STENCIL_TEST: 0x0B90;
    readonly DEPTH_TEST: 0x0B71;
    readonly SCISSOR_TEST: 0x0C11;
    readonly POLYGON_OFFSET_FILL: 0x8037;
    readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;
    readonly SAMPLE_COVERAGE: 0x80A0;
    readonly NO_ERROR: 0;
    readonly INVALID_ENUM: 0x0500;
    readonly INVALID_VALUE: 0x0501;
    readonly INVALID_OPERATION: 0x0502;
    readonly OUT_OF_MEMORY: 0x0505;
    readonly CW: 0x0900;
    readonly CCW: 0x0901;
    readonly LINE_WIDTH: 0x0B21;
    readonly ALIASED_POINT_SIZE_RANGE: 0x846D;
    readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;
    readonly CULL_FACE_MODE: 0x0B45;
    readonly FRONT_FACE: 0x0B46;
    readonly DEPTH_RANGE: 0x0B70;
    readonly DEPTH_WRITEMASK: 0x0B72;
    readonly DEPTH_CLEAR_VALUE: 0x0B73;
    readonly DEPTH_FUNC: 0x0B74;
    readonly STENCIL_CLEAR_VALUE: 0x0B91;
    readonly STENCIL_FUNC: 0x0B92;
    readonly STENCIL_FAIL: 0x0B94;
    readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;
    readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;
    readonly STENCIL_REF: 0x0B97;
    readonly STENCIL_VALUE_MASK: 0x0B93;
    readonly STENCIL_WRITEMASK: 0x0B98;
    readonly STENCIL_BACK_FUNC: 0x8800;
    readonly STENCIL_BACK_FAIL: 0x8801;
    readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;
    readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;
    readonly STENCIL_BACK_REF: 0x8CA3;
    readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;
    readonly STENCIL_BACK_WRITEMASK: 0x8CA5;
    readonly VIEWPORT: 0x0BA2;
    readonly SCISSOR_BOX: 0x0C10;
    readonly COLOR_CLEAR_VALUE: 0x0C22;
    readonly COLOR_WRITEMASK: 0x0C23;
    readonly UNPACK_ALIGNMENT: 0x0CF5;
    readonly PACK_ALIGNMENT: 0x0D05;
    readonly MAX_TEXTURE_SIZE: 0x0D33;
    readonly MAX_VIEWPORT_DIMS: 0x0D3A;
    readonly SUBPIXEL_BITS: 0x0D50;
    readonly RED_BITS: 0x0D52;
    readonly GREEN_BITS: 0x0D53;
    readonly BLUE_BITS: 0x0D54;
    readonly ALPHA_BITS: 0x0D55;
    readonly DEPTH_BITS: 0x0D56;
    readonly STENCIL_BITS: 0x0D57;
    readonly POLYGON_OFFSET_UNITS: 0x2A00;
    readonly POLYGON_OFFSET_FACTOR: 0x8038;
    readonly TEXTURE_BINDING_2D: 0x8069;
    readonly SAMPLE_BUFFERS: 0x80A8;
    readonly SAMPLES: 0x80A9;
    readonly SAMPLE_COVERAGE_VALUE: 0x80AA;
    readonly SAMPLE_COVERAGE_INVERT: 0x80AB;
    readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;
    readonly DONT_CARE: 0x1100;
    readonly FASTEST: 0x1101;
    readonly NICEST: 0x1102;
    readonly GENERATE_MIPMAP_HINT: 0x8192;
    readonly BYTE: 0x1400;
    readonly UNSIGNED_BYTE: 0x1401;
    readonly SHORT: 0x1402;
    readonly UNSIGNED_SHORT: 0x1403;
    readonly INT: 0x1404;
    readonly UNSIGNED_INT: 0x1405;
    readonly FLOAT: 0x1406;
    readonly DEPTH_COMPONENT: 0x1902;
    readonly ALPHA: 0x1906;
    readonly RGB: 0x1907;
    readonly RGBA: 0x1908;
    readonly LUMINANCE: 0x1909;
    readonly LUMINANCE_ALPHA: 0x190A;
    readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;
    readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;
    readonly UNSIGNED_SHORT_5_6_5: 0x8363;
    readonly FRAGMENT_SHADER: 0x8B30;
    readonly VERTEX_SHADER: 0x8B31;
    readonly MAX_VERTEX_ATTRIBS: 0x8869;
    readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;
    readonly MAX_VARYING_VECTORS: 0x8DFC;
    readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;
    readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;
    readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;
    readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;
    readonly SHADER_TYPE: 0x8B4F;
    readonly DELETE_STATUS: 0x8B80;
    readonly LINK_STATUS: 0x8B82;
    readonly VALIDATE_STATUS: 0x8B83;
    readonly ATTACHED_SHADERS: 0x8B85;
    readonly ACTIVE_UNIFORMS: 0x8B86;
    readonly ACTIVE_ATTRIBUTES: 0x8B89;
    readonly SHADING_LANGUAGE_VERSION: 0x8B8C;
    readonly CURRENT_PROGRAM: 0x8B8D;
    readonly NEVER: 0x0200;
    readonly LESS: 0x0201;
    readonly EQUAL: 0x0202;
    readonly LEQUAL: 0x0203;
    readonly GREATER: 0x0204;
    readonly NOTEQUAL: 0x0205;
    readonly GEQUAL: 0x0206;
    readonly ALWAYS: 0x0207;
    readonly KEEP: 0x1E00;
    readonly REPLACE: 0x1E01;
    readonly INCR: 0x1E02;
    readonly DECR: 0x1E03;
    readonly INVERT: 0x150A;
    readonly INCR_WRAP: 0x8507;
    readonly DECR_WRAP: 0x8508;
    readonly VENDOR: 0x1F00;
    readonly RENDERER: 0x1F01;
    readonly VERSION: 0x1F02;
    readonly NEAREST: 0x2600;
    readonly LINEAR: 0x2601;
    readonly NEAREST_MIPMAP_NEAREST: 0x2700;
    readonly LINEAR_MIPMAP_NEAREST: 0x2701;
    readonly NEAREST_MIPMAP_LINEAR: 0x2702;
    readonly LINEAR_MIPMAP_LINEAR: 0x2703;
    readonly TEXTURE_MAG_FILTER: 0x2800;
    readonly TEXTURE_MIN_FILTER: 0x2801;
    readonly TEXTURE_WRAP_S: 0x2802;
    readonly TEXTURE_WRAP_T: 0x2803;
    readonly TEXTURE_2D: 0x0DE1;
    readonly TEXTURE: 0x1702;
    readonly TEXTURE_CUBE_MAP: 0x8513;
    readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;
    readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;
    readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;
    readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;
    readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;
    readonly TEXTURE0: 0x84C0;
    readonly TEXTURE1: 0x84C1;
    readonly TEXTURE2: 0x84C2;
    readonly TEXTURE3: 0x84C3;
    readonly TEXTURE4: 0x84C4;
    readonly TEXTURE5: 0x84C5;
    readonly TEXTURE6: 0x84C6;
    readonly TEXTURE7: 0x84C7;
    readonly TEXTURE8: 0x84C8;
    readonly TEXTURE9: 0x84C9;
    readonly TEXTURE10: 0x84CA;
    readonly TEXTURE11: 0x84CB;
    readonly TEXTURE12: 0x84CC;
    readonly TEXTURE13: 0x84CD;
    readonly TEXTURE14: 0x84CE;
    readonly TEXTURE15: 0x84CF;
    readonly TEXTURE16: 0x84D0;
    readonly TEXTURE17: 0x84D1;
    readonly TEXTURE18: 0x84D2;
    readonly TEXTURE19: 0x84D3;
    readonly TEXTURE20: 0x84D4;
    readonly TEXTURE21: 0x84D5;
    readonly TEXTURE22: 0x84D6;
    readonly TEXTURE23: 0x84D7;
    readonly TEXTURE24: 0x84D8;
    readonly TEXTURE25: 0x84D9;
    readonly TEXTURE26: 0x84DA;
    readonly TEXTURE27: 0x84DB;
    readonly TEXTURE28: 0x84DC;
    readonly TEXTURE29: 0x84DD;
    readonly TEXTURE30: 0x84DE;
    readonly TEXTURE31: 0x84DF;
    readonly ACTIVE_TEXTURE: 0x84E0;
    readonly REPEAT: 0x2901;
    readonly CLAMP_TO_EDGE: 0x812F;
    readonly MIRRORED_REPEAT: 0x8370;
    readonly FLOAT_VEC2: 0x8B50;
    readonly FLOAT_VEC3: 0x8B51;
    readonly FLOAT_VEC4: 0x8B52;
    readonly INT_VEC2: 0x8B53;
    readonly INT_VEC3: 0x8B54;
    readonly INT_VEC4: 0x8B55;
    readonly BOOL: 0x8B56;
    readonly BOOL_VEC2: 0x8B57;
    readonly BOOL_VEC3: 0x8B58;
    readonly BOOL_VEC4: 0x8B59;
    readonly FLOAT_MAT2: 0x8B5A;
    readonly FLOAT_MAT3: 0x8B5B;
    readonly FLOAT_MAT4: 0x8B5C;
    readonly SAMPLER_2D: 0x8B5E;
    readonly SAMPLER_CUBE: 0x8B60;
    readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;
    readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;
    readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;
    readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;
    readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;
    readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;
    readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;
    readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;
    readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;
    readonly COMPILE_STATUS: 0x8B81;
    readonly LOW_FLOAT: 0x8DF0;
    readonly MEDIUM_FLOAT: 0x8DF1;
    readonly HIGH_FLOAT: 0x8DF2;
    readonly LOW_INT: 0x8DF3;
    readonly MEDIUM_INT: 0x8DF4;
    readonly HIGH_INT: 0x8DF5;
    readonly FRAMEBUFFER: 0x8D40;
    readonly RENDERBUFFER: 0x8D41;
    readonly RGBA4: 0x8056;
    readonly RGB5_A1: 0x8057;
    readonly RGB565: 0x8D62;
    readonly DEPTH_COMPONENT16: 0x81A5;
    readonly STENCIL_INDEX8: 0x8D48;
    readonly DEPTH_STENCIL: 0x84F9;
    readonly RENDERBUFFER_WIDTH: 0x8D42;
    readonly RENDERBUFFER_HEIGHT: 0x8D43;
    readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;
    readonly RENDERBUFFER_RED_SIZE: 0x8D50;
    readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;
    readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;
    readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;
    readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;
    readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;
    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;
    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;
    readonly COLOR_ATTACHMENT0: 0x8CE0;
    readonly DEPTH_ATTACHMENT: 0x8D00;
    readonly STENCIL_ATTACHMENT: 0x8D20;
    readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;
    readonly NONE: 0;
    readonly FRAMEBUFFER_COMPLETE: 0x8CD5;
    readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;
    readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;
    readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;
    readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;
    readonly FRAMEBUFFER_BINDING: 0x8CA6;
    readonly RENDERBUFFER_BINDING: 0x8CA7;
    readonly MAX_RENDERBUFFER_SIZE: 0x84E8;
    readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;
    readonly UNPACK_FLIP_Y_WEBGL: 0x9240;
    readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;
    readonly CONTEXT_LOST_WEBGL: 0x9242;
    readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;
    readonly BROWSER_DEFAULT_WEBGL: 0x9244;
};

interface WebGLRenderingContextBase {
    readonly canvas: HTMLCanvasElement | OffscreenCanvas;
    readonly drawingBufferHeight: GLsizei;
    readonly drawingBufferWidth: GLsizei;
    activeTexture(texture: GLenum): void;
    attachShader(program: WebGLProgram, shader: WebGLShader): void;
    bindAttribLocation(program: WebGLProgram, index: GLuint, name: string): void;
    bindBuffer(target: GLenum, buffer: WebGLBuffer | null): void;
    bindFramebuffer(target: GLenum, framebuffer: WebGLFramebuffer | null): void;
    bindRenderbuffer(target: GLenum, renderbuffer: WebGLRenderbuffer | null): void;
    bindTexture(target: GLenum, texture: WebGLTexture | null): void;
    blendColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;
    blendEquation(mode: GLenum): void;
    blendEquationSeparate(modeRGB: GLenum, modeAlpha: GLenum): void;
    blendFunc(sfactor: GLenum, dfactor: GLenum): void;
    blendFuncSeparate(srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;
    checkFramebufferStatus(target: GLenum): GLenum;
    clear(mask: GLbitfield): void;
    clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;
    clearDepth(depth: GLclampf): void;
    clearStencil(s: GLint): void;
    colorMask(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean): void;
    compileShader(shader: WebGLShader): void;
    copyTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, x: GLint, y: GLint, width: GLsizei, height: GLsizei, border: GLint): void;
    copyTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
    createBuffer(): WebGLBuffer | null;
    createFramebuffer(): WebGLFramebuffer | null;
    createProgram(): WebGLProgram | null;
    createRenderbuffer(): WebGLRenderbuffer | null;
    createShader(type: GLenum): WebGLShader | null;
    createTexture(): WebGLTexture | null;
    cullFace(mode: GLenum): void;
    deleteBuffer(buffer: WebGLBuffer | null): void;
    deleteFramebuffer(framebuffer: WebGLFramebuffer | null): void;
    deleteProgram(program: WebGLProgram | null): void;
    deleteRenderbuffer(renderbuffer: WebGLRenderbuffer | null): void;
    deleteShader(shader: WebGLShader | null): void;
    deleteTexture(texture: WebGLTexture | null): void;
    depthFunc(func: GLenum): void;
    depthMask(flag: GLboolean): void;
    depthRange(zNear: GLclampf, zFar: GLclampf): void;
    detachShader(program: WebGLProgram, shader: WebGLShader): void;
    disable(cap: GLenum): void;
    disableVertexAttribArray(index: GLuint): void;
    drawArrays(mode: GLenum, first: GLint, count: GLsizei): void;
    drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr): void;
    enable(cap: GLenum): void;
    enableVertexAttribArray(index: GLuint): void;
    finish(): void;
    flush(): void;
    framebufferRenderbuffer(target: GLenum, attachment: GLenum, renderbuffertarget: GLenum, renderbuffer: WebGLRenderbuffer | null): void;
    framebufferTexture2D(target: GLenum, attachment: GLenum, textarget: GLenum, texture: WebGLTexture | null, level: GLint): void;
    frontFace(mode: GLenum): void;
    generateMipmap(target: GLenum): void;
    getActiveAttrib(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;
    getActiveUniform(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;
    getAttachedShaders(program: WebGLProgram): WebGLShader[] | null;
    getAttribLocation(program: WebGLProgram, name: string): GLint;
    getBufferParameter(target: GLenum, pname: GLenum): any;
    getContextAttributes(): WebGLContextAttributes | null;
    getError(): GLenum;
    getExtension(extensionName: "ANGLE_instanced_arrays"): ANGLE_instanced_arrays | null;
    getExtension(extensionName: "EXT_blend_minmax"): EXT_blend_minmax | null;
    getExtension(extensionName: "EXT_color_buffer_float"): EXT_color_buffer_float | null;
    getExtension(extensionName: "EXT_color_buffer_half_float"): EXT_color_buffer_half_float | null;
    getExtension(extensionName: "EXT_float_blend"): EXT_float_blend | null;
    getExtension(extensionName: "EXT_frag_depth"): EXT_frag_depth | null;
    getExtension(extensionName: "EXT_sRGB"): EXT_sRGB | null;
    getExtension(extensionName: "EXT_shader_texture_lod"): EXT_shader_texture_lod | null;
    getExtension(extensionName: "EXT_texture_compression_bptc"): EXT_texture_compression_bptc | null;
    getExtension(extensionName: "EXT_texture_compression_rgtc"): EXT_texture_compression_rgtc | null;
    getExtension(extensionName: "EXT_texture_filter_anisotropic"): EXT_texture_filter_anisotropic | null;
    getExtension(extensionName: "KHR_parallel_shader_compile"): KHR_parallel_shader_compile | null;
    getExtension(extensionName: "OES_element_index_uint"): OES_element_index_uint | null;
    getExtension(extensionName: "OES_fbo_render_mipmap"): OES_fbo_render_mipmap | null;
    getExtension(extensionName: "OES_standard_derivatives"): OES_standard_derivatives | null;
    getExtension(extensionName: "OES_texture_float"): OES_texture_float | null;
    getExtension(extensionName: "OES_texture_float_linear"): OES_texture_float_linear | null;
    getExtension(extensionName: "OES_texture_half_float"): OES_texture_half_float | null;
    getExtension(extensionName: "OES_texture_half_float_linear"): OES_texture_half_float_linear | null;
    getExtension(extensionName: "OES_vertex_array_object"): OES_vertex_array_object | null;
    getExtension(extensionName: "OVR_multiview2"): OVR_multiview2 | null;
    getExtension(extensionName: "WEBGL_color_buffer_float"): WEBGL_color_buffer_float | null;
    getExtension(extensionName: "WEBGL_compressed_texture_astc"): WEBGL_compressed_texture_astc | null;
    getExtension(extensionName: "WEBGL_compressed_texture_etc"): WEBGL_compressed_texture_etc | null;
    getExtension(extensionName: "WEBGL_compressed_texture_etc1"): WEBGL_compressed_texture_etc1 | null;
    getExtension(extensionName: "WEBGL_compressed_texture_s3tc"): WEBGL_compressed_texture_s3tc | null;
    getExtension(extensionName: "WEBGL_compressed_texture_s3tc_srgb"): WEBGL_compressed_texture_s3tc_srgb | null;
    getExtension(extensionName: "WEBGL_debug_renderer_info"): WEBGL_debug_renderer_info | null;
    getExtension(extensionName: "WEBGL_debug_shaders"): WEBGL_debug_shaders | null;
    getExtension(extensionName: "WEBGL_depth_texture"): WEBGL_depth_texture | null;
    getExtension(extensionName: "WEBGL_draw_buffers"): WEBGL_draw_buffers | null;
    getExtension(extensionName: "WEBGL_lose_context"): WEBGL_lose_context | null;
    getExtension(extensionName: "WEBGL_multi_draw"): WEBGL_multi_draw | null;
    getExtension(name: string): any;
    getFramebufferAttachmentParameter(target: GLenum, attachment: GLenum, pname: GLenum): any;
    getParameter(pname: GLenum): any;
    getProgramInfoLog(program: WebGLProgram): string | null;
    getProgramParameter(program: WebGLProgram, pname: GLenum): any;
    getRenderbufferParameter(target: GLenum, pname: GLenum): any;
    getShaderInfoLog(shader: WebGLShader): string | null;
    getShaderParameter(shader: WebGLShader, pname: GLenum): any;
    getShaderPrecisionFormat(shadertype: GLenum, precisiontype: GLenum): WebGLShaderPrecisionFormat | null;
    getShaderSource(shader: WebGLShader): string | null;
    getSupportedExtensions(): string[] | null;
    getTexParameter(target: GLenum, pname: GLenum): any;
    getUniform(program: WebGLProgram, location: WebGLUniformLocation): any;
    getUniformLocation(program: WebGLProgram, name: string): WebGLUniformLocation | null;
    getVertexAttrib(index: GLuint, pname: GLenum): any;
    getVertexAttribOffset(index: GLuint, pname: GLenum): GLintptr;
    hint(target: GLenum, mode: GLenum): void;
    isBuffer(buffer: WebGLBuffer | null): GLboolean;
    isContextLost(): boolean;
    isEnabled(cap: GLenum): GLboolean;
    isFramebuffer(framebuffer: WebGLFramebuffer | null): GLboolean;
    isProgram(program: WebGLProgram | null): GLboolean;
    isRenderbuffer(renderbuffer: WebGLRenderbuffer | null): GLboolean;
    isShader(shader: WebGLShader | null): GLboolean;
    isTexture(texture: WebGLTexture | null): GLboolean;
    lineWidth(width: GLfloat): void;
    linkProgram(program: WebGLProgram): void;
    pixelStorei(pname: GLenum, param: GLint | GLboolean): void;
    polygonOffset(factor: GLfloat, units: GLfloat): void;
    renderbufferStorage(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei): void;
    sampleCoverage(value: GLclampf, invert: GLboolean): void;
    scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
    shaderSource(shader: WebGLShader, source: string): void;
    stencilFunc(func: GLenum, ref: GLint, mask: GLuint): void;
    stencilFuncSeparate(face: GLenum, func: GLenum, ref: GLint, mask: GLuint): void;
    stencilMask(mask: GLuint): void;
    stencilMaskSeparate(face: GLenum, mask: GLuint): void;
    stencilOp(fail: GLenum, zfail: GLenum, zpass: GLenum): void;
    stencilOpSeparate(face: GLenum, fail: GLenum, zfail: GLenum, zpass: GLenum): void;
    texParameterf(target: GLenum, pname: GLenum, param: GLfloat): void;
    texParameteri(target: GLenum, pname: GLenum, param: GLint): void;
    uniform1f(location: WebGLUniformLocation | null, x: GLfloat): void;
    uniform1i(location: WebGLUniformLocation | null, x: GLint): void;
    uniform2f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat): void;
    uniform2i(location: WebGLUniformLocation | null, x: GLint, y: GLint): void;
    uniform3f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat): void;
    uniform3i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint): void;
    uniform4f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;
    uniform4i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint, w: GLint): void;
    useProgram(program: WebGLProgram | null): void;
    validateProgram(program: WebGLProgram): void;
    vertexAttrib1f(index: GLuint, x: GLfloat): void;
    vertexAttrib1fv(index: GLuint, values: Float32List): void;
    vertexAttrib2f(index: GLuint, x: GLfloat, y: GLfloat): void;
    vertexAttrib2fv(index: GLuint, values: Float32List): void;
    vertexAttrib3f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat): void;
    vertexAttrib3fv(index: GLuint, values: Float32List): void;
    vertexAttrib4f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;
    vertexAttrib4fv(index: GLuint, values: Float32List): void;
    vertexAttribPointer(index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, offset: GLintptr): void;
    viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
    readonly DEPTH_BUFFER_BIT: 0x00000100;
    readonly STENCIL_BUFFER_BIT: 0x00000400;
    readonly COLOR_BUFFER_BIT: 0x00004000;
    readonly POINTS: 0x0000;
    readonly LINES: 0x0001;
    readonly LINE_LOOP: 0x0002;
    readonly LINE_STRIP: 0x0003;
    readonly TRIANGLES: 0x0004;
    readonly TRIANGLE_STRIP: 0x0005;
    readonly TRIANGLE_FAN: 0x0006;
    readonly ZERO: 0;
    readonly ONE: 1;
    readonly SRC_COLOR: 0x0300;
    readonly ONE_MINUS_SRC_COLOR: 0x0301;
    readonly SRC_ALPHA: 0x0302;
    readonly ONE_MINUS_SRC_ALPHA: 0x0303;
    readonly DST_ALPHA: 0x0304;
    readonly ONE_MINUS_DST_ALPHA: 0x0305;
    readonly DST_COLOR: 0x0306;
    readonly ONE_MINUS_DST_COLOR: 0x0307;
    readonly SRC_ALPHA_SATURATE: 0x0308;
    readonly FUNC_ADD: 0x8006;
    readonly BLEND_EQUATION: 0x8009;
    readonly BLEND_EQUATION_RGB: 0x8009;
    readonly BLEND_EQUATION_ALPHA: 0x883D;
    readonly FUNC_SUBTRACT: 0x800A;
    readonly FUNC_REVERSE_SUBTRACT: 0x800B;
    readonly BLEND_DST_RGB: 0x80C8;
    readonly BLEND_SRC_RGB: 0x80C9;
    readonly BLEND_DST_ALPHA: 0x80CA;
    readonly BLEND_SRC_ALPHA: 0x80CB;
    readonly CONSTANT_COLOR: 0x8001;
    readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;
    readonly CONSTANT_ALPHA: 0x8003;
    readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;
    readonly BLEND_COLOR: 0x8005;
    readonly ARRAY_BUFFER: 0x8892;
    readonly ELEMENT_ARRAY_BUFFER: 0x8893;
    readonly ARRAY_BUFFER_BINDING: 0x8894;
    readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;
    readonly STREAM_DRAW: 0x88E0;
    readonly STATIC_DRAW: 0x88E4;
    readonly DYNAMIC_DRAW: 0x88E8;
    readonly BUFFER_SIZE: 0x8764;
    readonly BUFFER_USAGE: 0x8765;
    readonly CURRENT_VERTEX_ATTRIB: 0x8626;
    readonly FRONT: 0x0404;
    readonly BACK: 0x0405;
    readonly FRONT_AND_BACK: 0x0408;
    readonly CULL_FACE: 0x0B44;
    readonly BLEND: 0x0BE2;
    readonly DITHER: 0x0BD0;
    readonly STENCIL_TEST: 0x0B90;
    readonly DEPTH_TEST: 0x0B71;
    readonly SCISSOR_TEST: 0x0C11;
    readonly POLYGON_OFFSET_FILL: 0x8037;
    readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;
    readonly SAMPLE_COVERAGE: 0x80A0;
    readonly NO_ERROR: 0;
    readonly INVALID_ENUM: 0x0500;
    readonly INVALID_VALUE: 0x0501;
    readonly INVALID_OPERATION: 0x0502;
    readonly OUT_OF_MEMORY: 0x0505;
    readonly CW: 0x0900;
    readonly CCW: 0x0901;
    readonly LINE_WIDTH: 0x0B21;
    readonly ALIASED_POINT_SIZE_RANGE: 0x846D;
    readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;
    readonly CULL_FACE_MODE: 0x0B45;
    readonly FRONT_FACE: 0x0B46;
    readonly DEPTH_RANGE: 0x0B70;
    readonly DEPTH_WRITEMASK: 0x0B72;
    readonly DEPTH_CLEAR_VALUE: 0x0B73;
    readonly DEPTH_FUNC: 0x0B74;
    readonly STENCIL_CLEAR_VALUE: 0x0B91;
    readonly STENCIL_FUNC: 0x0B92;
    readonly STENCIL_FAIL: 0x0B94;
    readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;
    readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;
    readonly STENCIL_REF: 0x0B97;
    readonly STENCIL_VALUE_MASK: 0x0B93;
    readonly STENCIL_WRITEMASK: 0x0B98;
    readonly STENCIL_BACK_FUNC: 0x8800;
    readonly STENCIL_BACK_FAIL: 0x8801;
    readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;
    readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;
    readonly STENCIL_BACK_REF: 0x8CA3;
    readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;
    readonly STENCIL_BACK_WRITEMASK: 0x8CA5;
    readonly VIEWPORT: 0x0BA2;
    readonly SCISSOR_BOX: 0x0C10;
    readonly COLOR_CLEAR_VALUE: 0x0C22;
    readonly COLOR_WRITEMASK: 0x0C23;
    readonly UNPACK_ALIGNMENT: 0x0CF5;
    readonly PACK_ALIGNMENT: 0x0D05;
    readonly MAX_TEXTURE_SIZE: 0x0D33;
    readonly MAX_VIEWPORT_DIMS: 0x0D3A;
    readonly SUBPIXEL_BITS: 0x0D50;
    readonly RED_BITS: 0x0D52;
    readonly GREEN_BITS: 0x0D53;
    readonly BLUE_BITS: 0x0D54;
    readonly ALPHA_BITS: 0x0D55;
    readonly DEPTH_BITS: 0x0D56;
    readonly STENCIL_BITS: 0x0D57;
    readonly POLYGON_OFFSET_UNITS: 0x2A00;
    readonly POLYGON_OFFSET_FACTOR: 0x8038;
    readonly TEXTURE_BINDING_2D: 0x8069;
    readonly SAMPLE_BUFFERS: 0x80A8;
    readonly SAMPLES: 0x80A9;
    readonly SAMPLE_COVERAGE_VALUE: 0x80AA;
    readonly SAMPLE_COVERAGE_INVERT: 0x80AB;
    readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;
    readonly DONT_CARE: 0x1100;
    readonly FASTEST: 0x1101;
    readonly NICEST: 0x1102;
    readonly GENERATE_MIPMAP_HINT: 0x8192;
    readonly BYTE: 0x1400;
    readonly UNSIGNED_BYTE: 0x1401;
    readonly SHORT: 0x1402;
    readonly UNSIGNED_SHORT: 0x1403;
    readonly INT: 0x1404;
    readonly UNSIGNED_INT: 0x1405;
    readonly FLOAT: 0x1406;
    readonly DEPTH_COMPONENT: 0x1902;
    readonly ALPHA: 0x1906;
    readonly RGB: 0x1907;
    readonly RGBA: 0x1908;
    readonly LUMINANCE: 0x1909;
    readonly LUMINANCE_ALPHA: 0x190A;
    readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;
    readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;
    readonly UNSIGNED_SHORT_5_6_5: 0x8363;
    readonly FRAGMENT_SHADER: 0x8B30;
    readonly VERTEX_SHADER: 0x8B31;
    readonly MAX_VERTEX_ATTRIBS: 0x8869;
    readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;
    readonly MAX_VARYING_VECTORS: 0x8DFC;
    readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;
    readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;
    readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;
    readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;
    readonly SHADER_TYPE: 0x8B4F;
    readonly DELETE_STATUS: 0x8B80;
    readonly LINK_STATUS: 0x8B82;
    readonly VALIDATE_STATUS: 0x8B83;
    readonly ATTACHED_SHADERS: 0x8B85;
    readonly ACTIVE_UNIFORMS: 0x8B86;
    readonly ACTIVE_ATTRIBUTES: 0x8B89;
    readonly SHADING_LANGUAGE_VERSION: 0x8B8C;
    readonly CURRENT_PROGRAM: 0x8B8D;
    readonly NEVER: 0x0200;
    readonly LESS: 0x0201;
    readonly EQUAL: 0x0202;
    readonly LEQUAL: 0x0203;
    readonly GREATER: 0x0204;
    readonly NOTEQUAL: 0x0205;
    readonly GEQUAL: 0x0206;
    readonly ALWAYS: 0x0207;
    readonly KEEP: 0x1E00;
    readonly REPLACE: 0x1E01;
    readonly INCR: 0x1E02;
    readonly DECR: 0x1E03;
    readonly INVERT: 0x150A;
    readonly INCR_WRAP: 0x8507;
    readonly DECR_WRAP: 0x8508;
    readonly VENDOR: 0x1F00;
    readonly RENDERER: 0x1F01;
    readonly VERSION: 0x1F02;
    readonly NEAREST: 0x2600;
    readonly LINEAR: 0x2601;
    readonly NEAREST_MIPMAP_NEAREST: 0x2700;
    readonly LINEAR_MIPMAP_NEAREST: 0x2701;
    readonly NEAREST_MIPMAP_LINEAR: 0x2702;
    readonly LINEAR_MIPMAP_LINEAR: 0x2703;
    readonly TEXTURE_MAG_FILTER: 0x2800;
    readonly TEXTURE_MIN_FILTER: 0x2801;
    readonly TEXTURE_WRAP_S: 0x2802;
    readonly TEXTURE_WRAP_T: 0x2803;
    readonly TEXTURE_2D: 0x0DE1;
    readonly TEXTURE: 0x1702;
    readonly TEXTURE_CUBE_MAP: 0x8513;
    readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;
    readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;
    readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;
    readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;
    readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;
    readonly TEXTURE0: 0x84C0;
    readonly TEXTURE1: 0x84C1;
    readonly TEXTURE2: 0x84C2;
    readonly TEXTURE3: 0x84C3;
    readonly TEXTURE4: 0x84C4;
    readonly TEXTURE5: 0x84C5;
    readonly TEXTURE6: 0x84C6;
    readonly TEXTURE7: 0x84C7;
    readonly TEXTURE8: 0x84C8;
    readonly TEXTURE9: 0x84C9;
    readonly TEXTURE10: 0x84CA;
    readonly TEXTURE11: 0x84CB;
    readonly TEXTURE12: 0x84CC;
    readonly TEXTURE13: 0x84CD;
    readonly TEXTURE14: 0x84CE;
    readonly TEXTURE15: 0x84CF;
    readonly TEXTURE16: 0x84D0;
    readonly TEXTURE17: 0x84D1;
    readonly TEXTURE18: 0x84D2;
    readonly TEXTURE19: 0x84D3;
    readonly TEXTURE20: 0x84D4;
    readonly TEXTURE21: 0x84D5;
    readonly TEXTURE22: 0x84D6;
    readonly TEXTURE23: 0x84D7;
    readonly TEXTURE24: 0x84D8;
    readonly TEXTURE25: 0x84D9;
    readonly TEXTURE26: 0x84DA;
    readonly TEXTURE27: 0x84DB;
    readonly TEXTURE28: 0x84DC;
    readonly TEXTURE29: 0x84DD;
    readonly TEXTURE30: 0x84DE;
    readonly TEXTURE31: 0x84DF;
    readonly ACTIVE_TEXTURE: 0x84E0;
    readonly REPEAT: 0x2901;
    readonly CLAMP_TO_EDGE: 0x812F;
    readonly MIRRORED_REPEAT: 0x8370;
    readonly FLOAT_VEC2: 0x8B50;
    readonly FLOAT_VEC3: 0x8B51;
    readonly FLOAT_VEC4: 0x8B52;
    readonly INT_VEC2: 0x8B53;
    readonly INT_VEC3: 0x8B54;
    readonly INT_VEC4: 0x8B55;
    readonly BOOL: 0x8B56;
    readonly BOOL_VEC2: 0x8B57;
    readonly BOOL_VEC3: 0x8B58;
    readonly BOOL_VEC4: 0x8B59;
    readonly FLOAT_MAT2: 0x8B5A;
    readonly FLOAT_MAT3: 0x8B5B;
    readonly FLOAT_MAT4: 0x8B5C;
    readonly SAMPLER_2D: 0x8B5E;
    readonly SAMPLER_CUBE: 0x8B60;
    readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;
    readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;
    readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;
    readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;
    readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;
    readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;
    readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;
    readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;
    readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;
    readonly COMPILE_STATUS: 0x8B81;
    readonly LOW_FLOAT: 0x8DF0;
    readonly MEDIUM_FLOAT: 0x8DF1;
    readonly HIGH_FLOAT: 0x8DF2;
    readonly LOW_INT: 0x8DF3;
    readonly MEDIUM_INT: 0x8DF4;
    readonly HIGH_INT: 0x8DF5;
    readonly FRAMEBUFFER: 0x8D40;
    readonly RENDERBUFFER: 0x8D41;
    readonly RGBA4: 0x8056;
    readonly RGB5_A1: 0x8057;
    readonly RGB565: 0x8D62;
    readonly DEPTH_COMPONENT16: 0x81A5;
    readonly STENCIL_INDEX8: 0x8D48;
    readonly DEPTH_STENCIL: 0x84F9;
    readonly RENDERBUFFER_WIDTH: 0x8D42;
    readonly RENDERBUFFER_HEIGHT: 0x8D43;
    readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;
    readonly RENDERBUFFER_RED_SIZE: 0x8D50;
    readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;
    readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;
    readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;
    readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;
    readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;
    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;
    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;
    readonly COLOR_ATTACHMENT0: 0x8CE0;
    readonly DEPTH_ATTACHMENT: 0x8D00;
    readonly STENCIL_ATTACHMENT: 0x8D20;
    readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;
    readonly NONE: 0;
    readonly FRAMEBUFFER_COMPLETE: 0x8CD5;
    readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;
    readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;
    readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;
    readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;
    readonly FRAMEBUFFER_BINDING: 0x8CA6;
    readonly RENDERBUFFER_BINDING: 0x8CA7;
    readonly MAX_RENDERBUFFER_SIZE: 0x84E8;
    readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;
    readonly UNPACK_FLIP_Y_WEBGL: 0x9240;
    readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;
    readonly CONTEXT_LOST_WEBGL: 0x9242;
    readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;
    readonly BROWSER_DEFAULT_WEBGL: 0x9244;
}

interface WebGLRenderingContextOverloads {
    bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;
    bufferData(target: GLenum, data: BufferSource | null, usage: GLenum): void;
    bufferSubData(target: GLenum, offset: GLintptr, data: BufferSource): void;
    compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, data: ArrayBufferView): void;
    compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, data: ArrayBufferView): void;
    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
    texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
    uniform1fv(location: WebGLUniformLocation | null, v: Float32List): void;
    uniform1iv(location: WebGLUniformLocation | null, v: Int32List): void;
    uniform2fv(location: WebGLUniformLocation | null, v: Float32List): void;
    uniform2iv(location: WebGLUniformLocation | null, v: Int32List): void;
    uniform3fv(location: WebGLUniformLocation | null, v: Float32List): void;
    uniform3iv(location: WebGLUniformLocation | null, v: Int32List): void;
    uniform4fv(location: WebGLUniformLocation | null, v: Float32List): void;
    uniform4iv(location: WebGLUniformLocation | null, v: Int32List): void;
    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;
    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;
    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;
}

interface WebGLSampler {
}

declare var WebGLSampler: {
    prototype: WebGLSampler;
    new(): WebGLSampler;
};

/** The WebGLShader is part of the WebGL API and can either be a vertex or a fragment shader. A WebGLProgram requires both types of shaders. */
interface WebGLShader {
}

declare var WebGLShader: {
    prototype: WebGLShader;
    new(): WebGLShader;
};

/** Part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getShaderPrecisionFormat() method. */
interface WebGLShaderPrecisionFormat {
    readonly precision: GLint;
    readonly rangeMax: GLint;
    readonly rangeMin: GLint;
}

declare var WebGLShaderPrecisionFormat: {
    prototype: WebGLShaderPrecisionFormat;
    new(): WebGLShaderPrecisionFormat;
};

interface WebGLSync {
}

declare var WebGLSync: {
    prototype: WebGLSync;
    new(): WebGLSync;
};

/** Part of the WebGL API and represents an opaque texture object providing storage and state for texturing operations. */
interface WebGLTexture {
}

declare var WebGLTexture: {
    prototype: WebGLTexture;
    new(): WebGLTexture;
};

interface WebGLTransformFeedback {
}

declare var WebGLTransformFeedback: {
    prototype: WebGLTransformFeedback;
    new(): WebGLTransformFeedback;
};

/** Part of the WebGL API and represents the location of a uniform variable in a shader program. */
interface WebGLUniformLocation {
}

declare var WebGLUniformLocation: {
    prototype: WebGLUniformLocation;
    new(): WebGLUniformLocation;
};

interface WebGLVertexArrayObject {
}

declare var WebGLVertexArrayObject: {
    prototype: WebGLVertexArrayObject;
    new(): WebGLVertexArrayObject;
};

interface WebGLVertexArrayObjectOES {
}

interface WebSocketEventMap {
    "close": CloseEvent;
    "error": Event;
    "message": MessageEvent;
    "open": Event;
}

/** Provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection. */
interface WebSocket extends EventTarget {
    /**
     * Returns a string that indicates how binary data from the WebSocket object is exposed to scripts:
     *
     * Can be set, to change how binary data is returned. The default is "blob".
     */
    binaryType: BinaryType;
    /**
     * Returns the number of bytes of application data (UTF-8 text and binary data) that have been queued using send() but not yet been transmitted to the network.
     *
     * If the WebSocket connection is closed, this attribute's value will only increase with each call to the send() method. (The number does not reset to zero once the connection closes.)
     */
    readonly bufferedAmount: number;
    /** Returns the extensions selected by the server, if any. */
    readonly extensions: string;
    onclose: ((this: WebSocket, ev: CloseEvent) => any) | null;
    onerror: ((this: WebSocket, ev: Event) => any) | null;
    onmessage: ((this: WebSocket, ev: MessageEvent) => any) | null;
    onopen: ((this: WebSocket, ev: Event) => any) | null;
    /** Returns the subprotocol selected by the server, if any. It can be used in conjunction with the array form of the constructor's second argument to perform subprotocol negotiation. */
    readonly protocol: string;
    /** Returns the state of the WebSocket object's connection. It can have the values described below. */
    readonly readyState: number;
    /** Returns the URL that was used to establish the WebSocket connection. */
    readonly url: string;
    /** Closes the WebSocket connection, optionally using code as the the WebSocket connection close code and reason as the the WebSocket connection close reason. */
    close(code?: number, reason?: string): void;
    /** Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView. */
    send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;
    readonly CONNECTING: 0;
    readonly OPEN: 1;
    readonly CLOSING: 2;
    readonly CLOSED: 3;
    addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var WebSocket: {
    prototype: WebSocket;
    new(url: string | URL, protocols?: string | string[]): WebSocket;
    readonly CONNECTING: 0;
    readonly OPEN: 1;
    readonly CLOSING: 2;
    readonly CLOSED: 3;
};

/** Events that occur due to the user moving a mouse wheel or similar input device. */
interface WheelEvent extends MouseEvent {
    readonly deltaMode: number;
    readonly deltaX: number;
    readonly deltaY: number;
    readonly deltaZ: number;
    readonly DOM_DELTA_PIXEL: 0x00;
    readonly DOM_DELTA_LINE: 0x01;
    readonly DOM_DELTA_PAGE: 0x02;
}

declare var WheelEvent: {
    prototype: WheelEvent;
    new(type: string, eventInitDict?: WheelEventInit): WheelEvent;
    readonly DOM_DELTA_PIXEL: 0x00;
    readonly DOM_DELTA_LINE: 0x01;
    readonly DOM_DELTA_PAGE: 0x02;
};

interface WindowEventMap extends GlobalEventHandlersEventMap, WindowEventHandlersEventMap {
    "DOMContentLoaded": Event;
    "devicemotion": DeviceMotionEvent;
    "deviceorientation": DeviceOrientationEvent;
    "gamepadconnected": GamepadEvent;
    "gamepaddisconnected": GamepadEvent;
    "orientationchange": Event;
}

/** A window containing a DOM document; the document property points to the DOM document loaded in that window. */
interface Window extends EventTarget, AnimationFrameProvider, GlobalEventHandlers, WindowEventHandlers, WindowLocalStorage, WindowOrWorkerGlobalScope, WindowSessionStorage {
    /** @deprecated This is a legacy alias of \`navigator\`. */
    readonly clientInformation: Navigator;
    /** Returns true if the window has been closed, false otherwise. */
    readonly closed: boolean;
    /** Defines a new custom element, mapping the given name to the given constructor as an autonomous custom element. */
    readonly customElements: CustomElementRegistry;
    readonly devicePixelRatio: number;
    readonly document: Document;
    /** @deprecated */
    readonly event: Event | undefined;
    /** @deprecated */
    readonly external: External;
    readonly frameElement: Element | null;
    readonly frames: WindowProxy;
    readonly history: History;
    readonly innerHeight: number;
    readonly innerWidth: number;
    readonly length: number;
    get location(): Location;
    set location(href: string | Location);
    /** Returns true if the location bar is visible; otherwise, returns false. */
    readonly locationbar: BarProp;
    /** Returns true if the menu bar is visible; otherwise, returns false. */
    readonly menubar: BarProp;
    name: string;
    readonly navigator: Navigator;
    /** Available only in secure contexts. */
    ondevicemotion: ((this: Window, ev: DeviceMotionEvent) => any) | null;
    /** Available only in secure contexts. */
    ondeviceorientation: ((this: Window, ev: DeviceOrientationEvent) => any) | null;
    /** @deprecated */
    onorientationchange: ((this: Window, ev: Event) => any) | null;
    opener: any;
    /** @deprecated */
    readonly orientation: number;
    readonly outerHeight: number;
    readonly outerWidth: number;
    /** @deprecated This is a legacy alias of \`scrollX\`. */
    readonly pageXOffset: number;
    /** @deprecated This is a legacy alias of \`scrollY\`. */
    readonly pageYOffset: number;
    /**
     * Refers to either the parent WindowProxy, or itself.
     *
     * It can rarely be null e.g. for contentWindow of an iframe that is already removed from the parent.
     */
    readonly parent: WindowProxy;
    /** Returns true if the personal bar is visible; otherwise, returns false. */
    readonly personalbar: BarProp;
    readonly screen: Screen;
    readonly screenLeft: number;
    readonly screenTop: number;
    readonly screenX: number;
    readonly screenY: number;
    readonly scrollX: number;
    readonly scrollY: number;
    /** Returns true if the scrollbars are visible; otherwise, returns false. */
    readonly scrollbars: BarProp;
    readonly self: Window & typeof globalThis;
    readonly speechSynthesis: SpeechSynthesis;
    /** @deprecated */
    status: string;
    /** Returns true if the status bar is visible; otherwise, returns false. */
    readonly statusbar: BarProp;
    /** Returns true if the toolbar is visible; otherwise, returns false. */
    readonly toolbar: BarProp;
    readonly top: WindowProxy | null;
    readonly visualViewport: VisualViewport | null;
    readonly window: Window & typeof globalThis;
    alert(message?: any): void;
    blur(): void;
    cancelIdleCallback(handle: number): void;
    /** @deprecated */
    captureEvents(): void;
    /** Closes the window. */
    close(): void;
    confirm(message?: string): boolean;
    /** Moves the focus to the window's browsing context, if any. */
    focus(): void;
    getComputedStyle(elt: Element, pseudoElt?: string | null): CSSStyleDeclaration;
    getSelection(): Selection | null;
    matchMedia(query: string): MediaQueryList;
    moveBy(x: number, y: number): void;
    moveTo(x: number, y: number): void;
    open(url?: string | URL, target?: string, features?: string): WindowProxy | null;
    /**
     * Posts a message to the given window. Messages can be structured objects, e.g. nested objects and arrays, can contain JavaScript values (strings, numbers, Date objects, etc), and can contain certain data objects such as File Blob, FileList, and ArrayBuffer objects.
     *
     * Objects listed in the transfer member of options are transferred, not just cloned, meaning that they are no longer usable on the sending side.
     *
     * A target origin can be specified using the targetOrigin member of options. If not provided, it defaults to "/". This default restricts the message to same-origin targets only.
     *
     * If the origin of the target window doesn't match the given target origin, the message is discarded, to avoid information leakage. To send the message to the target regardless of origin, set the target origin to "*".
     *
     * Throws a "DataCloneError" DOMException if transfer array contains duplicate objects or if message could not be cloned.
     */
    postMessage(message: any, targetOrigin: string, transfer?: Transferable[]): void;
    postMessage(message: any, options?: WindowPostMessageOptions): void;
    print(): void;
    prompt(message?: string, _default?: string): string | null;
    /** @deprecated */
    releaseEvents(): void;
    requestIdleCallback(callback: IdleRequestCallback, options?: IdleRequestOptions): number;
    resizeBy(x: number, y: number): void;
    resizeTo(width: number, height: number): void;
    scroll(options?: ScrollToOptions): void;
    scroll(x: number, y: number): void;
    scrollBy(options?: ScrollToOptions): void;
    scrollBy(x: number, y: number): void;
    scrollTo(options?: ScrollToOptions): void;
    scrollTo(x: number, y: number): void;
    /** Cancels the document load. */
    stop(): void;
    addEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    [index: number]: Window;
}

declare var Window: {
    prototype: Window;
    new(): Window;
};

interface WindowEventHandlersEventMap {
    "afterprint": Event;
    "beforeprint": Event;
    "beforeunload": BeforeUnloadEvent;
    "gamepadconnected": GamepadEvent;
    "gamepaddisconnected": GamepadEvent;
    "hashchange": HashChangeEvent;
    "languagechange": Event;
    "message": MessageEvent;
    "messageerror": MessageEvent;
    "offline": Event;
    "online": Event;
    "pagehide": PageTransitionEvent;
    "pageshow": PageTransitionEvent;
    "popstate": PopStateEvent;
    "rejectionhandled": PromiseRejectionEvent;
    "storage": StorageEvent;
    "unhandledrejection": PromiseRejectionEvent;
    "unload": Event;
}

interface WindowEventHandlers {
    onafterprint: ((this: WindowEventHandlers, ev: Event) => any) | null;
    onbeforeprint: ((this: WindowEventHandlers, ev: Event) => any) | null;
    onbeforeunload: ((this: WindowEventHandlers, ev: BeforeUnloadEvent) => any) | null;
    ongamepadconnected: ((this: WindowEventHandlers, ev: GamepadEvent) => any) | null;
    ongamepaddisconnected: ((this: WindowEventHandlers, ev: GamepadEvent) => any) | null;
    onhashchange: ((this: WindowEventHandlers, ev: HashChangeEvent) => any) | null;
    onlanguagechange: ((this: WindowEventHandlers, ev: Event) => any) | null;
    onmessage: ((this: WindowEventHandlers, ev: MessageEvent) => any) | null;
    onmessageerror: ((this: WindowEventHandlers, ev: MessageEvent) => any) | null;
    onoffline: ((this: WindowEventHandlers, ev: Event) => any) | null;
    ononline: ((this: WindowEventHandlers, ev: Event) => any) | null;
    onpagehide: ((this: WindowEventHandlers, ev: PageTransitionEvent) => any) | null;
    onpageshow: ((this: WindowEventHandlers, ev: PageTransitionEvent) => any) | null;
    onpopstate: ((this: WindowEventHandlers, ev: PopStateEvent) => any) | null;
    onrejectionhandled: ((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) | null;
    onstorage: ((this: WindowEventHandlers, ev: StorageEvent) => any) | null;
    onunhandledrejection: ((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) | null;
    onunload: ((this: WindowEventHandlers, ev: Event) => any) | null;
    addEventListener<K extends keyof WindowEventHandlersEventMap>(type: K, listener: (this: WindowEventHandlers, ev: WindowEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof WindowEventHandlersEventMap>(type: K, listener: (this: WindowEventHandlers, ev: WindowEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

interface WindowLocalStorage {
    readonly localStorage: Storage;
}

interface WindowOrWorkerGlobalScope {
    /** Available only in secure contexts. */
    readonly caches: CacheStorage;
    readonly crossOriginIsolated: boolean;
    readonly crypto: Crypto;
    readonly indexedDB: IDBFactory;
    readonly isSecureContext: boolean;
    readonly origin: string;
    readonly performance: Performance;
    atob(data: string): string;
    btoa(data: string): string;
    clearInterval(id: number | undefined): void;
    clearTimeout(id: number | undefined): void;
    createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise<ImageBitmap>;
    createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;
    fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
    queueMicrotask(callback: VoidFunction): void;
    reportError(e: any): void;
    setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
    setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
    structuredClone(value: any, options?: StructuredSerializeOptions): any;
}

interface WindowSessionStorage {
    readonly sessionStorage: Storage;
}

interface WorkerEventMap extends AbstractWorkerEventMap {
    "message": MessageEvent;
    "messageerror": MessageEvent;
}

/** This Web Workers API interface represents a background task that can be easily created and can send messages back to its creator. Creating a worker is as simple as calling the Worker() constructor and specifying a script to be run in the worker thread. */
interface Worker extends EventTarget, AbstractWorker {
    onmessage: ((this: Worker, ev: MessageEvent) => any) | null;
    onmessageerror: ((this: Worker, ev: MessageEvent) => any) | null;
    /** Clones message and transmits it to worker's global environment. transfer can be passed as a list of objects that are to be transferred rather than cloned. */
    postMessage(message: any, transfer: Transferable[]): void;
    postMessage(message: any, options?: StructuredSerializeOptions): void;
    /** Aborts worker's associated global environment. */
    terminate(): void;
    addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var Worker: {
    prototype: Worker;
    new(scriptURL: string | URL, options?: WorkerOptions): Worker;
};

/** Available only in secure contexts. */
interface Worklet {
    /**
     * Loads and executes the module script given by moduleURL into all of worklet's global scopes. It can also create additional global scopes as part of this process, depending on the worklet type. The returned promise will fulfill once the script has been successfully loaded and run in all global scopes.
     *
     * The credentials option can be set to a credentials mode to modify the script-fetching process. It defaults to "same-origin".
     *
     * Any failures in fetching the script or its dependencies will cause the returned promise to be rejected with an "AbortError" DOMException. Any errors in parsing the script or its dependencies will cause the returned promise to be rejected with the exception generated during parsing.
     */
    addModule(moduleURL: string | URL, options?: WorkletOptions): Promise<void>;
}

declare var Worklet: {
    prototype: Worklet;
    new(): Worklet;
};

/** This Streams API interface provides a standard abstraction for writing streaming data to a destination, known as a sink. This object comes with built-in backpressure and queuing. */
interface WritableStream<W = any> {
    readonly locked: boolean;
    abort(reason?: any): Promise<void>;
    close(): Promise<void>;
    getWriter(): WritableStreamDefaultWriter<W>;
}

declare var WritableStream: {
    prototype: WritableStream;
    new<W = any>(underlyingSink?: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;
};

/** This Streams API interface represents a controller allowing control of a WritableStream's state. When constructing a WritableStream, the underlying sink is given a corresponding WritableStreamDefaultController instance to manipulate. */
interface WritableStreamDefaultController {
    readonly signal: AbortSignal;
    error(e?: any): void;
}

declare var WritableStreamDefaultController: {
    prototype: WritableStreamDefaultController;
    new(): WritableStreamDefaultController;
};

/** This Streams API interface is the object returned by WritableStream.getWriter() and once created locks the < writer to the WritableStream ensuring that no other streams can write to the underlying sink. */
interface WritableStreamDefaultWriter<W = any> {
    readonly closed: Promise<undefined>;
    readonly desiredSize: number | null;
    readonly ready: Promise<undefined>;
    abort(reason?: any): Promise<void>;
    close(): Promise<void>;
    releaseLock(): void;
    write(chunk?: W): Promise<void>;
}

declare var WritableStreamDefaultWriter: {
    prototype: WritableStreamDefaultWriter;
    new<W = any>(stream: WritableStream<W>): WritableStreamDefaultWriter<W>;
};

/** An XML document. It inherits from the generic Document and does not add any specific methods or properties to it: nevertheless, several algorithms behave differently with the two types of documents. */
interface XMLDocument extends Document {
    addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: XMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: XMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var XMLDocument: {
    prototype: XMLDocument;
    new(): XMLDocument;
};

interface XMLHttpRequestEventMap extends XMLHttpRequestEventTargetEventMap {
    "readystatechange": Event;
}

/** Use XMLHttpRequest (XHR) objects to interact with servers. You can retrieve data from a URL without having to do a full page refresh. This enables a Web page to update just part of a page without disrupting what the user is doing. */
interface XMLHttpRequest extends XMLHttpRequestEventTarget {
    onreadystatechange: ((this: XMLHttpRequest, ev: Event) => any) | null;
    /** Returns client's state. */
    readonly readyState: number;
    /** Returns the response body. */
    readonly response: any;
    /**
     * Returns response as text.
     *
     * Throws an "InvalidStateError" DOMException if responseType is not the empty string or "text".
     */
    readonly responseText: string;
    /**
     * Returns the response type.
     *
     * Can be set to change the response type. Values are: the empty string (default), "arraybuffer", "blob", "document", "json", and "text".
     *
     * When set: setting to "document" is ignored if current global object is not a Window object.
     *
     * When set: throws an "InvalidStateError" DOMException if state is loading or done.
     *
     * When set: throws an "InvalidAccessError" DOMException if the synchronous flag is set and current global object is a Window object.
     */
    responseType: XMLHttpRequestResponseType;
    readonly responseURL: string;
    /**
     * Returns the response as document.
     *
     * Throws an "InvalidStateError" DOMException if responseType is not the empty string or "document".
     */
    readonly responseXML: Document | null;
    readonly status: number;
    readonly statusText: string;
    /**
     * Can be set to a time in milliseconds. When set to a non-zero value will cause fetching to terminate after the given time has passed. When the time has passed, the request has not yet completed, and this's synchronous flag is unset, a timeout event will then be dispatched, or a "TimeoutError" DOMException will be thrown otherwise (for the send() method).
     *
     * When set: throws an "InvalidAccessError" DOMException if the synchronous flag is set and current global object is a Window object.
     */
    timeout: number;
    /** Returns the associated XMLHttpRequestUpload object. It can be used to gather transmission information when data is transferred to a server. */
    readonly upload: XMLHttpRequestUpload;
    /**
     * True when credentials are to be included in a cross-origin request. False when they are to be excluded in a cross-origin request and when cookies are to be ignored in its response. Initially false.
     *
     * When set: throws an "InvalidStateError" DOMException if state is not unsent or opened, or if the send() flag is set.
     */
    withCredentials: boolean;
    /** Cancels any network activity. */
    abort(): void;
    getAllResponseHeaders(): string;
    getResponseHeader(name: string): string | null;
    /**
     * Sets the request method, request URL, and synchronous flag.
     *
     * Throws a "SyntaxError" DOMException if either method is not a valid method or url cannot be parsed.
     *
     * Throws a "SecurityError" DOMException if method is a case-insensitive match for \`CONNECT\`, \`TRACE\`, or \`TRACK\`.
     *
     * Throws an "InvalidAccessError" DOMException if async is false, current global object is a Window object, and the timeout attribute is not zero or the responseType attribute is not the empty string.
     */
    open(method: string, url: string | URL): void;
    open(method: string, url: string | URL, async: boolean, username?: string | null, password?: string | null): void;
    /**
     * Acts as if the \`Content-Type\` header value for a response is mime. (It does not change the header.)
     *
     * Throws an "InvalidStateError" DOMException if state is loading or done.
     */
    overrideMimeType(mime: string): void;
    /**
     * Initiates the request. The body argument provides the request body, if any, and is ignored if the request method is GET or HEAD.
     *
     * Throws an "InvalidStateError" DOMException if either state is not opened or the send() flag is set.
     */
    send(body?: Document | XMLHttpRequestBodyInit | null): void;
    /**
     * Combines a header in author request headers.
     *
     * Throws an "InvalidStateError" DOMException if either state is not opened or the send() flag is set.
     *
     * Throws a "SyntaxError" DOMException if name is not a header name or if value is not a header value.
     */
    setRequestHeader(name: string, value: string): void;
    readonly UNSENT: 0;
    readonly OPENED: 1;
    readonly HEADERS_RECEIVED: 2;
    readonly LOADING: 3;
    readonly DONE: 4;
    addEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var XMLHttpRequest: {
    prototype: XMLHttpRequest;
    new(): XMLHttpRequest;
    readonly UNSENT: 0;
    readonly OPENED: 1;
    readonly HEADERS_RECEIVED: 2;
    readonly LOADING: 3;
    readonly DONE: 4;
};

interface XMLHttpRequestEventTargetEventMap {
    "abort": ProgressEvent<XMLHttpRequestEventTarget>;
    "error": ProgressEvent<XMLHttpRequestEventTarget>;
    "load": ProgressEvent<XMLHttpRequestEventTarget>;
    "loadend": ProgressEvent<XMLHttpRequestEventTarget>;
    "loadstart": ProgressEvent<XMLHttpRequestEventTarget>;
    "progress": ProgressEvent<XMLHttpRequestEventTarget>;
    "timeout": ProgressEvent<XMLHttpRequestEventTarget>;
}

interface XMLHttpRequestEventTarget extends EventTarget {
    onabort: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
    onerror: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
    onload: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
    onloadend: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
    onloadstart: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
    onprogress: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
    ontimeout: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
    addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var XMLHttpRequestEventTarget: {
    prototype: XMLHttpRequestEventTarget;
    new(): XMLHttpRequestEventTarget;
};

interface XMLHttpRequestUpload extends XMLHttpRequestEventTarget {
    addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var XMLHttpRequestUpload: {
    prototype: XMLHttpRequestUpload;
    new(): XMLHttpRequestUpload;
};

/** Provides the serializeToString() method to construct an XML string representing a DOM tree. */
interface XMLSerializer {
    serializeToString(root: Node): string;
}

declare var XMLSerializer: {
    prototype: XMLSerializer;
    new(): XMLSerializer;
};

/** The XPathEvaluator interface allows to compile and evaluate XPath expressions. */
interface XPathEvaluator extends XPathEvaluatorBase {
}

declare var XPathEvaluator: {
    prototype: XPathEvaluator;
    new(): XPathEvaluator;
};

interface XPathEvaluatorBase {
    createExpression(expression: string, resolver?: XPathNSResolver | null): XPathExpression;
    createNSResolver(nodeResolver: Node): XPathNSResolver;
    evaluate(expression: string, contextNode: Node, resolver?: XPathNSResolver | null, type?: number, result?: XPathResult | null): XPathResult;
}

/** This interface is a compiled XPath expression that can be evaluated on a document or specific node to return information its DOM tree. */
interface XPathExpression {
    evaluate(contextNode: Node, type?: number, result?: XPathResult | null): XPathResult;
}

declare var XPathExpression: {
    prototype: XPathExpression;
    new(): XPathExpression;
};

/** The results generated by evaluating an XPath expression within the context of a given node. */
interface XPathResult {
    readonly booleanValue: boolean;
    readonly invalidIteratorState: boolean;
    readonly numberValue: number;
    readonly resultType: number;
    readonly singleNodeValue: Node | null;
    readonly snapshotLength: number;
    readonly stringValue: string;
    iterateNext(): Node | null;
    snapshotItem(index: number): Node | null;
    readonly ANY_TYPE: 0;
    readonly NUMBER_TYPE: 1;
    readonly STRING_TYPE: 2;
    readonly BOOLEAN_TYPE: 3;
    readonly UNORDERED_NODE_ITERATOR_TYPE: 4;
    readonly ORDERED_NODE_ITERATOR_TYPE: 5;
    readonly UNORDERED_NODE_SNAPSHOT_TYPE: 6;
    readonly ORDERED_NODE_SNAPSHOT_TYPE: 7;
    readonly ANY_UNORDERED_NODE_TYPE: 8;
    readonly FIRST_ORDERED_NODE_TYPE: 9;
}

declare var XPathResult: {
    prototype: XPathResult;
    new(): XPathResult;
    readonly ANY_TYPE: 0;
    readonly NUMBER_TYPE: 1;
    readonly STRING_TYPE: 2;
    readonly BOOLEAN_TYPE: 3;
    readonly UNORDERED_NODE_ITERATOR_TYPE: 4;
    readonly ORDERED_NODE_ITERATOR_TYPE: 5;
    readonly UNORDERED_NODE_SNAPSHOT_TYPE: 6;
    readonly ORDERED_NODE_SNAPSHOT_TYPE: 7;
    readonly ANY_UNORDERED_NODE_TYPE: 8;
    readonly FIRST_ORDERED_NODE_TYPE: 9;
};

/** An XSLTProcessor applies an XSLT stylesheet transformation to an XML document to produce a new XML document as output. It has methods to load the XSLT stylesheet, to manipulate <xsl:param> parameter values, and to apply the transformation to documents. */
interface XSLTProcessor {
    clearParameters(): void;
    getParameter(namespaceURI: string | null, localName: string): any;
    importStylesheet(style: Node): void;
    removeParameter(namespaceURI: string | null, localName: string): void;
    reset(): void;
    setParameter(namespaceURI: string | null, localName: string, value: any): void;
    transformToDocument(source: Node): Document;
    transformToFragment(source: Node, output: Document): DocumentFragment;
}

declare var XSLTProcessor: {
    prototype: XSLTProcessor;
    new(): XSLTProcessor;
};

interface Console {
    assert(condition?: boolean, ...data: any[]): void;
    clear(): void;
    count(label?: string): void;
    countReset(label?: string): void;
    debug(...data: any[]): void;
    dir(item?: any, options?: any): void;
    dirxml(...data: any[]): void;
    error(...data: any[]): void;
    group(...data: any[]): void;
    groupCollapsed(...data: any[]): void;
    groupEnd(): void;
    info(...data: any[]): void;
    log(...data: any[]): void;
    table(tabularData?: any, properties?: string[]): void;
    time(label?: string): void;
    timeEnd(label?: string): void;
    timeLog(label?: string, ...data: any[]): void;
    timeStamp(label?: string): void;
    trace(...data: any[]): void;
    warn(...data: any[]): void;
}

declare var console: Console;

/** Holds useful CSS-related methods. No object with this interface are implemented: it contains only static methods and therefore is a utilitarian interface. */
declare namespace CSS {
    function escape(ident: string): string;
    function supports(property: string, value: string): boolean;
    function supports(conditionText: string): boolean;
}

declare namespace WebAssembly {
    interface CompileError extends Error {
    }

    var CompileError: {
        prototype: CompileError;
        new(message?: string): CompileError;
        (message?: string): CompileError;
    };

    interface Global {
        value: any;
        valueOf(): any;
    }

    var Global: {
        prototype: Global;
        new(descriptor: GlobalDescriptor, v?: any): Global;
    };

    interface Instance {
        readonly exports: Exports;
    }

    var Instance: {
        prototype: Instance;
        new(module: Module, importObject?: Imports): Instance;
    };

    interface LinkError extends Error {
    }

    var LinkError: {
        prototype: LinkError;
        new(message?: string): LinkError;
        (message?: string): LinkError;
    };

    interface Memory {
        readonly buffer: ArrayBuffer;
        grow(delta: number): number;
    }

    var Memory: {
        prototype: Memory;
        new(descriptor: MemoryDescriptor): Memory;
    };

    interface Module {
    }

    var Module: {
        prototype: Module;
        new(bytes: BufferSource): Module;
        customSections(moduleObject: Module, sectionName: string): ArrayBuffer[];
        exports(moduleObject: Module): ModuleExportDescriptor[];
        imports(moduleObject: Module): ModuleImportDescriptor[];
    };

    interface RuntimeError extends Error {
    }

    var RuntimeError: {
        prototype: RuntimeError;
        new(message?: string): RuntimeError;
        (message?: string): RuntimeError;
    };

    interface Table {
        readonly length: number;
        get(index: number): any;
        grow(delta: number, value?: any): number;
        set(index: number, value?: any): void;
    }

    var Table: {
        prototype: Table;
        new(descriptor: TableDescriptor, value?: any): Table;
    };

    interface GlobalDescriptor {
        mutable?: boolean;
        value: ValueType;
    }

    interface MemoryDescriptor {
        initial: number;
        maximum?: number;
        shared?: boolean;
    }

    interface ModuleExportDescriptor {
        kind: ImportExportKind;
        name: string;
    }

    interface ModuleImportDescriptor {
        kind: ImportExportKind;
        module: string;
        name: string;
    }

    interface TableDescriptor {
        element: TableKind;
        initial: number;
        maximum?: number;
    }

    interface WebAssemblyInstantiatedSource {
        instance: Instance;
        module: Module;
    }

    type ImportExportKind = "function" | "global" | "memory" | "table";
    type TableKind = "anyfunc" | "externref";
    type ValueType = "anyfunc" | "externref" | "f32" | "f64" | "i32" | "i64" | "v128";
    type ExportValue = Function | Global | Memory | Table;
    type Exports = Record<string, ExportValue>;
    type ImportValue = ExportValue | number;
    type Imports = Record<string, ModuleImports>;
    type ModuleImports = Record<string, ImportValue>;
    function compile(bytes: BufferSource): Promise<Module>;
    function compileStreaming(source: Response | PromiseLike<Response>): Promise<Module>;
    function instantiate(bytes: BufferSource, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;
    function instantiate(moduleObject: Module, importObject?: Imports): Promise<Instance>;
    function instantiateStreaming(source: Response | PromiseLike<Response>, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;
    function validate(bytes: BufferSource): boolean;
}

interface BlobCallback {
    (blob: Blob | null): void;
}

interface CustomElementConstructor {
    new (...params: any[]): HTMLElement;
}

interface DecodeErrorCallback {
    (error: DOMException): void;
}

interface DecodeSuccessCallback {
    (decodedData: AudioBuffer): void;
}

interface ErrorCallback {
    (err: DOMException): void;
}

interface FileCallback {
    (file: File): void;
}

interface FileSystemEntriesCallback {
    (entries: FileSystemEntry[]): void;
}

interface FileSystemEntryCallback {
    (entry: FileSystemEntry): void;
}

interface FrameRequestCallback {
    (time: DOMHighResTimeStamp): void;
}

interface FunctionStringCallback {
    (data: string): void;
}

interface IdleRequestCallback {
    (deadline: IdleDeadline): void;
}

interface IntersectionObserverCallback {
    (entries: IntersectionObserverEntry[], observer: IntersectionObserver): void;
}

interface LockGrantedCallback {
    (lock: Lock | null): any;
}

interface MediaSessionActionHandler {
    (details: MediaSessionActionDetails): void;
}

interface MutationCallback {
    (mutations: MutationRecord[], observer: MutationObserver): void;
}

interface NotificationPermissionCallback {
    (permission: NotificationPermission): void;
}

interface OnBeforeUnloadEventHandlerNonNull {
    (event: Event): string | null;
}

interface OnErrorEventHandlerNonNull {
    (event: Event | string, source?: string, lineno?: number, colno?: number, error?: Error): any;
}

interface PerformanceObserverCallback {
    (entries: PerformanceObserverEntryList, observer: PerformanceObserver): void;
}

interface PositionCallback {
    (position: GeolocationPosition): void;
}

interface PositionErrorCallback {
    (positionError: GeolocationPositionError): void;
}

interface QueuingStrategySize<T = any> {
    (chunk: T): number;
}

interface RTCPeerConnectionErrorCallback {
    (error: DOMException): void;
}

interface RTCSessionDescriptionCallback {
    (description: RTCSessionDescriptionInit): void;
}

interface RemotePlaybackAvailabilityCallback {
    (available: boolean): void;
}

interface ResizeObserverCallback {
    (entries: ResizeObserverEntry[], observer: ResizeObserver): void;
}

interface TransformerFlushCallback<O> {
    (controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;
}

interface TransformerStartCallback<O> {
    (controller: TransformStreamDefaultController<O>): any;
}

interface TransformerTransformCallback<I, O> {
    (chunk: I, controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;
}

interface UnderlyingSinkAbortCallback {
    (reason?: any): void | PromiseLike<void>;
}

interface UnderlyingSinkCloseCallback {
    (): void | PromiseLike<void>;
}

interface UnderlyingSinkStartCallback {
    (controller: WritableStreamDefaultController): any;
}

interface UnderlyingSinkWriteCallback<W> {
    (chunk: W, controller: WritableStreamDefaultController): void | PromiseLike<void>;
}

interface UnderlyingSourceCancelCallback {
    (reason?: any): void | PromiseLike<void>;
}

interface UnderlyingSourcePullCallback<R> {
    (controller: ReadableStreamController<R>): void | PromiseLike<void>;
}

interface UnderlyingSourceStartCallback<R> {
    (controller: ReadableStreamController<R>): any;
}

interface VideoFrameRequestCallback {
    (now: DOMHighResTimeStamp, metadata: VideoFrameCallbackMetadata): void;
}

interface VoidFunction {
    (): void;
}

interface HTMLElementTagNameMap {
    "a": HTMLAnchorElement;
    "abbr": HTMLElement;
    "address": HTMLElement;
    "area": HTMLAreaElement;
    "article": HTMLElement;
    "aside": HTMLElement;
    "audio": HTMLAudioElement;
    "b": HTMLElement;
    "base": HTMLBaseElement;
    "bdi": HTMLElement;
    "bdo": HTMLElement;
    "blockquote": HTMLQuoteElement;
    "body": HTMLBodyElement;
    "br": HTMLBRElement;
    "button": HTMLButtonElement;
    "canvas": HTMLCanvasElement;
    "caption": HTMLTableCaptionElement;
    "cite": HTMLElement;
    "code": HTMLElement;
    "col": HTMLTableColElement;
    "colgroup": HTMLTableColElement;
    "data": HTMLDataElement;
    "datalist": HTMLDataListElement;
    "dd": HTMLElement;
    "del": HTMLModElement;
    "details": HTMLDetailsElement;
    "dfn": HTMLElement;
    "dialog": HTMLDialogElement;
    "div": HTMLDivElement;
    "dl": HTMLDListElement;
    "dt": HTMLElement;
    "em": HTMLElement;
    "embed": HTMLEmbedElement;
    "fieldset": HTMLFieldSetElement;
    "figcaption": HTMLElement;
    "figure": HTMLElement;
    "footer": HTMLElement;
    "form": HTMLFormElement;
    "h1": HTMLHeadingElement;
    "h2": HTMLHeadingElement;
    "h3": HTMLHeadingElement;
    "h4": HTMLHeadingElement;
    "h5": HTMLHeadingElement;
    "h6": HTMLHeadingElement;
    "head": HTMLHeadElement;
    "header": HTMLElement;
    "hgroup": HTMLElement;
    "hr": HTMLHRElement;
    "html": HTMLHtmlElement;
    "i": HTMLElement;
    "iframe": HTMLIFrameElement;
    "img": HTMLImageElement;
    "input": HTMLInputElement;
    "ins": HTMLModElement;
    "kbd": HTMLElement;
    "label": HTMLLabelElement;
    "legend": HTMLLegendElement;
    "li": HTMLLIElement;
    "link": HTMLLinkElement;
    "main": HTMLElement;
    "map": HTMLMapElement;
    "mark": HTMLElement;
    "menu": HTMLMenuElement;
    "meta": HTMLMetaElement;
    "meter": HTMLMeterElement;
    "nav": HTMLElement;
    "noscript": HTMLElement;
    "object": HTMLObjectElement;
    "ol": HTMLOListElement;
    "optgroup": HTMLOptGroupElement;
    "option": HTMLOptionElement;
    "output": HTMLOutputElement;
    "p": HTMLParagraphElement;
    "picture": HTMLPictureElement;
    "pre": HTMLPreElement;
    "progress": HTMLProgressElement;
    "q": HTMLQuoteElement;
    "rp": HTMLElement;
    "rt": HTMLElement;
    "ruby": HTMLElement;
    "s": HTMLElement;
    "samp": HTMLElement;
    "script": HTMLScriptElement;
    "section": HTMLElement;
    "select": HTMLSelectElement;
    "slot": HTMLSlotElement;
    "small": HTMLElement;
    "source": HTMLSourceElement;
    "span": HTMLSpanElement;
    "strong": HTMLElement;
    "style": HTMLStyleElement;
    "sub": HTMLElement;
    "summary": HTMLElement;
    "sup": HTMLElement;
    "table": HTMLTableElement;
    "tbody": HTMLTableSectionElement;
    "td": HTMLTableCellElement;
    "template": HTMLTemplateElement;
    "textarea": HTMLTextAreaElement;
    "tfoot": HTMLTableSectionElement;
    "th": HTMLTableCellElement;
    "thead": HTMLTableSectionElement;
    "time": HTMLTimeElement;
    "title": HTMLTitleElement;
    "tr": HTMLTableRowElement;
    "track": HTMLTrackElement;
    "u": HTMLElement;
    "ul": HTMLUListElement;
    "var": HTMLElement;
    "video": HTMLVideoElement;
    "wbr": HTMLElement;
}

interface HTMLElementDeprecatedTagNameMap {
    "acronym": HTMLElement;
    "applet": HTMLUnknownElement;
    "basefont": HTMLElement;
    "bgsound": HTMLUnknownElement;
    "big": HTMLElement;
    "blink": HTMLUnknownElement;
    "center": HTMLElement;
    "dir": HTMLDirectoryElement;
    "font": HTMLFontElement;
    "frame": HTMLFrameElement;
    "frameset": HTMLFrameSetElement;
    "isindex": HTMLUnknownElement;
    "keygen": HTMLUnknownElement;
    "listing": HTMLPreElement;
    "marquee": HTMLMarqueeElement;
    "menuitem": HTMLElement;
    "multicol": HTMLUnknownElement;
    "nextid": HTMLUnknownElement;
    "nobr": HTMLElement;
    "noembed": HTMLElement;
    "noframes": HTMLElement;
    "param": HTMLParamElement;
    "plaintext": HTMLElement;
    "rb": HTMLElement;
    "rtc": HTMLElement;
    "spacer": HTMLUnknownElement;
    "strike": HTMLElement;
    "tt": HTMLElement;
    "xmp": HTMLPreElement;
}

interface SVGElementTagNameMap {
    "a": SVGAElement;
    "animate": SVGAnimateElement;
    "animateMotion": SVGAnimateMotionElement;
    "animateTransform": SVGAnimateTransformElement;
    "circle": SVGCircleElement;
    "clipPath": SVGClipPathElement;
    "defs": SVGDefsElement;
    "desc": SVGDescElement;
    "ellipse": SVGEllipseElement;
    "feBlend": SVGFEBlendElement;
    "feColorMatrix": SVGFEColorMatrixElement;
    "feComponentTransfer": SVGFEComponentTransferElement;
    "feComposite": SVGFECompositeElement;
    "feConvolveMatrix": SVGFEConvolveMatrixElement;
    "feDiffuseLighting": SVGFEDiffuseLightingElement;
    "feDisplacementMap": SVGFEDisplacementMapElement;
    "feDistantLight": SVGFEDistantLightElement;
    "feDropShadow": SVGFEDropShadowElement;
    "feFlood": SVGFEFloodElement;
    "feFuncA": SVGFEFuncAElement;
    "feFuncB": SVGFEFuncBElement;
    "feFuncG": SVGFEFuncGElement;
    "feFuncR": SVGFEFuncRElement;
    "feGaussianBlur": SVGFEGaussianBlurElement;
    "feImage": SVGFEImageElement;
    "feMerge": SVGFEMergeElement;
    "feMergeNode": SVGFEMergeNodeElement;
    "feMorphology": SVGFEMorphologyElement;
    "feOffset": SVGFEOffsetElement;
    "fePointLight": SVGFEPointLightElement;
    "feSpecularLighting": SVGFESpecularLightingElement;
    "feSpotLight": SVGFESpotLightElement;
    "feTile": SVGFETileElement;
    "feTurbulence": SVGFETurbulenceElement;
    "filter": SVGFilterElement;
    "foreignObject": SVGForeignObjectElement;
    "g": SVGGElement;
    "image": SVGImageElement;
    "line": SVGLineElement;
    "linearGradient": SVGLinearGradientElement;
    "marker": SVGMarkerElement;
    "mask": SVGMaskElement;
    "metadata": SVGMetadataElement;
    "mpath": SVGMPathElement;
    "path": SVGPathElement;
    "pattern": SVGPatternElement;
    "polygon": SVGPolygonElement;
    "polyline": SVGPolylineElement;
    "radialGradient": SVGRadialGradientElement;
    "rect": SVGRectElement;
    "script": SVGScriptElement;
    "set": SVGSetElement;
    "stop": SVGStopElement;
    "style": SVGStyleElement;
    "svg": SVGSVGElement;
    "switch": SVGSwitchElement;
    "symbol": SVGSymbolElement;
    "text": SVGTextElement;
    "textPath": SVGTextPathElement;
    "title": SVGTitleElement;
    "tspan": SVGTSpanElement;
    "use": SVGUseElement;
    "view": SVGViewElement;
}

interface MathMLElementTagNameMap {
    "annotation": MathMLElement;
    "annotation-xml": MathMLElement;
    "maction": MathMLElement;
    "math": MathMLElement;
    "merror": MathMLElement;
    "mfrac": MathMLElement;
    "mi": MathMLElement;
    "mmultiscripts": MathMLElement;
    "mn": MathMLElement;
    "mo": MathMLElement;
    "mover": MathMLElement;
    "mpadded": MathMLElement;
    "mphantom": MathMLElement;
    "mprescripts": MathMLElement;
    "mroot": MathMLElement;
    "mrow": MathMLElement;
    "ms": MathMLElement;
    "mspace": MathMLElement;
    "msqrt": MathMLElement;
    "mstyle": MathMLElement;
    "msub": MathMLElement;
    "msubsup": MathMLElement;
    "msup": MathMLElement;
    "mtable": MathMLElement;
    "mtd": MathMLElement;
    "mtext": MathMLElement;
    "mtr": MathMLElement;
    "munder": MathMLElement;
    "munderover": MathMLElement;
    "semantics": MathMLElement;
}

/** @deprecated Directly use HTMLElementTagNameMap or SVGElementTagNameMap as appropriate, instead. */
type ElementTagNameMap = HTMLElementTagNameMap & Pick<SVGElementTagNameMap, Exclude<keyof SVGElementTagNameMap, keyof HTMLElementTagNameMap>>;

declare var Audio: {
    new(src?: string): HTMLAudioElement;
};
declare var Image: {
    new(width?: number, height?: number): HTMLImageElement;
};
declare var Option: {
    new(text?: string, value?: string, defaultSelected?: boolean, selected?: boolean): HTMLOptionElement;
};
/** @deprecated This is a legacy alias of \`navigator\`. */
declare var clientInformation: Navigator;
/** Returns true if the window has been closed, false otherwise. */
declare var closed: boolean;
/** Defines a new custom element, mapping the given name to the given constructor as an autonomous custom element. */
declare var customElements: CustomElementRegistry;
declare var devicePixelRatio: number;
declare var document: Document;
/** @deprecated */
declare var event: Event | undefined;
/** @deprecated */
declare var external: External;
declare var frameElement: Element | null;
declare var frames: WindowProxy;
declare var history: History;
declare var innerHeight: number;
declare var innerWidth: number;
declare var length: number;
declare var location: Location;
/** Returns true if the location bar is visible; otherwise, returns false. */
declare var locationbar: BarProp;
/** Returns true if the menu bar is visible; otherwise, returns false. */
declare var menubar: BarProp;
/** @deprecated */
declare const name: void;
declare var navigator: Navigator;
/** Available only in secure contexts. */
declare var ondevicemotion: ((this: Window, ev: DeviceMotionEvent) => any) | null;
/** Available only in secure contexts. */
declare var ondeviceorientation: ((this: Window, ev: DeviceOrientationEvent) => any) | null;
/** @deprecated */
declare var onorientationchange: ((this: Window, ev: Event) => any) | null;
declare var opener: any;
/** @deprecated */
declare var orientation: number;
declare var outerHeight: number;
declare var outerWidth: number;
/** @deprecated This is a legacy alias of \`scrollX\`. */
declare var pageXOffset: number;
/** @deprecated This is a legacy alias of \`scrollY\`. */
declare var pageYOffset: number;
/**
 * Refers to either the parent WindowProxy, or itself.
 *
 * It can rarely be null e.g. for contentWindow of an iframe that is already removed from the parent.
 */
declare var parent: WindowProxy;
/** Returns true if the personal bar is visible; otherwise, returns false. */
declare var personalbar: BarProp;
declare var screen: Screen;
declare var screenLeft: number;
declare var screenTop: number;
declare var screenX: number;
declare var screenY: number;
declare var scrollX: number;
declare var scrollY: number;
/** Returns true if the scrollbars are visible; otherwise, returns false. */
declare var scrollbars: BarProp;
declare var self: Window & typeof globalThis;
declare var speechSynthesis: SpeechSynthesis;
/** @deprecated */
declare var status: string;
/** Returns true if the status bar is visible; otherwise, returns false. */
declare var statusbar: BarProp;
/** Returns true if the toolbar is visible; otherwise, returns false. */
declare var toolbar: BarProp;
declare var top: WindowProxy | null;
declare var visualViewport: VisualViewport | null;
declare var window: Window & typeof globalThis;
declare function alert(message?: any): void;
declare function blur(): void;
declare function cancelIdleCallback(handle: number): void;
/** @deprecated */
declare function captureEvents(): void;
/** Closes the window. */
declare function close(): void;
declare function confirm(message?: string): boolean;
/** Moves the focus to the window's browsing context, if any. */
declare function focus(): void;
declare function getComputedStyle(elt: Element, pseudoElt?: string | null): CSSStyleDeclaration;
declare function getSelection(): Selection | null;
declare function matchMedia(query: string): MediaQueryList;
declare function moveBy(x: number, y: number): void;
declare function moveTo(x: number, y: number): void;
declare function open(url?: string | URL, target?: string, features?: string): WindowProxy | null;
/**
 * Posts a message to the given window. Messages can be structured objects, e.g. nested objects and arrays, can contain JavaScript values (strings, numbers, Date objects, etc), and can contain certain data objects such as File Blob, FileList, and ArrayBuffer objects.
 *
 * Objects listed in the transfer member of options are transferred, not just cloned, meaning that they are no longer usable on the sending side.
 *
 * A target origin can be specified using the targetOrigin member of options. If not provided, it defaults to "/". This default restricts the message to same-origin targets only.
 *
 * If the origin of the target window doesn't match the given target origin, the message is discarded, to avoid information leakage. To send the message to the target regardless of origin, set the target origin to "*".
 *
 * Throws a "DataCloneError" DOMException if transfer array contains duplicate objects or if message could not be cloned.
 */
declare function postMessage(message: any, targetOrigin: string, transfer?: Transferable[]): void;
declare function postMessage(message: any, options?: WindowPostMessageOptions): void;
declare function print(): void;
declare function prompt(message?: string, _default?: string): string | null;
/** @deprecated */
declare function releaseEvents(): void;
declare function requestIdleCallback(callback: IdleRequestCallback, options?: IdleRequestOptions): number;
declare function resizeBy(x: number, y: number): void;
declare function resizeTo(width: number, height: number): void;
declare function scroll(options?: ScrollToOptions): void;
declare function scroll(x: number, y: number): void;
declare function scrollBy(options?: ScrollToOptions): void;
declare function scrollBy(x: number, y: number): void;
declare function scrollTo(options?: ScrollToOptions): void;
declare function scrollTo(x: number, y: number): void;
/** Cancels the document load. */
declare function stop(): void;
declare function toString(): string;
/** Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise. */
declare function dispatchEvent(event: Event): boolean;
declare function cancelAnimationFrame(handle: number): void;
declare function requestAnimationFrame(callback: FrameRequestCallback): number;
/**
 * Fires when the user aborts the download.
 * @param ev The event.
 */
declare var onabort: ((this: Window, ev: UIEvent) => any) | null;
declare var onanimationcancel: ((this: Window, ev: AnimationEvent) => any) | null;
declare var onanimationend: ((this: Window, ev: AnimationEvent) => any) | null;
declare var onanimationiteration: ((this: Window, ev: AnimationEvent) => any) | null;
declare var onanimationstart: ((this: Window, ev: AnimationEvent) => any) | null;
declare var onauxclick: ((this: Window, ev: MouseEvent) => any) | null;
declare var onbeforeinput: ((this: Window, ev: InputEvent) => any) | null;
/**
 * Fires when the object loses the input focus.
 * @param ev The focus event.
 */
declare var onblur: ((this: Window, ev: FocusEvent) => any) | null;
declare var oncancel: ((this: Window, ev: Event) => any) | null;
/**
 * Occurs when playback is possible, but would require further buffering.
 * @param ev The event.
 */
declare var oncanplay: ((this: Window, ev: Event) => any) | null;
declare var oncanplaythrough: ((this: Window, ev: Event) => any) | null;
/**
 * Fires when the contents of the object or selection have changed.
 * @param ev The event.
 */
declare var onchange: ((this: Window, ev: Event) => any) | null;
/**
 * Fires when the user clicks the left mouse button on the object
 * @param ev The mouse event.
 */
declare var onclick: ((this: Window, ev: MouseEvent) => any) | null;
declare var onclose: ((this: Window, ev: Event) => any) | null;
/**
 * Fires when the user clicks the right mouse button in the client area, opening the context menu.
 * @param ev The mouse event.
 */
declare var oncontextmenu: ((this: Window, ev: MouseEvent) => any) | null;
declare var oncopy: ((this: Window, ev: ClipboardEvent) => any) | null;
declare var oncuechange: ((this: Window, ev: Event) => any) | null;
declare var oncut: ((this: Window, ev: ClipboardEvent) => any) | null;
/**
 * Fires when the user double-clicks the object.
 * @param ev The mouse event.
 */
declare var ondblclick: ((this: Window, ev: MouseEvent) => any) | null;
/**
 * Fires on the source object continuously during a drag operation.
 * @param ev The event.
 */
declare var ondrag: ((this: Window, ev: DragEvent) => any) | null;
/**
 * Fires on the source object when the user releases the mouse at the close of a drag operation.
 * @param ev The event.
 */
declare var ondragend: ((this: Window, ev: DragEvent) => any) | null;
/**
 * Fires on the target element when the user drags the object to a valid drop target.
 * @param ev The drag event.
 */
declare var ondragenter: ((this: Window, ev: DragEvent) => any) | null;
/**
 * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.
 * @param ev The drag event.
 */
declare var ondragleave: ((this: Window, ev: DragEvent) => any) | null;
/**
 * Fires on the target element continuously while the user drags the object over a valid drop target.
 * @param ev The event.
 */
declare var ondragover: ((this: Window, ev: DragEvent) => any) | null;
/**
 * Fires on the source object when the user starts to drag a text selection or selected object.
 * @param ev The event.
 */
declare var ondragstart: ((this: Window, ev: DragEvent) => any) | null;
declare var ondrop: ((this: Window, ev: DragEvent) => any) | null;
/**
 * Occurs when the duration attribute is updated.
 * @param ev The event.
 */
declare var ondurationchange: ((this: Window, ev: Event) => any) | null;
/**
 * Occurs when the media element is reset to its initial state.
 * @param ev The event.
 */
declare var onemptied: ((this: Window, ev: Event) => any) | null;
/**
 * Occurs when the end of playback is reached.
 * @param ev The event
 */
declare var onended: ((this: Window, ev: Event) => any) | null;
/**
 * Fires when an error occurs during object loading.
 * @param ev The event.
 */
declare var onerror: OnErrorEventHandler;
/**
 * Fires when the object receives focus.
 * @param ev The event.
 */
declare var onfocus: ((this: Window, ev: FocusEvent) => any) | null;
declare var onformdata: ((this: Window, ev: FormDataEvent) => any) | null;
declare var ongotpointercapture: ((this: Window, ev: PointerEvent) => any) | null;
declare var oninput: ((this: Window, ev: Event) => any) | null;
declare var oninvalid: ((this: Window, ev: Event) => any) | null;
/**
 * Fires when the user presses a key.
 * @param ev The keyboard event
 */
declare var onkeydown: ((this: Window, ev: KeyboardEvent) => any) | null;
/**
 * Fires when the user presses an alphanumeric key.
 * @param ev The event.
 * @deprecated
 */
declare var onkeypress: ((this: Window, ev: KeyboardEvent) => any) | null;
/**
 * Fires when the user releases a key.
 * @param ev The keyboard event
 */
declare var onkeyup: ((this: Window, ev: KeyboardEvent) => any) | null;
/**
 * Fires immediately after the browser loads the object.
 * @param ev The event.
 */
declare var onload: ((this: Window, ev: Event) => any) | null;
/**
 * Occurs when media data is loaded at the current playback position.
 * @param ev The event.
 */
declare var onloadeddata: ((this: Window, ev: Event) => any) | null;
/**
 * Occurs when the duration and dimensions of the media have been determined.
 * @param ev The event.
 */
declare var onloadedmetadata: ((this: Window, ev: Event) => any) | null;
/**
 * Occurs when Internet Explorer begins looking for media data.
 * @param ev The event.
 */
declare var onloadstart: ((this: Window, ev: Event) => any) | null;
declare var onlostpointercapture: ((this: Window, ev: PointerEvent) => any) | null;
/**
 * Fires when the user clicks the object with either mouse button.
 * @param ev The mouse event.
 */
declare var onmousedown: ((this: Window, ev: MouseEvent) => any) | null;
declare var onmouseenter: ((this: Window, ev: MouseEvent) => any) | null;
declare var onmouseleave: ((this: Window, ev: MouseEvent) => any) | null;
/**
 * Fires when the user moves the mouse over the object.
 * @param ev The mouse event.
 */
declare var onmousemove: ((this: Window, ev: MouseEvent) => any) | null;
/**
 * Fires when the user moves the mouse pointer outside the boundaries of the object.
 * @param ev The mouse event.
 */
declare var onmouseout: ((this: Window, ev: MouseEvent) => any) | null;
/**
 * Fires when the user moves the mouse pointer into the object.
 * @param ev The mouse event.
 */
declare var onmouseover: ((this: Window, ev: MouseEvent) => any) | null;
/**
 * Fires when the user releases a mouse button while the mouse is over the object.
 * @param ev The mouse event.
 */
declare var onmouseup: ((this: Window, ev: MouseEvent) => any) | null;
declare var onpaste: ((this: Window, ev: ClipboardEvent) => any) | null;
/**
 * Occurs when playback is paused.
 * @param ev The event.
 */
declare var onpause: ((this: Window, ev: Event) => any) | null;
/**
 * Occurs when the play method is requested.
 * @param ev The event.
 */
declare var onplay: ((this: Window, ev: Event) => any) | null;
/**
 * Occurs when the audio or video has started playing.
 * @param ev The event.
 */
declare var onplaying: ((this: Window, ev: Event) => any) | null;
declare var onpointercancel: ((this: Window, ev: PointerEvent) => any) | null;
declare var onpointerdown: ((this: Window, ev: PointerEvent) => any) | null;
declare var onpointerenter: ((this: Window, ev: PointerEvent) => any) | null;
declare var onpointerleave: ((this: Window, ev: PointerEvent) => any) | null;
declare var onpointermove: ((this: Window, ev: PointerEvent) => any) | null;
declare var onpointerout: ((this: Window, ev: PointerEvent) => any) | null;
declare var onpointerover: ((this: Window, ev: PointerEvent) => any) | null;
declare var onpointerup: ((this: Window, ev: PointerEvent) => any) | null;
/**
 * Occurs to indicate progress while downloading media data.
 * @param ev The event.
 */
declare var onprogress: ((this: Window, ev: ProgressEvent) => any) | null;
/**
 * Occurs when the playback rate is increased or decreased.
 * @param ev The event.
 */
declare var onratechange: ((this: Window, ev: Event) => any) | null;
/**
 * Fires when the user resets a form.
 * @param ev The event.
 */
declare var onreset: ((this: Window, ev: Event) => any) | null;
declare var onresize: ((this: Window, ev: UIEvent) => any) | null;
/**
 * Fires when the user repositions the scroll box in the scroll bar on the object.
 * @param ev The event.
 */
declare var onscroll: ((this: Window, ev: Event) => any) | null;
declare var onsecuritypolicyviolation: ((this: Window, ev: SecurityPolicyViolationEvent) => any) | null;
/**
 * Occurs when the seek operation ends.
 * @param ev The event.
 */
declare var onseeked: ((this: Window, ev: Event) => any) | null;
/**
 * Occurs when the current playback position is moved.
 * @param ev The event.
 */
declare var onseeking: ((this: Window, ev: Event) => any) | null;
/**
 * Fires when the current selection changes.
 * @param ev The event.
 */
declare var onselect: ((this: Window, ev: Event) => any) | null;
declare var onselectionchange: ((this: Window, ev: Event) => any) | null;
declare var onselectstart: ((this: Window, ev: Event) => any) | null;
declare var onslotchange: ((this: Window, ev: Event) => any) | null;
/**
 * Occurs when the download has stopped.
 * @param ev The event.
 */
declare var onstalled: ((this: Window, ev: Event) => any) | null;
declare var onsubmit: ((this: Window, ev: SubmitEvent) => any) | null;
/**
 * Occurs if the load operation has been intentionally halted.
 * @param ev The event.
 */
declare var onsuspend: ((this: Window, ev: Event) => any) | null;
/**
 * Occurs to indicate the current playback position.
 * @param ev The event.
 */
declare var ontimeupdate: ((this: Window, ev: Event) => any) | null;
declare var ontoggle: ((this: Window, ev: Event) => any) | null;
declare var ontouchcancel: ((this: Window, ev: TouchEvent) => any) | null | undefined;
declare var ontouchend: ((this: Window, ev: TouchEvent) => any) | null | undefined;
declare var ontouchmove: ((this: Window, ev: TouchEvent) => any) | null | undefined;
declare var ontouchstart: ((this: Window, ev: TouchEvent) => any) | null | undefined;
declare var ontransitioncancel: ((this: Window, ev: TransitionEvent) => any) | null;
declare var ontransitionend: ((this: Window, ev: TransitionEvent) => any) | null;
declare var ontransitionrun: ((this: Window, ev: TransitionEvent) => any) | null;
declare var ontransitionstart: ((this: Window, ev: TransitionEvent) => any) | null;
/**
 * Occurs when the volume is changed, or playback is muted or unmuted.
 * @param ev The event.
 */
declare var onvolumechange: ((this: Window, ev: Event) => any) | null;
/**
 * Occurs when playback stops because the next frame of a video resource is not available.
 * @param ev The event.
 */
declare var onwaiting: ((this: Window, ev: Event) => any) | null;
/** @deprecated This is a legacy alias of \`onanimationend\`. */
declare var onwebkitanimationend: ((this: Window, ev: Event) => any) | null;
/** @deprecated This is a legacy alias of \`onanimationiteration\`. */
declare var onwebkitanimationiteration: ((this: Window, ev: Event) => any) | null;
/** @deprecated This is a legacy alias of \`onanimationstart\`. */
declare var onwebkitanimationstart: ((this: Window, ev: Event) => any) | null;
/** @deprecated This is a legacy alias of \`ontransitionend\`. */
declare var onwebkittransitionend: ((this: Window, ev: Event) => any) | null;
declare var onwheel: ((this: Window, ev: WheelEvent) => any) | null;
declare var onafterprint: ((this: Window, ev: Event) => any) | null;
declare var onbeforeprint: ((this: Window, ev: Event) => any) | null;
declare var onbeforeunload: ((this: Window, ev: BeforeUnloadEvent) => any) | null;
declare var ongamepadconnected: ((this: Window, ev: GamepadEvent) => any) | null;
declare var ongamepaddisconnected: ((this: Window, ev: GamepadEvent) => any) | null;
declare var onhashchange: ((this: Window, ev: HashChangeEvent) => any) | null;
declare var onlanguagechange: ((this: Window, ev: Event) => any) | null;
declare var onmessage: ((this: Window, ev: MessageEvent) => any) | null;
declare var onmessageerror: ((this: Window, ev: MessageEvent) => any) | null;
declare var onoffline: ((this: Window, ev: Event) => any) | null;
declare var ononline: ((this: Window, ev: Event) => any) | null;
declare var onpagehide: ((this: Window, ev: PageTransitionEvent) => any) | null;
declare var onpageshow: ((this: Window, ev: PageTransitionEvent) => any) | null;
declare var onpopstate: ((this: Window, ev: PopStateEvent) => any) | null;
declare var onrejectionhandled: ((this: Window, ev: PromiseRejectionEvent) => any) | null;
declare var onstorage: ((this: Window, ev: StorageEvent) => any) | null;
declare var onunhandledrejection: ((this: Window, ev: PromiseRejectionEvent) => any) | null;
declare var onunload: ((this: Window, ev: Event) => any) | null;
declare var localStorage: Storage;
/** Available only in secure contexts. */
declare var caches: CacheStorage;
declare var crossOriginIsolated: boolean;
declare var crypto: Crypto;
declare var indexedDB: IDBFactory;
declare var isSecureContext: boolean;
declare var origin: string;
declare var performance: Performance;
declare function atob(data: string): string;
declare function btoa(data: string): string;
declare function clearInterval(id: number | undefined): void;
declare function clearTimeout(id: number | undefined): void;
declare function createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise<ImageBitmap>;
declare function createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;
declare function fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
declare function queueMicrotask(callback: VoidFunction): void;
declare function reportError(e: any): void;
declare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
declare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
declare function structuredClone(value: any, options?: StructuredSerializeOptions): any;
declare var sessionStorage: Storage;
declare function addEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
declare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
declare function removeEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
declare function removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
type AlgorithmIdentifier = Algorithm | string;
type BigInteger = Uint8Array;
type BinaryData = ArrayBuffer | ArrayBufferView;
type BlobPart = BufferSource | Blob | string;
type BodyInit = ReadableStream | XMLHttpRequestBodyInit;
type BufferSource = ArrayBufferView | ArrayBuffer;
type COSEAlgorithmIdentifier = number;
type CSSNumberish = number;
type CanvasImageSource = HTMLOrSVGImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap | OffscreenCanvas;
type ClipboardItemData = Promise<string | Blob>;
type ClipboardItems = ClipboardItem[];
type ConstrainBoolean = boolean | ConstrainBooleanParameters;
type ConstrainDOMString = string | string[] | ConstrainDOMStringParameters;
type ConstrainDouble = number | ConstrainDoubleRange;
type ConstrainULong = number | ConstrainULongRange;
type DOMHighResTimeStamp = number;
type EpochTimeStamp = number;
type EventListenerOrEventListenerObject = EventListener | EventListenerObject;
type Float32List = Float32Array | GLfloat[];
type FormDataEntryValue = File | string;
type GLbitfield = number;
type GLboolean = boolean;
type GLclampf = number;
type GLenum = number;
type GLfloat = number;
type GLint = number;
type GLint64 = number;
type GLintptr = number;
type GLsizei = number;
type GLsizeiptr = number;
type GLuint = number;
type GLuint64 = number;
type HTMLOrSVGImageElement = HTMLImageElement | SVGImageElement;
type HTMLOrSVGScriptElement = HTMLScriptElement | SVGScriptElement;
type HashAlgorithmIdentifier = AlgorithmIdentifier;
type HeadersInit = [string, string][] | Record<string, string> | Headers;
type IDBValidKey = number | string | Date | BufferSource | IDBValidKey[];
type ImageBitmapSource = CanvasImageSource | Blob | ImageData;
type Int32List = Int32Array | GLint[];
type LineAndPositionSetting = number | AutoKeyword;
type MediaProvider = MediaStream | MediaSource | Blob;
type MessageEventSource = WindowProxy | MessagePort | ServiceWorker;
type MutationRecordType = "attributes" | "characterData" | "childList";
type NamedCurve = string;
type OffscreenRenderingContext = OffscreenCanvasRenderingContext2D | ImageBitmapRenderingContext | WebGLRenderingContext | WebGL2RenderingContext;
type OnBeforeUnloadEventHandler = OnBeforeUnloadEventHandlerNonNull | null;
type OnErrorEventHandler = OnErrorEventHandlerNonNull | null;
type PerformanceEntryList = PerformanceEntry[];
type ReadableStreamController<T> = ReadableStreamDefaultController<T> | ReadableByteStreamController;
type ReadableStreamReadResult<T> = ReadableStreamReadValueResult<T> | ReadableStreamReadDoneResult<T>;
type ReadableStreamReader<T> = ReadableStreamDefaultReader<T> | ReadableStreamBYOBReader;
type RenderingContext = CanvasRenderingContext2D | ImageBitmapRenderingContext | WebGLRenderingContext | WebGL2RenderingContext;
type RequestInfo = Request | string;
type TexImageSource = ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | OffscreenCanvas;
type TimerHandler = string | Function;
type Transferable = OffscreenCanvas | ImageBitmap | MessagePort | ReadableStream | WritableStream | TransformStream | ArrayBuffer;
type Uint32List = Uint32Array | GLuint[];
type VibratePattern = number | number[];
type WindowProxy = Window;
type XMLHttpRequestBodyInit = Blob | BufferSource | FormData | URLSearchParams | string;
type AlignSetting = "center" | "end" | "left" | "right" | "start";
type AnimationPlayState = "finished" | "idle" | "paused" | "running";
type AnimationReplaceState = "active" | "persisted" | "removed";
type AppendMode = "segments" | "sequence";
type AttestationConveyancePreference = "direct" | "enterprise" | "indirect" | "none";
type AudioContextLatencyCategory = "balanced" | "interactive" | "playback";
type AudioContextState = "closed" | "running" | "suspended";
type AuthenticatorAttachment = "cross-platform" | "platform";
type AuthenticatorTransport = "ble" | "hybrid" | "internal" | "nfc" | "usb";
type AutoKeyword = "auto";
type AutomationRate = "a-rate" | "k-rate";
type BinaryType = "arraybuffer" | "blob";
type BiquadFilterType = "allpass" | "bandpass" | "highpass" | "highshelf" | "lowpass" | "lowshelf" | "notch" | "peaking";
type CanPlayTypeResult = "" | "maybe" | "probably";
type CanvasDirection = "inherit" | "ltr" | "rtl";
type CanvasFillRule = "evenodd" | "nonzero";
type CanvasFontKerning = "auto" | "none" | "normal";
type CanvasFontStretch = "condensed" | "expanded" | "extra-condensed" | "extra-expanded" | "normal" | "semi-condensed" | "semi-expanded" | "ultra-condensed" | "ultra-expanded";
type CanvasFontVariantCaps = "all-petite-caps" | "all-small-caps" | "normal" | "petite-caps" | "small-caps" | "titling-caps" | "unicase";
type CanvasLineCap = "butt" | "round" | "square";
type CanvasLineJoin = "bevel" | "miter" | "round";
type CanvasTextAlign = "center" | "end" | "left" | "right" | "start";
type CanvasTextBaseline = "alphabetic" | "bottom" | "hanging" | "ideographic" | "middle" | "top";
type CanvasTextRendering = "auto" | "geometricPrecision" | "optimizeLegibility" | "optimizeSpeed";
type ChannelCountMode = "clamped-max" | "explicit" | "max";
type ChannelInterpretation = "discrete" | "speakers";
type ClientTypes = "all" | "sharedworker" | "window" | "worker";
type ColorGamut = "p3" | "rec2020" | "srgb";
type ColorSpaceConversion = "default" | "none";
type CompositeOperation = "accumulate" | "add" | "replace";
type CompositeOperationOrAuto = "accumulate" | "add" | "auto" | "replace";
type CredentialMediationRequirement = "optional" | "required" | "silent";
type DOMParserSupportedType = "application/xhtml+xml" | "application/xml" | "image/svg+xml" | "text/html" | "text/xml";
type DirectionSetting = "" | "lr" | "rl";
type DisplayCaptureSurfaceType = "browser" | "monitor" | "window";
type DistanceModelType = "exponential" | "inverse" | "linear";
type DocumentReadyState = "complete" | "interactive" | "loading";
type DocumentVisibilityState = "hidden" | "visible";
type EndOfStreamError = "decode" | "network";
type EndingType = "native" | "transparent";
type FileSystemHandleKind = "directory" | "file";
type FillMode = "auto" | "backwards" | "both" | "forwards" | "none";
type FontDisplay = "auto" | "block" | "fallback" | "optional" | "swap";
type FontFaceLoadStatus = "error" | "loaded" | "loading" | "unloaded";
type FontFaceSetLoadStatus = "loaded" | "loading";
type FullscreenNavigationUI = "auto" | "hide" | "show";
type GamepadHapticActuatorType = "vibration";
type GamepadMappingType = "" | "standard" | "xr-standard";
type GlobalCompositeOperation = "color" | "color-burn" | "color-dodge" | "copy" | "darken" | "destination-atop" | "destination-in" | "destination-out" | "destination-over" | "difference" | "exclusion" | "hard-light" | "hue" | "lighten" | "lighter" | "luminosity" | "multiply" | "overlay" | "saturation" | "screen" | "soft-light" | "source-atop" | "source-in" | "source-out" | "source-over" | "xor";
type HdrMetadataType = "smpteSt2086" | "smpteSt2094-10" | "smpteSt2094-40";
type IDBCursorDirection = "next" | "nextunique" | "prev" | "prevunique";
type IDBRequestReadyState = "done" | "pending";
type IDBTransactionDurability = "default" | "relaxed" | "strict";
type IDBTransactionMode = "readonly" | "readwrite" | "versionchange";
type ImageOrientation = "flipY" | "from-image";
type ImageSmoothingQuality = "high" | "low" | "medium";
type InsertPosition = "afterbegin" | "afterend" | "beforebegin" | "beforeend";
type IterationCompositeOperation = "accumulate" | "replace";
type KeyFormat = "jwk" | "pkcs8" | "raw" | "spki";
type KeyType = "private" | "public" | "secret";
type KeyUsage = "decrypt" | "deriveBits" | "deriveKey" | "encrypt" | "sign" | "unwrapKey" | "verify" | "wrapKey";
type LineAlignSetting = "center" | "end" | "start";
type LockMode = "exclusive" | "shared";
type MIDIPortConnectionState = "closed" | "open" | "pending";
type MIDIPortDeviceState = "connected" | "disconnected";
type MIDIPortType = "input" | "output";
type MediaDecodingType = "file" | "media-source" | "webrtc";
type MediaDeviceKind = "audioinput" | "audiooutput" | "videoinput";
type MediaEncodingType = "record" | "webrtc";
type MediaKeyMessageType = "individualization-request" | "license-release" | "license-renewal" | "license-request";
type MediaKeySessionClosedReason = "closed-by-application" | "hardware-context-reset" | "internal-error" | "release-acknowledged" | "resource-evicted";
type MediaKeySessionType = "persistent-license" | "temporary";
type MediaKeyStatus = "expired" | "internal-error" | "output-downscaled" | "output-restricted" | "released" | "status-pending" | "usable" | "usable-in-future";
type MediaKeysRequirement = "not-allowed" | "optional" | "required";
type MediaSessionAction = "nexttrack" | "pause" | "play" | "previoustrack" | "seekbackward" | "seekforward" | "seekto" | "skipad" | "stop";
type MediaSessionPlaybackState = "none" | "paused" | "playing";
type MediaStreamTrackState = "ended" | "live";
type NavigationTimingType = "back_forward" | "navigate" | "prerender" | "reload";
type NotificationDirection = "auto" | "ltr" | "rtl";
type NotificationPermission = "default" | "denied" | "granted";
type OffscreenRenderingContextId = "2d" | "bitmaprenderer" | "webgl" | "webgl2" | "webgpu";
type OrientationLockType = "any" | "landscape" | "landscape-primary" | "landscape-secondary" | "natural" | "portrait" | "portrait-primary" | "portrait-secondary";
type OrientationType = "landscape-primary" | "landscape-secondary" | "portrait-primary" | "portrait-secondary";
type OscillatorType = "custom" | "sawtooth" | "sine" | "square" | "triangle";
type OverSampleType = "2x" | "4x" | "none";
type PanningModelType = "HRTF" | "equalpower";
type PaymentComplete = "fail" | "success" | "unknown";
type PermissionName = "geolocation" | "notifications" | "persistent-storage" | "push" | "screen-wake-lock" | "xr-spatial-tracking";
type PermissionState = "denied" | "granted" | "prompt";
type PlaybackDirection = "alternate" | "alternate-reverse" | "normal" | "reverse";
type PositionAlignSetting = "auto" | "center" | "line-left" | "line-right";
type PredefinedColorSpace = "display-p3" | "srgb";
type PremultiplyAlpha = "default" | "none" | "premultiply";
type PresentationStyle = "attachment" | "inline" | "unspecified";
type PublicKeyCredentialType = "public-key";
type PushEncryptionKeyName = "auth" | "p256dh";
type RTCBundlePolicy = "balanced" | "max-bundle" | "max-compat";
type RTCDataChannelState = "closed" | "closing" | "connecting" | "open";
type RTCDegradationPreference = "balanced" | "maintain-framerate" | "maintain-resolution";
type RTCDtlsTransportState = "closed" | "connected" | "connecting" | "failed" | "new";
type RTCEncodedVideoFrameType = "delta" | "empty" | "key";
type RTCErrorDetailType = "data-channel-failure" | "dtls-failure" | "fingerprint-failure" | "hardware-encoder-error" | "hardware-encoder-not-available" | "sctp-failure" | "sdp-syntax-error";
type RTCIceCandidateType = "host" | "prflx" | "relay" | "srflx";
type RTCIceComponent = "rtcp" | "rtp";
type RTCIceConnectionState = "checking" | "closed" | "completed" | "connected" | "disconnected" | "failed" | "new";
type RTCIceGathererState = "complete" | "gathering" | "new";
type RTCIceGatheringState = "complete" | "gathering" | "new";
type RTCIceProtocol = "tcp" | "udp";
type RTCIceTcpCandidateType = "active" | "passive" | "so";
type RTCIceTransportPolicy = "all" | "relay";
type RTCIceTransportState = "checking" | "closed" | "completed" | "connected" | "disconnected" | "failed" | "new";
type RTCPeerConnectionState = "closed" | "connected" | "connecting" | "disconnected" | "failed" | "new";
type RTCPriorityType = "high" | "low" | "medium" | "very-low";
type RTCRtcpMuxPolicy = "require";
type RTCRtpTransceiverDirection = "inactive" | "recvonly" | "sendonly" | "sendrecv" | "stopped";
type RTCSctpTransportState = "closed" | "connected" | "connecting";
type RTCSdpType = "answer" | "offer" | "pranswer" | "rollback";
type RTCSignalingState = "closed" | "have-local-offer" | "have-local-pranswer" | "have-remote-offer" | "have-remote-pranswer" | "stable";
type RTCStatsIceCandidatePairState = "failed" | "frozen" | "in-progress" | "inprogress" | "succeeded" | "waiting";
type RTCStatsType = "candidate-pair" | "certificate" | "codec" | "data-channel" | "inbound-rtp" | "local-candidate" | "media-source" | "outbound-rtp" | "peer-connection" | "remote-candidate" | "remote-inbound-rtp" | "remote-outbound-rtp" | "track" | "transport";
type ReadableStreamReaderMode = "byob";
type ReadableStreamType = "bytes";
type ReadyState = "closed" | "ended" | "open";
type RecordingState = "inactive" | "paused" | "recording";
type ReferrerPolicy = "" | "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url";
type RemotePlaybackState = "connected" | "connecting" | "disconnected";
type RequestCache = "default" | "force-cache" | "no-cache" | "no-store" | "only-if-cached" | "reload";
type RequestCredentials = "include" | "omit" | "same-origin";
type RequestDestination = "" | "audio" | "audioworklet" | "document" | "embed" | "font" | "frame" | "iframe" | "image" | "manifest" | "object" | "paintworklet" | "report" | "script" | "sharedworker" | "style" | "track" | "video" | "worker" | "xslt";
type RequestMode = "cors" | "navigate" | "no-cors" | "same-origin";
type RequestRedirect = "error" | "follow" | "manual";
type ResidentKeyRequirement = "discouraged" | "preferred" | "required";
type ResizeObserverBoxOptions = "border-box" | "content-box" | "device-pixel-content-box";
type ResizeQuality = "high" | "low" | "medium" | "pixelated";
type ResponseType = "basic" | "cors" | "default" | "error" | "opaque" | "opaqueredirect";
type ScrollBehavior = "auto" | "smooth";
type ScrollLogicalPosition = "center" | "end" | "nearest" | "start";
type ScrollRestoration = "auto" | "manual";
type ScrollSetting = "" | "up";
type SecurityPolicyViolationEventDisposition = "enforce" | "report";
type SelectionMode = "end" | "preserve" | "select" | "start";
type ServiceWorkerState = "activated" | "activating" | "installed" | "installing" | "parsed" | "redundant";
type ServiceWorkerUpdateViaCache = "all" | "imports" | "none";
type ShadowRootMode = "closed" | "open";
type SlotAssignmentMode = "manual" | "named";
type SpeechSynthesisErrorCode = "audio-busy" | "audio-hardware" | "canceled" | "interrupted" | "invalid-argument" | "language-unavailable" | "network" | "not-allowed" | "synthesis-failed" | "synthesis-unavailable" | "text-too-long" | "voice-unavailable";
type TextTrackKind = "captions" | "chapters" | "descriptions" | "metadata" | "subtitles";
type TextTrackMode = "disabled" | "hidden" | "showing";
type TouchType = "direct" | "stylus";
type TransferFunction = "hlg" | "pq" | "srgb";
type UserVerificationRequirement = "discouraged" | "preferred" | "required";
type VideoColorPrimaries = "bt470bg" | "bt709" | "smpte170m";
type VideoFacingModeEnum = "environment" | "left" | "right" | "user";
type VideoMatrixCoefficients = "bt470bg" | "bt709" | "rgb" | "smpte170m";
type VideoTransferCharacteristics = "bt709" | "iec61966-2-1" | "smpte170m";
type WebGLPowerPreference = "default" | "high-performance" | "low-power";
type WorkerType = "classic" | "module";
type XMLHttpRequestResponseType = "" | "arraybuffer" | "blob" | "document" | "json" | "text";
`;
ba["lib.dom.iterable.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/////////////////////////////
/// Window Iterable APIs
/////////////////////////////

interface AudioParam {
    setValueCurveAtTime(values: Iterable<number>, startTime: number, duration: number): AudioParam;
}

interface AudioParamMap extends ReadonlyMap<string, AudioParam> {
}

interface BaseAudioContext {
    createIIRFilter(feedforward: Iterable<number>, feedback: Iterable<number>): IIRFilterNode;
    createPeriodicWave(real: Iterable<number>, imag: Iterable<number>, constraints?: PeriodicWaveConstraints): PeriodicWave;
}

interface CSSKeyframesRule {
    [Symbol.iterator](): IterableIterator<CSSKeyframeRule>;
}

interface CSSRuleList {
    [Symbol.iterator](): IterableIterator<CSSRule>;
}

interface CSSStyleDeclaration {
    [Symbol.iterator](): IterableIterator<string>;
}

interface Cache {
    addAll(requests: Iterable<RequestInfo>): Promise<void>;
}

interface CanvasPath {
    roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | Iterable<number | DOMPointInit>): void;
}

interface CanvasPathDrawingStyles {
    setLineDash(segments: Iterable<number>): void;
}

interface DOMRectList {
    [Symbol.iterator](): IterableIterator<DOMRect>;
}

interface DOMStringList {
    [Symbol.iterator](): IterableIterator<string>;
}

interface DOMTokenList {
    [Symbol.iterator](): IterableIterator<string>;
    entries(): IterableIterator<[number, string]>;
    keys(): IterableIterator<number>;
    values(): IterableIterator<string>;
}

interface DataTransferItemList {
    [Symbol.iterator](): IterableIterator<DataTransferItem>;
}

interface EventCounts extends ReadonlyMap<string, number> {
}

interface FileList {
    [Symbol.iterator](): IterableIterator<File>;
}

interface FontFaceSet extends Set<FontFace> {
}

interface FormData {
    [Symbol.iterator](): IterableIterator<[string, FormDataEntryValue]>;
    /** Returns an array of key, value pairs for every entry in the list. */
    entries(): IterableIterator<[string, FormDataEntryValue]>;
    /** Returns a list of keys in the list. */
    keys(): IterableIterator<string>;
    /** Returns a list of values in the list. */
    values(): IterableIterator<FormDataEntryValue>;
}

interface HTMLAllCollection {
    [Symbol.iterator](): IterableIterator<Element>;
}

interface HTMLCollectionBase {
    [Symbol.iterator](): IterableIterator<Element>;
}

interface HTMLCollectionOf<T extends Element> {
    [Symbol.iterator](): IterableIterator<T>;
}

interface HTMLFormElement {
    [Symbol.iterator](): IterableIterator<Element>;
}

interface HTMLSelectElement {
    [Symbol.iterator](): IterableIterator<HTMLOptionElement>;
}

interface Headers {
    [Symbol.iterator](): IterableIterator<[string, string]>;
    /** Returns an iterator allowing to go through all key/value pairs contained in this object. */
    entries(): IterableIterator<[string, string]>;
    /** Returns an iterator allowing to go through all keys of the key/value pairs contained in this object. */
    keys(): IterableIterator<string>;
    /** Returns an iterator allowing to go through all values of the key/value pairs contained in this object. */
    values(): IterableIterator<string>;
}

interface IDBDatabase {
    /** Returns a new transaction with the given mode ("readonly" or "readwrite") and scope which can be a single object store name or an array of names. */
    transaction(storeNames: string | Iterable<string>, mode?: IDBTransactionMode, options?: IDBTransactionOptions): IDBTransaction;
}

interface IDBObjectStore {
    /**
     * Creates a new index in store with the given name, keyPath and options and returns a new IDBIndex. If the keyPath and options define constraints that cannot be satisfied with the data already in store the upgrade transaction will abort with a "ConstraintError" DOMException.
     *
     * Throws an "InvalidStateError" DOMException if not called within an upgrade transaction.
     */
    createIndex(name: string, keyPath: string | Iterable<string>, options?: IDBIndexParameters): IDBIndex;
}

interface MIDIInputMap extends ReadonlyMap<string, MIDIInput> {
}

interface MIDIOutput {
    send(data: Iterable<number>, timestamp?: DOMHighResTimeStamp): void;
}

interface MIDIOutputMap extends ReadonlyMap<string, MIDIOutput> {
}

interface MediaKeyStatusMap {
    [Symbol.iterator](): IterableIterator<[BufferSource, MediaKeyStatus]>;
    entries(): IterableIterator<[BufferSource, MediaKeyStatus]>;
    keys(): IterableIterator<BufferSource>;
    values(): IterableIterator<MediaKeyStatus>;
}

interface MediaList {
    [Symbol.iterator](): IterableIterator<string>;
}

interface MessageEvent<T = any> {
    /** @deprecated */
    initMessageEvent(type: string, bubbles?: boolean, cancelable?: boolean, data?: any, origin?: string, lastEventId?: string, source?: MessageEventSource | null, ports?: Iterable<MessagePort>): void;
}

interface MimeTypeArray {
    [Symbol.iterator](): IterableIterator<MimeType>;
}

interface NamedNodeMap {
    [Symbol.iterator](): IterableIterator<Attr>;
}

interface Navigator {
    /** Available only in secure contexts. */
    requestMediaKeySystemAccess(keySystem: string, supportedConfigurations: Iterable<MediaKeySystemConfiguration>): Promise<MediaKeySystemAccess>;
    vibrate(pattern: Iterable<number>): boolean;
}

interface NodeList {
    [Symbol.iterator](): IterableIterator<Node>;
    /** Returns an array of key, value pairs for every entry in the list. */
    entries(): IterableIterator<[number, Node]>;
    /** Returns an list of keys in the list. */
    keys(): IterableIterator<number>;
    /** Returns an list of values in the list. */
    values(): IterableIterator<Node>;
}

interface NodeListOf<TNode extends Node> {
    [Symbol.iterator](): IterableIterator<TNode>;
    /** Returns an array of key, value pairs for every entry in the list. */
    entries(): IterableIterator<[number, TNode]>;
    /** Returns an list of keys in the list. */
    keys(): IterableIterator<number>;
    /** Returns an list of values in the list. */
    values(): IterableIterator<TNode>;
}

interface Plugin {
    [Symbol.iterator](): IterableIterator<MimeType>;
}

interface PluginArray {
    [Symbol.iterator](): IterableIterator<Plugin>;
}

interface RTCRtpTransceiver {
    setCodecPreferences(codecs: Iterable<RTCRtpCodecCapability>): void;
}

interface RTCStatsReport extends ReadonlyMap<string, any> {
}

interface SVGLengthList {
    [Symbol.iterator](): IterableIterator<SVGLength>;
}

interface SVGNumberList {
    [Symbol.iterator](): IterableIterator<SVGNumber>;
}

interface SVGPointList {
    [Symbol.iterator](): IterableIterator<DOMPoint>;
}

interface SVGStringList {
    [Symbol.iterator](): IterableIterator<string>;
}

interface SVGTransformList {
    [Symbol.iterator](): IterableIterator<SVGTransform>;
}

interface SourceBufferList {
    [Symbol.iterator](): IterableIterator<SourceBuffer>;
}

interface SpeechRecognitionResult {
    [Symbol.iterator](): IterableIterator<SpeechRecognitionAlternative>;
}

interface SpeechRecognitionResultList {
    [Symbol.iterator](): IterableIterator<SpeechRecognitionResult>;
}

interface StyleSheetList {
    [Symbol.iterator](): IterableIterator<CSSStyleSheet>;
}

interface SubtleCrypto {
    deriveKey(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: Iterable<KeyUsage>): Promise<CryptoKey>;
    generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKeyPair>;
    generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
    generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: Iterable<KeyUsage>): Promise<CryptoKeyPair | CryptoKey>;
    importKey(format: "jwk", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
    importKey(format: Exclude<KeyFormat, "jwk">, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: Iterable<KeyUsage>): Promise<CryptoKey>;
    unwrapKey(format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: Iterable<KeyUsage>): Promise<CryptoKey>;
}

interface TextTrackCueList {
    [Symbol.iterator](): IterableIterator<TextTrackCue>;
}

interface TextTrackList {
    [Symbol.iterator](): IterableIterator<TextTrack>;
}

interface TouchList {
    [Symbol.iterator](): IterableIterator<Touch>;
}

interface URLSearchParams {
    [Symbol.iterator](): IterableIterator<[string, string]>;
    /** Returns an array of key, value pairs for every entry in the search params. */
    entries(): IterableIterator<[string, string]>;
    /** Returns a list of keys in the search params. */
    keys(): IterableIterator<string>;
    /** Returns a list of values in the search params. */
    values(): IterableIterator<string>;
}

interface WEBGL_draw_buffers {
    drawBuffersWEBGL(buffers: Iterable<GLenum>): void;
}

interface WEBGL_multi_draw {
    multiDrawArraysInstancedWEBGL(mode: GLenum, firstsList: Int32Array | Iterable<GLint>, firstsOffset: GLuint, countsList: Int32Array | Iterable<GLsizei>, countsOffset: GLuint, instanceCountsList: Int32Array | Iterable<GLsizei>, instanceCountsOffset: GLuint, drawcount: GLsizei): void;
    multiDrawArraysWEBGL(mode: GLenum, firstsList: Int32Array | Iterable<GLint>, firstsOffset: GLuint, countsList: Int32Array | Iterable<GLsizei>, countsOffset: GLuint, drawcount: GLsizei): void;
    multiDrawElementsInstancedWEBGL(mode: GLenum, countsList: Int32Array | Iterable<GLsizei>, countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | Iterable<GLsizei>, offsetsOffset: GLuint, instanceCountsList: Int32Array | Iterable<GLsizei>, instanceCountsOffset: GLuint, drawcount: GLsizei): void;
    multiDrawElementsWEBGL(mode: GLenum, countsList: Int32Array | Iterable<GLsizei>, countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | Iterable<GLsizei>, offsetsOffset: GLuint, drawcount: GLsizei): void;
}

interface WebGL2RenderingContextBase {
    clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLfloat>, srcOffset?: GLuint): void;
    clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLint>, srcOffset?: GLuint): void;
    clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLuint>, srcOffset?: GLuint): void;
    drawBuffers(buffers: Iterable<GLenum>): void;
    getActiveUniforms(program: WebGLProgram, uniformIndices: Iterable<GLuint>, pname: GLenum): any;
    getUniformIndices(program: WebGLProgram, uniformNames: Iterable<string>): Iterable<GLuint> | null;
    invalidateFramebuffer(target: GLenum, attachments: Iterable<GLenum>): void;
    invalidateSubFramebuffer(target: GLenum, attachments: Iterable<GLenum>, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
    transformFeedbackVaryings(program: WebGLProgram, varyings: Iterable<string>, bufferMode: GLenum): void;
    uniform1uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform2uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform3uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform4uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    vertexAttribI4iv(index: GLuint, values: Iterable<GLint>): void;
    vertexAttribI4uiv(index: GLuint, values: Iterable<GLuint>): void;
}

interface WebGL2RenderingContextOverloads {
    uniform1fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform1iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform2fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform2iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform3fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform3iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform4fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform4iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
}

interface WebGLRenderingContextBase {
    vertexAttrib1fv(index: GLuint, values: Iterable<GLfloat>): void;
    vertexAttrib2fv(index: GLuint, values: Iterable<GLfloat>): void;
    vertexAttrib3fv(index: GLuint, values: Iterable<GLfloat>): void;
    vertexAttrib4fv(index: GLuint, values: Iterable<GLfloat>): void;
}

interface WebGLRenderingContextOverloads {
    uniform1fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;
    uniform1iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;
    uniform2fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;
    uniform2iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;
    uniform3fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;
    uniform3iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;
    uniform4fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;
    uniform4iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;
    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;
    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;
    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;
}
`;
ba["lib.es2015.collection.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface Map<K, V> {

    clear(): void;
    /**
     * @returns true if an element in the Map existed and has been removed, or false if the element does not exist.
     */
    delete(key: K): boolean;
    /**
     * Executes a provided function once per each key/value pair in the Map, in insertion order.
     */
    forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void;
    /**
     * Returns a specified element from the Map object. If the value that is associated to the provided key is an object, then you will get a reference to that object and any change made to that object will effectively modify it inside the Map.
     * @returns Returns the element associated with the specified key. If no element is associated with the specified key, undefined is returned.
     */
    get(key: K): V | undefined;
    /**
     * @returns boolean indicating whether an element with the specified key exists or not.
     */
    has(key: K): boolean;
    /**
     * Adds a new element with a specified key and value to the Map. If an element with the same key already exists, the element will be updated.
     */
    set(key: K, value: V): this;
    /**
     * @returns the number of elements in the Map.
     */
    readonly size: number;
}

interface MapConstructor {
    new(): Map<any, any>;
    new <K, V>(entries?: readonly (readonly [K, V])[] | null): Map<K, V>;
    readonly prototype: Map<any, any>;
}
declare var Map: MapConstructor;

interface ReadonlyMap<K, V> {
    forEach(callbackfn: (value: V, key: K, map: ReadonlyMap<K, V>) => void, thisArg?: any): void;
    get(key: K): V | undefined;
    has(key: K): boolean;
    readonly size: number;
}

interface WeakMap<K extends object, V> {
    /**
     * Removes the specified element from the WeakMap.
     * @returns true if the element was successfully removed, or false if it was not present.
     */
    delete(key: K): boolean;
    /**
     * @returns a specified element.
     */
    get(key: K): V | undefined;
    /**
     * @returns a boolean indicating whether an element with the specified key exists or not.
     */
    has(key: K): boolean;
    /**
     * Adds a new element with a specified key and value.
     * @param key Must be an object.
     */
    set(key: K, value: V): this;
}

interface WeakMapConstructor {
    new <K extends object = object, V = any>(entries?: readonly [K, V][] | null): WeakMap<K, V>;
    readonly prototype: WeakMap<object, any>;
}
declare var WeakMap: WeakMapConstructor;

interface Set<T> {
    /**
     * Appends a new element with a specified value to the end of the Set.
     */
    add(value: T): this;

    clear(): void;
    /**
     * Removes a specified value from the Set.
     * @returns Returns true if an element in the Set existed and has been removed, or false if the element does not exist.
     */
    delete(value: T): boolean;
    /**
     * Executes a provided function once per each value in the Set object, in insertion order.
     */
    forEach(callbackfn: (value: T, value2: T, set: Set<T>) => void, thisArg?: any): void;
    /**
     * @returns a boolean indicating whether an element with the specified value exists in the Set or not.
     */
    has(value: T): boolean;
    /**
     * @returns the number of (unique) elements in Set.
     */
    readonly size: number;
}

interface SetConstructor {
    new <T = any>(values?: readonly T[] | null): Set<T>;
    readonly prototype: Set<any>;
}
declare var Set: SetConstructor;

interface ReadonlySet<T> {
    forEach(callbackfn: (value: T, value2: T, set: ReadonlySet<T>) => void, thisArg?: any): void;
    has(value: T): boolean;
    readonly size: number;
}

interface WeakSet<T extends object> {
    /**
     * Appends a new object to the end of the WeakSet.
     */
    add(value: T): this;
    /**
     * Removes the specified element from the WeakSet.
     * @returns Returns true if the element existed and has been removed, or false if the element does not exist.
     */
    delete(value: T): boolean;
    /**
     * @returns a boolean indicating whether an object exists in the WeakSet or not.
     */
    has(value: T): boolean;
}

interface WeakSetConstructor {
    new <T extends object = object>(values?: readonly T[] | null): WeakSet<T>;
    readonly prototype: WeakSet<object>;
}
declare var WeakSet: WeakSetConstructor;
`;
ba["lib.es2015.core.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface Array<T> {
    /**
     * Returns the value of the first element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found, find
     * immediately returns that element value. Otherwise, find returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    find<S extends T>(predicate: (value: T, index: number, obj: T[]) => value is S, thisArg?: any): S | undefined;
    find(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): T | undefined;

    /**
     * Returns the index of the first element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findIndex(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): number;

    /**
     * Changes all array elements from \`start\` to \`end\` index to a static \`value\` and returns the modified array
     * @param value value to fill array section with
     * @param start index to start filling the array at. If start is negative, it is treated as
     * length+start where length is the length of the array.
     * @param end index to stop filling the array at. If end is negative, it is treated as
     * length+end.
     */
    fill(value: T, start?: number, end?: number): this;

    /**
     * Returns the this object after copying a section of the array identified by start and end
     * to the same array starting at position target
     * @param target If target is negative, it is treated as length+target where length is the
     * length of the array.
     * @param start If start is negative, it is treated as length+start. If end is negative, it
     * is treated as length+end.
     * @param end If not specified, length of the this object is used as its default value.
     */
    copyWithin(target: number, start: number, end?: number): this;
}

interface ArrayConstructor {
    /**
     * Creates an array from an array-like object.
     * @param arrayLike An array-like object to convert to an array.
     */
    from<T>(arrayLike: ArrayLike<T>): T[];

    /**
     * Creates an array from an iterable object.
     * @param arrayLike An array-like object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];

    /**
     * Returns a new array from a set of elements.
     * @param items A set of elements to include in the new array object.
     */
    of<T>(...items: T[]): T[];
}

interface DateConstructor {
    new (value: number | string | Date): Date;
}

interface Function {
    /**
     * Returns the name of the function. Function names are read-only and can not be changed.
     */
    readonly name: string;
}

interface Math {
    /**
     * Returns the number of leading zero bits in the 32-bit binary representation of a number.
     * @param x A numeric expression.
     */
    clz32(x: number): number;

    /**
     * Returns the result of 32-bit multiplication of two numbers.
     * @param x First number
     * @param y Second number
     */
    imul(x: number, y: number): number;

    /**
     * Returns the sign of the x, indicating whether x is positive, negative or zero.
     * @param x The numeric expression to test
     */
    sign(x: number): number;

    /**
     * Returns the base 10 logarithm of a number.
     * @param x A numeric expression.
     */
    log10(x: number): number;

    /**
     * Returns the base 2 logarithm of a number.
     * @param x A numeric expression.
     */
    log2(x: number): number;

    /**
     * Returns the natural logarithm of 1 + x.
     * @param x A numeric expression.
     */
    log1p(x: number): number;

    /**
     * Returns the result of (e^x - 1), which is an implementation-dependent approximation to
     * subtracting 1 from the exponential function of x (e raised to the power of x, where e
     * is the base of the natural logarithms).
     * @param x A numeric expression.
     */
    expm1(x: number): number;

    /**
     * Returns the hyperbolic cosine of a number.
     * @param x A numeric expression that contains an angle measured in radians.
     */
    cosh(x: number): number;

    /**
     * Returns the hyperbolic sine of a number.
     * @param x A numeric expression that contains an angle measured in radians.
     */
    sinh(x: number): number;

    /**
     * Returns the hyperbolic tangent of a number.
     * @param x A numeric expression that contains an angle measured in radians.
     */
    tanh(x: number): number;

    /**
     * Returns the inverse hyperbolic cosine of a number.
     * @param x A numeric expression that contains an angle measured in radians.
     */
    acosh(x: number): number;

    /**
     * Returns the inverse hyperbolic sine of a number.
     * @param x A numeric expression that contains an angle measured in radians.
     */
    asinh(x: number): number;

    /**
     * Returns the inverse hyperbolic tangent of a number.
     * @param x A numeric expression that contains an angle measured in radians.
     */
    atanh(x: number): number;

    /**
     * Returns the square root of the sum of squares of its arguments.
     * @param values Values to compute the square root for.
     *     If no arguments are passed, the result is +0.
     *     If there is only one argument, the result is the absolute value.
     *     If any argument is +Infinity or -Infinity, the result is +Infinity.
     *     If any argument is NaN, the result is NaN.
     *     If all arguments are either +0 or −0, the result is +0.
     */
    hypot(...values: number[]): number;

    /**
     * Returns the integral part of the a numeric expression, x, removing any fractional digits.
     * If x is already an integer, the result is x.
     * @param x A numeric expression.
     */
    trunc(x: number): number;

    /**
     * Returns the nearest single precision float representation of a number.
     * @param x A numeric expression.
     */
    fround(x: number): number;

    /**
     * Returns an implementation-dependent approximation to the cube root of number.
     * @param x A numeric expression.
     */
    cbrt(x: number): number;
}

interface NumberConstructor {
    /**
     * The value of Number.EPSILON is the difference between 1 and the smallest value greater than 1
     * that is representable as a Number value, which is approximately:
     * 2.2204460492503130808472633361816 x 10‍−‍16.
     */
    readonly EPSILON: number;

    /**
     * Returns true if passed value is finite.
     * Unlike the global isFinite, Number.isFinite doesn't forcibly convert the parameter to a
     * number. Only finite values of the type number, result in true.
     * @param number A numeric value.
     */
    isFinite(number: unknown): boolean;

    /**
     * Returns true if the value passed is an integer, false otherwise.
     * @param number A numeric value.
     */
    isInteger(number: unknown): boolean;

    /**
     * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a
     * number). Unlike the global isNaN(), Number.isNaN() doesn't forcefully convert the parameter
     * to a number. Only values of the type number, that are also NaN, result in true.
     * @param number A numeric value.
     */
    isNaN(number: unknown): boolean;

    /**
     * Returns true if the value passed is a safe integer.
     * @param number A numeric value.
     */
    isSafeInteger(number: unknown): boolean;

    /**
     * The value of the largest integer n such that n and n + 1 are both exactly representable as
     * a Number value.
     * The value of Number.MAX_SAFE_INTEGER is 9007199254740991 2^53 − 1.
     */
    readonly MAX_SAFE_INTEGER: number;

    /**
     * The value of the smallest integer n such that n and n − 1 are both exactly representable as
     * a Number value.
     * The value of Number.MIN_SAFE_INTEGER is −9007199254740991 (−(2^53 − 1)).
     */
    readonly MIN_SAFE_INTEGER: number;

    /**
     * Converts a string to a floating-point number.
     * @param string A string that contains a floating-point number.
     */
    parseFloat(string: string): number;

    /**
     * Converts A string to an integer.
     * @param string A string to convert into a number.
     * @param radix A value between 2 and 36 that specifies the base of the number in \`string\`.
     * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.
     * All other strings are considered decimal.
     */
    parseInt(string: string, radix?: number): number;
}

interface ObjectConstructor {
    /**
     * Copy the values of all of the enumerable own properties from one or more source objects to a
     * target object. Returns the target object.
     * @param target The target object to copy to.
     * @param source The source object from which to copy properties.
     */
    assign<T extends {}, U>(target: T, source: U): T & U;

    /**
     * Copy the values of all of the enumerable own properties from one or more source objects to a
     * target object. Returns the target object.
     * @param target The target object to copy to.
     * @param source1 The first source object from which to copy properties.
     * @param source2 The second source object from which to copy properties.
     */
    assign<T extends {}, U, V>(target: T, source1: U, source2: V): T & U & V;

    /**
     * Copy the values of all of the enumerable own properties from one or more source objects to a
     * target object. Returns the target object.
     * @param target The target object to copy to.
     * @param source1 The first source object from which to copy properties.
     * @param source2 The second source object from which to copy properties.
     * @param source3 The third source object from which to copy properties.
     */
    assign<T extends {}, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;

    /**
     * Copy the values of all of the enumerable own properties from one or more source objects to a
     * target object. Returns the target object.
     * @param target The target object to copy to.
     * @param sources One or more source objects from which to copy properties
     */
    assign(target: object, ...sources: any[]): any;

    /**
     * Returns an array of all symbol properties found directly on object o.
     * @param o Object to retrieve the symbols from.
     */
    getOwnPropertySymbols(o: any): symbol[];

    /**
     * Returns the names of the enumerable string properties and methods of an object.
     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
     */
    keys(o: {}): string[];

    /**
     * Returns true if the values are the same value, false otherwise.
     * @param value1 The first value.
     * @param value2 The second value.
     */
    is(value1: any, value2: any): boolean;

    /**
     * Sets the prototype of a specified object o to object proto or null. Returns the object o.
     * @param o The object to change its prototype.
     * @param proto The value of the new prototype or null.
     */
    setPrototypeOf(o: any, proto: object | null): any;
}

interface ReadonlyArray<T> {
    /**
     * Returns the value of the first element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found, find
     * immediately returns that element value. Otherwise, find returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    find<S extends T>(predicate: (value: T, index: number, obj: readonly T[]) => value is S, thisArg?: any): S | undefined;
    find(predicate: (value: T, index: number, obj: readonly T[]) => unknown, thisArg?: any): T | undefined;

    /**
     * Returns the index of the first element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findIndex(predicate: (value: T, index: number, obj: readonly T[]) => unknown, thisArg?: any): number;
}

interface RegExp {
    /**
     * Returns a string indicating the flags of the regular expression in question. This field is read-only.
     * The characters in this string are sequenced and concatenated in the following order:
     *
     *    - "g" for global
     *    - "i" for ignoreCase
     *    - "m" for multiline
     *    - "u" for unicode
     *    - "y" for sticky
     *
     * If no flags are set, the value is the empty string.
     */
    readonly flags: string;

    /**
     * Returns a Boolean value indicating the state of the sticky flag (y) used with a regular
     * expression. Default is false. Read-only.
     */
    readonly sticky: boolean;

    /**
     * Returns a Boolean value indicating the state of the Unicode flag (u) used with a regular
     * expression. Default is false. Read-only.
     */
    readonly unicode: boolean;
}

interface RegExpConstructor {
    new (pattern: RegExp | string, flags?: string): RegExp;
    (pattern: RegExp | string, flags?: string): RegExp;
}

interface String {
    /**
     * Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point
     * value of the UTF-16 encoded code point starting at the string element at position pos in
     * the String resulting from converting this object to a String.
     * If there is no element at that position, the result is undefined.
     * If a valid UTF-16 surrogate pair does not begin at pos, the result is the code unit at pos.
     */
    codePointAt(pos: number): number | undefined;

    /**
     * Returns true if searchString appears as a substring of the result of converting this
     * object to a String, at one or more positions that are
     * greater than or equal to position; otherwise, returns false.
     * @param searchString search string
     * @param position If position is undefined, 0 is assumed, so as to search all of the String.
     */
    includes(searchString: string, position?: number): boolean;

    /**
     * Returns true if the sequence of elements of searchString converted to a String is the
     * same as the corresponding elements of this object (converted to a String) starting at
     * endPosition – length(this). Otherwise returns false.
     */
    endsWith(searchString: string, endPosition?: number): boolean;

    /**
     * Returns the String value result of normalizing the string into the normalization form
     * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.
     * @param form Applicable values: "NFC", "NFD", "NFKC", or "NFKD", If not specified default
     * is "NFC"
     */
    normalize(form: "NFC" | "NFD" | "NFKC" | "NFKD"): string;

    /**
     * Returns the String value result of normalizing the string into the normalization form
     * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.
     * @param form Applicable values: "NFC", "NFD", "NFKC", or "NFKD", If not specified default
     * is "NFC"
     */
    normalize(form?: string): string;

    /**
     * Returns a String value that is made from count copies appended together. If count is 0,
     * the empty string is returned.
     * @param count number of copies to append
     */
    repeat(count: number): string;

    /**
     * Returns true if the sequence of elements of searchString converted to a String is the
     * same as the corresponding elements of this object (converted to a String) starting at
     * position. Otherwise returns false.
     */
    startsWith(searchString: string, position?: number): boolean;

    /**
     * Returns an \`<a>\` HTML anchor element and sets the name attribute to the text value
     * @deprecated A legacy feature for browser compatibility
     * @param name
     */
    anchor(name: string): string;

    /**
     * Returns a \`<big>\` HTML element
     * @deprecated A legacy feature for browser compatibility
     */
    big(): string;

    /**
     * Returns a \`<blink>\` HTML element
     * @deprecated A legacy feature for browser compatibility
     */
    blink(): string;

    /**
     * Returns a \`<b>\` HTML element
     * @deprecated A legacy feature for browser compatibility
     */
    bold(): string;

    /**
     * Returns a \`<tt>\` HTML element
     * @deprecated A legacy feature for browser compatibility
     */
    fixed(): string;

    /**
     * Returns a \`<font>\` HTML element and sets the color attribute value
     * @deprecated A legacy feature for browser compatibility
     */
    fontcolor(color: string): string;

    /**
     * Returns a \`<font>\` HTML element and sets the size attribute value
     * @deprecated A legacy feature for browser compatibility
     */
    fontsize(size: number): string;

    /**
     * Returns a \`<font>\` HTML element and sets the size attribute value
     * @deprecated A legacy feature for browser compatibility
     */
    fontsize(size: string): string;

    /**
     * Returns an \`<i>\` HTML element
     * @deprecated A legacy feature for browser compatibility
     */
    italics(): string;

    /**
     * Returns an \`<a>\` HTML element and sets the href attribute value
     * @deprecated A legacy feature for browser compatibility
     */
    link(url: string): string;

    /**
     * Returns a \`<small>\` HTML element
     * @deprecated A legacy feature for browser compatibility
     */
    small(): string;

    /**
     * Returns a \`<strike>\` HTML element
     * @deprecated A legacy feature for browser compatibility
     */
    strike(): string;

    /**
     * Returns a \`<sub>\` HTML element
     * @deprecated A legacy feature for browser compatibility
     */
    sub(): string;

    /**
     * Returns a \`<sup>\` HTML element
     * @deprecated A legacy feature for browser compatibility
     */
    sup(): string;
}

interface StringConstructor {
    /**
     * Return the String value whose elements are, in order, the elements in the List elements.
     * If length is 0, the empty string is returned.
     */
    fromCodePoint(...codePoints: number[]): string;

    /**
     * String.raw is usually used as a tag function of a Tagged Template String. When called as
     * such, the first argument will be a well formed template call site object and the rest
     * parameter will contain the substitution values. It can also be called directly, for example,
     * to interleave strings and values from your own tag function, and in this case the only thing
     * it needs from the first argument is the raw property.
     * @param template A well-formed template string call site representation.
     * @param substitutions A set of substitution values.
     */
    raw(template: { raw: readonly string[] | ArrayLike<string>}, ...substitutions: any[]): string;
}
`;
ba["lib.es2015.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es5" />
/// <reference lib="es2015.core" />
/// <reference lib="es2015.collection" />
/// <reference lib="es2015.iterable" />
/// <reference lib="es2015.generator" />
/// <reference lib="es2015.promise" />
/// <reference lib="es2015.proxy" />
/// <reference lib="es2015.reflect" />
/// <reference lib="es2015.symbol" />
/// <reference lib="es2015.symbol.wellknown" />
`;
ba["lib.es2015.generator.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2015.iterable" />

interface Generator<T = unknown, TReturn = any, TNext = unknown> extends Iterator<T, TReturn, TNext> {
    // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.
    next(...args: [] | [TNext]): IteratorResult<T, TReturn>;
    return(value: TReturn): IteratorResult<T, TReturn>;
    throw(e: any): IteratorResult<T, TReturn>;
    [Symbol.iterator](): Generator<T, TReturn, TNext>;
}

interface GeneratorFunction {
    /**
     * Creates a new Generator object.
     * @param args A list of arguments the function accepts.
     */
    new (...args: any[]): Generator;
    /**
     * Creates a new Generator object.
     * @param args A list of arguments the function accepts.
     */
    (...args: any[]): Generator;
    /**
     * The length of the arguments.
     */
    readonly length: number;
    /**
     * Returns the name of the function.
     */
    readonly name: string;
    /**
     * A reference to the prototype.
     */
    readonly prototype: Generator;
}

interface GeneratorFunctionConstructor {
    /**
     * Creates a new Generator function.
     * @param args A list of arguments the function accepts.
     */
    new (...args: string[]): GeneratorFunction;
    /**
     * Creates a new Generator function.
     * @param args A list of arguments the function accepts.
     */
    (...args: string[]): GeneratorFunction;
    /**
     * The length of the arguments.
     */
    readonly length: number;
    /**
     * Returns the name of the function.
     */
    readonly name: string;
    /**
     * A reference to the prototype.
     */
    readonly prototype: GeneratorFunction;
}
`;
ba["lib.es2015.iterable.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2015.symbol" />

interface SymbolConstructor {
    /**
     * A method that returns the default iterator for an object. Called by the semantics of the
     * for-of statement.
     */
    readonly iterator: unique symbol;
}

interface IteratorYieldResult<TYield> {
    done?: false;
    value: TYield;
}

interface IteratorReturnResult<TReturn> {
    done: true;
    value: TReturn;
}

type IteratorResult<T, TReturn = any> = IteratorYieldResult<T> | IteratorReturnResult<TReturn>;

interface Iterator<T, TReturn = any, TNext = undefined> {
    // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.
    next(...args: [] | [TNext]): IteratorResult<T, TReturn>;
    return?(value?: TReturn): IteratorResult<T, TReturn>;
    throw?(e?: any): IteratorResult<T, TReturn>;
}

interface Iterable<T> {
    [Symbol.iterator](): Iterator<T>;
}

interface IterableIterator<T> extends Iterator<T> {
    [Symbol.iterator](): IterableIterator<T>;
}

interface Array<T> {
    /** Iterator */
    [Symbol.iterator](): IterableIterator<T>;

    /**
     * Returns an iterable of key, value pairs for every entry in the array
     */
    entries(): IterableIterator<[number, T]>;

    /**
     * Returns an iterable of keys in the array
     */
    keys(): IterableIterator<number>;

    /**
     * Returns an iterable of values in the array
     */
    values(): IterableIterator<T>;
}

interface ArrayConstructor {
    /**
     * Creates an array from an iterable object.
     * @param iterable An iterable object to convert to an array.
     */
    from<T>(iterable: Iterable<T> | ArrayLike<T>): T[];

    /**
     * Creates an array from an iterable object.
     * @param iterable An iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from<T, U>(iterable: Iterable<T> | ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
}

interface ReadonlyArray<T> {
    /** Iterator of values in the array. */
    [Symbol.iterator](): IterableIterator<T>;

    /**
     * Returns an iterable of key, value pairs for every entry in the array
     */
    entries(): IterableIterator<[number, T]>;

    /**
     * Returns an iterable of keys in the array
     */
    keys(): IterableIterator<number>;

    /**
     * Returns an iterable of values in the array
     */
    values(): IterableIterator<T>;
}

interface IArguments {
    /** Iterator */
    [Symbol.iterator](): IterableIterator<any>;
}

interface Map<K, V> {
    /** Returns an iterable of entries in the map. */
    [Symbol.iterator](): IterableIterator<[K, V]>;

    /**
     * Returns an iterable of key, value pairs for every entry in the map.
     */
    entries(): IterableIterator<[K, V]>;

    /**
     * Returns an iterable of keys in the map
     */
    keys(): IterableIterator<K>;

    /**
     * Returns an iterable of values in the map
     */
    values(): IterableIterator<V>;
}

interface ReadonlyMap<K, V> {
    /** Returns an iterable of entries in the map. */
    [Symbol.iterator](): IterableIterator<[K, V]>;

    /**
     * Returns an iterable of key, value pairs for every entry in the map.
     */
    entries(): IterableIterator<[K, V]>;

    /**
     * Returns an iterable of keys in the map
     */
    keys(): IterableIterator<K>;

    /**
     * Returns an iterable of values in the map
     */
    values(): IterableIterator<V>;
}

interface MapConstructor {
    new(): Map<any, any>;
    new <K, V>(iterable?: Iterable<readonly [K, V]> | null): Map<K, V>;
}

interface WeakMap<K extends object, V> { }

interface WeakMapConstructor {
    new <K extends object, V>(iterable: Iterable<readonly [K, V]>): WeakMap<K, V>;
}

interface Set<T> {
    /** Iterates over values in the set. */
    [Symbol.iterator](): IterableIterator<T>;
    /**
     * Returns an iterable of [v,v] pairs for every value \`v\` in the set.
     */
    entries(): IterableIterator<[T, T]>;
    /**
     * Despite its name, returns an iterable of the values in the set.
     */
    keys(): IterableIterator<T>;

    /**
     * Returns an iterable of values in the set.
     */
    values(): IterableIterator<T>;
}

interface ReadonlySet<T> {
    /** Iterates over values in the set. */
    [Symbol.iterator](): IterableIterator<T>;

    /**
     * Returns an iterable of [v,v] pairs for every value \`v\` in the set.
     */
    entries(): IterableIterator<[T, T]>;

    /**
     * Despite its name, returns an iterable of the values in the set.
     */
    keys(): IterableIterator<T>;

    /**
     * Returns an iterable of values in the set.
     */
    values(): IterableIterator<T>;
}

interface SetConstructor {
    new <T>(iterable?: Iterable<T> | null): Set<T>;
}

interface WeakSet<T extends object> { }

interface WeakSetConstructor {
    new <T extends object = object>(iterable: Iterable<T>): WeakSet<T>;
}

interface Promise<T> { }

interface PromiseConstructor {
    /**
     * Creates a Promise that is resolved with an array of results when all of the provided Promises
     * resolve, or rejected when any Promise is rejected.
     * @param values An iterable of Promises.
     * @returns A new Promise.
     */
    all<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>[]>;

    /**
     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
     * or rejected.
     * @param values An iterable of Promises.
     * @returns A new Promise.
     */
    race<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>>;
}

interface String {
    /** Iterator */
    [Symbol.iterator](): IterableIterator<string>;
}

interface Int8Array {
    [Symbol.iterator](): IterableIterator<number>;
    /**
     * Returns an array of key, value pairs for every entry in the array
     */
    entries(): IterableIterator<[number, number]>;
    /**
     * Returns an list of keys in the array
     */
    keys(): IterableIterator<number>;
    /**
     * Returns an list of values in the array
     */
    values(): IterableIterator<number>;
}

interface Int8ArrayConstructor {
    new (elements: Iterable<number>): Int8Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array;
}

interface Uint8Array {
    [Symbol.iterator](): IterableIterator<number>;
    /**
     * Returns an array of key, value pairs for every entry in the array
     */
    entries(): IterableIterator<[number, number]>;
    /**
     * Returns an list of keys in the array
     */
    keys(): IterableIterator<number>;
    /**
     * Returns an list of values in the array
     */
    values(): IterableIterator<number>;
}

interface Uint8ArrayConstructor {
    new (elements: Iterable<number>): Uint8Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array;
}

interface Uint8ClampedArray {
    [Symbol.iterator](): IterableIterator<number>;
    /**
     * Returns an array of key, value pairs for every entry in the array
     */
    entries(): IterableIterator<[number, number]>;

    /**
     * Returns an list of keys in the array
     */
    keys(): IterableIterator<number>;

    /**
     * Returns an list of values in the array
     */
    values(): IterableIterator<number>;
}

interface Uint8ClampedArrayConstructor {
    new (elements: Iterable<number>): Uint8ClampedArray;


    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray;
}

interface Int16Array {
    [Symbol.iterator](): IterableIterator<number>;
    /**
     * Returns an array of key, value pairs for every entry in the array
     */
    entries(): IterableIterator<[number, number]>;

    /**
     * Returns an list of keys in the array
     */
    keys(): IterableIterator<number>;

    /**
     * Returns an list of values in the array
     */
    values(): IterableIterator<number>;
}

interface Int16ArrayConstructor {
    new (elements: Iterable<number>): Int16Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array;
}

interface Uint16Array {
    [Symbol.iterator](): IterableIterator<number>;
    /**
     * Returns an array of key, value pairs for every entry in the array
     */
    entries(): IterableIterator<[number, number]>;
    /**
     * Returns an list of keys in the array
     */
    keys(): IterableIterator<number>;
    /**
     * Returns an list of values in the array
     */
    values(): IterableIterator<number>;
}

interface Uint16ArrayConstructor {
    new (elements: Iterable<number>): Uint16Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array;
}

interface Int32Array {
    [Symbol.iterator](): IterableIterator<number>;
    /**
     * Returns an array of key, value pairs for every entry in the array
     */
    entries(): IterableIterator<[number, number]>;
    /**
     * Returns an list of keys in the array
     */
    keys(): IterableIterator<number>;
    /**
     * Returns an list of values in the array
     */
    values(): IterableIterator<number>;
}

interface Int32ArrayConstructor {
    new (elements: Iterable<number>): Int32Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array;
}

interface Uint32Array {
    [Symbol.iterator](): IterableIterator<number>;
    /**
     * Returns an array of key, value pairs for every entry in the array
     */
    entries(): IterableIterator<[number, number]>;
    /**
     * Returns an list of keys in the array
     */
    keys(): IterableIterator<number>;
    /**
     * Returns an list of values in the array
     */
    values(): IterableIterator<number>;
}

interface Uint32ArrayConstructor {
    new (elements: Iterable<number>): Uint32Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array;
}

interface Float32Array {
    [Symbol.iterator](): IterableIterator<number>;
    /**
     * Returns an array of key, value pairs for every entry in the array
     */
    entries(): IterableIterator<[number, number]>;
    /**
     * Returns an list of keys in the array
     */
    keys(): IterableIterator<number>;
    /**
     * Returns an list of values in the array
     */
    values(): IterableIterator<number>;
}

interface Float32ArrayConstructor {
    new (elements: Iterable<number>): Float32Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array;
}

interface Float64Array {
    [Symbol.iterator](): IterableIterator<number>;
    /**
     * Returns an array of key, value pairs for every entry in the array
     */
    entries(): IterableIterator<[number, number]>;
    /**
     * Returns an list of keys in the array
     */
    keys(): IterableIterator<number>;
    /**
     * Returns an list of values in the array
     */
    values(): IterableIterator<number>;
}

interface Float64ArrayConstructor {
    new (elements: Iterable<number>): Float64Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array;
}
`;
ba["lib.es2015.promise.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface PromiseConstructor {
    /**
     * A reference to the prototype.
     */
    readonly prototype: Promise<any>;

    /**
     * Creates a new Promise.
     * @param executor A callback used to initialize the promise. This callback is passed two arguments:
     * a resolve callback used to resolve the promise with a value or the result of another promise,
     * and a reject callback used to reject the promise with a provided reason or error.
     */
    new <T>(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;

    /**
     * Creates a Promise that is resolved with an array of results when all of the provided Promises
     * resolve, or rejected when any Promise is rejected.
     * @param values An array of Promises.
     * @returns A new Promise.
     */
    all<T extends readonly unknown[] | []>(values: T): Promise<{ -readonly [P in keyof T]: Awaited<T[P]> }>;

    // see: lib.es2015.iterable.d.ts
    // all<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>[]>;

    /**
     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
     * or rejected.
     * @param values An array of Promises.
     * @returns A new Promise.
     */
    race<T extends readonly unknown[] | []>(values: T): Promise<Awaited<T[number]>>;

    // see: lib.es2015.iterable.d.ts
    // race<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>>;

    /**
     * Creates a new rejected promise for the provided reason.
     * @param reason The reason the promise was rejected.
     * @returns A new rejected Promise.
     */
    reject<T = never>(reason?: any): Promise<T>;

    /**
     * Creates a new resolved promise.
     * @returns A resolved promise.
     */
    resolve(): Promise<void>;
    /**
     * Creates a new resolved promise for the provided value.
     * @param value A promise.
     * @returns A promise whose internal state matches the provided promise.
     */
    resolve<T>(value: T): Promise<Awaited<T>>;
    /**
     * Creates a new resolved promise for the provided value.
     * @param value A promise.
     * @returns A promise whose internal state matches the provided promise.
     */
    resolve<T>(value: T | PromiseLike<T>): Promise<Awaited<T>>;
}

declare var Promise: PromiseConstructor;
`;
ba["lib.es2015.proxy.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface ProxyHandler<T extends object> {
    /**
     * A trap method for a function call.
     * @param target The original callable object which is being proxied.
     */
    apply?(target: T, thisArg: any, argArray: any[]): any;

    /**
     * A trap for the \`new\` operator.
     * @param target The original object which is being proxied.
     * @param newTarget The constructor that was originally called.
     */
    construct?(target: T, argArray: any[], newTarget: Function): object;

    /**
     * A trap for \`Object.defineProperty()\`.
     * @param target The original object which is being proxied.
     * @returns A \`Boolean\` indicating whether or not the property has been defined.
     */
    defineProperty?(target: T, property: string | symbol, attributes: PropertyDescriptor): boolean;

    /**
     * A trap for the \`delete\` operator.
     * @param target The original object which is being proxied.
     * @param p The name or \`Symbol\` of the property to delete.
     * @returns A \`Boolean\` indicating whether or not the property was deleted.
     */
    deleteProperty?(target: T, p: string | symbol): boolean;

    /**
     * A trap for getting a property value.
     * @param target The original object which is being proxied.
     * @param p The name or \`Symbol\` of the property to get.
     * @param receiver The proxy or an object that inherits from the proxy.
     */
    get?(target: T, p: string | symbol, receiver: any): any;

    /**
     * A trap for \`Object.getOwnPropertyDescriptor()\`.
     * @param target The original object which is being proxied.
     * @param p The name of the property whose description should be retrieved.
     */
    getOwnPropertyDescriptor?(target: T, p: string | symbol): PropertyDescriptor | undefined;

    /**
     * A trap for the \`[[GetPrototypeOf]]\` internal method.
     * @param target The original object which is being proxied.
     */
    getPrototypeOf?(target: T): object | null;

    /**
     * A trap for the \`in\` operator.
     * @param target The original object which is being proxied.
     * @param p The name or \`Symbol\` of the property to check for existence.
     */
    has?(target: T, p: string | symbol): boolean;

    /**
     * A trap for \`Object.isExtensible()\`.
     * @param target The original object which is being proxied.
     */
    isExtensible?(target: T): boolean;

    /**
     * A trap for \`Reflect.ownKeys()\`.
     * @param target The original object which is being proxied.
     */
    ownKeys?(target: T): ArrayLike<string | symbol>;

    /**
     * A trap for \`Object.preventExtensions()\`.
     * @param target The original object which is being proxied.
     */
    preventExtensions?(target: T): boolean;

    /**
     * A trap for setting a property value.
     * @param target The original object which is being proxied.
     * @param p The name or \`Symbol\` of the property to set.
     * @param receiver The object to which the assignment was originally directed.
     * @returns A \`Boolean\` indicating whether or not the property was set.
     */
    set?(target: T, p: string | symbol, newValue: any, receiver: any): boolean;

    /**
     * A trap for \`Object.setPrototypeOf()\`.
     * @param target The original object which is being proxied.
     * @param newPrototype The object's new prototype or \`null\`.
     */
    setPrototypeOf?(target: T, v: object | null): boolean;
}

interface ProxyConstructor {
    /**
     * Creates a revocable Proxy object.
     * @param target A target object to wrap with Proxy.
     * @param handler An object whose properties define the behavior of Proxy when an operation is attempted on it.
     */
    revocable<T extends object>(target: T, handler: ProxyHandler<T>): { proxy: T; revoke: () => void; };

    /**
     * Creates a Proxy object. The Proxy object allows you to create an object that can be used in place of the
     * original object, but which may redefine fundamental Object operations like getting, setting, and defining
     * properties. Proxy objects are commonly used to log property accesses, validate, format, or sanitize inputs.
     * @param target A target object to wrap with Proxy.
     * @param handler An object whose properties define the behavior of Proxy when an operation is attempted on it.
     */
    new <T extends object>(target: T, handler: ProxyHandler<T>): T;
}
declare var Proxy: ProxyConstructor;
`;
ba["lib.es2015.reflect.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

declare namespace Reflect {
    /**
     * Calls the function with the specified object as the this value
     * and the elements of specified array as the arguments.
     * @param target The function to call.
     * @param thisArgument The object to be used as the this object.
     * @param argumentsList An array of argument values to be passed to the function.
     */
    function apply<T, A extends readonly any[], R>(
        target: (this: T, ...args: A) => R,
        thisArgument: T,
        argumentsList: Readonly<A>,
    ): R;
    function apply(target: Function, thisArgument: any, argumentsList: ArrayLike<any>): any;

    /**
     * Constructs the target with the elements of specified array as the arguments
     * and the specified constructor as the \`new.target\` value.
     * @param target The constructor to invoke.
     * @param argumentsList An array of argument values to be passed to the constructor.
     * @param newTarget The constructor to be used as the \`new.target\` object.
     */
    function construct<A extends readonly any[], R>(
        target: new (...args: A) => R,
        argumentsList: Readonly<A>,
        newTarget?: new (...args: any) => any,
    ): R;
    function construct(target: Function, argumentsList: ArrayLike<any>, newTarget?: Function): any;

    /**
     * Adds a property to an object, or modifies attributes of an existing property.
     * @param target Object on which to add or modify the property. This can be a native JavaScript object
     *        (that is, a user-defined object or a built in object) or a DOM object.
     * @param propertyKey The property name.
     * @param attributes Descriptor for the property. It can be for a data property or an accessor property.
     */
    function defineProperty(target: object, propertyKey: PropertyKey, attributes: PropertyDescriptor & ThisType<any>): boolean;

    /**
     * Removes a property from an object, equivalent to \`delete target[propertyKey]\`,
     * except it won't throw if \`target[propertyKey]\` is non-configurable.
     * @param target Object from which to remove the own property.
     * @param propertyKey The property name.
     */
    function deleteProperty(target: object, propertyKey: PropertyKey): boolean;

    /**
     * Gets the property of target, equivalent to \`target[propertyKey]\` when \`receiver === target\`.
     * @param target Object that contains the property on itself or in its prototype chain.
     * @param propertyKey The property name.
     * @param receiver The reference to use as the \`this\` value in the getter function,
     *        if \`target[propertyKey]\` is an accessor property.
     */
    function get<T extends object, P extends PropertyKey>(
        target: T,
        propertyKey: P,
        receiver?: unknown,
    ): P extends keyof T ? T[P] : any;

    /**
     * Gets the own property descriptor of the specified object.
     * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype.
     * @param target Object that contains the property.
     * @param propertyKey The property name.
     */
    function getOwnPropertyDescriptor<T extends object, P extends PropertyKey>(
        target: T,
        propertyKey: P,
    ): TypedPropertyDescriptor<P extends keyof T ? T[P] : any> | undefined;

    /**
     * Returns the prototype of an object.
     * @param target The object that references the prototype.
     */
    function getPrototypeOf(target: object): object | null;

    /**
     * Equivalent to \`propertyKey in target\`.
     * @param target Object that contains the property on itself or in its prototype chain.
     * @param propertyKey Name of the property.
     */
    function has(target: object, propertyKey: PropertyKey): boolean;

    /**
     * Returns a value that indicates whether new properties can be added to an object.
     * @param target Object to test.
     */
    function isExtensible(target: object): boolean;

    /**
     * Returns the string and symbol keys of the own properties of an object. The own properties of an object
     * are those that are defined directly on that object, and are not inherited from the object's prototype.
     * @param target Object that contains the own properties.
     */
    function ownKeys(target: object): (string | symbol)[];

    /**
     * Prevents the addition of new properties to an object.
     * @param target Object to make non-extensible.
     * @return Whether the object has been made non-extensible.
     */
    function preventExtensions(target: object): boolean;

    /**
     * Sets the property of target, equivalent to \`target[propertyKey] = value\` when \`receiver === target\`.
     * @param target Object that contains the property on itself or in its prototype chain.
     * @param propertyKey Name of the property.
     * @param receiver The reference to use as the \`this\` value in the setter function,
     *        if \`target[propertyKey]\` is an accessor property.
     */
    function set<T extends object, P extends PropertyKey>(
        target: T,
        propertyKey: P,
        value: P extends keyof T ? T[P] : any,
        receiver?: any,
    ): boolean;
    function set(target: object, propertyKey: PropertyKey, value: any, receiver?: any): boolean;

    /**
     * Sets the prototype of a specified object o to object proto or null.
     * @param target The object to change its prototype.
     * @param proto The value of the new prototype or null.
     * @return Whether setting the prototype was successful.
     */
    function setPrototypeOf(target: object, proto: object | null): boolean;
}
`;
ba["lib.es2015.symbol.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface SymbolConstructor {
    /**
     * A reference to the prototype.
     */
    readonly prototype: Symbol;

    /**
     * Returns a new unique Symbol value.
     * @param  description Description of the new Symbol object.
     */
    (description?: string | number): symbol;

    /**
     * Returns a Symbol object from the global symbol registry matching the given key if found.
     * Otherwise, returns a new symbol with this key.
     * @param key key to search for.
     */
    for(key: string): symbol;

    /**
     * Returns a key from the global symbol registry matching the given Symbol if found.
     * Otherwise, returns a undefined.
     * @param sym Symbol to find the key for.
     */
    keyFor(sym: symbol): string | undefined;
}

declare var Symbol: SymbolConstructor;`;
ba["lib.es2015.symbol.wellknown.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2015.symbol" />

interface SymbolConstructor {
    /**
     * A method that determines if a constructor object recognizes an object as one of the
     * constructor’s instances. Called by the semantics of the instanceof operator.
     */
    readonly hasInstance: unique symbol;

    /**
     * A Boolean value that if true indicates that an object should flatten to its array elements
     * by Array.prototype.concat.
     */
    readonly isConcatSpreadable: unique symbol;

    /**
     * A regular expression method that matches the regular expression against a string. Called
     * by the String.prototype.match method.
     */
    readonly match: unique symbol;

    /**
     * A regular expression method that replaces matched substrings of a string. Called by the
     * String.prototype.replace method.
     */
    readonly replace: unique symbol;

    /**
     * A regular expression method that returns the index within a string that matches the
     * regular expression. Called by the String.prototype.search method.
     */
    readonly search: unique symbol;

    /**
     * A function valued property that is the constructor function that is used to create
     * derived objects.
     */
    readonly species: unique symbol;

    /**
     * A regular expression method that splits a string at the indices that match the regular
     * expression. Called by the String.prototype.split method.
     */
    readonly split: unique symbol;

    /**
     * A method that converts an object to a corresponding primitive value.
     * Called by the ToPrimitive abstract operation.
     */
    readonly toPrimitive: unique symbol;

    /**
     * A String value that is used in the creation of the default string description of an object.
     * Called by the built-in method Object.prototype.toString.
     */
    readonly toStringTag: unique symbol;

    /**
     * An Object whose truthy properties are properties that are excluded from the 'with'
     * environment bindings of the associated objects.
     */
    readonly unscopables: unique symbol;
}

interface Symbol {
    /**
     * Converts a Symbol object to a symbol.
     */
    [Symbol.toPrimitive](hint: string): symbol;

    readonly [Symbol.toStringTag]: string;
}

interface Array<T> {
    /**
     * Is an object whose properties have the value 'true'
     * when they will be absent when used in a 'with' statement.
     */
    readonly [Symbol.unscopables]: {
        [K in keyof any[]]?: boolean;
    };
}

interface ReadonlyArray<T> {
    /**
     * Is an object whose properties have the value 'true'
     * when they will be absent when used in a 'with' statement.
     */
    readonly [Symbol.unscopables]: {
        [K in keyof readonly any[]]?: boolean;
    };
}

interface Date {
    /**
     * Converts a Date object to a string.
     */
    [Symbol.toPrimitive](hint: "default"): string;
    /**
     * Converts a Date object to a string.
     */
    [Symbol.toPrimitive](hint: "string"): string;
    /**
     * Converts a Date object to a number.
     */
    [Symbol.toPrimitive](hint: "number"): number;
    /**
     * Converts a Date object to a string or number.
     *
     * @param hint The strings "number", "string", or "default" to specify what primitive to return.
     *
     * @throws {TypeError} If 'hint' was given something other than "number", "string", or "default".
     * @returns A number if 'hint' was "number", a string if 'hint' was "string" or "default".
     */
    [Symbol.toPrimitive](hint: string): string | number;
}

interface Map<K, V> {
    readonly [Symbol.toStringTag]: string;
}

interface WeakMap<K extends object, V> {
    readonly [Symbol.toStringTag]: string;
}

interface Set<T> {
    readonly [Symbol.toStringTag]: string;
}

interface WeakSet<T extends object> {
    readonly [Symbol.toStringTag]: string;
}

interface JSON {
    readonly [Symbol.toStringTag]: string;
}

interface Function {
    /**
     * Determines whether the given value inherits from this function if this function was used
     * as a constructor function.
     *
     * A constructor function can control which objects are recognized as its instances by
     * 'instanceof' by overriding this method.
     */
    [Symbol.hasInstance](value: any): boolean;
}

interface GeneratorFunction {
    readonly [Symbol.toStringTag]: string;
}

interface Math {
    readonly [Symbol.toStringTag]: string;
}

interface Promise<T> {
    readonly [Symbol.toStringTag]: string;
}

interface PromiseConstructor {
    readonly [Symbol.species]: PromiseConstructor;
}

interface RegExp {
    /**
     * Matches a string with this regular expression, and returns an array containing the results of
     * that search.
     * @param string A string to search within.
     */
    [Symbol.match](string: string): RegExpMatchArray | null;

    /**
     * Replaces text in a string, using this regular expression.
     * @param string A String object or string literal whose contents matching against
     *               this regular expression will be replaced
     * @param replaceValue A String object or string literal containing the text to replace for every
     *                     successful match of this regular expression.
     */
    [Symbol.replace](string: string, replaceValue: string): string;

    /**
     * Replaces text in a string, using this regular expression.
     * @param string A String object or string literal whose contents matching against
     *               this regular expression will be replaced
     * @param replacer A function that returns the replacement text.
     */
    [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;

    /**
     * Finds the position beginning first substring match in a regular expression search
     * using this regular expression.
     *
     * @param string The string to search within.
     */
    [Symbol.search](string: string): number;

    /**
     * Returns an array of substrings that were delimited by strings in the original input that
     * match against this regular expression.
     *
     * If the regular expression contains capturing parentheses, then each time this
     * regular expression matches, the results (including any undefined results) of the
     * capturing parentheses are spliced.
     *
     * @param string string value to split
     * @param limit if not undefined, the output array is truncated so that it contains no more
     * than 'limit' elements.
     */
    [Symbol.split](string: string, limit?: number): string[];
}

interface RegExpConstructor {
    readonly [Symbol.species]: RegExpConstructor;
}

interface String {
    /**
     * Matches a string or an object that supports being matched against, and returns an array
     * containing the results of that search, or null if no matches are found.
     * @param matcher An object that supports being matched against.
     */
    match(matcher: { [Symbol.match](string: string): RegExpMatchArray | null; }): RegExpMatchArray | null;

    /**
     * Passes a string and {@linkcode replaceValue} to the \`[Symbol.replace]\` method on {@linkcode searchValue}. This method is expected to implement its own replacement algorithm.
     * @param searchValue An object that supports searching for and replacing matches within a string.
     * @param replaceValue The replacement text.
     */
    replace(searchValue: { [Symbol.replace](string: string, replaceValue: string): string; }, replaceValue: string): string;

    /**
     * Replaces text in a string, using an object that supports replacement within a string.
     * @param searchValue A object can search for and replace matches within a string.
     * @param replacer A function that returns the replacement text.
     */
    replace(searchValue: { [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string; }, replacer: (substring: string, ...args: any[]) => string): string;

    /**
     * Finds the first substring match in a regular expression search.
     * @param searcher An object which supports searching within a string.
     */
    search(searcher: { [Symbol.search](string: string): number; }): number;

    /**
     * Split a string into substrings using the specified separator and return them as an array.
     * @param splitter An object that can split a string.
     * @param limit A value used to limit the number of elements returned in the array.
     */
    split(splitter: { [Symbol.split](string: string, limit?: number): string[]; }, limit?: number): string[];
}

interface ArrayBuffer {
    readonly [Symbol.toStringTag]: string;
}

interface DataView {
    readonly [Symbol.toStringTag]: string;
}

interface Int8Array {
    readonly [Symbol.toStringTag]: "Int8Array";
}

interface Uint8Array {
    readonly [Symbol.toStringTag]: "Uint8Array";
}

interface Uint8ClampedArray {
    readonly [Symbol.toStringTag]: "Uint8ClampedArray";
}

interface Int16Array {
    readonly [Symbol.toStringTag]: "Int16Array";
}

interface Uint16Array {
    readonly [Symbol.toStringTag]: "Uint16Array";
}

interface Int32Array {
    readonly [Symbol.toStringTag]: "Int32Array";
}

interface Uint32Array {
    readonly [Symbol.toStringTag]: "Uint32Array";
}

interface Float32Array {
    readonly [Symbol.toStringTag]: "Float32Array";
}

interface Float64Array {
    readonly [Symbol.toStringTag]: "Float64Array";
}

interface ArrayConstructor {
    readonly [Symbol.species]: ArrayConstructor;
}
interface MapConstructor {
    readonly [Symbol.species]: MapConstructor;
}
interface SetConstructor {
    readonly [Symbol.species]: SetConstructor;
}
interface ArrayBufferConstructor {
    readonly [Symbol.species]: ArrayBufferConstructor;
}
`;
ba["lib.es2016.array.include.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface Array<T> {
    /**
     * Determines whether an array includes a certain element, returning true or false as appropriate.
     * @param searchElement The element to search for.
     * @param fromIndex The position in this array at which to begin searching for searchElement.
     */
    includes(searchElement: T, fromIndex?: number): boolean;
}

interface ReadonlyArray<T> {
    /**
     * Determines whether an array includes a certain element, returning true or false as appropriate.
     * @param searchElement The element to search for.
     * @param fromIndex The position in this array at which to begin searching for searchElement.
     */
    includes(searchElement: T, fromIndex?: number): boolean;
}

interface Int8Array {
    /**
     * Determines whether an array includes a certain element, returning true or false as appropriate.
     * @param searchElement The element to search for.
     * @param fromIndex The position in this array at which to begin searching for searchElement.
     */
    includes(searchElement: number, fromIndex?: number): boolean;
}

interface Uint8Array {
    /**
     * Determines whether an array includes a certain element, returning true or false as appropriate.
     * @param searchElement The element to search for.
     * @param fromIndex The position in this array at which to begin searching for searchElement.
     */
    includes(searchElement: number, fromIndex?: number): boolean;
}

interface Uint8ClampedArray {
    /**
     * Determines whether an array includes a certain element, returning true or false as appropriate.
     * @param searchElement The element to search for.
     * @param fromIndex The position in this array at which to begin searching for searchElement.
     */
    includes(searchElement: number, fromIndex?: number): boolean;
}

interface Int16Array {
    /**
     * Determines whether an array includes a certain element, returning true or false as appropriate.
     * @param searchElement The element to search for.
     * @param fromIndex The position in this array at which to begin searching for searchElement.
     */
    includes(searchElement: number, fromIndex?: number): boolean;
}

interface Uint16Array {
    /**
     * Determines whether an array includes a certain element, returning true or false as appropriate.
     * @param searchElement The element to search for.
     * @param fromIndex The position in this array at which to begin searching for searchElement.
     */
    includes(searchElement: number, fromIndex?: number): boolean;
}

interface Int32Array {
    /**
     * Determines whether an array includes a certain element, returning true or false as appropriate.
     * @param searchElement The element to search for.
     * @param fromIndex The position in this array at which to begin searching for searchElement.
     */
    includes(searchElement: number, fromIndex?: number): boolean;
}

interface Uint32Array {
    /**
     * Determines whether an array includes a certain element, returning true or false as appropriate.
     * @param searchElement The element to search for.
     * @param fromIndex The position in this array at which to begin searching for searchElement.
     */
    includes(searchElement: number, fromIndex?: number): boolean;
}

interface Float32Array {
    /**
     * Determines whether an array includes a certain element, returning true or false as appropriate.
     * @param searchElement The element to search for.
     * @param fromIndex The position in this array at which to begin searching for searchElement.
     */
    includes(searchElement: number, fromIndex?: number): boolean;
}

interface Float64Array {
    /**
     * Determines whether an array includes a certain element, returning true or false as appropriate.
     * @param searchElement The element to search for.
     * @param fromIndex The position in this array at which to begin searching for searchElement.
     */
    includes(searchElement: number, fromIndex?: number): boolean;
}`;
ba["lib.es2016.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2015" />
/// <reference lib="es2016.array.include" />`;
ba["lib.es2016.full.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2016" />
/// <reference lib="dom" />
/// <reference lib="webworker.importscripts" />
/// <reference lib="scripthost" />
/// <reference lib="dom.iterable" />`;
ba["lib.es2017.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2016" />
/// <reference lib="es2017.object" />
/// <reference lib="es2017.sharedmemory" />
/// <reference lib="es2017.string" />
/// <reference lib="es2017.intl" />
/// <reference lib="es2017.typedarrays" />
`;
ba["lib.es2017.full.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2017" />
/// <reference lib="dom" />
/// <reference lib="webworker.importscripts" />
/// <reference lib="scripthost" />
/// <reference lib="dom.iterable" />`;
ba["lib.es2017.intl.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

declare namespace Intl {

    interface DateTimeFormatPartTypesRegistry {
        day: any
        dayPeriod: any
        era: any
        hour: any
        literal: any
        minute: any
        month: any
        second: any
        timeZoneName: any
        weekday: any
        year: any
    }

    type DateTimeFormatPartTypes = keyof DateTimeFormatPartTypesRegistry;

    interface DateTimeFormatPart {
        type: DateTimeFormatPartTypes;
        value: string;
    }

    interface DateTimeFormat {
        formatToParts(date?: Date | number): DateTimeFormatPart[];
    }
}
`;
ba["lib.es2017.object.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface ObjectConstructor {
    /**
     * Returns an array of values of the enumerable properties of an object
     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
     */
    values<T>(o: { [s: string]: T } | ArrayLike<T>): T[];

    /**
     * Returns an array of values of the enumerable properties of an object
     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
     */
    values(o: {}): any[];

    /**
     * Returns an array of key/values of the enumerable properties of an object
     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
     */
    entries<T>(o: { [s: string]: T } | ArrayLike<T>): [string, T][];

    /**
     * Returns an array of key/values of the enumerable properties of an object
     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
     */
    entries(o: {}): [string, any][];

    /**
     * Returns an object containing all own property descriptors of an object
     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
     */
    getOwnPropertyDescriptors<T>(o: T): {[P in keyof T]: TypedPropertyDescriptor<T[P]>} & { [x: string]: PropertyDescriptor };
}
`;
ba["lib.es2017.sharedmemory.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2015.symbol" />
/// <reference lib="es2015.symbol.wellknown" />

interface SharedArrayBuffer {
    /**
     * Read-only. The length of the ArrayBuffer (in bytes).
     */
    readonly byteLength: number;

    /**
     * Returns a section of an SharedArrayBuffer.
     */
    slice(begin: number, end?: number): SharedArrayBuffer;
    readonly [Symbol.species]: SharedArrayBuffer;
    readonly [Symbol.toStringTag]: "SharedArrayBuffer";
}

interface SharedArrayBufferConstructor {
    readonly prototype: SharedArrayBuffer;
    new (byteLength: number): SharedArrayBuffer;
}
declare var SharedArrayBuffer: SharedArrayBufferConstructor;

interface ArrayBufferTypes {
    SharedArrayBuffer: SharedArrayBuffer;
}

interface Atomics {
    /**
     * Adds a value to the value at the given position in the array, returning the original value.
     * Until this atomic operation completes, any other read or write operation against the array
     * will block.
     */
    add(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;

    /**
     * Stores the bitwise AND of a value with the value at the given position in the array,
     * returning the original value. Until this atomic operation completes, any other read or
     * write operation against the array will block.
     */
    and(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;

    /**
     * Replaces the value at the given position in the array if the original value equals the given
     * expected value, returning the original value. Until this atomic operation completes, any
     * other read or write operation against the array will block.
     */
    compareExchange(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, expectedValue: number, replacementValue: number): number;

    /**
     * Replaces the value at the given position in the array, returning the original value. Until
     * this atomic operation completes, any other read or write operation against the array will
     * block.
     */
    exchange(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;

    /**
     * Returns a value indicating whether high-performance algorithms can use atomic operations
     * (\`true\`) or must use locks (\`false\`) for the given number of bytes-per-element of a typed
     * array.
     */
    isLockFree(size: number): boolean;

    /**
     * Returns the value at the given position in the array. Until this atomic operation completes,
     * any other read or write operation against the array will block.
     */
    load(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number): number;

    /**
     * Stores the bitwise OR of a value with the value at the given position in the array,
     * returning the original value. Until this atomic operation completes, any other read or write
     * operation against the array will block.
     */
    or(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;

    /**
     * Stores a value at the given position in the array, returning the new value. Until this
     * atomic operation completes, any other read or write operation against the array will block.
     */
    store(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;

    /**
     * Subtracts a value from the value at the given position in the array, returning the original
     * value. Until this atomic operation completes, any other read or write operation against the
     * array will block.
     */
    sub(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;

    /**
     * If the value at the given position in the array is equal to the provided value, the current
     * agent is put to sleep causing execution to suspend until the timeout expires (returning
     * \`"timed-out"\`) or until the agent is awoken (returning \`"ok"\`); otherwise, returns
     * \`"not-equal"\`.
     */
    wait(typedArray: Int32Array, index: number, value: number, timeout?: number): "ok" | "not-equal" | "timed-out";

    /**
     * Wakes up sleeping agents that are waiting on the given index of the array, returning the
     * number of agents that were awoken.
     * @param typedArray A shared Int32Array.
     * @param index The position in the typedArray to wake up on.
     * @param count The number of sleeping agents to notify. Defaults to +Infinity.
     */
    notify(typedArray: Int32Array, index: number, count?: number): number;

    /**
     * Stores the bitwise XOR of a value with the value at the given position in the array,
     * returning the original value. Until this atomic operation completes, any other read or write
     * operation against the array will block.
     */
    xor(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;

    readonly [Symbol.toStringTag]: "Atomics";
}

declare var Atomics: Atomics;
`;
ba["lib.es2017.string.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface String {
    /**
     * Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.
     * The padding is applied from the start (left) of the current string.
     *
     * @param maxLength The length of the resulting string once the current string has been padded.
     *        If this parameter is smaller than the current string's length, the current string will be returned as it is.
     *
     * @param fillString The string to pad the current string with.
     *        If this string is too long, it will be truncated and the left-most part will be applied.
     *        The default value for this parameter is " " (U+0020).
     */
    padStart(maxLength: number, fillString?: string): string;

    /**
     * Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.
     * The padding is applied from the end (right) of the current string.
     *
     * @param maxLength The length of the resulting string once the current string has been padded.
     *        If this parameter is smaller than the current string's length, the current string will be returned as it is.
     *
     * @param fillString The string to pad the current string with.
     *        If this string is too long, it will be truncated and the left-most part will be applied.
     *        The default value for this parameter is " " (U+0020).
     */
    padEnd(maxLength: number, fillString?: string): string;
}
`;
ba["lib.es2017.typedarrays.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface Int8ArrayConstructor {
    new (): Int8Array;
}

interface Uint8ArrayConstructor {
    new (): Uint8Array;
}

interface Uint8ClampedArrayConstructor {
    new (): Uint8ClampedArray;
}

interface Int16ArrayConstructor {
    new (): Int16Array;
}

interface Uint16ArrayConstructor {
    new (): Uint16Array;
}

interface Int32ArrayConstructor {
    new (): Int32Array;
}

interface Uint32ArrayConstructor {
    new (): Uint32Array;
}

interface Float32ArrayConstructor {
    new (): Float32Array;
}

interface Float64ArrayConstructor {
    new (): Float64Array;
}
`;
ba["lib.es2018.asyncgenerator.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2018.asynciterable" />

interface AsyncGenerator<T = unknown, TReturn = any, TNext = unknown> extends AsyncIterator<T, TReturn, TNext> {
    // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.
    next(...args: [] | [TNext]): Promise<IteratorResult<T, TReturn>>;
    return(value: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T, TReturn>>;
    throw(e: any): Promise<IteratorResult<T, TReturn>>;
    [Symbol.asyncIterator](): AsyncGenerator<T, TReturn, TNext>;
}

interface AsyncGeneratorFunction {
    /**
     * Creates a new AsyncGenerator object.
     * @param args A list of arguments the function accepts.
     */
    new (...args: any[]): AsyncGenerator;
    /**
     * Creates a new AsyncGenerator object.
     * @param args A list of arguments the function accepts.
     */
    (...args: any[]): AsyncGenerator;
    /**
     * The length of the arguments.
     */
    readonly length: number;
    /**
     * Returns the name of the function.
     */
    readonly name: string;
    /**
     * A reference to the prototype.
     */
    readonly prototype: AsyncGenerator;
}

interface AsyncGeneratorFunctionConstructor {
    /**
     * Creates a new AsyncGenerator function.
     * @param args A list of arguments the function accepts.
     */
    new (...args: string[]): AsyncGeneratorFunction;
    /**
     * Creates a new AsyncGenerator function.
     * @param args A list of arguments the function accepts.
     */
    (...args: string[]): AsyncGeneratorFunction;
    /**
     * The length of the arguments.
     */
    readonly length: number;
    /**
     * Returns the name of the function.
     */
    readonly name: string;
    /**
     * A reference to the prototype.
     */
    readonly prototype: AsyncGeneratorFunction;
}
`;
ba["lib.es2018.asynciterable.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2015.symbol" />
/// <reference lib="es2015.iterable" />

interface SymbolConstructor {
    /**
     * A method that returns the default async iterator for an object. Called by the semantics of
     * the for-await-of statement.
     */
    readonly asyncIterator: unique symbol;
}

interface AsyncIterator<T, TReturn = any, TNext = undefined> {
    // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.
    next(...args: [] | [TNext]): Promise<IteratorResult<T, TReturn>>;
    return?(value?: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T, TReturn>>;
    throw?(e?: any): Promise<IteratorResult<T, TReturn>>;
}

interface AsyncIterable<T> {
    [Symbol.asyncIterator](): AsyncIterator<T>;
}

interface AsyncIterableIterator<T> extends AsyncIterator<T> {
    [Symbol.asyncIterator](): AsyncIterableIterator<T>;
}`;
ba["lib.es2018.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2017" />
/// <reference lib="es2018.asynciterable" />
/// <reference lib="es2018.asyncgenerator" />
/// <reference lib="es2018.promise" />
/// <reference lib="es2018.regexp" />
/// <reference lib="es2018.intl" />
`;
ba["lib.es2018.full.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2018" />
/// <reference lib="dom" />
/// <reference lib="webworker.importscripts" />
/// <reference lib="scripthost" />
/// <reference lib="dom.iterable" />`;
ba["lib.es2018.intl.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

declare namespace Intl {

    // http://cldr.unicode.org/index/cldr-spec/plural-rules#TOC-Determining-Plural-Categories
    type LDMLPluralRule = "zero" | "one" | "two" | "few" | "many" | "other";
    type PluralRuleType = "cardinal" | "ordinal";

    interface PluralRulesOptions {
        localeMatcher?: "lookup" | "best fit" | undefined;
        type?: PluralRuleType | undefined;
        minimumIntegerDigits?: number | undefined;
        minimumFractionDigits?: number | undefined;
        maximumFractionDigits?: number | undefined;
        minimumSignificantDigits?: number | undefined;
        maximumSignificantDigits?: number | undefined;
    }

    interface ResolvedPluralRulesOptions {
        locale: string;
        pluralCategories: LDMLPluralRule[];
        type: PluralRuleType;
        minimumIntegerDigits: number;
        minimumFractionDigits: number;
        maximumFractionDigits: number;
        minimumSignificantDigits?: number;
        maximumSignificantDigits?: number;
    }

    interface PluralRules {
        resolvedOptions(): ResolvedPluralRulesOptions;
        select(n: number): LDMLPluralRule;
    }

    const PluralRules: {
        new (locales?: string | string[], options?: PluralRulesOptions): PluralRules;
        (locales?: string | string[], options?: PluralRulesOptions): PluralRules;

        supportedLocalesOf(locales: string | string[], options?: { localeMatcher?: "lookup" | "best fit" }): string[];
    };

    // We can only have one definition for 'type' in TypeScript, and so you can learn where the keys come from here:
    type ES2018NumberFormatPartType = "literal" | "nan" | "infinity" | "percent" | "integer" | "group" | "decimal" | "fraction" | "plusSign" | "minusSign" | "percentSign" | "currency" | "code" | "symbol" | "name";
    type ES2020NumberFormatPartType = "compact" | "exponentInteger" | "exponentMinusSign" | "exponentSeparator" | "unit" | "unknown";
    type NumberFormatPartTypes = ES2018NumberFormatPartType | ES2020NumberFormatPartType;

    interface NumberFormatPart {
        type: NumberFormatPartTypes;
        value: string;
    }

    interface NumberFormat {
        formatToParts(number?: number | bigint): NumberFormatPart[];
    }
}
`;
ba["lib.es2018.promise.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/**
 * Represents the completion of an asynchronous operation
 */
interface Promise<T> {
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): Promise<T>
}
`;
ba["lib.es2018.regexp.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface RegExpMatchArray {
    groups?: {
        [key: string]: string
    }
}

interface RegExpExecArray {
    groups?: {
        [key: string]: string
    }
}

interface RegExp {
    /**
     * Returns a Boolean value indicating the state of the dotAll flag (s) used with a regular expression.
     * Default is false. Read-only.
     */
    readonly dotAll: boolean;
}`;
ba["lib.es2019.array.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

type FlatArray<Arr, Depth extends number> = {
    "done": Arr,
    "recur": Arr extends ReadonlyArray<infer InnerArr>
        ? FlatArray<InnerArr, [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][Depth]>
        : Arr
}[Depth extends -1 ? "done" : "recur"];

interface ReadonlyArray<T> {

    /**
     * Calls a defined callback function on each element of an array. Then, flattens the result into
     * a new array.
     * This is identical to a map followed by flat with depth 1.
     *
     * @param callback A function that accepts up to three arguments. The flatMap method calls the
     * callback function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the callback function. If
     * thisArg is omitted, undefined is used as the this value.
     */
    flatMap<U, This = undefined> (
        callback: (this: This, value: T, index: number, array: T[]) => U | ReadonlyArray<U>,
        thisArg?: This
    ): U[]


    /**
     * Returns a new array with all sub-array elements concatenated into it recursively up to the
     * specified depth.
     *
     * @param depth The maximum recursion depth
     */
    flat<A, D extends number = 1>(
        this: A,
        depth?: D
    ): FlatArray<A, D>[]
  }

interface Array<T> {

    /**
     * Calls a defined callback function on each element of an array. Then, flattens the result into
     * a new array.
     * This is identical to a map followed by flat with depth 1.
     *
     * @param callback A function that accepts up to three arguments. The flatMap method calls the
     * callback function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the callback function. If
     * thisArg is omitted, undefined is used as the this value.
     */
    flatMap<U, This = undefined> (
        callback: (this: This, value: T, index: number, array: T[]) => U | ReadonlyArray<U>,
        thisArg?: This
    ): U[]

    /**
     * Returns a new array with all sub-array elements concatenated into it recursively up to the
     * specified depth.
     *
     * @param depth The maximum recursion depth
     */
    flat<A, D extends number = 1>(
        this: A,
        depth?: D
    ): FlatArray<A, D>[]
}
`;
ba["lib.es2019.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2018" />
/// <reference lib="es2019.array" />
/// <reference lib="es2019.object" />
/// <reference lib="es2019.string" />
/// <reference lib="es2019.symbol" />
/// <reference lib="es2019.intl" />
`;
ba["lib.es2019.full.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2019" />
/// <reference lib="dom" />
/// <reference lib="webworker.importscripts" />
/// <reference lib="scripthost" />
/// <reference lib="dom.iterable" />
`;
ba["lib.es2019.intl.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

declare namespace Intl {
    interface DateTimeFormatPartTypesRegistry {
        unknown: any
    }
}
`;
ba["lib.es2019.object.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2015.iterable" />

interface ObjectConstructor {
    /**
     * Returns an object created by key-value entries for properties and methods
     * @param entries An iterable object that contains key-value entries for properties and methods.
     */
    fromEntries<T = any>(entries: Iterable<readonly [PropertyKey, T]>): { [k: string]: T };

    /**
     * Returns an object created by key-value entries for properties and methods
     * @param entries An iterable object that contains key-value entries for properties and methods.
     */
    fromEntries(entries: Iterable<readonly any[]>): any;
}
`;
ba["lib.es2019.string.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface String {
    /** Removes the trailing white space and line terminator characters from a string. */
    trimEnd(): string;

    /** Removes the leading white space and line terminator characters from a string. */
    trimStart(): string;

    /**
     * Removes the leading white space and line terminator characters from a string.
     * @deprecated A legacy feature for browser compatibility. Use \`trimStart\` instead
     */
    trimLeft(): string;

    /**
     * Removes the trailing white space and line terminator characters from a string.
     * @deprecated A legacy feature for browser compatibility. Use \`trimEnd\` instead
     */
    trimRight(): string;
}
`;
ba["lib.es2019.symbol.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface Symbol {
    /**
     * Expose the [[Description]] internal slot of a symbol directly.
     */
    readonly description: string | undefined;
}
`;
ba["lib.es2020.bigint.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2020.intl" />

interface BigIntToLocaleStringOptions {
    /**
     * The locale matching algorithm to use.The default is "best fit". For information about this option, see the {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation Intl page}.
     */
    localeMatcher?: string;
    /**
     * The formatting style to use , the default is "decimal".
     */
    style?: string;

    numberingSystem?: string;
    /**
     * The unit to use in unit formatting, Possible values are core unit identifiers, defined in UTS #35, Part 2, Section 6. A subset of units from the full list was selected for use in ECMAScript. Pairs of simple units can be concatenated with "-per-" to make a compound unit. There is no default value; if the style is "unit", the unit property must be provided.
     */
    unit?: string;

    /**
     * The unit formatting style to use in unit formatting, the defaults is "short".
     */
    unitDisplay?: string;

    /**
     * The currency to use in currency formatting. Possible values are the ISO 4217 currency codes, such as "USD" for the US dollar, "EUR" for the euro, or "CNY" for the Chinese RMB — see the Current currency & funds code list. There is no default value; if the style is "currency", the currency property must be provided. It is only used when [[Style]] has the value "currency".
     */
    currency?: string;

    /**
     * How to display the currency in currency formatting. It is only used when [[Style]] has the value "currency". The default is "symbol".
     *
     * "symbol" to use a localized currency symbol such as €,
     *
     * "code" to use the ISO currency code,
     *
     * "name" to use a localized currency name such as "dollar"
     */
    currencyDisplay?: string;

    /**
     * Whether to use grouping separators, such as thousands separators or thousand/lakh/crore separators. The default is true.
     */
    useGrouping?: boolean;

    /**
     * The minimum number of integer digits to use. Possible values are from 1 to 21; the default is 1.
     */
    minimumIntegerDigits?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21;

    /**
     * The minimum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number and percent formatting is 0; the default for currency formatting is the number of minor unit digits provided by the {@link http://www.currency-iso.org/en/home/tables/table-a1.html ISO 4217 currency codes list} (2 if the list doesn't provide that information).
     */
    minimumFractionDigits?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20;

    /**
     * The maximum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number formatting is the larger of minimumFractionDigits and 3; the default for currency formatting is the larger of minimumFractionDigits and the number of minor unit digits provided by the {@link http://www.currency-iso.org/en/home/tables/table-a1.html ISO 4217 currency codes list} (2 if the list doesn't provide that information); the default for percent formatting is the larger of minimumFractionDigits and 0.
     */
    maximumFractionDigits?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20;

    /**
     * The minimum number of significant digits to use. Possible values are from 1 to 21; the default is 1.
     */
    minimumSignificantDigits?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21;

    /**
     * The maximum number of significant digits to use. Possible values are from 1 to 21; the default is 21.
     */
    maximumSignificantDigits?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21;

    /**
     * The formatting that should be displayed for the number, the defaults is "standard"
     *
     *     "standard" plain number formatting
     *
     *     "scientific" return the order-of-magnitude for formatted number.
     *
     *     "engineering" return the exponent of ten when divisible by three
     *
     *     "compact" string representing exponent, defaults is using the "short" form
     */
    notation?: string;

    /**
     * used only when notation is "compact"
     */
    compactDisplay?: string;
}

interface BigInt {
    /**
     * Returns a string representation of an object.
     * @param radix Specifies a radix for converting numeric values to strings.
     */
    toString(radix?: number): string;

    /** Returns a string representation appropriate to the host environment's current locale. */
    toLocaleString(locales?: Intl.LocalesArgument, options?: BigIntToLocaleStringOptions): string;

    /** Returns the primitive value of the specified object. */
    valueOf(): bigint;

    readonly [Symbol.toStringTag]: "BigInt";
}

interface BigIntConstructor {
    (value: bigint | boolean | number | string): bigint;
    readonly prototype: BigInt;

    /**
     * Interprets the low bits of a BigInt as a 2's-complement signed integer.
     * All higher bits are discarded.
     * @param bits The number of low bits to use
     * @param int The BigInt whose bits to extract
     */
    asIntN(bits: number, int: bigint): bigint;
    /**
     * Interprets the low bits of a BigInt as an unsigned integer.
     * All higher bits are discarded.
     * @param bits The number of low bits to use
     * @param int The BigInt whose bits to extract
     */
    asUintN(bits: number, int: bigint): bigint;
}

declare var BigInt: BigIntConstructor;

/**
 * A typed array of 64-bit signed integer values. The contents are initialized to 0. If the
 * requested number of bytes could not be allocated, an exception is raised.
 */
interface BigInt64Array {
    /** The size in bytes of each element in the array. */
    readonly BYTES_PER_ELEMENT: number;

    /** The ArrayBuffer instance referenced by the array. */
    readonly buffer: ArrayBufferLike;

    /** The length in bytes of the array. */
    readonly byteLength: number;

    /** The offset in bytes of the array. */
    readonly byteOffset: number;

    /**
     * Returns the this object after copying a section of the array identified by start and end
     * to the same array starting at position target
     * @param target If target is negative, it is treated as length+target where length is the
     * length of the array.
     * @param start If start is negative, it is treated as length+start. If end is negative, it
     * is treated as length+end.
     * @param end If not specified, length of the this object is used as its default value.
     */
    copyWithin(target: number, start: number, end?: number): this;

    /** Yields index, value pairs for every entry in the array. */
    entries(): IterableIterator<[number, bigint]>;

    /**
     * Determines whether all the members of an array satisfy the specified test.
     * @param predicate A function that accepts up to three arguments. The every method calls
     * the predicate function for each element in the array until the predicate returns false,
     * or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    every(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): boolean;

    /**
     * Changes all array elements from \`start\` to \`end\` index to a static \`value\` and returns the modified array
     * @param value value to fill array section with
     * @param start index to start filling the array at. If start is negative, it is treated as
     * length+start where length is the length of the array.
     * @param end index to stop filling the array at. If end is negative, it is treated as
     * length+end.
     */
    fill(value: bigint, start?: number, end?: number): this;

    /**
     * Returns the elements of an array that meet the condition specified in a callback function.
     * @param predicate A function that accepts up to three arguments. The filter method calls
     * the predicate function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    filter(predicate: (value: bigint, index: number, array: BigInt64Array) => any, thisArg?: any): BigInt64Array;

    /**
     * Returns the value of the first element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found, find
     * immediately returns that element value. Otherwise, find returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    find(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): bigint | undefined;

    /**
     * Returns the index of the first element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findIndex(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): number;

    /**
     * Performs the specified action for each element in an array.
     * @param callbackfn A function that accepts up to three arguments. forEach calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    forEach(callbackfn: (value: bigint, index: number, array: BigInt64Array) => void, thisArg?: any): void;

    /**
     * Determines whether an array includes a certain element, returning true or false as appropriate.
     * @param searchElement The element to search for.
     * @param fromIndex The position in this array at which to begin searching for searchElement.
     */
    includes(searchElement: bigint, fromIndex?: number): boolean;

    /**
     * Returns the index of the first occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     * search starts at index 0.
     */
    indexOf(searchElement: bigint, fromIndex?: number): number;

    /**
     * Adds all the elements of an array separated by the specified separator string.
     * @param separator A string used to separate one element of an array from the next in the
     * resulting String. If omitted, the array elements are separated with a comma.
     */
    join(separator?: string): string;

    /** Yields each index in the array. */
    keys(): IterableIterator<number>;

    /**
     * Returns the index of the last occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     * search starts at index 0.
     */
    lastIndexOf(searchElement: bigint, fromIndex?: number): number;

    /** The length of the array. */
    readonly length: number;

    /**
     * Calls a defined callback function on each element of an array, and returns an array that
     * contains the results.
     * @param callbackfn A function that accepts up to three arguments. The map method calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    map(callbackfn: (value: bigint, index: number, array: BigInt64Array) => bigint, thisArg?: any): BigInt64Array;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigInt64Array) => bigint): bigint;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigInt64Array) => U, initialValue: U): U;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an
     * argument instead of an array value.
     */
    reduceRight(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigInt64Array) => bigint): bigint;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduceRight<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigInt64Array) => U, initialValue: U): U;

    /** Reverses the elements in the array. */
    reverse(): this;

    /**
     * Sets a value or an array of values.
     * @param array A typed or untyped array of values to set.
     * @param offset The index in the current array at which the values are to be written.
     */
    set(array: ArrayLike<bigint>, offset?: number): void;

    /**
     * Returns a section of an array.
     * @param start The beginning of the specified portion of the array.
     * @param end The end of the specified portion of the array.
     */
    slice(start?: number, end?: number): BigInt64Array;

    /**
     * Determines whether the specified callback function returns true for any element of an array.
     * @param predicate A function that accepts up to three arguments. The some method calls the
     * predicate function for each element in the array until the predicate returns true, or until
     * the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    some(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): boolean;

    /**
     * Sorts the array.
     * @param compareFn The function used to determine the order of the elements. If omitted, the elements are sorted in ascending order.
     */
    sort(compareFn?: (a: bigint, b: bigint) => number | bigint): this;

    /**
     * Gets a new BigInt64Array view of the ArrayBuffer store for this array, referencing the elements
     * at begin, inclusive, up to end, exclusive.
     * @param begin The index of the beginning of the array.
     * @param end The index of the end of the array.
     */
    subarray(begin?: number, end?: number): BigInt64Array;

    /** Converts the array to a string by using the current locale. */
    toLocaleString(): string;

    /** Returns a string representation of the array. */
    toString(): string;

    /** Returns the primitive value of the specified object. */
    valueOf(): BigInt64Array;

    /** Yields each value in the array. */
    values(): IterableIterator<bigint>;

    [Symbol.iterator](): IterableIterator<bigint>;

    readonly [Symbol.toStringTag]: "BigInt64Array";

    [index: number]: bigint;
}

interface BigInt64ArrayConstructor {
    readonly prototype: BigInt64Array;
    new(length?: number): BigInt64Array;
    new(array: Iterable<bigint>): BigInt64Array;
    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): BigInt64Array;

    /** The size in bytes of each element in the array. */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * Returns a new array from a set of elements.
     * @param items A set of elements to include in the new array object.
     */
    of(...items: bigint[]): BigInt64Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from(arrayLike: ArrayLike<bigint>): BigInt64Array;
    from<U>(arrayLike: ArrayLike<U>, mapfn: (v: U, k: number) => bigint, thisArg?: any): BigInt64Array;
}

declare var BigInt64Array: BigInt64ArrayConstructor;

/**
 * A typed array of 64-bit unsigned integer values. The contents are initialized to 0. If the
 * requested number of bytes could not be allocated, an exception is raised.
 */
interface BigUint64Array {
    /** The size in bytes of each element in the array. */
    readonly BYTES_PER_ELEMENT: number;

    /** The ArrayBuffer instance referenced by the array. */
    readonly buffer: ArrayBufferLike;

    /** The length in bytes of the array. */
    readonly byteLength: number;

    /** The offset in bytes of the array. */
    readonly byteOffset: number;

    /**
     * Returns the this object after copying a section of the array identified by start and end
     * to the same array starting at position target
     * @param target If target is negative, it is treated as length+target where length is the
     * length of the array.
     * @param start If start is negative, it is treated as length+start. If end is negative, it
     * is treated as length+end.
     * @param end If not specified, length of the this object is used as its default value.
     */
    copyWithin(target: number, start: number, end?: number): this;

    /** Yields index, value pairs for every entry in the array. */
    entries(): IterableIterator<[number, bigint]>;

    /**
     * Determines whether all the members of an array satisfy the specified test.
     * @param predicate A function that accepts up to three arguments. The every method calls
     * the predicate function for each element in the array until the predicate returns false,
     * or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    every(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): boolean;

    /**
     * Changes all array elements from \`start\` to \`end\` index to a static \`value\` and returns the modified array
     * @param value value to fill array section with
     * @param start index to start filling the array at. If start is negative, it is treated as
     * length+start where length is the length of the array.
     * @param end index to stop filling the array at. If end is negative, it is treated as
     * length+end.
     */
    fill(value: bigint, start?: number, end?: number): this;

    /**
     * Returns the elements of an array that meet the condition specified in a callback function.
     * @param predicate A function that accepts up to three arguments. The filter method calls
     * the predicate function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    filter(predicate: (value: bigint, index: number, array: BigUint64Array) => any, thisArg?: any): BigUint64Array;

    /**
     * Returns the value of the first element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found, find
     * immediately returns that element value. Otherwise, find returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    find(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): bigint | undefined;

    /**
     * Returns the index of the first element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findIndex(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): number;

    /**
     * Performs the specified action for each element in an array.
     * @param callbackfn A function that accepts up to three arguments. forEach calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    forEach(callbackfn: (value: bigint, index: number, array: BigUint64Array) => void, thisArg?: any): void;

    /**
     * Determines whether an array includes a certain element, returning true or false as appropriate.
     * @param searchElement The element to search for.
     * @param fromIndex The position in this array at which to begin searching for searchElement.
     */
    includes(searchElement: bigint, fromIndex?: number): boolean;

    /**
     * Returns the index of the first occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     * search starts at index 0.
     */
    indexOf(searchElement: bigint, fromIndex?: number): number;

    /**
     * Adds all the elements of an array separated by the specified separator string.
     * @param separator A string used to separate one element of an array from the next in the
     * resulting String. If omitted, the array elements are separated with a comma.
     */
    join(separator?: string): string;

    /** Yields each index in the array. */
    keys(): IterableIterator<number>;

    /**
     * Returns the index of the last occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     * search starts at index 0.
     */
    lastIndexOf(searchElement: bigint, fromIndex?: number): number;

    /** The length of the array. */
    readonly length: number;

    /**
     * Calls a defined callback function on each element of an array, and returns an array that
     * contains the results.
     * @param callbackfn A function that accepts up to three arguments. The map method calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    map(callbackfn: (value: bigint, index: number, array: BigUint64Array) => bigint, thisArg?: any): BigUint64Array;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigUint64Array) => bigint): bigint;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigUint64Array) => U, initialValue: U): U;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an
     * argument instead of an array value.
     */
    reduceRight(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigUint64Array) => bigint): bigint;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduceRight<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigUint64Array) => U, initialValue: U): U;

    /** Reverses the elements in the array. */
    reverse(): this;

    /**
     * Sets a value or an array of values.
     * @param array A typed or untyped array of values to set.
     * @param offset The index in the current array at which the values are to be written.
     */
    set(array: ArrayLike<bigint>, offset?: number): void;

    /**
     * Returns a section of an array.
     * @param start The beginning of the specified portion of the array.
     * @param end The end of the specified portion of the array.
     */
    slice(start?: number, end?: number): BigUint64Array;

    /**
     * Determines whether the specified callback function returns true for any element of an array.
     * @param predicate A function that accepts up to three arguments. The some method calls the
     * predicate function for each element in the array until the predicate returns true, or until
     * the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    some(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): boolean;

    /**
     * Sorts the array.
     * @param compareFn The function used to determine the order of the elements. If omitted, the elements are sorted in ascending order.
     */
    sort(compareFn?: (a: bigint, b: bigint) => number | bigint): this;

    /**
     * Gets a new BigUint64Array view of the ArrayBuffer store for this array, referencing the elements
     * at begin, inclusive, up to end, exclusive.
     * @param begin The index of the beginning of the array.
     * @param end The index of the end of the array.
     */
    subarray(begin?: number, end?: number): BigUint64Array;

    /** Converts the array to a string by using the current locale. */
    toLocaleString(): string;

    /** Returns a string representation of the array. */
    toString(): string;

    /** Returns the primitive value of the specified object. */
    valueOf(): BigUint64Array;

    /** Yields each value in the array. */
    values(): IterableIterator<bigint>;

    [Symbol.iterator](): IterableIterator<bigint>;

    readonly [Symbol.toStringTag]: "BigUint64Array";

    [index: number]: bigint;
}

interface BigUint64ArrayConstructor {
    readonly prototype: BigUint64Array;
    new(length?: number): BigUint64Array;
    new(array: Iterable<bigint>): BigUint64Array;
    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): BigUint64Array;

    /** The size in bytes of each element in the array. */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * Returns a new array from a set of elements.
     * @param items A set of elements to include in the new array object.
     */
    of(...items: bigint[]): BigUint64Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from(arrayLike: ArrayLike<bigint>): BigUint64Array;
    from<U>(arrayLike: ArrayLike<U>, mapfn: (v: U, k: number) => bigint, thisArg?: any): BigUint64Array;
}

declare var BigUint64Array: BigUint64ArrayConstructor;

interface DataView {
    /**
     * Gets the BigInt64 value at the specified byte offset from the start of the view. There is
     * no alignment constraint; multi-byte values may be fetched from any offset.
     * @param byteOffset The place in the buffer at which the value should be retrieved.
     * @param littleEndian If false or undefined, a big-endian value should be read.
     */
    getBigInt64(byteOffset: number, littleEndian?: boolean): bigint;

    /**
     * Gets the BigUint64 value at the specified byte offset from the start of the view. There is
     * no alignment constraint; multi-byte values may be fetched from any offset.
     * @param byteOffset The place in the buffer at which the value should be retrieved.
     * @param littleEndian If false or undefined, a big-endian value should be read.
     */
    getBigUint64(byteOffset: number, littleEndian?: boolean): bigint;

    /**
     * Stores a BigInt64 value at the specified byte offset from the start of the view.
     * @param byteOffset The place in the buffer at which the value should be set.
     * @param value The value to set.
     * @param littleEndian If false or undefined, a big-endian value should be written.
     */
    setBigInt64(byteOffset: number, value: bigint, littleEndian?: boolean): void;

    /**
     * Stores a BigUint64 value at the specified byte offset from the start of the view.
     * @param byteOffset The place in the buffer at which the value should be set.
     * @param value The value to set.
     * @param littleEndian If false or undefined, a big-endian value should be written.
     */
    setBigUint64(byteOffset: number, value: bigint, littleEndian?: boolean): void;
}

declare namespace Intl{
    interface NumberFormat {
        format(value: number | bigint): string;
        resolvedOptions(): ResolvedNumberFormatOptions;
    }
}
`;
ba["lib.es2020.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2019" />
/// <reference lib="es2020.bigint" />
/// <reference lib="es2020.date" />
/// <reference lib="es2020.number" />
/// <reference lib="es2020.promise" />
/// <reference lib="es2020.sharedmemory" />
/// <reference lib="es2020.string" />
/// <reference lib="es2020.symbol.wellknown" />
/// <reference lib="es2020.intl" />
`;
ba["lib.es2020.date.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2020.intl" />

interface Date {
    /**
     * Converts a date and time to a string by using the current or specified locale.
     * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
     * @param options An object that contains one or more properties that specify comparison options.
     */
    toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;

    /**
     * Converts a date to a string by using the current or specified locale.
     * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
     * @param options An object that contains one or more properties that specify comparison options.
     */
    toLocaleDateString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;

    /**
     * Converts a time to a string by using the current or specified locale.
     * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
     * @param options An object that contains one or more properties that specify comparison options.
     */
    toLocaleTimeString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;
}`;
ba["lib.es2020.full.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2020" />
/// <reference lib="dom" />
/// <reference lib="webworker.importscripts" />
/// <reference lib="scripthost" />
/// <reference lib="dom.iterable" />
`;
ba["lib.es2020.intl.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2018.intl" />
declare namespace Intl {

    /**
     * [Unicode BCP 47 Locale Identifiers](https://unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers) definition.
     *
     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
     */
    type UnicodeBCP47LocaleIdentifier = string;

    /**
     * Unit to use in the relative time internationalized message.
     *
     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format#Parameters).
     */
    type RelativeTimeFormatUnit =
        | "year"
        | "years"
        | "quarter"
        | "quarters"
        | "month"
        | "months"
        | "week"
        | "weeks"
        | "day"
        | "days"
        | "hour"
        | "hours"
        | "minute"
        | "minutes"
        | "second"
        | "seconds";

    /**
     * Value of the \`unit\` property in objects returned by
     * \`Intl.RelativeTimeFormat.prototype.formatToParts()\`. \`formatToParts\` and
     * \`format\` methods accept either singular or plural unit names as input,
     * but \`formatToParts\` only outputs singular (e.g. "day") not plural (e.g.
     * "days").
     *
     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts).
     */
     type RelativeTimeFormatUnitSingular =
        | "year"
        | "quarter"
        | "month"
        | "week"
        | "day"
        | "hour"
        | "minute"
        | "second";

    /**
     * The locale matching algorithm to use.
     *
     * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation).
     */
    type RelativeTimeFormatLocaleMatcher = "lookup" | "best fit";

    /**
     * The format of output message.
     *
     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).
     */
    type RelativeTimeFormatNumeric = "always" | "auto";

    /**
     * The length of the internationalized message.
     *
     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).
     */
    type RelativeTimeFormatStyle = "long" | "short" | "narrow";

    /**
     * [BCP 47 language tag](http://tools.ietf.org/html/rfc5646) definition.
     *
     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
     */
    type BCP47LanguageTag = string;

    /**
     * The locale(s) to use
     *
     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
     */
    type LocalesArgument = UnicodeBCP47LocaleIdentifier | Locale | readonly (UnicodeBCP47LocaleIdentifier | Locale)[] | undefined;

    /**
     * An object with some or all of properties of \`options\` parameter
     * of \`Intl.RelativeTimeFormat\` constructor.
     *
     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).
     */
    interface RelativeTimeFormatOptions {
        /** The locale matching algorithm to use. For information about this option, see [Intl page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation). */
        localeMatcher?: RelativeTimeFormatLocaleMatcher;
        /** The format of output message. */
        numeric?: RelativeTimeFormatNumeric;
        /** The length of the internationalized message. */
        style?: RelativeTimeFormatStyle;
    }

    /**
     * An object with properties reflecting the locale
     * and formatting options computed during initialization
     * of the \`Intl.RelativeTimeFormat\` object
     *
     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions#Description).
     */
    interface ResolvedRelativeTimeFormatOptions {
        locale: UnicodeBCP47LocaleIdentifier;
        style: RelativeTimeFormatStyle;
        numeric: RelativeTimeFormatNumeric;
        numberingSystem: string;
    }

    /**
     * An object representing the relative time format in parts
     * that can be used for custom locale-aware formatting.
     *
     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts).
     */
    type RelativeTimeFormatPart =
        | {
              type: "literal";
              value: string;
          }
        | {
              type: Exclude<NumberFormatPartTypes, "literal">;
              value: string;
              unit: RelativeTimeFormatUnitSingular;
          };

    interface RelativeTimeFormat {
        /**
         * Formats a value and a unit according to the locale
         * and formatting options of the given
         * [\`Intl.RelativeTimeFormat\`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat)
         * object.
         *
         * While this method automatically provides the correct plural forms,
         * the grammatical form is otherwise as neutral as possible.
         *
         * It is the caller's responsibility to handle cut-off logic
         * such as deciding between displaying "in 7 days" or "in 1 week".
         * This API does not support relative dates involving compound units.
         * e.g "in 5 days and 4 hours".
         *
         * @param value -  Numeric value to use in the internationalized relative time message
         *
         * @param unit - [Unit](https://tc39.es/ecma402/#sec-singularrelativetimeunit) to use in the relative time internationalized message.
         *
         * @throws \`RangeError\` if \`unit\` was given something other than \`unit\` possible values
         *
         * @returns {string} Internationalized relative time message as string
         *
         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format).
         */
        format(value: number, unit: RelativeTimeFormatUnit): string;

        /**
         *  Returns an array of objects representing the relative time format in parts that can be used for custom locale-aware formatting.
         *
         *  @param value - Numeric value to use in the internationalized relative time message
         *
         *  @param unit - [Unit](https://tc39.es/ecma402/#sec-singularrelativetimeunit) to use in the relative time internationalized message.
         *
         *  @throws \`RangeError\` if \`unit\` was given something other than \`unit\` possible values
         *
         *  [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts).
         */
        formatToParts(value: number, unit: RelativeTimeFormatUnit): RelativeTimeFormatPart[];

        /**
         * Provides access to the locale and options computed during initialization of this \`Intl.RelativeTimeFormat\` object.
         *
         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions).
         */
        resolvedOptions(): ResolvedRelativeTimeFormatOptions;
    }

    /**
     * The [\`Intl.RelativeTimeFormat\`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat)
     * object is a constructor for objects that enable language-sensitive relative time formatting.
     *
     * [Compatibility](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat#Browser_compatibility).
     */
    const RelativeTimeFormat: {
        /**
         * Creates [Intl.RelativeTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat) objects
         *
         * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.
         *  For the general form and interpretation of the locales argument,
         *  see the [\`Intl\` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
         *
         * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters)
         *  with some or all of options of \`RelativeTimeFormatOptions\`.
         *
         * @returns [Intl.RelativeTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat) object.
         *
         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat).
         */
        new(
            locales?: UnicodeBCP47LocaleIdentifier | UnicodeBCP47LocaleIdentifier[],
            options?: RelativeTimeFormatOptions,
        ): RelativeTimeFormat;

        /**
         * Returns an array containing those of the provided locales
         * that are supported in date and time formatting
         * without having to fall back to the runtime's default locale.
         *
         * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.
         *  For the general form and interpretation of the locales argument,
         *  see the [\`Intl\` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
         *
         * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters)
         *  with some or all of options of the formatting.
         *
         * @returns An array containing those of the provided locales
         *  that are supported in date and time formatting
         *  without having to fall back to the runtime's default locale.
         *
         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/supportedLocalesOf).
         */
        supportedLocalesOf(
            locales?: UnicodeBCP47LocaleIdentifier | UnicodeBCP47LocaleIdentifier[],
            options?: RelativeTimeFormatOptions,
        ): UnicodeBCP47LocaleIdentifier[];
    };

    interface NumberFormatOptions {
        compactDisplay?: "short" | "long" | undefined;
        notation?: "standard" | "scientific" | "engineering" | "compact" | undefined;
        signDisplay?: "auto" | "never" | "always" | "exceptZero" | undefined;
        unit?: string | undefined;
        unitDisplay?: "short" | "long" | "narrow" | undefined;
        currencyDisplay?: string | undefined;
        currencySign?: string | undefined;
    }

    interface ResolvedNumberFormatOptions {
        compactDisplay?: "short" | "long";
        notation?: "standard" | "scientific" | "engineering" | "compact";
        signDisplay?: "auto" | "never" | "always" | "exceptZero";
        unit?: string;
        unitDisplay?: "short" | "long" | "narrow";
        currencyDisplay?: string;
        currencySign?: string;
    }

    interface DateTimeFormatOptions {
        calendar?: string | undefined;
        dayPeriod?: "narrow" | "short" | "long" | undefined;
        numberingSystem?: string | undefined;

        dateStyle?: "full" | "long" | "medium" | "short" | undefined;
        timeStyle?: "full" | "long" | "medium" | "short" | undefined;
        hourCycle?: "h11" | "h12" | "h23" | "h24" | undefined;
    }

    type LocaleHourCycleKey = "h12" | "h23" | "h11" | "h24";
    type LocaleCollationCaseFirst = "upper" | "lower" | "false";

    interface LocaleOptions {
        /** A string containing the language, and the script and region if available. */
        baseName?: string;
        /** The part of the Locale that indicates the locale's calendar era. */
        calendar?: string;
        /** Flag that defines whether case is taken into account for the locale's collation rules. */
        caseFirst?: LocaleCollationCaseFirst;
        /** The collation type used for sorting */
        collation?: string;
        /** The time keeping format convention used by the locale. */
        hourCycle?: LocaleHourCycleKey;
        /** The primary language subtag associated with the locale. */
        language?: string;
        /** The numeral system used by the locale. */
        numberingSystem?: string;
        /** Flag that defines whether the locale has special collation handling for numeric characters. */
        numeric?: boolean;
        /** The region of the world (usually a country) associated with the locale. Possible values are region codes as defined by ISO 3166-1. */
        region?: string;
        /** The script used for writing the particular language used in the locale. Possible values are script codes as defined by ISO 15924. */
        script?: string;
    }

    interface Locale extends LocaleOptions {
        /** A string containing the language, and the script and region if available. */
        baseName: string;
        /** The primary language subtag associated with the locale. */
        language: string;
        /** Gets the most likely values for the language, script, and region of the locale based on existing values. */
        maximize(): Locale;
        /** Attempts to remove information about the locale that would be added by calling \`Locale.maximize()\`. */
        minimize(): Locale;
        /** Returns the locale's full locale identifier string. */
        toString(): BCP47LanguageTag;
    }

    /**
     * Constructor creates [Intl.Locale](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)
     * objects
     *
     * @param tag - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646).
     *  For the general form and interpretation of the locales argument,
     *  see the [\`Intl\` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
     *
     * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/Locale#Parameters) with some or all of options of the locale.
     *
     * @returns [Intl.Locale](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) object.
     *
     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale).
     */
    const Locale: {
        new (tag: BCP47LanguageTag | Locale, options?: LocaleOptions): Locale;
    };

    type DisplayNamesFallback =
        | "code"
        | "none";

    type DisplayNamesType =
        | "language"
        | "region"
        | "script"
        | "calendar"
        | "dateTimeField"
        | "currency";

    type DisplayNamesLanguageDisplay =
        | "dialect"
        | "standard";

    interface DisplayNamesOptions {
        localeMatcher?: RelativeTimeFormatLocaleMatcher;
        style?: RelativeTimeFormatStyle;
        type: DisplayNamesType;
        languageDisplay?: DisplayNamesLanguageDisplay;
        fallback?: DisplayNamesFallback;
    }

    interface ResolvedDisplayNamesOptions {
        locale: UnicodeBCP47LocaleIdentifier;
        style: RelativeTimeFormatStyle;
        type: DisplayNamesType;
        fallback: DisplayNamesFallback;
        languageDisplay?: DisplayNamesLanguageDisplay;
    }

    interface DisplayNames {
        /**
         * Receives a code and returns a string based on the locale and options provided when instantiating
         * [\`Intl.DisplayNames()\`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames)
         *
         * @param code The \`code\` to provide depends on the \`type\` passed to display name during creation:
         *  - If the type is \`"region"\`, code should be either an [ISO-3166 two letters region code](https://www.iso.org/iso-3166-country-codes.html),
         *    or a [three digits UN M49 Geographic Regions](https://unstats.un.org/unsd/methodology/m49/).
         *  - If the type is \`"script"\`, code should be an [ISO-15924 four letters script code](https://unicode.org/iso15924/iso15924-codes.html).
         *  - If the type is \`"language"\`, code should be a \`languageCode\` ["-" \`scriptCode\`] ["-" \`regionCode\` ] *("-" \`variant\` )
         *    subsequence of the unicode_language_id grammar in [UTS 35's Unicode Language and Locale Identifiers grammar](https://unicode.org/reports/tr35/#Unicode_language_identifier).
         *    \`languageCode\` is either a two letters ISO 639-1 language code or a three letters ISO 639-2 language code.
         *  - If the type is \`"currency"\`, code should be a [3-letter ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html).
         *
         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/of).
         */
        of(code: string): string | undefined;
        /**
         * Returns a new object with properties reflecting the locale and style formatting options computed during the construction of the current
         * [\`Intl/DisplayNames\`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames) object.
         *
         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/resolvedOptions).
         */
        resolvedOptions(): ResolvedDisplayNamesOptions;
    }

    /**
     * The [\`Intl.DisplayNames()\`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames)
     * object enables the consistent translation of language, region and script display names.
     *
     * [Compatibility](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames#browser_compatibility).
     */
    const DisplayNames: {
        prototype: DisplayNames;

        /**
         * @param locales A string with a BCP 47 language tag, or an array of such strings.
         *   For the general form and interpretation of the \`locales\` argument, see the [Intl](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)
         *   page.
         *
         * @param options An object for setting up a display name.
         *
         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames).
         */
        new(locales: LocalesArgument, options: DisplayNamesOptions): DisplayNames;

        /**
         * Returns an array containing those of the provided locales that are supported in display names without having to fall back to the runtime's default locale.
         *
         * @param locales A string with a BCP 47 language tag, or an array of such strings.
         *   For the general form and interpretation of the \`locales\` argument, see the [Intl](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)
         *   page.
         *
         * @param options An object with a locale matcher.
         *
         * @returns An array of strings representing a subset of the given locale tags that are supported in display names without having to fall back to the runtime's default locale.
         *
         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/supportedLocalesOf).
         */
        supportedLocalesOf(locales?: LocalesArgument, options?: { localeMatcher?: RelativeTimeFormatLocaleMatcher }): BCP47LanguageTag[];
    };

}
`;
ba["lib.es2020.number.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2020.intl" />

interface Number {
    /**
     * Converts a number to a string by using the current or specified locale.
     * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
     * @param options An object that contains one or more properties that specify comparison options.
     */
    toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string;
}
`;
ba["lib.es2020.promise.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface PromiseFulfilledResult<T> {
    status: "fulfilled";
    value: T;
}

interface PromiseRejectedResult {
    status: "rejected";
    reason: any;
}

type PromiseSettledResult<T> = PromiseFulfilledResult<T> | PromiseRejectedResult;

interface PromiseConstructor {
    /**
     * Creates a Promise that is resolved with an array of results when all
     * of the provided Promises resolve or reject.
     * @param values An array of Promises.
     * @returns A new Promise.
     */
    allSettled<T extends readonly unknown[] | []>(values: T): Promise<{ -readonly [P in keyof T]: PromiseSettledResult<Awaited<T[P]>> }>;

    /**
     * Creates a Promise that is resolved with an array of results when all
     * of the provided Promises resolve or reject.
     * @param values An array of Promises.
     * @returns A new Promise.
     */
    allSettled<T>(values: Iterable<T | PromiseLike<T>>): Promise<PromiseSettledResult<Awaited<T>>[]>;
}
`;
ba["lib.es2020.sharedmemory.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface Atomics {
    /**
     * Adds a value to the value at the given position in the array, returning the original value.
     * Until this atomic operation completes, any other read or write operation against the array
     * will block.
     */
    add(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;

    /**
     * Stores the bitwise AND of a value with the value at the given position in the array,
     * returning the original value. Until this atomic operation completes, any other read or
     * write operation against the array will block.
     */
    and(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;

    /**
     * Replaces the value at the given position in the array if the original value equals the given
     * expected value, returning the original value. Until this atomic operation completes, any
     * other read or write operation against the array will block.
     */
    compareExchange(typedArray: BigInt64Array | BigUint64Array, index: number, expectedValue: bigint, replacementValue: bigint): bigint;

    /**
     * Replaces the value at the given position in the array, returning the original value. Until
     * this atomic operation completes, any other read or write operation against the array will
     * block.
     */
    exchange(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;

    /**
     * Returns the value at the given position in the array. Until this atomic operation completes,
     * any other read or write operation against the array will block.
     */
    load(typedArray: BigInt64Array | BigUint64Array, index: number): bigint;

    /**
     * Stores the bitwise OR of a value with the value at the given position in the array,
     * returning the original value. Until this atomic operation completes, any other read or write
     * operation against the array will block.
     */
    or(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;

    /**
     * Stores a value at the given position in the array, returning the new value. Until this
     * atomic operation completes, any other read or write operation against the array will block.
     */
    store(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;

    /**
     * Subtracts a value from the value at the given position in the array, returning the original
     * value. Until this atomic operation completes, any other read or write operation against the
     * array will block.
     */
    sub(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;

    /**
     * If the value at the given position in the array is equal to the provided value, the current
     * agent is put to sleep causing execution to suspend until the timeout expires (returning
     * \`"timed-out"\`) or until the agent is awoken (returning \`"ok"\`); otherwise, returns
     * \`"not-equal"\`.
     */
    wait(typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): "ok" | "not-equal" | "timed-out";

    /**
     * Wakes up sleeping agents that are waiting on the given index of the array, returning the
     * number of agents that were awoken.
     * @param typedArray A shared BigInt64Array.
     * @param index The position in the typedArray to wake up on.
     * @param count The number of sleeping agents to notify. Defaults to +Infinity.
     */
    notify(typedArray: BigInt64Array, index: number, count?: number): number;

    /**
     * Stores the bitwise XOR of a value with the value at the given position in the array,
     * returning the original value. Until this atomic operation completes, any other read or write
     * operation against the array will block.
     */
    xor(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;
}
`;
ba["lib.es2020.string.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2015.iterable" />

interface String {
    /**
     * Matches a string with a regular expression, and returns an iterable of matches
     * containing the results of that search.
     * @param regexp A variable name or string literal containing the regular expression pattern and flags.
     */
    matchAll(regexp: RegExp): IterableIterator<RegExpMatchArray>;
}
`;
ba["lib.es2020.symbol.wellknown.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2015.iterable" />
/// <reference lib="es2015.symbol" />

interface SymbolConstructor {
    /**
     * A regular expression method that matches the regular expression against a string. Called
     * by the String.prototype.matchAll method.
     */
    readonly matchAll: unique symbol;
}

interface RegExp {
    /**
     * Matches a string with this regular expression, and returns an iterable of matches
     * containing the results of that search.
     * @param string A string to search within.
     */
    [Symbol.matchAll](str: string): IterableIterator<RegExpMatchArray>;
}
`;
ba["lib.es2021.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2020" />
/// <reference lib="es2021.promise" />
/// <reference lib="es2021.string" />
/// <reference lib="es2021.weakref" />
/// <reference lib="es2021.intl" />
`;
ba["lib.es2021.full.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2021" />
/// <reference lib="dom" />
/// <reference lib="webworker.importscripts" />
/// <reference lib="scripthost" />
/// <reference lib="dom.iterable" />
`;
ba["lib.es2021.intl.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

declare namespace Intl {

    interface DateTimeFormatPartTypesRegistry {
        fractionalSecond: any
     }

    interface DateTimeFormatOptions {
        formatMatcher?: "basic" | "best fit" | "best fit" | undefined;
        dateStyle?: "full" | "long" | "medium" | "short" | undefined;
        timeStyle?: "full" | "long" | "medium" | "short" | undefined;
        dayPeriod?: "narrow" | "short" | "long" | undefined;
        fractionalSecondDigits?: 1 | 2 | 3 | undefined;
    }

    interface DateTimeRangeFormatPart extends DateTimeFormatPart {
        source: "startRange" | "endRange" | "shared"
    }

    interface DateTimeFormat {
        formatRange(startDate: Date | number | bigint, endDate: Date | number | bigint): string;
        formatRangeToParts(startDate: Date | number | bigint, endDate: Date | number | bigint): DateTimeRangeFormatPart[];
    }

    interface ResolvedDateTimeFormatOptions {
        formatMatcher?: "basic" | "best fit" | "best fit";
        dateStyle?: "full" | "long" | "medium" | "short";
        timeStyle?: "full" | "long" | "medium" | "short";
        hourCycle?: "h11" | "h12" | "h23" | "h24";
        dayPeriod?: "narrow" | "short" | "long";
        fractionalSecondDigits?: 1 | 2 | 3;
    }

    /**
     * The locale matching algorithm to use.
     *
     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).
     */
    type ListFormatLocaleMatcher = "lookup" | "best fit";

    /**
     * The format of output message.
     *
     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).
     */
    type ListFormatType = "conjunction" | "disjunction" | "unit";

    /**
     * The length of the formatted message.
     *
     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).
     */
    type ListFormatStyle = "long" | "short" | "narrow";

    /**
     * An object with some or all properties of the \`Intl.ListFormat\` constructor \`options\` parameter.
     *
     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).
     */
    interface ListFormatOptions {
        /** The locale matching algorithm to use. For information about this option, see [Intl page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation). */
        localeMatcher?: ListFormatLocaleMatcher | undefined;
        /** The format of output message. */
        type?: ListFormatType | undefined;
        /** The length of the internationalized message. */
        style?: ListFormatStyle | undefined;
    }

    interface ResolvedListFormatOptions {
        locale: string;
        style: ListFormatStyle;
        type: ListFormatType;
    }

    interface ListFormat {
        /**
         * Returns a string with a language-specific representation of the list.
         *
         * @param list - An iterable object, such as an [Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array).
         *
         * @throws \`TypeError\` if \`list\` includes something other than the possible values.
         *
         * @returns {string} A language-specific formatted string representing the elements of the list.
         *
         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/format).
         */
        format(list: Iterable<string>): string;

        /**
         * Returns an Array of objects representing the different components that can be used to format a list of values in a locale-aware fashion.
         *
         * @param list - An iterable object, such as an [Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array), to be formatted according to a locale.
         *
         * @throws \`TypeError\` if \`list\` includes something other than the possible values.
         *
         * @returns {{ type: "element" | "literal", value: string; }[]} An Array of components which contains the formatted parts from the list.
         *
         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/formatToParts).
         */
        formatToParts(list: Iterable<string>): { type: "element" | "literal", value: string; }[];

        /**
         * Returns a new object with properties reflecting the locale and style
         * formatting options computed during the construction of the current
         * \`Intl.ListFormat\` object.
         *
         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/resolvedOptions).
         */
        resolvedOptions(): ResolvedListFormatOptions;
    }

    const ListFormat: {
        prototype: ListFormat;

        /**
         * Creates [Intl.ListFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat) objects that
         * enable language-sensitive list formatting.
         *
         * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.
         *  For the general form and interpretation of the \`locales\` argument,
         *  see the [\`Intl\` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
         *
         * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters)
         *  with some or all options of \`ListFormatOptions\`.
         *
         * @returns [Intl.ListFormatOptions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat) object.
         *
         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat).
         */
        new(locales?: BCP47LanguageTag | BCP47LanguageTag[], options?: ListFormatOptions): ListFormat;

        /**
         * Returns an array containing those of the provided locales that are
         * supported in list formatting without having to fall back to the runtime's default locale.
         *
         * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.
         *  For the general form and interpretation of the \`locales\` argument,
         *  see the [\`Intl\` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
         *
         * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/supportedLocalesOf#parameters).
         *  with some or all possible options.
         *
         * @returns An array of strings representing a subset of the given locale tags that are supported in list
         *  formatting without having to fall back to the runtime's default locale.
         *
         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/supportedLocalesOf).
         */
        supportedLocalesOf(locales: BCP47LanguageTag | BCP47LanguageTag[], options?: Pick<ListFormatOptions, "localeMatcher">): BCP47LanguageTag[];
    };
}
`;
ba["lib.es2021.promise.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface AggregateError extends Error {
    errors: any[]
}

interface AggregateErrorConstructor {
    new(errors: Iterable<any>, message?: string): AggregateError;
    (errors: Iterable<any>, message?: string): AggregateError;
    readonly prototype: AggregateError;
}

declare var AggregateError: AggregateErrorConstructor;

/**
 * Represents the completion of an asynchronous operation
 */
interface PromiseConstructor {
    /**
     * The any function returns a promise that is fulfilled by the first given promise to be fulfilled, or rejected with an AggregateError containing an array of rejection reasons if all of the given promises are rejected. It resolves all elements of the passed iterable to promises as it runs this algorithm.
     * @param values An array or iterable of Promises.
     * @returns A new Promise.
     */
    any<T extends readonly unknown[] | []>(values: T): Promise<Awaited<T[number]>>;

    /**
     * The any function returns a promise that is fulfilled by the first given promise to be fulfilled, or rejected with an AggregateError containing an array of rejection reasons if all of the given promises are rejected. It resolves all elements of the passed iterable to promises as it runs this algorithm.
     * @param values An array or iterable of Promises.
     * @returns A new Promise.
     */
    any<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>>
}
`;
ba["lib.es2021.string.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface String {
    /**
     * Replace all instances of a substring in a string, using a regular expression or search string.
     * @param searchValue A string to search for.
     * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.
     */
    replaceAll(searchValue: string | RegExp, replaceValue: string): string;

    /**
     * Replace all instances of a substring in a string, using a regular expression or search string.
     * @param searchValue A string to search for.
     * @param replacer A function that returns the replacement text.
     */
    replaceAll(searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
}
`;
ba["lib.es2021.weakref.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface WeakRef<T extends object> {
    readonly [Symbol.toStringTag]: "WeakRef";

    /**
     * Returns the WeakRef instance's target object, or undefined if the target object has been
     * reclaimed.
     */
    deref(): T | undefined;
}

interface WeakRefConstructor {
    readonly prototype: WeakRef<any>;

    /**
     * Creates a WeakRef instance for the given target object.
     * @param target The target object for the WeakRef instance.
     */
    new<T extends object>(target: T): WeakRef<T>;
}

declare var WeakRef: WeakRefConstructor;

interface FinalizationRegistry<T> {
    readonly [Symbol.toStringTag]: "FinalizationRegistry";

    /**
     * Registers an object with the registry.
     * @param target The target object to register.
     * @param heldValue The value to pass to the finalizer for this object. This cannot be the
     * target object.
     * @param unregisterToken The token to pass to the unregister method to unregister the target
     * object. If provided (and not undefined), this must be an object. If not provided, the target
     * cannot be unregistered.
     */
    register(target: object, heldValue: T, unregisterToken?: object): void;

    /**
     * Unregisters an object from the registry.
     * @param unregisterToken The token that was used as the unregisterToken argument when calling
     * register to register the target object.
     */
    unregister(unregisterToken: object): void;
}

interface FinalizationRegistryConstructor {
    readonly prototype: FinalizationRegistry<any>;

    /**
     * Creates a finalization registry with an associated cleanup callback
     * @param cleanupCallback The callback to call after an object in the registry has been reclaimed.
     */
    new<T>(cleanupCallback: (heldValue: T) => void): FinalizationRegistry<T>;
}

declare var FinalizationRegistry: FinalizationRegistryConstructor;
`;
ba["lib.es2022.array.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface Array<T> {
    /**
     * Returns the item located at the specified index.
     * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.
     */
    at(index: number): T | undefined;
}

interface ReadonlyArray<T> {
    /**
     * Returns the item located at the specified index.
     * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.
     */
    at(index: number): T | undefined;
}

interface Int8Array {
    /**
     * Returns the item located at the specified index.
     * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.
     */
    at(index: number): number | undefined;
}

interface Uint8Array {
    /**
     * Returns the item located at the specified index.
     * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.
     */
    at(index: number): number | undefined;
}

interface Uint8ClampedArray {
    /**
     * Returns the item located at the specified index.
     * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.
     */
    at(index: number): number | undefined;
}

interface Int16Array {
    /**
     * Returns the item located at the specified index.
     * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.
     */
    at(index: number): number | undefined;
}

interface Uint16Array {
    /**
     * Returns the item located at the specified index.
     * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.
     */
    at(index: number): number | undefined;
}

interface Int32Array {
    /**
     * Returns the item located at the specified index.
     * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.
     */
    at(index: number): number | undefined;
}

interface Uint32Array {
    /**
     * Returns the item located at the specified index.
     * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.
     */
    at(index: number): number | undefined;
}

interface Float32Array {
    /**
     * Returns the item located at the specified index.
     * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.
     */
    at(index: number): number | undefined;
}

interface Float64Array {
    /**
     * Returns the item located at the specified index.
     * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.
     */
    at(index: number): number | undefined;
}

interface BigInt64Array {
    /**
     * Returns the item located at the specified index.
     * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.
     */
    at(index: number): bigint | undefined;
}

interface BigUint64Array {
    /**
     * Returns the item located at the specified index.
     * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.
     */
    at(index: number): bigint | undefined;
}
`;
ba["lib.es2022.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2021" />
/// <reference lib="es2022.array" />
/// <reference lib="es2022.error" />
/// <reference lib="es2022.intl" />
/// <reference lib="es2022.object" />
/// <reference lib="es2022.sharedmemory" />
/// <reference lib="es2022.string" />
/// <reference lib="es2022.regexp" />
`;
ba["lib.es2022.error.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface ErrorOptions {
    cause?: unknown;
}

interface Error {
    cause?: unknown;
}

interface ErrorConstructor {
    new (message?: string, options?: ErrorOptions): Error;
    (message?: string, options?: ErrorOptions): Error;
}

interface EvalErrorConstructor {
    new (message?: string, options?: ErrorOptions): EvalError;
    (message?: string, options?: ErrorOptions): EvalError;
}

interface RangeErrorConstructor {
    new (message?: string, options?: ErrorOptions): RangeError;
    (message?: string, options?: ErrorOptions): RangeError;
}

interface ReferenceErrorConstructor {
    new (message?: string, options?: ErrorOptions): ReferenceError;
    (message?: string, options?: ErrorOptions): ReferenceError;
}

interface SyntaxErrorConstructor {
    new (message?: string, options?: ErrorOptions): SyntaxError;
    (message?: string, options?: ErrorOptions): SyntaxError;
}

interface TypeErrorConstructor {
    new (message?: string, options?: ErrorOptions): TypeError;
    (message?: string, options?: ErrorOptions): TypeError;
}

interface URIErrorConstructor {
    new (message?: string, options?: ErrorOptions): URIError;
    (message?: string, options?: ErrorOptions): URIError;
}

interface AggregateErrorConstructor {
    new (
        errors: Iterable<any>,
        message?: string,
        options?: ErrorOptions
    ): AggregateError;
    (
        errors: Iterable<any>,
        message?: string,
        options?: ErrorOptions
    ): AggregateError;
}
`;
ba["lib.es2022.full.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2022" />
/// <reference lib="dom" />
/// <reference lib="webworker.importscripts" />
/// <reference lib="scripthost" />
/// <reference lib="dom.iterable" />
`;
ba["lib.es2022.intl.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

declare namespace Intl {

    /**
     * An object with some or all properties of the \`Intl.Segmenter\` constructor \`options\` parameter.
     *
     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/Segmenter#parameters)
     */
    interface SegmenterOptions {
        /** The locale matching algorithm to use. For information about this option, see [Intl page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation). */
        localeMatcher?: "best fit" | "lookup" | undefined;
        /** The type of input to be split */
        granularity?: "grapheme" | "word" | "sentence" | undefined;
    }

    interface Segmenter {
        /**
         * Returns \`Segments\` object containing the segments of the input string, using the segmenter's locale and granularity.
         *
         * @param input - The text to be segmented as a \`string\`.
         *
         * @returns A new iterable Segments object containing the segments of the input string, using the segmenter's locale and granularity.
         */
        segment(input: string): Segments;
        resolvedOptions(): ResolvedSegmenterOptions;
    }

    interface ResolvedSegmenterOptions {
        locale: string;
        granularity: "grapheme" | "word" | "sentence";
    }

    interface Segments {
        /**
         * Returns an object describing the segment in the original string that includes the code unit at a specified index.
         *
         * @param codeUnitIndex - A number specifying the index of the code unit in the original input string. If the value is omitted, it defaults to \`0\`.
         */
        containing(codeUnitIndex?: number): SegmentData;

        /** Returns an iterator to iterate over the segments. */
        [Symbol.iterator](): IterableIterator<SegmentData>;
    }

    interface SegmentData {
        /** A string containing the segment extracted from the original input string. */
        segment: string;
        /** The code unit index in the original input string at which the segment begins. */
        index: number;
        /** The complete input string that was segmented. */
        input: string;
        /**
         * A boolean value only if granularity is "word"; otherwise, undefined.
         * If granularity is "word", then isWordLike is true when the segment is word-like (i.e., consists of letters/numbers/ideographs/etc.); otherwise, false.
         */
        isWordLike?: boolean;
    }

    const Segmenter: {
        prototype: Segmenter;

        /**
         * Creates a new \`Intl.Segmenter\` object.
         *
         * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.
         *  For the general form and interpretation of the \`locales\` argument,
         *  see the [\`Intl\` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
         *
         * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/Segmenter#parameters)
         *  with some or all options of \`SegmenterOptions\`.
         *
         * @returns [Intl.Segmenter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segments) object.
         *
         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter).
         */
        new(locales?: BCP47LanguageTag | BCP47LanguageTag[], options?: SegmenterOptions): Segmenter;

        /**
         * Returns an array containing those of the provided locales that are supported without having to fall back to the runtime's default locale.
         *
         * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.
         *  For the general form and interpretation of the \`locales\` argument,
         *  see the [\`Intl\` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
         *
         * @param options An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/supportedLocalesOf#parameters).
         *  with some or all possible options.
         *
         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/supportedLocalesOf)
         */
        supportedLocalesOf(locales: BCP47LanguageTag | BCP47LanguageTag[], options?: Pick<SegmenterOptions, "localeMatcher">): BCP47LanguageTag[];
    };
}
`;
ba["lib.es2022.object.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface ObjectConstructor {
    /**
     * Determines whether an object has a property with the specified name.
     * @param o An object.
     * @param v A property name.
     */
    hasOwn(o: object, v: PropertyKey): boolean;
}
`;
ba["lib.es2022.regexp.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface RegExpMatchArray {
    indices?: RegExpIndicesArray;
}

interface RegExpExecArray {
    indices?: RegExpIndicesArray;
}

interface RegExpIndicesArray extends Array<[number, number]> {
    groups?: {
        [key: string]: [number, number];
    };
}

interface RegExp {
    /**
     * Returns a Boolean value indicating the state of the hasIndices flag (d) used with with a regular expression.
     * Default is false. Read-only.
     */
    readonly hasIndices: boolean;
}
`;
ba["lib.es2022.sharedmemory.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface Atomics {
    /**
     * A non-blocking, asynchronous version of wait which is usable on the main thread.
     * Waits asynchronously on a shared memory location and returns a Promise
     * @param typedArray A shared Int32Array or BigInt64Array.
     * @param index The position in the typedArray to wait on.
     * @param value The expected value to test.
     * @param [timeout] The expected value to test.
     */
    waitAsync(typedArray: Int32Array, index: number, value: number, timeout?: number): { async: false, value: "not-equal" | "timed-out" } | { async: true, value: Promise<"ok" | "timed-out"> };

    /**
     * A non-blocking, asynchronous version of wait which is usable on the main thread.
     * Waits asynchronously on a shared memory location and returns a Promise
     * @param typedArray A shared Int32Array or BigInt64Array.
     * @param index The position in the typedArray to wait on.
     * @param value The expected value to test.
     * @param [timeout] The expected value to test.
     */
    waitAsync(typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): { async: false, value: "not-equal" | "timed-out" } | { async: true, value: Promise<"ok" | "timed-out"> };
}
`;
ba["lib.es2022.string.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface String {
    /**
     * Returns a new String consisting of the single UTF-16 code unit located at the specified index.
     * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.
     */
    at(index: number): string | undefined;
}
`;
ba["lib.es2023.array.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

interface Array<T> {
    /**
     * Returns the value of the last element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate findLast calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found, findLast
     * immediately returns that element value. Otherwise, findLast returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLast<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S | undefined;
    findLast(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T | undefined;

    /**
     * Returns the index of the last element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate findLastIndex calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLastIndex(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): number;
}

interface ReadonlyArray<T> {
    /**
     * Returns the value of the last element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate findLast calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found, findLast
     * immediately returns that element value. Otherwise, findLast returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLast<S extends T>(predicate: (value: T, index: number, array: readonly T[]) => value is S, thisArg?: any): S | undefined;
    findLast(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): T | undefined;

    /**
     * Returns the index of the last element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate findLastIndex calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLastIndex(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): number;
}

interface Int8Array {
    /**
     * Returns the value of the last element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate findLast calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found, findLast
     * immediately returns that element value. Otherwise, findLast returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLast<S extends number>(predicate: (value: number, index: number, array: Int8Array) => value is S, thisArg?: any): S | undefined;
    findLast(predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): number | undefined;

    /**
     * Returns the index of the last element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate findLastIndex calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLastIndex(predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): number;
}

interface Uint8Array {
    /**
     * Returns the value of the last element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate findLast calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found, findLast
     * immediately returns that element value. Otherwise, findLast returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLast<S extends number>(predicate: (value: number, index: number, array: Uint8Array) => value is S, thisArg?: any): S | undefined;
    findLast(predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): number | undefined;

    /**
     * Returns the index of the last element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate findLastIndex calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLastIndex(predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): number;
}

interface Uint8ClampedArray {
    /**
     * Returns the value of the last element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate findLast calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found, findLast
     * immediately returns that element value. Otherwise, findLast returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLast<S extends number>(predicate: (value: number, index: number, array: Uint8ClampedArray) => value is S, thisArg?: any): S | undefined;
    findLast(predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): number | undefined;

    /**
     * Returns the index of the last element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate findLastIndex calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLastIndex(predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): number;
}

interface Int16Array {
    /**
     * Returns the value of the last element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate findLast calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found, findLast
     * immediately returns that element value. Otherwise, findLast returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLast<S extends number>(predicate: (value: number, index: number, array: Int16Array) => value is S, thisArg?: any): S | undefined;
    findLast(predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): number | undefined;

    /**
     * Returns the index of the last element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate findLastIndex calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLastIndex(predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): number;
}

interface Uint16Array {
    /**
     * Returns the value of the last element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate findLast calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found, findLast
     * immediately returns that element value. Otherwise, findLast returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLast<S extends number>(predicate: (value: number, index: number, array: Uint16Array) => value is S, thisArg?: any): S | undefined;
    findLast(predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): number | undefined;

    /**
     * Returns the index of the last element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate findLastIndex calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLastIndex(predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): number;
}

interface Int32Array {
    /**
     * Returns the value of the last element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate findLast calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found, findLast
     * immediately returns that element value. Otherwise, findLast returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLast<S extends number>(predicate: (value: number, index: number, array: Int32Array) => value is S, thisArg?: any): S | undefined;
    findLast(predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): number | undefined;

    /**
     * Returns the index of the last element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate findLastIndex calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLastIndex(predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): number;
}

interface Uint32Array {
    /**
     * Returns the value of the last element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate findLast calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found, findLast
     * immediately returns that element value. Otherwise, findLast returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLast<S extends number>(predicate: (value: number, index: number, array: Uint32Array) => value is S, thisArg?: any): S | undefined;
    findLast(predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): number | undefined;

    /**
     * Returns the index of the last element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate findLastIndex calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLastIndex(predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): number;
}

interface Float32Array {
    /**
     * Returns the value of the last element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate findLast calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found, findLast
     * immediately returns that element value. Otherwise, findLast returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLast<S extends number>(predicate: (value: number, index: number, array: Float32Array) => value is S, thisArg?: any): S | undefined;
    findLast(predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): number | undefined;

    /**
     * Returns the index of the last element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate findLastIndex calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLastIndex(predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): number;
}

interface Float64Array {
    /**
     * Returns the value of the last element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate findLast calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found, findLast
     * immediately returns that element value. Otherwise, findLast returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLast<S extends number>(predicate: (value: number, index: number, array: Float64Array) => value is S, thisArg?: any): S | undefined;
    findLast(predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): number | undefined;

    /**
     * Returns the index of the last element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate findLastIndex calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLastIndex(predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): number;
}

interface BigInt64Array {
    /**
     * Returns the value of the last element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate findLast calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found, findLast
     * immediately returns that element value. Otherwise, findLast returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLast<S extends bigint>(predicate: (value: bigint, index: number, array: BigInt64Array) => value is S, thisArg?: any): S | undefined;
    findLast(predicate: (value: bigint, index: number, array: BigInt64Array) => unknown, thisArg?: any): bigint | undefined;

    /**
     * Returns the index of the last element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate findLastIndex calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLastIndex(predicate: (value: bigint, index: number, array: BigInt64Array) => unknown, thisArg?: any): number;
}

interface BigUint64Array {
    /**
     * Returns the value of the last element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate findLast calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found, findLast
     * immediately returns that element value. Otherwise, findLast returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLast<S extends bigint>(predicate: (value: bigint, index: number, array: BigUint64Array) => value is S, thisArg?: any): S | undefined;
    findLast(predicate: (value: bigint, index: number, array: BigUint64Array) => unknown, thisArg?: any): bigint | undefined;

    /**
     * Returns the index of the last element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate findLastIndex calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findLastIndex(predicate: (value: bigint, index: number, array: BigUint64Array) => unknown, thisArg?: any): number;
}
`;
ba["lib.es2023.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2022" />
/// <reference lib="es2023.array" />
`;
ba["lib.es2023.full.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2023" />
/// <reference lib="dom" />
/// <reference lib="webworker.importscripts" />
/// <reference lib="scripthost" />
/// <reference lib="dom.iterable" />
`;
ba["lib.es5.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="decorators" />
/// <reference lib="decorators.legacy" />

/////////////////////////////
/// ECMAScript APIs
/////////////////////////////

declare var NaN: number;
declare var Infinity: number;

/**
 * Evaluates JavaScript code and executes it.
 * @param x A String value that contains valid JavaScript code.
 */
declare function eval(x: string): any;

/**
 * Converts a string to an integer.
 * @param string A string to convert into a number.
 * @param radix A value between 2 and 36 that specifies the base of the number in \`string\`.
 * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.
 * All other strings are considered decimal.
 */
declare function parseInt(string: string, radix?: number): number;

/**
 * Converts a string to a floating-point number.
 * @param string A string that contains a floating-point number.
 */
declare function parseFloat(string: string): number;

/**
 * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).
 * @param number A numeric value.
 */
declare function isNaN(number: number): boolean;

/**
 * Determines whether a supplied number is finite.
 * @param number Any numeric value.
 */
declare function isFinite(number: number): boolean;

/**
 * Gets the unencoded version of an encoded Uniform Resource Identifier (URI).
 * @param encodedURI A value representing an encoded URI.
 */
declare function decodeURI(encodedURI: string): string;

/**
 * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).
 * @param encodedURIComponent A value representing an encoded URI component.
 */
declare function decodeURIComponent(encodedURIComponent: string): string;

/**
 * Encodes a text string as a valid Uniform Resource Identifier (URI)
 * @param uri A value representing an unencoded URI.
 */
declare function encodeURI(uri: string): string;

/**
 * Encodes a text string as a valid component of a Uniform Resource Identifier (URI).
 * @param uriComponent A value representing an unencoded URI component.
 */
declare function encodeURIComponent(uriComponent: string | number | boolean): string;

/**
 * Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.
 * @deprecated A legacy feature for browser compatibility
 * @param string A string value
 */
declare function escape(string: string): string;

/**
 * Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.
 * @deprecated A legacy feature for browser compatibility
 * @param string A string value
 */
declare function unescape(string: string): string;

interface Symbol {
    /** Returns a string representation of an object. */
    toString(): string;

    /** Returns the primitive value of the specified object. */
    valueOf(): symbol;
}

declare type PropertyKey = string | number | symbol;

interface PropertyDescriptor {
    configurable?: boolean;
    enumerable?: boolean;
    value?: any;
    writable?: boolean;
    get?(): any;
    set?(v: any): void;
}

interface PropertyDescriptorMap {
    [key: PropertyKey]: PropertyDescriptor;
}

interface Object {
    /** The initial value of Object.prototype.constructor is the standard built-in Object constructor. */
    constructor: Function;

    /** Returns a string representation of an object. */
    toString(): string;

    /** Returns a date converted to a string using the current locale. */
    toLocaleString(): string;

    /** Returns the primitive value of the specified object. */
    valueOf(): Object;

    /**
     * Determines whether an object has a property with the specified name.
     * @param v A property name.
     */
    hasOwnProperty(v: PropertyKey): boolean;

    /**
     * Determines whether an object exists in another object's prototype chain.
     * @param v Another object whose prototype chain is to be checked.
     */
    isPrototypeOf(v: Object): boolean;

    /**
     * Determines whether a specified property is enumerable.
     * @param v A property name.
     */
    propertyIsEnumerable(v: PropertyKey): boolean;
}

interface ObjectConstructor {
    new(value?: any): Object;
    (): any;
    (value: any): any;

    /** A reference to the prototype for a class of objects. */
    readonly prototype: Object;

    /**
     * Returns the prototype of an object.
     * @param o The object that references the prototype.
     */
    getPrototypeOf(o: any): any;

    /**
     * Gets the own property descriptor of the specified object.
     * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype.
     * @param o Object that contains the property.
     * @param p Name of the property.
     */
    getOwnPropertyDescriptor(o: any, p: PropertyKey): PropertyDescriptor | undefined;

    /**
     * Returns the names of the own properties of an object. The own properties of an object are those that are defined directly
     * on that object, and are not inherited from the object's prototype. The properties of an object include both fields (objects) and functions.
     * @param o Object that contains the own properties.
     */
    getOwnPropertyNames(o: any): string[];

    /**
     * Creates an object that has the specified prototype or that has null prototype.
     * @param o Object to use as a prototype. May be null.
     */
    create(o: object | null): any;

    /**
     * Creates an object that has the specified prototype, and that optionally contains specified properties.
     * @param o Object to use as a prototype. May be null
     * @param properties JavaScript object that contains one or more property descriptors.
     */
    create(o: object | null, properties: PropertyDescriptorMap & ThisType<any>): any;

    /**
     * Adds a property to an object, or modifies attributes of an existing property.
     * @param o Object on which to add or modify the property. This can be a native JavaScript object (that is, a user-defined object or a built in object) or a DOM object.
     * @param p The property name.
     * @param attributes Descriptor for the property. It can be for a data property or an accessor property.
     */
    defineProperty<T>(o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType<any>): T;

    /**
     * Adds one or more properties to an object, and/or modifies attributes of existing properties.
     * @param o Object on which to add or modify the properties. This can be a native JavaScript object or a DOM object.
     * @param properties JavaScript object that contains one or more descriptor objects. Each descriptor object describes a data property or an accessor property.
     */
    defineProperties<T>(o: T, properties: PropertyDescriptorMap & ThisType<any>): T;

    /**
     * Prevents the modification of attributes of existing properties, and prevents the addition of new properties.
     * @param o Object on which to lock the attributes.
     */
    seal<T>(o: T): T;

    /**
     * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.
     * @param f Object on which to lock the attributes.
     */
    freeze<T extends Function>(f: T): T;

    /**
     * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.
     * @param o Object on which to lock the attributes.
     */
    freeze<T extends {[idx: string]: U | null | undefined | object}, U extends string | bigint | number | boolean | symbol>(o: T): Readonly<T>;

    /**
     * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.
     * @param o Object on which to lock the attributes.
     */
    freeze<T>(o: T): Readonly<T>;

    /**
     * Prevents the addition of new properties to an object.
     * @param o Object to make non-extensible.
     */
    preventExtensions<T>(o: T): T;

    /**
     * Returns true if existing property attributes cannot be modified in an object and new properties cannot be added to the object.
     * @param o Object to test.
     */
    isSealed(o: any): boolean;

    /**
     * Returns true if existing property attributes and values cannot be modified in an object, and new properties cannot be added to the object.
     * @param o Object to test.
     */
    isFrozen(o: any): boolean;

    /**
     * Returns a value that indicates whether new properties can be added to an object.
     * @param o Object to test.
     */
    isExtensible(o: any): boolean;

    /**
     * Returns the names of the enumerable string properties and methods of an object.
     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
     */
    keys(o: object): string[];
}

/**
 * Provides functionality common to all JavaScript objects.
 */
declare var Object: ObjectConstructor;

/**
 * Creates a new function.
 */
interface Function {
    /**
     * Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.
     * @param thisArg The object to be used as the this object.
     * @param argArray A set of arguments to be passed to the function.
     */
    apply(this: Function, thisArg: any, argArray?: any): any;

    /**
     * Calls a method of an object, substituting another object for the current object.
     * @param thisArg The object to be used as the current object.
     * @param argArray A list of arguments to be passed to the method.
     */
    call(this: Function, thisArg: any, ...argArray: any[]): any;

    /**
     * For a given function, creates a bound function that has the same body as the original function.
     * The this object of the bound function is associated with the specified object, and has the specified initial parameters.
     * @param thisArg An object to which the this keyword can refer inside the new function.
     * @param argArray A list of arguments to be passed to the new function.
     */
    bind(this: Function, thisArg: any, ...argArray: any[]): any;

    /** Returns a string representation of a function. */
    toString(): string;

    prototype: any;
    readonly length: number;

    // Non-standard extensions
    arguments: any;
    caller: Function;
}

interface FunctionConstructor {
    /**
     * Creates a new function.
     * @param args A list of arguments the function accepts.
     */
    new(...args: string[]): Function;
    (...args: string[]): Function;
    readonly prototype: Function;
}

declare var Function: FunctionConstructor;

/**
 * Extracts the type of the 'this' parameter of a function type, or 'unknown' if the function type has no 'this' parameter.
 */
type ThisParameterType<T> = T extends (this: infer U, ...args: never) => any ? U : unknown;

/**
 * Removes the 'this' parameter from a function type.
 */
type OmitThisParameter<T> = unknown extends ThisParameterType<T> ? T : T extends (...args: infer A) => infer R ? (...args: A) => R : T;

interface CallableFunction extends Function {
    /**
     * Calls the function with the specified object as the this value and the elements of specified array as the arguments.
     * @param thisArg The object to be used as the this object.
     * @param args An array of argument values to be passed to the function.
     */
    apply<T, R>(this: (this: T) => R, thisArg: T): R;
    apply<T, A extends any[], R>(this: (this: T, ...args: A) => R, thisArg: T, args: A): R;

    /**
     * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.
     * @param thisArg The object to be used as the this object.
     * @param args Argument values to be passed to the function.
     */
    call<T, A extends any[], R>(this: (this: T, ...args: A) => R, thisArg: T, ...args: A): R;

    /**
     * For a given function, creates a bound function that has the same body as the original function.
     * The this object of the bound function is associated with the specified object, and has the specified initial parameters.
     * @param thisArg The object to be used as the this object.
     * @param args Arguments to bind to the parameters of the function.
     */
    bind<T>(this: T, thisArg: ThisParameterType<T>): OmitThisParameter<T>;
    bind<T, A0, A extends any[], R>(this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R;
    bind<T, A0, A1, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R;
    bind<T, A0, A1, A2, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R;
    bind<T, A0, A1, A2, A3, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R;
    bind<T, AX, R>(this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R;
}

interface NewableFunction extends Function {
    /**
     * Calls the function with the specified object as the this value and the elements of specified array as the arguments.
     * @param thisArg The object to be used as the this object.
     * @param args An array of argument values to be passed to the function.
     */
    apply<T>(this: new () => T, thisArg: T): void;
    apply<T, A extends any[]>(this: new (...args: A) => T, thisArg: T, args: A): void;

    /**
     * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.
     * @param thisArg The object to be used as the this object.
     * @param args Argument values to be passed to the function.
     */
    call<T, A extends any[]>(this: new (...args: A) => T, thisArg: T, ...args: A): void;

    /**
     * For a given function, creates a bound function that has the same body as the original function.
     * The this object of the bound function is associated with the specified object, and has the specified initial parameters.
     * @param thisArg The object to be used as the this object.
     * @param args Arguments to bind to the parameters of the function.
     */
    bind<T>(this: T, thisArg: any): T;
    bind<A0, A extends any[], R>(this: new (arg0: A0, ...args: A) => R, thisArg: any, arg0: A0): new (...args: A) => R;
    bind<A0, A1, A extends any[], R>(this: new (arg0: A0, arg1: A1, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1): new (...args: A) => R;
    bind<A0, A1, A2, A extends any[], R>(this: new (arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1, arg2: A2): new (...args: A) => R;
    bind<A0, A1, A2, A3, A extends any[], R>(this: new (arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1, arg2: A2, arg3: A3): new (...args: A) => R;
    bind<AX, R>(this: new (...args: AX[]) => R, thisArg: any, ...args: AX[]): new (...args: AX[]) => R;
}

interface IArguments {
    [index: number]: any;
    length: number;
    callee: Function;
}

interface String {
    /** Returns a string representation of a string. */
    toString(): string;

    /**
     * Returns the character at the specified index.
     * @param pos The zero-based index of the desired character.
     */
    charAt(pos: number): string;

    /**
     * Returns the Unicode value of the character at the specified location.
     * @param index The zero-based index of the desired character. If there is no character at the specified index, NaN is returned.
     */
    charCodeAt(index: number): number;

    /**
     * Returns a string that contains the concatenation of two or more strings.
     * @param strings The strings to append to the end of the string.
     */
    concat(...strings: string[]): string;

    /**
     * Returns the position of the first occurrence of a substring.
     * @param searchString The substring to search for in the string
     * @param position The index at which to begin searching the String object. If omitted, search starts at the beginning of the string.
     */
    indexOf(searchString: string, position?: number): number;

    /**
     * Returns the last occurrence of a substring in the string.
     * @param searchString The substring to search for.
     * @param position The index at which to begin searching. If omitted, the search begins at the end of the string.
     */
    lastIndexOf(searchString: string, position?: number): number;

    /**
     * Determines whether two strings are equivalent in the current locale.
     * @param that String to compare to target string
     */
    localeCompare(that: string): number;

    /**
     * Matches a string with a regular expression, and returns an array containing the results of that search.
     * @param regexp A variable name or string literal containing the regular expression pattern and flags.
     */
    match(regexp: string | RegExp): RegExpMatchArray | null;

    /**
     * Replaces text in a string, using a regular expression or search string.
     * @param searchValue A string or regular expression to search for.
     * @param replaceValue A string containing the text to replace. When the {@linkcode searchValue} is a \`RegExp\`, all matches are replaced if the \`g\` flag is set (or only those matches at the beginning, if the \`y\` flag is also present). Otherwise, only the first match of {@linkcode searchValue} is replaced.
     */
    replace(searchValue: string | RegExp, replaceValue: string): string;

    /**
     * Replaces text in a string, using a regular expression or search string.
     * @param searchValue A string to search for.
     * @param replacer A function that returns the replacement text.
     */
    replace(searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;

    /**
     * Finds the first substring match in a regular expression search.
     * @param regexp The regular expression pattern and applicable flags.
     */
    search(regexp: string | RegExp): number;

    /**
     * Returns a section of a string.
     * @param start The index to the beginning of the specified portion of stringObj.
     * @param end The index to the end of the specified portion of stringObj. The substring includes the characters up to, but not including, the character indicated by end.
     * If this value is not specified, the substring continues to the end of stringObj.
     */
    slice(start?: number, end?: number): string;

    /**
     * Split a string into substrings using the specified separator and return them as an array.
     * @param separator A string that identifies character or characters to use in separating the string. If omitted, a single-element array containing the entire string is returned.
     * @param limit A value used to limit the number of elements returned in the array.
     */
    split(separator: string | RegExp, limit?: number): string[];

    /**
     * Returns the substring at the specified location within a String object.
     * @param start The zero-based index number indicating the beginning of the substring.
     * @param end Zero-based index number indicating the end of the substring. The substring includes the characters up to, but not including, the character indicated by end.
     * If end is omitted, the characters from start through the end of the original string are returned.
     */
    substring(start: number, end?: number): string;

    /** Converts all the alphabetic characters in a string to lowercase. */
    toLowerCase(): string;

    /** Converts all alphabetic characters to lowercase, taking into account the host environment's current locale. */
    toLocaleLowerCase(locales?: string | string[]): string;

    /** Converts all the alphabetic characters in a string to uppercase. */
    toUpperCase(): string;

    /** Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment's current locale. */
    toLocaleUpperCase(locales?: string | string[]): string;

    /** Removes the leading and trailing white space and line terminator characters from a string. */
    trim(): string;

    /** Returns the length of a String object. */
    readonly length: number;

    // IE extensions
    /**
     * Gets a substring beginning at the specified location and having the specified length.
     * @deprecated A legacy feature for browser compatibility
     * @param from The starting position of the desired substring. The index of the first character in the string is zero.
     * @param length The number of characters to include in the returned substring.
     */
    substr(from: number, length?: number): string;

    /** Returns the primitive value of the specified object. */
    valueOf(): string;

    readonly [index: number]: string;
}

interface StringConstructor {
    new(value?: any): String;
    (value?: any): string;
    readonly prototype: String;
    fromCharCode(...codes: number[]): string;
}

/**
 * Allows manipulation and formatting of text strings and determination and location of substrings within strings.
 */
declare var String: StringConstructor;

interface Boolean {
    /** Returns the primitive value of the specified object. */
    valueOf(): boolean;
}

interface BooleanConstructor {
    new(value?: any): Boolean;
    <T>(value?: T): boolean;
    readonly prototype: Boolean;
}

declare var Boolean: BooleanConstructor;

interface Number {
    /**
     * Returns a string representation of an object.
     * @param radix Specifies a radix for converting numeric values to strings. This value is only used for numbers.
     */
    toString(radix?: number): string;

    /**
     * Returns a string representing a number in fixed-point notation.
     * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.
     */
    toFixed(fractionDigits?: number): string;

    /**
     * Returns a string containing a number represented in exponential notation.
     * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.
     */
    toExponential(fractionDigits?: number): string;

    /**
     * Returns a string containing a number represented either in exponential or fixed-point notation with a specified number of digits.
     * @param precision Number of significant digits. Must be in the range 1 - 21, inclusive.
     */
    toPrecision(precision?: number): string;

    /** Returns the primitive value of the specified object. */
    valueOf(): number;
}

interface NumberConstructor {
    new(value?: any): Number;
    (value?: any): number;
    readonly prototype: Number;

    /** The largest number that can be represented in JavaScript. Equal to approximately 1.79E+308. */
    readonly MAX_VALUE: number;

    /** The closest number to zero that can be represented in JavaScript. Equal to approximately 5.00E-324. */
    readonly MIN_VALUE: number;

    /**
     * A value that is not a number.
     * In equality comparisons, NaN does not equal any value, including itself. To test whether a value is equivalent to NaN, use the isNaN function.
     */
    readonly NaN: number;

    /**
     * A value that is less than the largest negative number that can be represented in JavaScript.
     * JavaScript displays NEGATIVE_INFINITY values as -infinity.
     */
    readonly NEGATIVE_INFINITY: number;

    /**
     * A value greater than the largest number that can be represented in JavaScript.
     * JavaScript displays POSITIVE_INFINITY values as infinity.
     */
    readonly POSITIVE_INFINITY: number;
}

/** An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers. */
declare var Number: NumberConstructor;

interface TemplateStringsArray extends ReadonlyArray<string> {
    readonly raw: readonly string[];
}

/**
 * The type of \`import.meta\`.
 *
 * If you need to declare that a given property exists on \`import.meta\`,
 * this type may be augmented via interface merging.
 */
interface ImportMeta {
}

/**
 * The type for the optional second argument to \`import()\`.
 *
 * If your host environment supports additional options, this type may be
 * augmented via interface merging.
 */
interface ImportCallOptions {
    assert?: ImportAssertions;
}

/**
 * The type for the \`assert\` property of the optional second argument to \`import()\`.
 */
interface ImportAssertions {
    [key: string]: string;
}

interface Math {
    /** The mathematical constant e. This is Euler's number, the base of natural logarithms. */
    readonly E: number;
    /** The natural logarithm of 10. */
    readonly LN10: number;
    /** The natural logarithm of 2. */
    readonly LN2: number;
    /** The base-2 logarithm of e. */
    readonly LOG2E: number;
    /** The base-10 logarithm of e. */
    readonly LOG10E: number;
    /** Pi. This is the ratio of the circumference of a circle to its diameter. */
    readonly PI: number;
    /** The square root of 0.5, or, equivalently, one divided by the square root of 2. */
    readonly SQRT1_2: number;
    /** The square root of 2. */
    readonly SQRT2: number;
    /**
     * Returns the absolute value of a number (the value without regard to whether it is positive or negative).
     * For example, the absolute value of -5 is the same as the absolute value of 5.
     * @param x A numeric expression for which the absolute value is needed.
     */
    abs(x: number): number;
    /**
     * Returns the arc cosine (or inverse cosine) of a number.
     * @param x A numeric expression.
     */
    acos(x: number): number;
    /**
     * Returns the arcsine of a number.
     * @param x A numeric expression.
     */
    asin(x: number): number;
    /**
     * Returns the arctangent of a number.
     * @param x A numeric expression for which the arctangent is needed.
     */
    atan(x: number): number;
    /**
     * Returns the angle (in radians) from the X axis to a point.
     * @param y A numeric expression representing the cartesian y-coordinate.
     * @param x A numeric expression representing the cartesian x-coordinate.
     */
    atan2(y: number, x: number): number;
    /**
     * Returns the smallest integer greater than or equal to its numeric argument.
     * @param x A numeric expression.
     */
    ceil(x: number): number;
    /**
     * Returns the cosine of a number.
     * @param x A numeric expression that contains an angle measured in radians.
     */
    cos(x: number): number;
    /**
     * Returns e (the base of natural logarithms) raised to a power.
     * @param x A numeric expression representing the power of e.
     */
    exp(x: number): number;
    /**
     * Returns the greatest integer less than or equal to its numeric argument.
     * @param x A numeric expression.
     */
    floor(x: number): number;
    /**
     * Returns the natural logarithm (base e) of a number.
     * @param x A numeric expression.
     */
    log(x: number): number;
    /**
     * Returns the larger of a set of supplied numeric expressions.
     * @param values Numeric expressions to be evaluated.
     */
    max(...values: number[]): number;
    /**
     * Returns the smaller of a set of supplied numeric expressions.
     * @param values Numeric expressions to be evaluated.
     */
    min(...values: number[]): number;
    /**
     * Returns the value of a base expression taken to a specified power.
     * @param x The base value of the expression.
     * @param y The exponent value of the expression.
     */
    pow(x: number, y: number): number;
    /** Returns a pseudorandom number between 0 and 1. */
    random(): number;
    /**
     * Returns a supplied numeric expression rounded to the nearest integer.
     * @param x The value to be rounded to the nearest integer.
     */
    round(x: number): number;
    /**
     * Returns the sine of a number.
     * @param x A numeric expression that contains an angle measured in radians.
     */
    sin(x: number): number;
    /**
     * Returns the square root of a number.
     * @param x A numeric expression.
     */
    sqrt(x: number): number;
    /**
     * Returns the tangent of a number.
     * @param x A numeric expression that contains an angle measured in radians.
     */
    tan(x: number): number;
}
/** An intrinsic object that provides basic mathematics functionality and constants. */
declare var Math: Math;

/** Enables basic storage and retrieval of dates and times. */
interface Date {
    /** Returns a string representation of a date. The format of the string depends on the locale. */
    toString(): string;
    /** Returns a date as a string value. */
    toDateString(): string;
    /** Returns a time as a string value. */
    toTimeString(): string;
    /** Returns a value as a string value appropriate to the host environment's current locale. */
    toLocaleString(): string;
    /** Returns a date as a string value appropriate to the host environment's current locale. */
    toLocaleDateString(): string;
    /** Returns a time as a string value appropriate to the host environment's current locale. */
    toLocaleTimeString(): string;
    /** Returns the stored time value in milliseconds since midnight, January 1, 1970 UTC. */
    valueOf(): number;
    /** Returns the stored time value in milliseconds since midnight, January 1, 1970 UTC. */
    getTime(): number;
    /** Gets the year, using local time. */
    getFullYear(): number;
    /** Gets the year using Universal Coordinated Time (UTC). */
    getUTCFullYear(): number;
    /** Gets the month, using local time. */
    getMonth(): number;
    /** Gets the month of a Date object using Universal Coordinated Time (UTC). */
    getUTCMonth(): number;
    /** Gets the day-of-the-month, using local time. */
    getDate(): number;
    /** Gets the day-of-the-month, using Universal Coordinated Time (UTC). */
    getUTCDate(): number;
    /** Gets the day of the week, using local time. */
    getDay(): number;
    /** Gets the day of the week using Universal Coordinated Time (UTC). */
    getUTCDay(): number;
    /** Gets the hours in a date, using local time. */
    getHours(): number;
    /** Gets the hours value in a Date object using Universal Coordinated Time (UTC). */
    getUTCHours(): number;
    /** Gets the minutes of a Date object, using local time. */
    getMinutes(): number;
    /** Gets the minutes of a Date object using Universal Coordinated Time (UTC). */
    getUTCMinutes(): number;
    /** Gets the seconds of a Date object, using local time. */
    getSeconds(): number;
    /** Gets the seconds of a Date object using Universal Coordinated Time (UTC). */
    getUTCSeconds(): number;
    /** Gets the milliseconds of a Date, using local time. */
    getMilliseconds(): number;
    /** Gets the milliseconds of a Date object using Universal Coordinated Time (UTC). */
    getUTCMilliseconds(): number;
    /** Gets the difference in minutes between the time on the local computer and Universal Coordinated Time (UTC). */
    getTimezoneOffset(): number;
    /**
     * Sets the date and time value in the Date object.
     * @param time A numeric value representing the number of elapsed milliseconds since midnight, January 1, 1970 GMT.
     */
    setTime(time: number): number;
    /**
     * Sets the milliseconds value in the Date object using local time.
     * @param ms A numeric value equal to the millisecond value.
     */
    setMilliseconds(ms: number): number;
    /**
     * Sets the milliseconds value in the Date object using Universal Coordinated Time (UTC).
     * @param ms A numeric value equal to the millisecond value.
     */
    setUTCMilliseconds(ms: number): number;

    /**
     * Sets the seconds value in the Date object using local time.
     * @param sec A numeric value equal to the seconds value.
     * @param ms A numeric value equal to the milliseconds value.
     */
    setSeconds(sec: number, ms?: number): number;
    /**
     * Sets the seconds value in the Date object using Universal Coordinated Time (UTC).
     * @param sec A numeric value equal to the seconds value.
     * @param ms A numeric value equal to the milliseconds value.
     */
    setUTCSeconds(sec: number, ms?: number): number;
    /**
     * Sets the minutes value in the Date object using local time.
     * @param min A numeric value equal to the minutes value.
     * @param sec A numeric value equal to the seconds value.
     * @param ms A numeric value equal to the milliseconds value.
     */
    setMinutes(min: number, sec?: number, ms?: number): number;
    /**
     * Sets the minutes value in the Date object using Universal Coordinated Time (UTC).
     * @param min A numeric value equal to the minutes value.
     * @param sec A numeric value equal to the seconds value.
     * @param ms A numeric value equal to the milliseconds value.
     */
    setUTCMinutes(min: number, sec?: number, ms?: number): number;
    /**
     * Sets the hour value in the Date object using local time.
     * @param hours A numeric value equal to the hours value.
     * @param min A numeric value equal to the minutes value.
     * @param sec A numeric value equal to the seconds value.
     * @param ms A numeric value equal to the milliseconds value.
     */
    setHours(hours: number, min?: number, sec?: number, ms?: number): number;
    /**
     * Sets the hours value in the Date object using Universal Coordinated Time (UTC).
     * @param hours A numeric value equal to the hours value.
     * @param min A numeric value equal to the minutes value.
     * @param sec A numeric value equal to the seconds value.
     * @param ms A numeric value equal to the milliseconds value.
     */
    setUTCHours(hours: number, min?: number, sec?: number, ms?: number): number;
    /**
     * Sets the numeric day-of-the-month value of the Date object using local time.
     * @param date A numeric value equal to the day of the month.
     */
    setDate(date: number): number;
    /**
     * Sets the numeric day of the month in the Date object using Universal Coordinated Time (UTC).
     * @param date A numeric value equal to the day of the month.
     */
    setUTCDate(date: number): number;
    /**
     * Sets the month value in the Date object using local time.
     * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.
     * @param date A numeric value representing the day of the month. If this value is not supplied, the value from a call to the getDate method is used.
     */
    setMonth(month: number, date?: number): number;
    /**
     * Sets the month value in the Date object using Universal Coordinated Time (UTC).
     * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.
     * @param date A numeric value representing the day of the month. If it is not supplied, the value from a call to the getUTCDate method is used.
     */
    setUTCMonth(month: number, date?: number): number;
    /**
     * Sets the year of the Date object using local time.
     * @param year A numeric value for the year.
     * @param month A zero-based numeric value for the month (0 for January, 11 for December). Must be specified if numDate is specified.
     * @param date A numeric value equal for the day of the month.
     */
    setFullYear(year: number, month?: number, date?: number): number;
    /**
     * Sets the year value in the Date object using Universal Coordinated Time (UTC).
     * @param year A numeric value equal to the year.
     * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively. Must be supplied if numDate is supplied.
     * @param date A numeric value equal to the day of the month.
     */
    setUTCFullYear(year: number, month?: number, date?: number): number;
    /** Returns a date converted to a string using Universal Coordinated Time (UTC). */
    toUTCString(): string;
    /** Returns a date as a string value in ISO format. */
    toISOString(): string;
    /** Used by the JSON.stringify method to enable the transformation of an object's data for JavaScript Object Notation (JSON) serialization. */
    toJSON(key?: any): string;
}

interface DateConstructor {
    new(): Date;
    new(value: number | string): Date;
    /**
     * Creates a new Date.
     * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.
     * @param monthIndex The month as a number between 0 and 11 (January to December).
     * @param date The date as a number between 1 and 31.
     * @param hours Must be supplied if minutes is supplied. A number from 0 to 23 (midnight to 11pm) that specifies the hour.
     * @param minutes Must be supplied if seconds is supplied. A number from 0 to 59 that specifies the minutes.
     * @param seconds Must be supplied if milliseconds is supplied. A number from 0 to 59 that specifies the seconds.
     * @param ms A number from 0 to 999 that specifies the milliseconds.
     */
    new(year: number, monthIndex: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date;
    (): string;
    readonly prototype: Date;
    /**
     * Parses a string containing a date, and returns the number of milliseconds between that date and midnight, January 1, 1970.
     * @param s A date string
     */
    parse(s: string): number;
    /**
     * Returns the number of milliseconds between midnight, January 1, 1970 Universal Coordinated Time (UTC) (or GMT) and the specified date.
     * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.
     * @param monthIndex The month as a number between 0 and 11 (January to December).
     * @param date The date as a number between 1 and 31.
     * @param hours Must be supplied if minutes is supplied. A number from 0 to 23 (midnight to 11pm) that specifies the hour.
     * @param minutes Must be supplied if seconds is supplied. A number from 0 to 59 that specifies the minutes.
     * @param seconds Must be supplied if milliseconds is supplied. A number from 0 to 59 that specifies the seconds.
     * @param ms A number from 0 to 999 that specifies the milliseconds.
     */
    UTC(year: number, monthIndex: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number;
    /** Returns the number of milliseconds elapsed since midnight, January 1, 1970 Universal Coordinated Time (UTC). */
    now(): number;
}

declare var Date: DateConstructor;

interface RegExpMatchArray extends Array<string> {
    /**
     * The index of the search at which the result was found.
     */
    index?: number;
    /**
     * A copy of the search string.
     */
    input?: string;
    /**
     * The first match. This will always be present because \`null\` will be returned if there are no matches.
     */
    0: string;
}

interface RegExpExecArray extends Array<string> {
    /**
     * The index of the search at which the result was found.
     */
    index: number;
    /**
     * A copy of the search string.
     */
    input: string;
    /**
     * The first match. This will always be present because \`null\` will be returned if there are no matches.
     */
    0: string;
}

interface RegExp {
    /**
     * Executes a search on a string using a regular expression pattern, and returns an array containing the results of that search.
     * @param string The String object or string literal on which to perform the search.
     */
    exec(string: string): RegExpExecArray | null;

    /**
     * Returns a Boolean value that indicates whether or not a pattern exists in a searched string.
     * @param string String on which to perform the search.
     */
    test(string: string): boolean;

    /** Returns a copy of the text of the regular expression pattern. Read-only. The regExp argument is a Regular expression object. It can be a variable name or a literal. */
    readonly source: string;

    /** Returns a Boolean value indicating the state of the global flag (g) used with a regular expression. Default is false. Read-only. */
    readonly global: boolean;

    /** Returns a Boolean value indicating the state of the ignoreCase flag (i) used with a regular expression. Default is false. Read-only. */
    readonly ignoreCase: boolean;

    /** Returns a Boolean value indicating the state of the multiline flag (m) used with a regular expression. Default is false. Read-only. */
    readonly multiline: boolean;

    lastIndex: number;

    // Non-standard extensions
    /** @deprecated A legacy feature for browser compatibility */
    compile(pattern: string, flags?: string): this;
}

interface RegExpConstructor {
    new(pattern: RegExp | string): RegExp;
    new(pattern: string, flags?: string): RegExp;
    (pattern: RegExp | string): RegExp;
    (pattern: string, flags?: string): RegExp;
    readonly prototype: RegExp;

    // Non-standard extensions
    /** @deprecated A legacy feature for browser compatibility */
    $1: string;
    /** @deprecated A legacy feature for browser compatibility */
    $2: string;
    /** @deprecated A legacy feature for browser compatibility */
    $3: string;
    /** @deprecated A legacy feature for browser compatibility */
    $4: string;
    /** @deprecated A legacy feature for browser compatibility */
    $5: string;
    /** @deprecated A legacy feature for browser compatibility */
    $6: string;
    /** @deprecated A legacy feature for browser compatibility */
    $7: string;
    /** @deprecated A legacy feature for browser compatibility */
    $8: string;
    /** @deprecated A legacy feature for browser compatibility */
    $9: string;
    /** @deprecated A legacy feature for browser compatibility */
    input: string;
    /** @deprecated A legacy feature for browser compatibility */
    $_: string;
    /** @deprecated A legacy feature for browser compatibility */
    lastMatch: string;
    /** @deprecated A legacy feature for browser compatibility */
    "$&": string;
    /** @deprecated A legacy feature for browser compatibility */
    lastParen: string;
    /** @deprecated A legacy feature for browser compatibility */
    "$+": string;
    /** @deprecated A legacy feature for browser compatibility */
    leftContext: string;
    /** @deprecated A legacy feature for browser compatibility */
    "$\`": string;
    /** @deprecated A legacy feature for browser compatibility */
    rightContext: string;
    /** @deprecated A legacy feature for browser compatibility */
    "$'": string;
}

declare var RegExp: RegExpConstructor;

interface Error {
    name: string;
    message: string;
    stack?: string;
}

interface ErrorConstructor {
    new(message?: string): Error;
    (message?: string): Error;
    readonly prototype: Error;
}

declare var Error: ErrorConstructor;

interface EvalError extends Error {
}

interface EvalErrorConstructor extends ErrorConstructor {
    new(message?: string): EvalError;
    (message?: string): EvalError;
    readonly prototype: EvalError;
}

declare var EvalError: EvalErrorConstructor;

interface RangeError extends Error {
}

interface RangeErrorConstructor extends ErrorConstructor {
    new(message?: string): RangeError;
    (message?: string): RangeError;
    readonly prototype: RangeError;
}

declare var RangeError: RangeErrorConstructor;

interface ReferenceError extends Error {
}

interface ReferenceErrorConstructor extends ErrorConstructor {
    new(message?: string): ReferenceError;
    (message?: string): ReferenceError;
    readonly prototype: ReferenceError;
}

declare var ReferenceError: ReferenceErrorConstructor;

interface SyntaxError extends Error {
}

interface SyntaxErrorConstructor extends ErrorConstructor {
    new(message?: string): SyntaxError;
    (message?: string): SyntaxError;
    readonly prototype: SyntaxError;
}

declare var SyntaxError: SyntaxErrorConstructor;

interface TypeError extends Error {
}

interface TypeErrorConstructor extends ErrorConstructor {
    new(message?: string): TypeError;
    (message?: string): TypeError;
    readonly prototype: TypeError;
}

declare var TypeError: TypeErrorConstructor;

interface URIError extends Error {
}

interface URIErrorConstructor extends ErrorConstructor {
    new(message?: string): URIError;
    (message?: string): URIError;
    readonly prototype: URIError;
}

declare var URIError: URIErrorConstructor;

interface JSON {
    /**
     * Converts a JavaScript Object Notation (JSON) string into an object.
     * @param text A valid JSON string.
     * @param reviver A function that transforms the results. This function is called for each member of the object.
     * If a member contains nested objects, the nested objects are transformed before the parent object is.
     */
    parse(text: string, reviver?: (this: any, key: string, value: any) => any): any;
    /**
     * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.
     * @param value A JavaScript value, usually an object or array, to be converted.
     * @param replacer A function that transforms the results.
     * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
     */
    stringify(value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;
    /**
     * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.
     * @param value A JavaScript value, usually an object or array, to be converted.
     * @param replacer An array of strings and numbers that acts as an approved list for selecting the object properties that will be stringified.
     * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
     */
    stringify(value: any, replacer?: (number | string)[] | null, space?: string | number): string;
}

/**
 * An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.
 */
declare var JSON: JSON;


/////////////////////////////
/// ECMAScript Array API (specially handled by compiler)
/////////////////////////////

interface ReadonlyArray<T> {
    /**
     * Gets the length of the array. This is a number one higher than the highest element defined in an array.
     */
    readonly length: number;
    /**
     * Returns a string representation of an array.
     */
    toString(): string;
    /**
     * Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.
     */
    toLocaleString(): string;
    /**
     * Combines two or more arrays.
     * @param items Additional items to add to the end of array1.
     */
    concat(...items: ConcatArray<T>[]): T[];
    /**
     * Combines two or more arrays.
     * @param items Additional items to add to the end of array1.
     */
    concat(...items: (T | ConcatArray<T>)[]): T[];
    /**
     * Adds all the elements of an array separated by the specified separator string.
     * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.
     */
    join(separator?: string): string;
    /**
     * Returns a section of an array.
     * @param start The beginning of the specified portion of the array.
     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.
     */
    slice(start?: number, end?: number): T[];
    /**
     * Returns the index of the first occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.
     */
    indexOf(searchElement: T, fromIndex?: number): number;
    /**
     * Returns the index of the last occurrence of a specified value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.
     */
    lastIndexOf(searchElement: T, fromIndex?: number): number;
    /**
     * Determines whether all the members of an array satisfy the specified test.
     * @param predicate A function that accepts up to three arguments. The every method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value false, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    every<S extends T>(predicate: (value: T, index: number, array: readonly T[]) => value is S, thisArg?: any): this is readonly S[];
    /**
     * Determines whether all the members of an array satisfy the specified test.
     * @param predicate A function that accepts up to three arguments. The every method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value false, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    every(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;
    /**
     * Determines whether the specified callback function returns true for any element of an array.
     * @param predicate A function that accepts up to three arguments. The some method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value true, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    some(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;
    /**
     * Performs the specified action for each element in an array.
     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.
     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
     */
    forEach(callbackfn: (value: T, index: number, array: readonly T[]) => void, thisArg?: any): void;
    /**
     * Calls a defined callback function on each element of an array, and returns an array that contains the results.
     * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
     */
    map<U>(callbackfn: (value: T, index: number, array: readonly T[]) => U, thisArg?: any): U[];
    /**
     * Returns the elements of an array that meet the condition specified in a callback function.
     * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.
     */
    filter<S extends T>(predicate: (value: T, index: number, array: readonly T[]) => value is S, thisArg?: any): S[];
    /**
     * Returns the elements of an array that meet the condition specified in a callback function.
     * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.
     */
    filter(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): T[];
    /**
     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
     */
    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;
    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;
    /**
     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
     */
    reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;
    /**
     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
     */
    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;
    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;
    /**
     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
     */
    reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;

    readonly [n: number]: T;
}

interface ConcatArray<T> {
    readonly length: number;
    readonly [n: number]: T;
    join(separator?: string): string;
    slice(start?: number, end?: number): T[];
}

interface Array<T> {
    /**
     * Gets or sets the length of the array. This is a number one higher than the highest index in the array.
     */
    length: number;
    /**
     * Returns a string representation of an array.
     */
    toString(): string;
    /**
     * Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.
     */
    toLocaleString(): string;
    /**
     * Removes the last element from an array and returns it.
     * If the array is empty, undefined is returned and the array is not modified.
     */
    pop(): T | undefined;
    /**
     * Appends new elements to the end of an array, and returns the new length of the array.
     * @param items New elements to add to the array.
     */
    push(...items: T[]): number;
    /**
     * Combines two or more arrays.
     * This method returns a new array without modifying any existing arrays.
     * @param items Additional arrays and/or items to add to the end of the array.
     */
    concat(...items: ConcatArray<T>[]): T[];
    /**
     * Combines two or more arrays.
     * This method returns a new array without modifying any existing arrays.
     * @param items Additional arrays and/or items to add to the end of the array.
     */
    concat(...items: (T | ConcatArray<T>)[]): T[];
    /**
     * Adds all the elements of an array into a string, separated by the specified separator string.
     * @param separator A string used to separate one element of the array from the next in the resulting string. If omitted, the array elements are separated with a comma.
     */
    join(separator?: string): string;
    /**
     * Reverses the elements in an array in place.
     * This method mutates the array and returns a reference to the same array.
     */
    reverse(): T[];
    /**
     * Removes the first element from an array and returns it.
     * If the array is empty, undefined is returned and the array is not modified.
     */
    shift(): T | undefined;
    /**
     * Returns a copy of a section of an array.
     * For both start and end, a negative index can be used to indicate an offset from the end of the array.
     * For example, -2 refers to the second to last element of the array.
     * @param start The beginning index of the specified portion of the array.
     * If start is undefined, then the slice begins at index 0.
     * @param end The end index of the specified portion of the array. This is exclusive of the element at the index 'end'.
     * If end is undefined, then the slice extends to the end of the array.
     */
    slice(start?: number, end?: number): T[];
    /**
     * Sorts an array in place.
     * This method mutates the array and returns a reference to the same array.
     * @param compareFn Function used to determine the order of the elements. It is expected to return
     * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive
     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.
     * \`\`\`ts
     * [11,2,22,1].sort((a, b) => a - b)
     * \`\`\`
     */
    sort(compareFn?: (a: T, b: T) => number): this;
    /**
     * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.
     * @param start The zero-based location in the array from which to start removing elements.
     * @param deleteCount The number of elements to remove.
     * @returns An array containing the elements that were deleted.
     */
    splice(start: number, deleteCount?: number): T[];
    /**
     * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.
     * @param start The zero-based location in the array from which to start removing elements.
     * @param deleteCount The number of elements to remove.
     * @param items Elements to insert into the array in place of the deleted elements.
     * @returns An array containing the elements that were deleted.
     */
    splice(start: number, deleteCount: number, ...items: T[]): T[];
    /**
     * Inserts new elements at the start of an array, and returns the new length of the array.
     * @param items Elements to insert at the start of the array.
     */
    unshift(...items: T[]): number;
    /**
     * Returns the index of the first occurrence of a value in an array, or -1 if it is not present.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.
     */
    indexOf(searchElement: T, fromIndex?: number): number;
    /**
     * Returns the index of the last occurrence of a specified value in an array, or -1 if it is not present.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin searching backward. If fromIndex is omitted, the search starts at the last index in the array.
     */
    lastIndexOf(searchElement: T, fromIndex?: number): number;
    /**
     * Determines whether all the members of an array satisfy the specified test.
     * @param predicate A function that accepts up to three arguments. The every method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value false, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    every<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): this is S[];
    /**
     * Determines whether all the members of an array satisfy the specified test.
     * @param predicate A function that accepts up to three arguments. The every method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value false, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    every(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;
    /**
     * Determines whether the specified callback function returns true for any element of an array.
     * @param predicate A function that accepts up to three arguments. The some method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value true, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    some(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;
    /**
     * Performs the specified action for each element in an array.
     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.
     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
     */
    forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;
    /**
     * Calls a defined callback function on each element of an array, and returns an array that contains the results.
     * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
     */
    map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];
    /**
     * Returns the elements of an array that meet the condition specified in a callback function.
     * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.
     */
    filter<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];
    /**
     * Returns the elements of an array that meet the condition specified in a callback function.
     * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.
     */
    filter(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[];
    /**
     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
     */
    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;
    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;
    /**
     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
     */
    reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;
    /**
     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
     */
    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;
    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;
    /**
     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
     */
    reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;

    [n: number]: T;
}

interface ArrayConstructor {
    new(arrayLength?: number): any[];
    new <T>(arrayLength: number): T[];
    new <T>(...items: T[]): T[];
    (arrayLength?: number): any[];
    <T>(arrayLength: number): T[];
    <T>(...items: T[]): T[];
    isArray(arg: any): arg is any[];
    readonly prototype: any[];
}

declare var Array: ArrayConstructor;

interface TypedPropertyDescriptor<T> {
    enumerable?: boolean;
    configurable?: boolean;
    writable?: boolean;
    value?: T;
    get?: () => T;
    set?: (value: T) => void;
}

declare type PromiseConstructorLike = new <T>(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void) => PromiseLike<T>;

interface PromiseLike<T> {
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;
}

/**
 * Represents the completion of an asynchronous operation
 */
interface Promise<T> {
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;

    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;
}

/**
 * Recursively unwraps the "awaited type" of a type. Non-promise "thenables" should resolve to \`never\`. This emulates the behavior of \`await\`.
 */
type Awaited<T> =
    T extends null | undefined ? T : // special case for \`null | undefined\` when not in \`--strictNullChecks\` mode
        T extends object & { then(onfulfilled: infer F, ...args: infer _): any } ? // \`await\` only unwraps object types with a callable \`then\`. Non-object types are not unwrapped
            F extends ((value: infer V, ...args: infer _) => any) ? // if the argument to \`then\` is callable, extracts the first argument
                Awaited<V> : // recursively unwrap the value
                never : // the argument to \`then\` was not callable
        T; // non-object or non-thenable

interface ArrayLike<T> {
    readonly length: number;
    readonly [n: number]: T;
}

/**
 * Make all properties in T optional
 */
type Partial<T> = {
    [P in keyof T]?: T[P];
};

/**
 * Make all properties in T required
 */
type Required<T> = {
    [P in keyof T]-?: T[P];
};

/**
 * Make all properties in T readonly
 */
type Readonly<T> = {
    readonly [P in keyof T]: T[P];
};

/**
 * From T, pick a set of properties whose keys are in the union K
 */
type Pick<T, K extends keyof T> = {
    [P in K]: T[P];
};

/**
 * Construct a type with a set of properties K of type T
 */
type Record<K extends keyof any, T> = {
    [P in K]: T;
};

/**
 * Exclude from T those types that are assignable to U
 */
type Exclude<T, U> = T extends U ? never : T;

/**
 * Extract from T those types that are assignable to U
 */
type Extract<T, U> = T extends U ? T : never;

/**
 * Construct a type with the properties of T except for those in type K.
 */
type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;

/**
 * Exclude null and undefined from T
 */
type NonNullable<T> = T & {};

/**
 * Obtain the parameters of a function type in a tuple
 */
type Parameters<T extends (...args: any) => any> = T extends (...args: infer P) => any ? P : never;

/**
 * Obtain the parameters of a constructor function type in a tuple
 */
type ConstructorParameters<T extends abstract new (...args: any) => any> = T extends abstract new (...args: infer P) => any ? P : never;

/**
 * Obtain the return type of a function type
 */
type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;

/**
 * Obtain the return type of a constructor function type
 */
type InstanceType<T extends abstract new (...args: any) => any> = T extends abstract new (...args: any) => infer R ? R : any;

/**
 * Convert string literal type to uppercase
 */
type Uppercase<S extends string> = intrinsic;

/**
 * Convert string literal type to lowercase
 */
type Lowercase<S extends string> = intrinsic;

/**
 * Convert first character of string literal type to uppercase
 */
type Capitalize<S extends string> = intrinsic;

/**
 * Convert first character of string literal type to lowercase
 */
type Uncapitalize<S extends string> = intrinsic;

/**
 * Marker for contextual 'this' type
 */
interface ThisType<T> { }

/**
 * Represents a raw buffer of binary data, which is used to store data for the
 * different typed arrays. ArrayBuffers cannot be read from or written to directly,
 * but can be passed to a typed array or DataView Object to interpret the raw
 * buffer as needed.
 */
interface ArrayBuffer {
    /**
     * Read-only. The length of the ArrayBuffer (in bytes).
     */
    readonly byteLength: number;

    /**
     * Returns a section of an ArrayBuffer.
     */
    slice(begin: number, end?: number): ArrayBuffer;
}

/**
 * Allowed ArrayBuffer types for the buffer of an ArrayBufferView and related Typed Arrays.
 */
interface ArrayBufferTypes {
    ArrayBuffer: ArrayBuffer;
}
type ArrayBufferLike = ArrayBufferTypes[keyof ArrayBufferTypes];

interface ArrayBufferConstructor {
    readonly prototype: ArrayBuffer;
    new(byteLength: number): ArrayBuffer;
    isView(arg: any): arg is ArrayBufferView;
}
declare var ArrayBuffer: ArrayBufferConstructor;

interface ArrayBufferView {
    /**
     * The ArrayBuffer instance referenced by the array.
     */
    buffer: ArrayBufferLike;

    /**
     * The length in bytes of the array.
     */
    byteLength: number;

    /**
     * The offset in bytes of the array.
     */
    byteOffset: number;
}

interface DataView {
    readonly buffer: ArrayBuffer;
    readonly byteLength: number;
    readonly byteOffset: number;
    /**
     * Gets the Float32 value at the specified byte offset from the start of the view. There is
     * no alignment constraint; multi-byte values may be fetched from any offset.
     * @param byteOffset The place in the buffer at which the value should be retrieved.
     * @param littleEndian If false or undefined, a big-endian value should be read.
     */
    getFloat32(byteOffset: number, littleEndian?: boolean): number;

    /**
     * Gets the Float64 value at the specified byte offset from the start of the view. There is
     * no alignment constraint; multi-byte values may be fetched from any offset.
     * @param byteOffset The place in the buffer at which the value should be retrieved.
     * @param littleEndian If false or undefined, a big-endian value should be read.
     */
    getFloat64(byteOffset: number, littleEndian?: boolean): number;

    /**
     * Gets the Int8 value at the specified byte offset from the start of the view. There is
     * no alignment constraint; multi-byte values may be fetched from any offset.
     * @param byteOffset The place in the buffer at which the value should be retrieved.
     */
    getInt8(byteOffset: number): number;

    /**
     * Gets the Int16 value at the specified byte offset from the start of the view. There is
     * no alignment constraint; multi-byte values may be fetched from any offset.
     * @param byteOffset The place in the buffer at which the value should be retrieved.
     * @param littleEndian If false or undefined, a big-endian value should be read.
     */
    getInt16(byteOffset: number, littleEndian?: boolean): number;
    /**
     * Gets the Int32 value at the specified byte offset from the start of the view. There is
     * no alignment constraint; multi-byte values may be fetched from any offset.
     * @param byteOffset The place in the buffer at which the value should be retrieved.
     * @param littleEndian If false or undefined, a big-endian value should be read.
     */
    getInt32(byteOffset: number, littleEndian?: boolean): number;

    /**
     * Gets the Uint8 value at the specified byte offset from the start of the view. There is
     * no alignment constraint; multi-byte values may be fetched from any offset.
     * @param byteOffset The place in the buffer at which the value should be retrieved.
     */
    getUint8(byteOffset: number): number;

    /**
     * Gets the Uint16 value at the specified byte offset from the start of the view. There is
     * no alignment constraint; multi-byte values may be fetched from any offset.
     * @param byteOffset The place in the buffer at which the value should be retrieved.
     * @param littleEndian If false or undefined, a big-endian value should be read.
     */
    getUint16(byteOffset: number, littleEndian?: boolean): number;

    /**
     * Gets the Uint32 value at the specified byte offset from the start of the view. There is
     * no alignment constraint; multi-byte values may be fetched from any offset.
     * @param byteOffset The place in the buffer at which the value should be retrieved.
     * @param littleEndian If false or undefined, a big-endian value should be read.
     */
    getUint32(byteOffset: number, littleEndian?: boolean): number;

    /**
     * Stores an Float32 value at the specified byte offset from the start of the view.
     * @param byteOffset The place in the buffer at which the value should be set.
     * @param value The value to set.
     * @param littleEndian If false or undefined, a big-endian value should be written.
     */
    setFloat32(byteOffset: number, value: number, littleEndian?: boolean): void;

    /**
     * Stores an Float64 value at the specified byte offset from the start of the view.
     * @param byteOffset The place in the buffer at which the value should be set.
     * @param value The value to set.
     * @param littleEndian If false or undefined, a big-endian value should be written.
     */
    setFloat64(byteOffset: number, value: number, littleEndian?: boolean): void;

    /**
     * Stores an Int8 value at the specified byte offset from the start of the view.
     * @param byteOffset The place in the buffer at which the value should be set.
     * @param value The value to set.
     */
    setInt8(byteOffset: number, value: number): void;

    /**
     * Stores an Int16 value at the specified byte offset from the start of the view.
     * @param byteOffset The place in the buffer at which the value should be set.
     * @param value The value to set.
     * @param littleEndian If false or undefined, a big-endian value should be written.
     */
    setInt16(byteOffset: number, value: number, littleEndian?: boolean): void;

    /**
     * Stores an Int32 value at the specified byte offset from the start of the view.
     * @param byteOffset The place in the buffer at which the value should be set.
     * @param value The value to set.
     * @param littleEndian If false or undefined, a big-endian value should be written.
     */
    setInt32(byteOffset: number, value: number, littleEndian?: boolean): void;

    /**
     * Stores an Uint8 value at the specified byte offset from the start of the view.
     * @param byteOffset The place in the buffer at which the value should be set.
     * @param value The value to set.
     */
    setUint8(byteOffset: number, value: number): void;

    /**
     * Stores an Uint16 value at the specified byte offset from the start of the view.
     * @param byteOffset The place in the buffer at which the value should be set.
     * @param value The value to set.
     * @param littleEndian If false or undefined, a big-endian value should be written.
     */
    setUint16(byteOffset: number, value: number, littleEndian?: boolean): void;

    /**
     * Stores an Uint32 value at the specified byte offset from the start of the view.
     * @param byteOffset The place in the buffer at which the value should be set.
     * @param value The value to set.
     * @param littleEndian If false or undefined, a big-endian value should be written.
     */
    setUint32(byteOffset: number, value: number, littleEndian?: boolean): void;
}

interface DataViewConstructor {
    readonly prototype: DataView;
    new(buffer: ArrayBufferLike, byteOffset?: number, byteLength?: number): DataView;
}
declare var DataView: DataViewConstructor;

/**
 * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested
 * number of bytes could not be allocated an exception is raised.
 */
interface Int8Array {
    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * The ArrayBuffer instance referenced by the array.
     */
    readonly buffer: ArrayBufferLike;

    /**
     * The length in bytes of the array.
     */
    readonly byteLength: number;

    /**
     * The offset in bytes of the array.
     */
    readonly byteOffset: number;

    /**
     * Returns the this object after copying a section of the array identified by start and end
     * to the same array starting at position target
     * @param target If target is negative, it is treated as length+target where length is the
     * length of the array.
     * @param start If start is negative, it is treated as length+start. If end is negative, it
     * is treated as length+end.
     * @param end If not specified, length of the this object is used as its default value.
     */
    copyWithin(target: number, start: number, end?: number): this;

    /**
     * Determines whether all the members of an array satisfy the specified test.
     * @param predicate A function that accepts up to three arguments. The every method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value false, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    every(predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): boolean;

    /**
     * Changes all array elements from \`start\` to \`end\` index to a static \`value\` and returns the modified array
     * @param value value to fill array section with
     * @param start index to start filling the array at. If start is negative, it is treated as
     * length+start where length is the length of the array.
     * @param end index to stop filling the array at. If end is negative, it is treated as
     * length+end.
     */
    fill(value: number, start?: number, end?: number): this;

    /**
     * Returns the elements of an array that meet the condition specified in a callback function.
     * @param predicate A function that accepts up to three arguments. The filter method calls
     * the predicate function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    filter(predicate: (value: number, index: number, array: Int8Array) => any, thisArg?: any): Int8Array;

    /**
     * Returns the value of the first element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found, find
     * immediately returns that element value. Otherwise, find returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    find(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number | undefined;

    /**
     * Returns the index of the first element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findIndex(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number;

    /**
     * Performs the specified action for each element in an array.
     * @param callbackfn  A function that accepts up to three arguments. forEach calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    forEach(callbackfn: (value: number, index: number, array: Int8Array) => void, thisArg?: any): void;

    /**
     * Returns the index of the first occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     *  search starts at index 0.
     */
    indexOf(searchElement: number, fromIndex?: number): number;

    /**
     * Adds all the elements of an array separated by the specified separator string.
     * @param separator A string used to separate one element of an array from the next in the
     * resulting String. If omitted, the array elements are separated with a comma.
     */
    join(separator?: string): string;

    /**
     * Returns the index of the last occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     * search starts at index 0.
     */
    lastIndexOf(searchElement: number, fromIndex?: number): number;

    /**
     * The length of the array.
     */
    readonly length: number;

    /**
     * Calls a defined callback function on each element of an array, and returns an array that
     * contains the results.
     * @param callbackfn A function that accepts up to three arguments. The map method calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    map(callbackfn: (value: number, index: number, array: Int8Array) => number, thisArg?: any): Int8Array;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an
     * argument instead of an array value.
     */
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;

    /**
     * Reverses the elements in an Array.
     */
    reverse(): Int8Array;

    /**
     * Sets a value or an array of values.
     * @param array A typed or untyped array of values to set.
     * @param offset The index in the current array at which the values are to be written.
     */
    set(array: ArrayLike<number>, offset?: number): void;

    /**
     * Returns a section of an array.
     * @param start The beginning of the specified portion of the array.
     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.
     */
    slice(start?: number, end?: number): Int8Array;

    /**
     * Determines whether the specified callback function returns true for any element of an array.
     * @param predicate A function that accepts up to three arguments. The some method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value true, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    some(predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): boolean;

    /**
     * Sorts an array.
     * @param compareFn Function used to determine the order of the elements. It is expected to return
     * a negative value if first argument is less than second argument, zero if they're equal and a positive
     * value otherwise. If omitted, the elements are sorted in ascending order.
     * \`\`\`ts
     * [11,2,22,1].sort((a, b) => a - b)
     * \`\`\`
     */
    sort(compareFn?: (a: number, b: number) => number): this;

    /**
     * Gets a new Int8Array view of the ArrayBuffer store for this array, referencing the elements
     * at begin, inclusive, up to end, exclusive.
     * @param begin The index of the beginning of the array.
     * @param end The index of the end of the array.
     */
    subarray(begin?: number, end?: number): Int8Array;

    /**
     * Converts a number to a string by using the current locale.
     */
    toLocaleString(): string;

    /**
     * Returns a string representation of an array.
     */
    toString(): string;

    /** Returns the primitive value of the specified object. */
    valueOf(): Int8Array;

    [index: number]: number;
}
interface Int8ArrayConstructor {
    readonly prototype: Int8Array;
    new(length: number): Int8Array;
    new(array: ArrayLike<number> | ArrayBufferLike): Int8Array;
    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Int8Array;

    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * Returns a new array from a set of elements.
     * @param items A set of elements to include in the new array object.
     */
    of(...items: number[]): Int8Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     */
    from(arrayLike: ArrayLike<number>): Int8Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array;


}
declare var Int8Array: Int8ArrayConstructor;

/**
 * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the
 * requested number of bytes could not be allocated an exception is raised.
 */
interface Uint8Array {
    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * The ArrayBuffer instance referenced by the array.
     */
    readonly buffer: ArrayBufferLike;

    /**
     * The length in bytes of the array.
     */
    readonly byteLength: number;

    /**
     * The offset in bytes of the array.
     */
    readonly byteOffset: number;

    /**
     * Returns the this object after copying a section of the array identified by start and end
     * to the same array starting at position target
     * @param target If target is negative, it is treated as length+target where length is the
     * length of the array.
     * @param start If start is negative, it is treated as length+start. If end is negative, it
     * is treated as length+end.
     * @param end If not specified, length of the this object is used as its default value.
     */
    copyWithin(target: number, start: number, end?: number): this;

    /**
     * Determines whether all the members of an array satisfy the specified test.
     * @param predicate A function that accepts up to three arguments. The every method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value false, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    every(predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): boolean;

    /**
     * Changes all array elements from \`start\` to \`end\` index to a static \`value\` and returns the modified array
     * @param value value to fill array section with
     * @param start index to start filling the array at. If start is negative, it is treated as
     * length+start where length is the length of the array.
     * @param end index to stop filling the array at. If end is negative, it is treated as
     * length+end.
     */
    fill(value: number, start?: number, end?: number): this;

    /**
     * Returns the elements of an array that meet the condition specified in a callback function.
     * @param predicate A function that accepts up to three arguments. The filter method calls
     * the predicate function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    filter(predicate: (value: number, index: number, array: Uint8Array) => any, thisArg?: any): Uint8Array;

    /**
     * Returns the value of the first element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found, find
     * immediately returns that element value. Otherwise, find returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    find(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number | undefined;

    /**
     * Returns the index of the first element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findIndex(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number;

    /**
     * Performs the specified action for each element in an array.
     * @param callbackfn  A function that accepts up to three arguments. forEach calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    forEach(callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any): void;

    /**
     * Returns the index of the first occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     *  search starts at index 0.
     */
    indexOf(searchElement: number, fromIndex?: number): number;

    /**
     * Adds all the elements of an array separated by the specified separator string.
     * @param separator A string used to separate one element of an array from the next in the
     * resulting String. If omitted, the array elements are separated with a comma.
     */
    join(separator?: string): string;

    /**
     * Returns the index of the last occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     * search starts at index 0.
     */
    lastIndexOf(searchElement: number, fromIndex?: number): number;

    /**
     * The length of the array.
     */
    readonly length: number;

    /**
     * Calls a defined callback function on each element of an array, and returns an array that
     * contains the results.
     * @param callbackfn A function that accepts up to three arguments. The map method calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    map(callbackfn: (value: number, index: number, array: Uint8Array) => number, thisArg?: any): Uint8Array;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an
     * argument instead of an array value.
     */
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;

    /**
     * Reverses the elements in an Array.
     */
    reverse(): Uint8Array;

    /**
     * Sets a value or an array of values.
     * @param array A typed or untyped array of values to set.
     * @param offset The index in the current array at which the values are to be written.
     */
    set(array: ArrayLike<number>, offset?: number): void;

    /**
     * Returns a section of an array.
     * @param start The beginning of the specified portion of the array.
     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.
     */
    slice(start?: number, end?: number): Uint8Array;

    /**
     * Determines whether the specified callback function returns true for any element of an array.
     * @param predicate A function that accepts up to three arguments. The some method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value true, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    some(predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): boolean;

    /**
     * Sorts an array.
     * @param compareFn Function used to determine the order of the elements. It is expected to return
     * a negative value if first argument is less than second argument, zero if they're equal and a positive
     * value otherwise. If omitted, the elements are sorted in ascending order.
     * \`\`\`ts
     * [11,2,22,1].sort((a, b) => a - b)
     * \`\`\`
     */
    sort(compareFn?: (a: number, b: number) => number): this;

    /**
     * Gets a new Uint8Array view of the ArrayBuffer store for this array, referencing the elements
     * at begin, inclusive, up to end, exclusive.
     * @param begin The index of the beginning of the array.
     * @param end The index of the end of the array.
     */
    subarray(begin?: number, end?: number): Uint8Array;

    /**
     * Converts a number to a string by using the current locale.
     */
    toLocaleString(): string;

    /**
     * Returns a string representation of an array.
     */
    toString(): string;

    /** Returns the primitive value of the specified object. */
    valueOf(): Uint8Array;

    [index: number]: number;
}

interface Uint8ArrayConstructor {
    readonly prototype: Uint8Array;
    new(length: number): Uint8Array;
    new(array: ArrayLike<number> | ArrayBufferLike): Uint8Array;
    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint8Array;

    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * Returns a new array from a set of elements.
     * @param items A set of elements to include in the new array object.
     */
    of(...items: number[]): Uint8Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     */
    from(arrayLike: ArrayLike<number>): Uint8Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array;

}
declare var Uint8Array: Uint8ArrayConstructor;

/**
 * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.
 * If the requested number of bytes could not be allocated an exception is raised.
 */
interface Uint8ClampedArray {
    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * The ArrayBuffer instance referenced by the array.
     */
    readonly buffer: ArrayBufferLike;

    /**
     * The length in bytes of the array.
     */
    readonly byteLength: number;

    /**
     * The offset in bytes of the array.
     */
    readonly byteOffset: number;

    /**
     * Returns the this object after copying a section of the array identified by start and end
     * to the same array starting at position target
     * @param target If target is negative, it is treated as length+target where length is the
     * length of the array.
     * @param start If start is negative, it is treated as length+start. If end is negative, it
     * is treated as length+end.
     * @param end If not specified, length of the this object is used as its default value.
     */
    copyWithin(target: number, start: number, end?: number): this;

    /**
     * Determines whether all the members of an array satisfy the specified test.
     * @param predicate A function that accepts up to three arguments. The every method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value false, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    every(predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): boolean;

    /**
     * Changes all array elements from \`start\` to \`end\` index to a static \`value\` and returns the modified array
     * @param value value to fill array section with
     * @param start index to start filling the array at. If start is negative, it is treated as
     * length+start where length is the length of the array.
     * @param end index to stop filling the array at. If end is negative, it is treated as
     * length+end.
     */
    fill(value: number, start?: number, end?: number): this;

    /**
     * Returns the elements of an array that meet the condition specified in a callback function.
     * @param predicate A function that accepts up to three arguments. The filter method calls
     * the predicate function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    filter(predicate: (value: number, index: number, array: Uint8ClampedArray) => any, thisArg?: any): Uint8ClampedArray;

    /**
     * Returns the value of the first element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found, find
     * immediately returns that element value. Otherwise, find returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    find(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number | undefined;

    /**
     * Returns the index of the first element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findIndex(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number;

    /**
     * Performs the specified action for each element in an array.
     * @param callbackfn  A function that accepts up to three arguments. forEach calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    forEach(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any): void;

    /**
     * Returns the index of the first occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     *  search starts at index 0.
     */
    indexOf(searchElement: number, fromIndex?: number): number;

    /**
     * Adds all the elements of an array separated by the specified separator string.
     * @param separator A string used to separate one element of an array from the next in the
     * resulting String. If omitted, the array elements are separated with a comma.
     */
    join(separator?: string): string;

    /**
     * Returns the index of the last occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     * search starts at index 0.
     */
    lastIndexOf(searchElement: number, fromIndex?: number): number;

    /**
     * The length of the array.
     */
    readonly length: number;

    /**
     * Calls a defined callback function on each element of an array, and returns an array that
     * contains the results.
     * @param callbackfn A function that accepts up to three arguments. The map method calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    map(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any): Uint8ClampedArray;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an
     * argument instead of an array value.
     */
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;

    /**
     * Reverses the elements in an Array.
     */
    reverse(): Uint8ClampedArray;

    /**
     * Sets a value or an array of values.
     * @param array A typed or untyped array of values to set.
     * @param offset The index in the current array at which the values are to be written.
     */
    set(array: ArrayLike<number>, offset?: number): void;

    /**
     * Returns a section of an array.
     * @param start The beginning of the specified portion of the array.
     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.
     */
    slice(start?: number, end?: number): Uint8ClampedArray;

    /**
     * Determines whether the specified callback function returns true for any element of an array.
     * @param predicate A function that accepts up to three arguments. The some method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value true, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    some(predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): boolean;

    /**
     * Sorts an array.
     * @param compareFn Function used to determine the order of the elements. It is expected to return
     * a negative value if first argument is less than second argument, zero if they're equal and a positive
     * value otherwise. If omitted, the elements are sorted in ascending order.
     * \`\`\`ts
     * [11,2,22,1].sort((a, b) => a - b)
     * \`\`\`
     */
    sort(compareFn?: (a: number, b: number) => number): this;

    /**
     * Gets a new Uint8ClampedArray view of the ArrayBuffer store for this array, referencing the elements
     * at begin, inclusive, up to end, exclusive.
     * @param begin The index of the beginning of the array.
     * @param end The index of the end of the array.
     */
    subarray(begin?: number, end?: number): Uint8ClampedArray;

    /**
     * Converts a number to a string by using the current locale.
     */
    toLocaleString(): string;

    /**
     * Returns a string representation of an array.
     */
    toString(): string;

    /** Returns the primitive value of the specified object. */
    valueOf(): Uint8ClampedArray;

    [index: number]: number;
}

interface Uint8ClampedArrayConstructor {
    readonly prototype: Uint8ClampedArray;
    new(length: number): Uint8ClampedArray;
    new(array: ArrayLike<number> | ArrayBufferLike): Uint8ClampedArray;
    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint8ClampedArray;

    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * Returns a new array from a set of elements.
     * @param items A set of elements to include in the new array object.
     */
    of(...items: number[]): Uint8ClampedArray;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     */
    from(arrayLike: ArrayLike<number>): Uint8ClampedArray;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray;
}
declare var Uint8ClampedArray: Uint8ClampedArrayConstructor;

/**
 * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the
 * requested number of bytes could not be allocated an exception is raised.
 */
interface Int16Array {
    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * The ArrayBuffer instance referenced by the array.
     */
    readonly buffer: ArrayBufferLike;

    /**
     * The length in bytes of the array.
     */
    readonly byteLength: number;

    /**
     * The offset in bytes of the array.
     */
    readonly byteOffset: number;

    /**
     * Returns the this object after copying a section of the array identified by start and end
     * to the same array starting at position target
     * @param target If target is negative, it is treated as length+target where length is the
     * length of the array.
     * @param start If start is negative, it is treated as length+start. If end is negative, it
     * is treated as length+end.
     * @param end If not specified, length of the this object is used as its default value.
     */
    copyWithin(target: number, start: number, end?: number): this;

    /**
     * Determines whether all the members of an array satisfy the specified test.
     * @param predicate A function that accepts up to three arguments. The every method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value false, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    every(predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): boolean;

    /**
     * Changes all array elements from \`start\` to \`end\` index to a static \`value\` and returns the modified array
     * @param value value to fill array section with
     * @param start index to start filling the array at. If start is negative, it is treated as
     * length+start where length is the length of the array.
     * @param end index to stop filling the array at. If end is negative, it is treated as
     * length+end.
     */
    fill(value: number, start?: number, end?: number): this;

    /**
     * Returns the elements of an array that meet the condition specified in a callback function.
     * @param predicate A function that accepts up to three arguments. The filter method calls
     * the predicate function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    filter(predicate: (value: number, index: number, array: Int16Array) => any, thisArg?: any): Int16Array;

    /**
     * Returns the value of the first element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found, find
     * immediately returns that element value. Otherwise, find returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    find(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number | undefined;

    /**
     * Returns the index of the first element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findIndex(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number;

    /**
     * Performs the specified action for each element in an array.
     * @param callbackfn  A function that accepts up to three arguments. forEach calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    forEach(callbackfn: (value: number, index: number, array: Int16Array) => void, thisArg?: any): void;
    /**
     * Returns the index of the first occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     *  search starts at index 0.
     */
    indexOf(searchElement: number, fromIndex?: number): number;

    /**
     * Adds all the elements of an array separated by the specified separator string.
     * @param separator A string used to separate one element of an array from the next in the
     * resulting String. If omitted, the array elements are separated with a comma.
     */
    join(separator?: string): string;

    /**
     * Returns the index of the last occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     * search starts at index 0.
     */
    lastIndexOf(searchElement: number, fromIndex?: number): number;

    /**
     * The length of the array.
     */
    readonly length: number;

    /**
     * Calls a defined callback function on each element of an array, and returns an array that
     * contains the results.
     * @param callbackfn A function that accepts up to three arguments. The map method calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    map(callbackfn: (value: number, index: number, array: Int16Array) => number, thisArg?: any): Int16Array;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an
     * argument instead of an array value.
     */
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;

    /**
     * Reverses the elements in an Array.
     */
    reverse(): Int16Array;

    /**
     * Sets a value or an array of values.
     * @param array A typed or untyped array of values to set.
     * @param offset The index in the current array at which the values are to be written.
     */
    set(array: ArrayLike<number>, offset?: number): void;

    /**
     * Returns a section of an array.
     * @param start The beginning of the specified portion of the array.
     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.
     */
    slice(start?: number, end?: number): Int16Array;

    /**
     * Determines whether the specified callback function returns true for any element of an array.
     * @param predicate A function that accepts up to three arguments. The some method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value true, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    some(predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): boolean;

    /**
     * Sorts an array.
     * @param compareFn Function used to determine the order of the elements. It is expected to return
     * a negative value if first argument is less than second argument, zero if they're equal and a positive
     * value otherwise. If omitted, the elements are sorted in ascending order.
     * \`\`\`ts
     * [11,2,22,1].sort((a, b) => a - b)
     * \`\`\`
     */
    sort(compareFn?: (a: number, b: number) => number): this;

    /**
     * Gets a new Int16Array view of the ArrayBuffer store for this array, referencing the elements
     * at begin, inclusive, up to end, exclusive.
     * @param begin The index of the beginning of the array.
     * @param end The index of the end of the array.
     */
    subarray(begin?: number, end?: number): Int16Array;

    /**
     * Converts a number to a string by using the current locale.
     */
    toLocaleString(): string;

    /**
     * Returns a string representation of an array.
     */
    toString(): string;

    /** Returns the primitive value of the specified object. */
    valueOf(): Int16Array;

    [index: number]: number;
}

interface Int16ArrayConstructor {
    readonly prototype: Int16Array;
    new(length: number): Int16Array;
    new(array: ArrayLike<number> | ArrayBufferLike): Int16Array;
    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Int16Array;

    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * Returns a new array from a set of elements.
     * @param items A set of elements to include in the new array object.
     */
    of(...items: number[]): Int16Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     */
    from(arrayLike: ArrayLike<number>): Int16Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array;


}
declare var Int16Array: Int16ArrayConstructor;

/**
 * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the
 * requested number of bytes could not be allocated an exception is raised.
 */
interface Uint16Array {
    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * The ArrayBuffer instance referenced by the array.
     */
    readonly buffer: ArrayBufferLike;

    /**
     * The length in bytes of the array.
     */
    readonly byteLength: number;

    /**
     * The offset in bytes of the array.
     */
    readonly byteOffset: number;

    /**
     * Returns the this object after copying a section of the array identified by start and end
     * to the same array starting at position target
     * @param target If target is negative, it is treated as length+target where length is the
     * length of the array.
     * @param start If start is negative, it is treated as length+start. If end is negative, it
     * is treated as length+end.
     * @param end If not specified, length of the this object is used as its default value.
     */
    copyWithin(target: number, start: number, end?: number): this;

    /**
     * Determines whether all the members of an array satisfy the specified test.
     * @param predicate A function that accepts up to three arguments. The every method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value false, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    every(predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): boolean;

    /**
     * Changes all array elements from \`start\` to \`end\` index to a static \`value\` and returns the modified array
     * @param value value to fill array section with
     * @param start index to start filling the array at. If start is negative, it is treated as
     * length+start where length is the length of the array.
     * @param end index to stop filling the array at. If end is negative, it is treated as
     * length+end.
     */
    fill(value: number, start?: number, end?: number): this;

    /**
     * Returns the elements of an array that meet the condition specified in a callback function.
     * @param predicate A function that accepts up to three arguments. The filter method calls
     * the predicate function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    filter(predicate: (value: number, index: number, array: Uint16Array) => any, thisArg?: any): Uint16Array;

    /**
     * Returns the value of the first element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found, find
     * immediately returns that element value. Otherwise, find returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    find(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number | undefined;

    /**
     * Returns the index of the first element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findIndex(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number;

    /**
     * Performs the specified action for each element in an array.
     * @param callbackfn  A function that accepts up to three arguments. forEach calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    forEach(callbackfn: (value: number, index: number, array: Uint16Array) => void, thisArg?: any): void;

    /**
     * Returns the index of the first occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     *  search starts at index 0.
     */
    indexOf(searchElement: number, fromIndex?: number): number;

    /**
     * Adds all the elements of an array separated by the specified separator string.
     * @param separator A string used to separate one element of an array from the next in the
     * resulting String. If omitted, the array elements are separated with a comma.
     */
    join(separator?: string): string;

    /**
     * Returns the index of the last occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     * search starts at index 0.
     */
    lastIndexOf(searchElement: number, fromIndex?: number): number;

    /**
     * The length of the array.
     */
    readonly length: number;

    /**
     * Calls a defined callback function on each element of an array, and returns an array that
     * contains the results.
     * @param callbackfn A function that accepts up to three arguments. The map method calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    map(callbackfn: (value: number, index: number, array: Uint16Array) => number, thisArg?: any): Uint16Array;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an
     * argument instead of an array value.
     */
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;

    /**
     * Reverses the elements in an Array.
     */
    reverse(): Uint16Array;

    /**
     * Sets a value or an array of values.
     * @param array A typed or untyped array of values to set.
     * @param offset The index in the current array at which the values are to be written.
     */
    set(array: ArrayLike<number>, offset?: number): void;

    /**
     * Returns a section of an array.
     * @param start The beginning of the specified portion of the array.
     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.
     */
    slice(start?: number, end?: number): Uint16Array;

    /**
     * Determines whether the specified callback function returns true for any element of an array.
     * @param predicate A function that accepts up to three arguments. The some method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value true, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    some(predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): boolean;

    /**
     * Sorts an array.
     * @param compareFn Function used to determine the order of the elements. It is expected to return
     * a negative value if first argument is less than second argument, zero if they're equal and a positive
     * value otherwise. If omitted, the elements are sorted in ascending order.
     * \`\`\`ts
     * [11,2,22,1].sort((a, b) => a - b)
     * \`\`\`
     */
    sort(compareFn?: (a: number, b: number) => number): this;

    /**
     * Gets a new Uint16Array view of the ArrayBuffer store for this array, referencing the elements
     * at begin, inclusive, up to end, exclusive.
     * @param begin The index of the beginning of the array.
     * @param end The index of the end of the array.
     */
    subarray(begin?: number, end?: number): Uint16Array;

    /**
     * Converts a number to a string by using the current locale.
     */
    toLocaleString(): string;

    /**
     * Returns a string representation of an array.
     */
    toString(): string;

    /** Returns the primitive value of the specified object. */
    valueOf(): Uint16Array;

    [index: number]: number;
}

interface Uint16ArrayConstructor {
    readonly prototype: Uint16Array;
    new(length: number): Uint16Array;
    new(array: ArrayLike<number> | ArrayBufferLike): Uint16Array;
    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint16Array;

    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * Returns a new array from a set of elements.
     * @param items A set of elements to include in the new array object.
     */
    of(...items: number[]): Uint16Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     */
    from(arrayLike: ArrayLike<number>): Uint16Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array;


}
declare var Uint16Array: Uint16ArrayConstructor;
/**
 * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the
 * requested number of bytes could not be allocated an exception is raised.
 */
interface Int32Array {
    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * The ArrayBuffer instance referenced by the array.
     */
    readonly buffer: ArrayBufferLike;

    /**
     * The length in bytes of the array.
     */
    readonly byteLength: number;

    /**
     * The offset in bytes of the array.
     */
    readonly byteOffset: number;

    /**
     * Returns the this object after copying a section of the array identified by start and end
     * to the same array starting at position target
     * @param target If target is negative, it is treated as length+target where length is the
     * length of the array.
     * @param start If start is negative, it is treated as length+start. If end is negative, it
     * is treated as length+end.
     * @param end If not specified, length of the this object is used as its default value.
     */
    copyWithin(target: number, start: number, end?: number): this;

    /**
     * Determines whether all the members of an array satisfy the specified test.
     * @param predicate A function that accepts up to three arguments. The every method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value false, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    every(predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): boolean;

    /**
     * Changes all array elements from \`start\` to \`end\` index to a static \`value\` and returns the modified array
     * @param value value to fill array section with
     * @param start index to start filling the array at. If start is negative, it is treated as
     * length+start where length is the length of the array.
     * @param end index to stop filling the array at. If end is negative, it is treated as
     * length+end.
     */
    fill(value: number, start?: number, end?: number): this;

    /**
     * Returns the elements of an array that meet the condition specified in a callback function.
     * @param predicate A function that accepts up to three arguments. The filter method calls
     * the predicate function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    filter(predicate: (value: number, index: number, array: Int32Array) => any, thisArg?: any): Int32Array;

    /**
     * Returns the value of the first element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found, find
     * immediately returns that element value. Otherwise, find returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    find(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number | undefined;

    /**
     * Returns the index of the first element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findIndex(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number;

    /**
     * Performs the specified action for each element in an array.
     * @param callbackfn  A function that accepts up to three arguments. forEach calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    forEach(callbackfn: (value: number, index: number, array: Int32Array) => void, thisArg?: any): void;

    /**
     * Returns the index of the first occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     *  search starts at index 0.
     */
    indexOf(searchElement: number, fromIndex?: number): number;

    /**
     * Adds all the elements of an array separated by the specified separator string.
     * @param separator A string used to separate one element of an array from the next in the
     * resulting String. If omitted, the array elements are separated with a comma.
     */
    join(separator?: string): string;

    /**
     * Returns the index of the last occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     * search starts at index 0.
     */
    lastIndexOf(searchElement: number, fromIndex?: number): number;

    /**
     * The length of the array.
     */
    readonly length: number;

    /**
     * Calls a defined callback function on each element of an array, and returns an array that
     * contains the results.
     * @param callbackfn A function that accepts up to three arguments. The map method calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    map(callbackfn: (value: number, index: number, array: Int32Array) => number, thisArg?: any): Int32Array;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an
     * argument instead of an array value.
     */
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;

    /**
     * Reverses the elements in an Array.
     */
    reverse(): Int32Array;

    /**
     * Sets a value or an array of values.
     * @param array A typed or untyped array of values to set.
     * @param offset The index in the current array at which the values are to be written.
     */
    set(array: ArrayLike<number>, offset?: number): void;

    /**
     * Returns a section of an array.
     * @param start The beginning of the specified portion of the array.
     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.
     */
    slice(start?: number, end?: number): Int32Array;

    /**
     * Determines whether the specified callback function returns true for any element of an array.
     * @param predicate A function that accepts up to three arguments. The some method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value true, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    some(predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): boolean;

    /**
     * Sorts an array.
     * @param compareFn Function used to determine the order of the elements. It is expected to return
     * a negative value if first argument is less than second argument, zero if they're equal and a positive
     * value otherwise. If omitted, the elements are sorted in ascending order.
     * \`\`\`ts
     * [11,2,22,1].sort((a, b) => a - b)
     * \`\`\`
     */
    sort(compareFn?: (a: number, b: number) => number): this;

    /**
     * Gets a new Int32Array view of the ArrayBuffer store for this array, referencing the elements
     * at begin, inclusive, up to end, exclusive.
     * @param begin The index of the beginning of the array.
     * @param end The index of the end of the array.
     */
    subarray(begin?: number, end?: number): Int32Array;

    /**
     * Converts a number to a string by using the current locale.
     */
    toLocaleString(): string;

    /**
     * Returns a string representation of an array.
     */
    toString(): string;

    /** Returns the primitive value of the specified object. */
    valueOf(): Int32Array;

    [index: number]: number;
}

interface Int32ArrayConstructor {
    readonly prototype: Int32Array;
    new(length: number): Int32Array;
    new(array: ArrayLike<number> | ArrayBufferLike): Int32Array;
    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Int32Array;

    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * Returns a new array from a set of elements.
     * @param items A set of elements to include in the new array object.
     */
    of(...items: number[]): Int32Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     */
    from(arrayLike: ArrayLike<number>): Int32Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array;

}
declare var Int32Array: Int32ArrayConstructor;

/**
 * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the
 * requested number of bytes could not be allocated an exception is raised.
 */
interface Uint32Array {
    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * The ArrayBuffer instance referenced by the array.
     */
    readonly buffer: ArrayBufferLike;

    /**
     * The length in bytes of the array.
     */
    readonly byteLength: number;

    /**
     * The offset in bytes of the array.
     */
    readonly byteOffset: number;

    /**
     * Returns the this object after copying a section of the array identified by start and end
     * to the same array starting at position target
     * @param target If target is negative, it is treated as length+target where length is the
     * length of the array.
     * @param start If start is negative, it is treated as length+start. If end is negative, it
     * is treated as length+end.
     * @param end If not specified, length of the this object is used as its default value.
     */
    copyWithin(target: number, start: number, end?: number): this;

    /**
     * Determines whether all the members of an array satisfy the specified test.
     * @param predicate A function that accepts up to three arguments. The every method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value false, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    every(predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): boolean;

    /**
     * Changes all array elements from \`start\` to \`end\` index to a static \`value\` and returns the modified array
     * @param value value to fill array section with
     * @param start index to start filling the array at. If start is negative, it is treated as
     * length+start where length is the length of the array.
     * @param end index to stop filling the array at. If end is negative, it is treated as
     * length+end.
     */
    fill(value: number, start?: number, end?: number): this;

    /**
     * Returns the elements of an array that meet the condition specified in a callback function.
     * @param predicate A function that accepts up to three arguments. The filter method calls
     * the predicate function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    filter(predicate: (value: number, index: number, array: Uint32Array) => any, thisArg?: any): Uint32Array;

    /**
     * Returns the value of the first element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found, find
     * immediately returns that element value. Otherwise, find returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    find(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number | undefined;

    /**
     * Returns the index of the first element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findIndex(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number;

    /**
     * Performs the specified action for each element in an array.
     * @param callbackfn  A function that accepts up to three arguments. forEach calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    forEach(callbackfn: (value: number, index: number, array: Uint32Array) => void, thisArg?: any): void;
    /**
     * Returns the index of the first occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     *  search starts at index 0.
     */
    indexOf(searchElement: number, fromIndex?: number): number;

    /**
     * Adds all the elements of an array separated by the specified separator string.
     * @param separator A string used to separate one element of an array from the next in the
     * resulting String. If omitted, the array elements are separated with a comma.
     */
    join(separator?: string): string;

    /**
     * Returns the index of the last occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     * search starts at index 0.
     */
    lastIndexOf(searchElement: number, fromIndex?: number): number;

    /**
     * The length of the array.
     */
    readonly length: number;

    /**
     * Calls a defined callback function on each element of an array, and returns an array that
     * contains the results.
     * @param callbackfn A function that accepts up to three arguments. The map method calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    map(callbackfn: (value: number, index: number, array: Uint32Array) => number, thisArg?: any): Uint32Array;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an
     * argument instead of an array value.
     */
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;

    /**
     * Reverses the elements in an Array.
     */
    reverse(): Uint32Array;

    /**
     * Sets a value or an array of values.
     * @param array A typed or untyped array of values to set.
     * @param offset The index in the current array at which the values are to be written.
     */
    set(array: ArrayLike<number>, offset?: number): void;

    /**
     * Returns a section of an array.
     * @param start The beginning of the specified portion of the array.
     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.
     */
    slice(start?: number, end?: number): Uint32Array;

    /**
     * Determines whether the specified callback function returns true for any element of an array.
     * @param predicate A function that accepts up to three arguments. The some method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value true, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    some(predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): boolean;

    /**
     * Sorts an array.
     * @param compareFn Function used to determine the order of the elements. It is expected to return
     * a negative value if first argument is less than second argument, zero if they're equal and a positive
     * value otherwise. If omitted, the elements are sorted in ascending order.
     * \`\`\`ts
     * [11,2,22,1].sort((a, b) => a - b)
     * \`\`\`
     */
    sort(compareFn?: (a: number, b: number) => number): this;

    /**
     * Gets a new Uint32Array view of the ArrayBuffer store for this array, referencing the elements
     * at begin, inclusive, up to end, exclusive.
     * @param begin The index of the beginning of the array.
     * @param end The index of the end of the array.
     */
    subarray(begin?: number, end?: number): Uint32Array;

    /**
     * Converts a number to a string by using the current locale.
     */
    toLocaleString(): string;

    /**
     * Returns a string representation of an array.
     */
    toString(): string;

    /** Returns the primitive value of the specified object. */
    valueOf(): Uint32Array;

    [index: number]: number;
}

interface Uint32ArrayConstructor {
    readonly prototype: Uint32Array;
    new(length: number): Uint32Array;
    new(array: ArrayLike<number> | ArrayBufferLike): Uint32Array;
    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint32Array;

    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * Returns a new array from a set of elements.
     * @param items A set of elements to include in the new array object.
     */
    of(...items: number[]): Uint32Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     */
    from(arrayLike: ArrayLike<number>): Uint32Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array;

}
declare var Uint32Array: Uint32ArrayConstructor;

/**
 * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number
 * of bytes could not be allocated an exception is raised.
 */
interface Float32Array {
    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * The ArrayBuffer instance referenced by the array.
     */
    readonly buffer: ArrayBufferLike;

    /**
     * The length in bytes of the array.
     */
    readonly byteLength: number;

    /**
     * The offset in bytes of the array.
     */
    readonly byteOffset: number;

    /**
     * Returns the this object after copying a section of the array identified by start and end
     * to the same array starting at position target
     * @param target If target is negative, it is treated as length+target where length is the
     * length of the array.
     * @param start If start is negative, it is treated as length+start. If end is negative, it
     * is treated as length+end.
     * @param end If not specified, length of the this object is used as its default value.
     */
    copyWithin(target: number, start: number, end?: number): this;

    /**
     * Determines whether all the members of an array satisfy the specified test.
     * @param predicate A function that accepts up to three arguments. The every method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value false, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    every(predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): boolean;

    /**
     * Changes all array elements from \`start\` to \`end\` index to a static \`value\` and returns the modified array
     * @param value value to fill array section with
     * @param start index to start filling the array at. If start is negative, it is treated as
     * length+start where length is the length of the array.
     * @param end index to stop filling the array at. If end is negative, it is treated as
     * length+end.
     */
    fill(value: number, start?: number, end?: number): this;

    /**
     * Returns the elements of an array that meet the condition specified in a callback function.
     * @param predicate A function that accepts up to three arguments. The filter method calls
     * the predicate function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    filter(predicate: (value: number, index: number, array: Float32Array) => any, thisArg?: any): Float32Array;

    /**
     * Returns the value of the first element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found, find
     * immediately returns that element value. Otherwise, find returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    find(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number | undefined;

    /**
     * Returns the index of the first element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findIndex(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number;

    /**
     * Performs the specified action for each element in an array.
     * @param callbackfn  A function that accepts up to three arguments. forEach calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    forEach(callbackfn: (value: number, index: number, array: Float32Array) => void, thisArg?: any): void;

    /**
     * Returns the index of the first occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     *  search starts at index 0.
     */
    indexOf(searchElement: number, fromIndex?: number): number;

    /**
     * Adds all the elements of an array separated by the specified separator string.
     * @param separator A string used to separate one element of an array from the next in the
     * resulting String. If omitted, the array elements are separated with a comma.
     */
    join(separator?: string): string;

    /**
     * Returns the index of the last occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     * search starts at index 0.
     */
    lastIndexOf(searchElement: number, fromIndex?: number): number;

    /**
     * The length of the array.
     */
    readonly length: number;

    /**
     * Calls a defined callback function on each element of an array, and returns an array that
     * contains the results.
     * @param callbackfn A function that accepts up to three arguments. The map method calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    map(callbackfn: (value: number, index: number, array: Float32Array) => number, thisArg?: any): Float32Array;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an
     * argument instead of an array value.
     */
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;

    /**
     * Reverses the elements in an Array.
     */
    reverse(): Float32Array;

    /**
     * Sets a value or an array of values.
     * @param array A typed or untyped array of values to set.
     * @param offset The index in the current array at which the values are to be written.
     */
    set(array: ArrayLike<number>, offset?: number): void;

    /**
     * Returns a section of an array.
     * @param start The beginning of the specified portion of the array.
     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.
     */
    slice(start?: number, end?: number): Float32Array;

    /**
     * Determines whether the specified callback function returns true for any element of an array.
     * @param predicate A function that accepts up to three arguments. The some method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value true, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    some(predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): boolean;

    /**
     * Sorts an array.
     * @param compareFn Function used to determine the order of the elements. It is expected to return
     * a negative value if first argument is less than second argument, zero if they're equal and a positive
     * value otherwise. If omitted, the elements are sorted in ascending order.
     * \`\`\`ts
     * [11,2,22,1].sort((a, b) => a - b)
     * \`\`\`
     */
    sort(compareFn?: (a: number, b: number) => number): this;

    /**
     * Gets a new Float32Array view of the ArrayBuffer store for this array, referencing the elements
     * at begin, inclusive, up to end, exclusive.
     * @param begin The index of the beginning of the array.
     * @param end The index of the end of the array.
     */
    subarray(begin?: number, end?: number): Float32Array;

    /**
     * Converts a number to a string by using the current locale.
     */
    toLocaleString(): string;

    /**
     * Returns a string representation of an array.
     */
    toString(): string;

    /** Returns the primitive value of the specified object. */
    valueOf(): Float32Array;

    [index: number]: number;
}

interface Float32ArrayConstructor {
    readonly prototype: Float32Array;
    new(length: number): Float32Array;
    new(array: ArrayLike<number> | ArrayBufferLike): Float32Array;
    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Float32Array;

    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * Returns a new array from a set of elements.
     * @param items A set of elements to include in the new array object.
     */
    of(...items: number[]): Float32Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     */
    from(arrayLike: ArrayLike<number>): Float32Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array;


}
declare var Float32Array: Float32ArrayConstructor;

/**
 * A typed array of 64-bit float values. The contents are initialized to 0. If the requested
 * number of bytes could not be allocated an exception is raised.
 */
interface Float64Array {
    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * The ArrayBuffer instance referenced by the array.
     */
    readonly buffer: ArrayBufferLike;

    /**
     * The length in bytes of the array.
     */
    readonly byteLength: number;

    /**
     * The offset in bytes of the array.
     */
    readonly byteOffset: number;

    /**
     * Returns the this object after copying a section of the array identified by start and end
     * to the same array starting at position target
     * @param target If target is negative, it is treated as length+target where length is the
     * length of the array.
     * @param start If start is negative, it is treated as length+start. If end is negative, it
     * is treated as length+end.
     * @param end If not specified, length of the this object is used as its default value.
     */
    copyWithin(target: number, start: number, end?: number): this;

    /**
     * Determines whether all the members of an array satisfy the specified test.
     * @param predicate A function that accepts up to three arguments. The every method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value false, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    every(predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): boolean;

    /**
     * Changes all array elements from \`start\` to \`end\` index to a static \`value\` and returns the modified array
     * @param value value to fill array section with
     * @param start index to start filling the array at. If start is negative, it is treated as
     * length+start where length is the length of the array.
     * @param end index to stop filling the array at. If end is negative, it is treated as
     * length+end.
     */
    fill(value: number, start?: number, end?: number): this;

    /**
     * Returns the elements of an array that meet the condition specified in a callback function.
     * @param predicate A function that accepts up to three arguments. The filter method calls
     * the predicate function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    filter(predicate: (value: number, index: number, array: Float64Array) => any, thisArg?: any): Float64Array;

    /**
     * Returns the value of the first element in the array where predicate is true, and undefined
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found, find
     * immediately returns that element value. Otherwise, find returns undefined.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    find(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number | undefined;

    /**
     * Returns the index of the first element in the array where predicate is true, and -1
     * otherwise.
     * @param predicate find calls predicate once for each element of the array, in ascending
     * order, until it finds one where predicate returns true. If such an element is found,
     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
     * @param thisArg If provided, it will be used as the this value for each invocation of
     * predicate. If it is not provided, undefined is used instead.
     */
    findIndex(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number;

    /**
     * Performs the specified action for each element in an array.
     * @param callbackfn  A function that accepts up to three arguments. forEach calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    forEach(callbackfn: (value: number, index: number, array: Float64Array) => void, thisArg?: any): void;

    /**
     * Returns the index of the first occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     *  search starts at index 0.
     */
    indexOf(searchElement: number, fromIndex?: number): number;

    /**
     * Adds all the elements of an array separated by the specified separator string.
     * @param separator A string used to separate one element of an array from the next in the
     * resulting String. If omitted, the array elements are separated with a comma.
     */
    join(separator?: string): string;

    /**
     * Returns the index of the last occurrence of a value in an array.
     * @param searchElement The value to locate in the array.
     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
     * search starts at index 0.
     */
    lastIndexOf(searchElement: number, fromIndex?: number): number;

    /**
     * The length of the array.
     */
    readonly length: number;

    /**
     * Calls a defined callback function on each element of an array, and returns an array that
     * contains the results.
     * @param callbackfn A function that accepts up to three arguments. The map method calls the
     * callbackfn function one time for each element in the array.
     * @param thisArg An object to which the this keyword can refer in the callbackfn function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    map(callbackfn: (value: number, index: number, array: Float64Array) => number, thisArg?: any): Float64Array;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;
    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array. The return value of
     * the callback function is the accumulated result, and is provided as an argument in the next
     * call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
     * callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an
     * argument instead of an array value.
     */
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;
    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;

    /**
     * Calls the specified callback function for all the elements in an array, in descending order.
     * The return value of the callback function is the accumulated result, and is provided as an
     * argument in the next call to the callback function.
     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
     * the callbackfn function one time for each element in the array.
     * @param initialValue If initialValue is specified, it is used as the initial value to start
     * the accumulation. The first call to the callbackfn function provides this value as an argument
     * instead of an array value.
     */
    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;

    /**
     * Reverses the elements in an Array.
     */
    reverse(): Float64Array;

    /**
     * Sets a value or an array of values.
     * @param array A typed or untyped array of values to set.
     * @param offset The index in the current array at which the values are to be written.
     */
    set(array: ArrayLike<number>, offset?: number): void;

    /**
     * Returns a section of an array.
     * @param start The beginning of the specified portion of the array.
     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.
     */
    slice(start?: number, end?: number): Float64Array;

    /**
     * Determines whether the specified callback function returns true for any element of an array.
     * @param predicate A function that accepts up to three arguments. The some method calls
     * the predicate function for each element in the array until the predicate returns a value
     * which is coercible to the Boolean value true, or until the end of the array.
     * @param thisArg An object to which the this keyword can refer in the predicate function.
     * If thisArg is omitted, undefined is used as the this value.
     */
    some(predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): boolean;

    /**
     * Sorts an array.
     * @param compareFn Function used to determine the order of the elements. It is expected to return
     * a negative value if first argument is less than second argument, zero if they're equal and a positive
     * value otherwise. If omitted, the elements are sorted in ascending order.
     * \`\`\`ts
     * [11,2,22,1].sort((a, b) => a - b)
     * \`\`\`
     */
    sort(compareFn?: (a: number, b: number) => number): this;

    /**
     * at begin, inclusive, up to end, exclusive.
     * @param begin The index of the beginning of the array.
     * @param end The index of the end of the array.
     */
    subarray(begin?: number, end?: number): Float64Array;

    toString(): string;

    /** Returns the primitive value of the specified object. */
    valueOf(): Float64Array;

    [index: number]: number;
}

interface Float64ArrayConstructor {
    readonly prototype: Float64Array;
    new(length: number): Float64Array;
    new(array: ArrayLike<number> | ArrayBufferLike): Float64Array;
    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Float64Array;

    /**
     * The size in bytes of each element in the array.
     */
    readonly BYTES_PER_ELEMENT: number;

    /**
     * Returns a new array from a set of elements.
     * @param items A set of elements to include in the new array object.
     */
    of(...items: number[]): Float64Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     */
    from(arrayLike: ArrayLike<number>): Float64Array;

    /**
     * Creates an array from an array-like or iterable object.
     * @param arrayLike An array-like or iterable object to convert to an array.
     * @param mapfn A mapping function to call on every element of the array.
     * @param thisArg Value of 'this' used to invoke the mapfn.
     */
    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array;

}
declare var Float64Array: Float64ArrayConstructor;

/////////////////////////////
/// ECMAScript Internationalization API
/////////////////////////////

declare namespace Intl {
    interface CollatorOptions {
        usage?: string | undefined;
        localeMatcher?: string | undefined;
        numeric?: boolean | undefined;
        caseFirst?: string | undefined;
        sensitivity?: string | undefined;
        ignorePunctuation?: boolean | undefined;
    }

    interface ResolvedCollatorOptions {
        locale: string;
        usage: string;
        sensitivity: string;
        ignorePunctuation: boolean;
        collation: string;
        caseFirst: string;
        numeric: boolean;
    }

    interface Collator {
        compare(x: string, y: string): number;
        resolvedOptions(): ResolvedCollatorOptions;
    }
    var Collator: {
        new(locales?: string | string[], options?: CollatorOptions): Collator;
        (locales?: string | string[], options?: CollatorOptions): Collator;
        supportedLocalesOf(locales: string | string[], options?: CollatorOptions): string[];
    };

    interface NumberFormatOptions {
        localeMatcher?: string | undefined;
        style?: string | undefined;
        currency?: string | undefined;
        currencySign?: string | undefined;
        useGrouping?: boolean | undefined;
        minimumIntegerDigits?: number | undefined;
        minimumFractionDigits?: number | undefined;
        maximumFractionDigits?: number | undefined;
        minimumSignificantDigits?: number | undefined;
        maximumSignificantDigits?: number | undefined;
    }

    interface ResolvedNumberFormatOptions {
        locale: string;
        numberingSystem: string;
        style: string;
        currency?: string;
        minimumIntegerDigits: number;
        minimumFractionDigits: number;
        maximumFractionDigits: number;
        minimumSignificantDigits?: number;
        maximumSignificantDigits?: number;
        useGrouping: boolean;
    }

    interface NumberFormat {
        format(value: number): string;
        resolvedOptions(): ResolvedNumberFormatOptions;
    }
    var NumberFormat: {
        new(locales?: string | string[], options?: NumberFormatOptions): NumberFormat;
        (locales?: string | string[], options?: NumberFormatOptions): NumberFormat;
        supportedLocalesOf(locales: string | string[], options?: NumberFormatOptions): string[];
        readonly prototype: NumberFormat;
    };

    interface DateTimeFormatOptions {
        localeMatcher?: "best fit" | "lookup" | undefined;
        weekday?: "long" | "short" | "narrow" | undefined;
        era?: "long" | "short" | "narrow" | undefined;
        year?: "numeric" | "2-digit" | undefined;
        month?: "numeric" | "2-digit" | "long" | "short" | "narrow" | undefined;
        day?: "numeric" | "2-digit" | undefined;
        hour?: "numeric" | "2-digit" | undefined;
        minute?: "numeric" | "2-digit" | undefined;
        second?: "numeric" | "2-digit" | undefined;
        timeZoneName?: "short" | "long" | "shortOffset" | "longOffset" | "shortGeneric" | "longGeneric" | undefined;
        formatMatcher?: "best fit" | "basic" | undefined;
        hour12?: boolean | undefined;
        timeZone?: string | undefined;
    }

    interface ResolvedDateTimeFormatOptions {
        locale: string;
        calendar: string;
        numberingSystem: string;
        timeZone: string;
        hour12?: boolean;
        weekday?: string;
        era?: string;
        year?: string;
        month?: string;
        day?: string;
        hour?: string;
        minute?: string;
        second?: string;
        timeZoneName?: string;
    }

    interface DateTimeFormat {
        format(date?: Date | number): string;
        resolvedOptions(): ResolvedDateTimeFormatOptions;
    }
    var DateTimeFormat: {
        new(locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;
        (locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;
        supportedLocalesOf(locales: string | string[], options?: DateTimeFormatOptions): string[];
        readonly prototype: DateTimeFormat;
    };
}

interface String {
    /**
     * Determines whether two strings are equivalent in the current or specified locale.
     * @param that String to compare to target string
     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.
     * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.
     */
    localeCompare(that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;
}

interface Number {
    /**
     * Converts a number to a string by using the current or specified locale.
     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
     * @param options An object that contains one or more properties that specify comparison options.
     */
    toLocaleString(locales?: string | string[], options?: Intl.NumberFormatOptions): string;
}

interface Date {
    /**
     * Converts a date and time to a string by using the current or specified locale.
     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
     * @param options An object that contains one or more properties that specify comparison options.
     */
    toLocaleString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;
    /**
     * Converts a date to a string by using the current or specified locale.
     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
     * @param options An object that contains one or more properties that specify comparison options.
     */
    toLocaleDateString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;

    /**
     * Converts a time to a string by using the current or specified locale.
     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
     * @param options An object that contains one or more properties that specify comparison options.
     */
    toLocaleTimeString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;
}
`;
ba["lib.es6.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2015" />
/// <reference lib="dom" />
/// <reference lib="dom.iterable" />
/// <reference lib="webworker.importscripts" />
/// <reference lib="scripthost" />
`;
ba["lib.esnext.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="es2023" />
/// <reference lib="esnext.intl" />
`;
ba["lib.esnext.full.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/// <reference lib="esnext" />
/// <reference lib="dom" />
/// <reference lib="webworker.importscripts" />
/// <reference lib="scripthost" />
/// <reference lib="dom.iterable" />`;
ba["lib.esnext.intl.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

declare namespace Intl {
  interface NumberRangeFormatPart extends NumberFormatPart {
    source: "startRange" | "endRange" | "shared"
  }

  interface NumberFormat {
    formatRange(start: number | bigint, end: number | bigint): string;
    formatRangeToParts(start: number | bigint, end: number | bigint): NumberRangeFormatPart[];
  }
}
`;
ba["lib.scripthost.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>



/////////////////////////////
/// Windows Script Host APIS
/////////////////////////////


interface ActiveXObject {
    new (s: string): any;
}
declare var ActiveXObject: ActiveXObject;

interface ITextWriter {
    Write(s: string): void;
    WriteLine(s: string): void;
    Close(): void;
}

interface TextStreamBase {
    /**
     * The column number of the current character position in an input stream.
     */
    Column: number;

    /**
     * The current line number in an input stream.
     */
    Line: number;

    /**
     * Closes a text stream.
     * It is not necessary to close standard streams; they close automatically when the process ends. If
     * you close a standard stream, be aware that any other pointers to that standard stream become invalid.
     */
    Close(): void;
}

interface TextStreamWriter extends TextStreamBase {
    /**
     * Sends a string to an output stream.
     */
    Write(s: string): void;

    /**
     * Sends a specified number of blank lines (newline characters) to an output stream.
     */
    WriteBlankLines(intLines: number): void;

    /**
     * Sends a string followed by a newline character to an output stream.
     */
    WriteLine(s: string): void;
}

interface TextStreamReader extends TextStreamBase {
    /**
     * Returns a specified number of characters from an input stream, starting at the current pointer position.
     * Does not return until the ENTER key is pressed.
     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.
     */
    Read(characters: number): string;

    /**
     * Returns all characters from an input stream.
     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.
     */
    ReadAll(): string;

    /**
     * Returns an entire line from an input stream.
     * Although this method extracts the newline character, it does not add it to the returned string.
     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.
     */
    ReadLine(): string;

    /**
     * Skips a specified number of characters when reading from an input text stream.
     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.
     * @param characters Positive number of characters to skip forward. (Backward skipping is not supported.)
     */
    Skip(characters: number): void;

    /**
     * Skips the next line when reading from an input text stream.
     * Can only be used on a stream in reading mode, not writing or appending mode.
     */
    SkipLine(): void;

    /**
     * Indicates whether the stream pointer position is at the end of a line.
     */
    AtEndOfLine: boolean;

    /**
     * Indicates whether the stream pointer position is at the end of a stream.
     */
    AtEndOfStream: boolean;
}

declare var WScript: {
    /**
     * Outputs text to either a message box (under WScript.exe) or the command console window followed by
     * a newline (under CScript.exe).
     */
    Echo(s: any): void;

    /**
     * Exposes the write-only error output stream for the current script.
     * Can be accessed only while using CScript.exe.
     */
    StdErr: TextStreamWriter;

    /**
     * Exposes the write-only output stream for the current script.
     * Can be accessed only while using CScript.exe.
     */
    StdOut: TextStreamWriter;
    Arguments: { length: number; Item(n: number): string; };

    /**
     *  The full path of the currently running script.
     */
    ScriptFullName: string;

    /**
     * Forces the script to stop immediately, with an optional exit code.
     */
    Quit(exitCode?: number): number;

    /**
     * The Windows Script Host build version number.
     */
    BuildVersion: number;

    /**
     * Fully qualified path of the host executable.
     */
    FullName: string;

    /**
     * Gets/sets the script mode - interactive(true) or batch(false).
     */
    Interactive: boolean;

    /**
     * The name of the host executable (WScript.exe or CScript.exe).
     */
    Name: string;

    /**
     * Path of the directory containing the host executable.
     */
    Path: string;

    /**
     * The filename of the currently running script.
     */
    ScriptName: string;

    /**
     * Exposes the read-only input stream for the current script.
     * Can be accessed only while using CScript.exe.
     */
    StdIn: TextStreamReader;

    /**
     * Windows Script Host version
     */
    Version: string;

    /**
     * Connects a COM object's event sources to functions named with a given prefix, in the form prefix_event.
     */
    ConnectObject(objEventSource: any, strPrefix: string): void;

    /**
     * Creates a COM object.
     * @param strProgiID
     * @param strPrefix Function names in the form prefix_event will be bound to this object's COM events.
     */
    CreateObject(strProgID: string, strPrefix?: string): any;

    /**
     * Disconnects a COM object from its event sources.
     */
    DisconnectObject(obj: any): void;

    /**
     * Retrieves an existing object with the specified ProgID from memory, or creates a new one from a file.
     * @param strPathname Fully qualified path to the file containing the object persisted to disk.
     *                       For objects in memory, pass a zero-length string.
     * @param strProgID
     * @param strPrefix Function names in the form prefix_event will be bound to this object's COM events.
     */
    GetObject(strPathname: string, strProgID?: string, strPrefix?: string): any;

    /**
     * Suspends script execution for a specified length of time, then continues execution.
     * @param intTime Interval (in milliseconds) to suspend script execution.
     */
    Sleep(intTime: number): void;
};

/**
 * WSH is an alias for WScript under Windows Script Host
 */
declare var WSH: typeof WScript;

/**
 * Represents an Automation SAFEARRAY
 */
declare class SafeArray<T = any> {
    private constructor();
    private SafeArray_typekey: SafeArray<T>;
}

/**
 * Allows enumerating over a COM collection, which may not have indexed item access.
 */
interface Enumerator<T = any> {
    /**
     * Returns true if the current item is the last one in the collection, or the collection is empty,
     * or the current item is undefined.
     */
    atEnd(): boolean;

    /**
     * Returns the current item in the collection
     */
    item(): T;

    /**
     * Resets the current item in the collection to the first item. If there are no items in the collection,
     * the current item is set to undefined.
     */
    moveFirst(): void;

    /**
     * Moves the current item to the next item in the collection. If the enumerator is at the end of
     * the collection or the collection is empty, the current item is set to undefined.
     */
    moveNext(): void;
}

interface EnumeratorConstructor {
    new <T = any>(safearray: SafeArray<T>): Enumerator<T>;
    new <T = any>(collection: { Item(index: any): T }): Enumerator<T>;
    new <T = any>(collection: any): Enumerator<T>;
}

declare var Enumerator: EnumeratorConstructor;

/**
 * Enables reading from a COM safe array, which might have an alternate lower bound, or multiple dimensions.
 */
interface VBArray<T = any> {
    /**
     * Returns the number of dimensions (1-based).
     */
    dimensions(): number;

    /**
     * Takes an index for each dimension in the array, and returns the item at the corresponding location.
     */
    getItem(dimension1Index: number, ...dimensionNIndexes: number[]): T;

    /**
     * Returns the smallest available index for a given dimension.
     * @param dimension 1-based dimension (defaults to 1)
     */
    lbound(dimension?: number): number;

    /**
     * Returns the largest available index for a given dimension.
     * @param dimension 1-based dimension (defaults to 1)
     */
    ubound(dimension?: number): number;

    /**
     * Returns a Javascript array with all the elements in the VBArray. If there are multiple dimensions,
     * each successive dimension is appended to the end of the array.
     * Example: [[1,2,3],[4,5,6]] becomes [1,2,3,4,5,6]
     */
    toArray(): T[];
}

interface VBArrayConstructor {
    new <T = any>(safeArray: SafeArray<T>): VBArray<T>;
}

declare var VBArray: VBArrayConstructor;

/**
 * Automation date (VT_DATE)
 */
declare class VarDate {
    private constructor();
    private VarDate_typekey: VarDate;
}

interface DateConstructor {
    new (vd: VarDate): Date;
}

interface Date {
    getVarDate: () => VarDate;
}
`;
ba["lib.webworker.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/////////////////////////////
/// Worker APIs
/////////////////////////////

interface AddEventListenerOptions extends EventListenerOptions {
    once?: boolean;
    passive?: boolean;
    signal?: AbortSignal;
}

interface AesCbcParams extends Algorithm {
    iv: BufferSource;
}

interface AesCtrParams extends Algorithm {
    counter: BufferSource;
    length: number;
}

interface AesDerivedKeyParams extends Algorithm {
    length: number;
}

interface AesGcmParams extends Algorithm {
    additionalData?: BufferSource;
    iv: BufferSource;
    tagLength?: number;
}

interface AesKeyAlgorithm extends KeyAlgorithm {
    length: number;
}

interface AesKeyGenParams extends Algorithm {
    length: number;
}

interface Algorithm {
    name: string;
}

interface AudioConfiguration {
    bitrate?: number;
    channels?: string;
    contentType: string;
    samplerate?: number;
    spatialRendering?: boolean;
}

interface BlobPropertyBag {
    endings?: EndingType;
    type?: string;
}

interface CacheQueryOptions {
    ignoreMethod?: boolean;
    ignoreSearch?: boolean;
    ignoreVary?: boolean;
}

interface ClientQueryOptions {
    includeUncontrolled?: boolean;
    type?: ClientTypes;
}

interface CloseEventInit extends EventInit {
    code?: number;
    reason?: string;
    wasClean?: boolean;
}

interface CryptoKeyPair {
    privateKey: CryptoKey;
    publicKey: CryptoKey;
}

interface CustomEventInit<T = any> extends EventInit {
    detail?: T;
}

interface DOMMatrix2DInit {
    a?: number;
    b?: number;
    c?: number;
    d?: number;
    e?: number;
    f?: number;
    m11?: number;
    m12?: number;
    m21?: number;
    m22?: number;
    m41?: number;
    m42?: number;
}

interface DOMMatrixInit extends DOMMatrix2DInit {
    is2D?: boolean;
    m13?: number;
    m14?: number;
    m23?: number;
    m24?: number;
    m31?: number;
    m32?: number;
    m33?: number;
    m34?: number;
    m43?: number;
    m44?: number;
}

interface DOMPointInit {
    w?: number;
    x?: number;
    y?: number;
    z?: number;
}

interface DOMQuadInit {
    p1?: DOMPointInit;
    p2?: DOMPointInit;
    p3?: DOMPointInit;
    p4?: DOMPointInit;
}

interface DOMRectInit {
    height?: number;
    width?: number;
    x?: number;
    y?: number;
}

interface EcKeyGenParams extends Algorithm {
    namedCurve: NamedCurve;
}

interface EcKeyImportParams extends Algorithm {
    namedCurve: NamedCurve;
}

interface EcdhKeyDeriveParams extends Algorithm {
    public: CryptoKey;
}

interface EcdsaParams extends Algorithm {
    hash: HashAlgorithmIdentifier;
}

interface ErrorEventInit extends EventInit {
    colno?: number;
    error?: any;
    filename?: string;
    lineno?: number;
    message?: string;
}

interface EventInit {
    bubbles?: boolean;
    cancelable?: boolean;
    composed?: boolean;
}

interface EventListenerOptions {
    capture?: boolean;
}

interface EventSourceInit {
    withCredentials?: boolean;
}

interface ExtendableEventInit extends EventInit {
}

interface ExtendableMessageEventInit extends ExtendableEventInit {
    data?: any;
    lastEventId?: string;
    origin?: string;
    ports?: MessagePort[];
    source?: Client | ServiceWorker | MessagePort | null;
}

interface FetchEventInit extends ExtendableEventInit {
    clientId?: string;
    handled?: Promise<undefined>;
    preloadResponse?: Promise<any>;
    replacesClientId?: string;
    request: Request;
    resultingClientId?: string;
}

interface FilePropertyBag extends BlobPropertyBag {
    lastModified?: number;
}

interface FileSystemGetDirectoryOptions {
    create?: boolean;
}

interface FileSystemGetFileOptions {
    create?: boolean;
}

interface FileSystemReadWriteOptions {
    at?: number;
}

interface FileSystemRemoveOptions {
    recursive?: boolean;
}

interface FontFaceDescriptors {
    ascentOverride?: string;
    descentOverride?: string;
    display?: FontDisplay;
    featureSettings?: string;
    lineGapOverride?: string;
    stretch?: string;
    style?: string;
    unicodeRange?: string;
    variant?: string;
    weight?: string;
}

interface FontFaceSetLoadEventInit extends EventInit {
    fontfaces?: FontFace[];
}

interface GetNotificationOptions {
    tag?: string;
}

interface HkdfParams extends Algorithm {
    hash: HashAlgorithmIdentifier;
    info: BufferSource;
    salt: BufferSource;
}

interface HmacImportParams extends Algorithm {
    hash: HashAlgorithmIdentifier;
    length?: number;
}

interface HmacKeyGenParams extends Algorithm {
    hash: HashAlgorithmIdentifier;
    length?: number;
}

interface IDBDatabaseInfo {
    name?: string;
    version?: number;
}

interface IDBIndexParameters {
    multiEntry?: boolean;
    unique?: boolean;
}

interface IDBObjectStoreParameters {
    autoIncrement?: boolean;
    keyPath?: string | string[] | null;
}

interface IDBTransactionOptions {
    durability?: IDBTransactionDurability;
}

interface IDBVersionChangeEventInit extends EventInit {
    newVersion?: number | null;
    oldVersion?: number;
}

interface ImageBitmapOptions {
    colorSpaceConversion?: ColorSpaceConversion;
    imageOrientation?: ImageOrientation;
    premultiplyAlpha?: PremultiplyAlpha;
    resizeHeight?: number;
    resizeQuality?: ResizeQuality;
    resizeWidth?: number;
}

interface ImageBitmapRenderingContextSettings {
    alpha?: boolean;
}

interface ImageDataSettings {
    colorSpace?: PredefinedColorSpace;
}

interface ImageEncodeOptions {
    quality?: number;
    type?: string;
}

interface ImportMeta {
    url: string;
}

interface JsonWebKey {
    alg?: string;
    crv?: string;
    d?: string;
    dp?: string;
    dq?: string;
    e?: string;
    ext?: boolean;
    k?: string;
    key_ops?: string[];
    kty?: string;
    n?: string;
    oth?: RsaOtherPrimesInfo[];
    p?: string;
    q?: string;
    qi?: string;
    use?: string;
    x?: string;
    y?: string;
}

interface KeyAlgorithm {
    name: string;
}

interface LockInfo {
    clientId?: string;
    mode?: LockMode;
    name?: string;
}

interface LockManagerSnapshot {
    held?: LockInfo[];
    pending?: LockInfo[];
}

interface LockOptions {
    ifAvailable?: boolean;
    mode?: LockMode;
    signal?: AbortSignal;
    steal?: boolean;
}

interface MediaCapabilitiesDecodingInfo extends MediaCapabilitiesInfo {
    configuration?: MediaDecodingConfiguration;
}

interface MediaCapabilitiesEncodingInfo extends MediaCapabilitiesInfo {
    configuration?: MediaEncodingConfiguration;
}

interface MediaCapabilitiesInfo {
    powerEfficient: boolean;
    smooth: boolean;
    supported: boolean;
}

interface MediaConfiguration {
    audio?: AudioConfiguration;
    video?: VideoConfiguration;
}

interface MediaDecodingConfiguration extends MediaConfiguration {
    type: MediaDecodingType;
}

interface MediaEncodingConfiguration extends MediaConfiguration {
    type: MediaEncodingType;
}

interface MessageEventInit<T = any> extends EventInit {
    data?: T;
    lastEventId?: string;
    origin?: string;
    ports?: MessagePort[];
    source?: MessageEventSource | null;
}

interface MultiCacheQueryOptions extends CacheQueryOptions {
    cacheName?: string;
}

interface NavigationPreloadState {
    enabled?: boolean;
    headerValue?: string;
}

interface NotificationAction {
    action: string;
    icon?: string;
    title: string;
}

interface NotificationEventInit extends ExtendableEventInit {
    action?: string;
    notification: Notification;
}

interface NotificationOptions {
    actions?: NotificationAction[];
    badge?: string;
    body?: string;
    data?: any;
    dir?: NotificationDirection;
    icon?: string;
    image?: string;
    lang?: string;
    renotify?: boolean;
    requireInteraction?: boolean;
    silent?: boolean;
    tag?: string;
    timestamp?: EpochTimeStamp;
    vibrate?: VibratePattern;
}

interface Pbkdf2Params extends Algorithm {
    hash: HashAlgorithmIdentifier;
    iterations: number;
    salt: BufferSource;
}

interface PerformanceMarkOptions {
    detail?: any;
    startTime?: DOMHighResTimeStamp;
}

interface PerformanceMeasureOptions {
    detail?: any;
    duration?: DOMHighResTimeStamp;
    end?: string | DOMHighResTimeStamp;
    start?: string | DOMHighResTimeStamp;
}

interface PerformanceObserverInit {
    buffered?: boolean;
    entryTypes?: string[];
    type?: string;
}

interface PermissionDescriptor {
    name: PermissionName;
}

interface ProgressEventInit extends EventInit {
    lengthComputable?: boolean;
    loaded?: number;
    total?: number;
}

interface PromiseRejectionEventInit extends EventInit {
    promise: Promise<any>;
    reason?: any;
}

interface PushEventInit extends ExtendableEventInit {
    data?: PushMessageDataInit;
}

interface PushSubscriptionJSON {
    endpoint?: string;
    expirationTime?: EpochTimeStamp | null;
    keys?: Record<string, string>;
}

interface PushSubscriptionOptionsInit {
    applicationServerKey?: BufferSource | string | null;
    userVisibleOnly?: boolean;
}

interface QueuingStrategy<T = any> {
    highWaterMark?: number;
    size?: QueuingStrategySize<T>;
}

interface QueuingStrategyInit {
    /**
     * Creates a new ByteLengthQueuingStrategy with the provided high water mark.
     *
     * Note that the provided high water mark will not be validated ahead of time. Instead, if it is negative, NaN, or not a number, the resulting ByteLengthQueuingStrategy will cause the corresponding stream constructor to throw.
     */
    highWaterMark: number;
}

interface RTCEncodedAudioFrameMetadata {
    contributingSources?: number[];
    synchronizationSource?: number;
}

interface RTCEncodedVideoFrameMetadata {
    contributingSources?: number[];
    dependencies?: number[];
    frameId?: number;
    height?: number;
    spatialIndex?: number;
    synchronizationSource?: number;
    temporalIndex?: number;
    width?: number;
}

interface ReadableStreamGetReaderOptions {
    /**
     * Creates a ReadableStreamBYOBReader and locks the stream to the new reader.
     *
     * This call behaves the same way as the no-argument variant, except that it only works on readable byte streams, i.e. streams which were constructed specifically with the ability to handle "bring your own buffer" reading. The returned BYOB reader provides the ability to directly read individual chunks from the stream via its read() method, into developer-supplied buffers, allowing more precise control over allocation.
     */
    mode?: ReadableStreamReaderMode;
}

interface ReadableStreamReadDoneResult<T> {
    done: true;
    value?: T;
}

interface ReadableStreamReadValueResult<T> {
    done: false;
    value: T;
}

interface ReadableWritablePair<R = any, W = any> {
    readable: ReadableStream<R>;
    /**
     * Provides a convenient, chainable way of piping this readable stream through a transform stream (or any other { writable, readable } pair). It simply pipes the stream into the writable side of the supplied pair, and returns the readable side for further use.
     *
     * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.
     */
    writable: WritableStream<W>;
}

interface RegistrationOptions {
    scope?: string;
    type?: WorkerType;
    updateViaCache?: ServiceWorkerUpdateViaCache;
}

interface RequestInit {
    /** A BodyInit object or null to set request's body. */
    body?: BodyInit | null;
    /** A string indicating how the request will interact with the browser's cache to set request's cache. */
    cache?: RequestCache;
    /** A string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL. Sets request's credentials. */
    credentials?: RequestCredentials;
    /** A Headers object, an object literal, or an array of two-item arrays to set request's headers. */
    headers?: HeadersInit;
    /** A cryptographic hash of the resource to be fetched by request. Sets request's integrity. */
    integrity?: string;
    /** A boolean to set request's keepalive. */
    keepalive?: boolean;
    /** A string to set request's method. */
    method?: string;
    /** A string to indicate whether the request will use CORS, or will be restricted to same-origin URLs. Sets request's mode. */
    mode?: RequestMode;
    /** A string indicating whether request follows redirects, results in an error upon encountering a redirect, or returns the redirect (in an opaque fashion). Sets request's redirect. */
    redirect?: RequestRedirect;
    /** A string whose value is a same-origin URL, "about:client", or the empty string, to set request's referrer. */
    referrer?: string;
    /** A referrer policy to set request's referrerPolicy. */
    referrerPolicy?: ReferrerPolicy;
    /** An AbortSignal to set request's signal. */
    signal?: AbortSignal | null;
    /** Can only be null. Used to disassociate request from any Window. */
    window?: null;
}

interface ResponseInit {
    headers?: HeadersInit;
    status?: number;
    statusText?: string;
}

interface RsaHashedImportParams extends Algorithm {
    hash: HashAlgorithmIdentifier;
}

interface RsaHashedKeyGenParams extends RsaKeyGenParams {
    hash: HashAlgorithmIdentifier;
}

interface RsaKeyGenParams extends Algorithm {
    modulusLength: number;
    publicExponent: BigInteger;
}

interface RsaOaepParams extends Algorithm {
    label?: BufferSource;
}

interface RsaOtherPrimesInfo {
    d?: string;
    r?: string;
    t?: string;
}

interface RsaPssParams extends Algorithm {
    saltLength: number;
}

interface SecurityPolicyViolationEventInit extends EventInit {
    blockedURI?: string;
    columnNumber?: number;
    disposition: SecurityPolicyViolationEventDisposition;
    documentURI: string;
    effectiveDirective: string;
    lineNumber?: number;
    originalPolicy: string;
    referrer?: string;
    sample?: string;
    sourceFile?: string;
    statusCode: number;
    violatedDirective: string;
}

interface StorageEstimate {
    quota?: number;
    usage?: number;
}

interface StreamPipeOptions {
    preventAbort?: boolean;
    preventCancel?: boolean;
    /**
     * Pipes this readable stream to a given writable stream destination. The way in which the piping process behaves under various error conditions can be customized with a number of passed options. It returns a promise that fulfills when the piping process completes successfully, or rejects if any errors were encountered.
     *
     * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.
     *
     * Errors and closures of the source and destination streams propagate as follows:
     *
     * An error in this source readable stream will abort destination, unless preventAbort is truthy. The returned promise will be rejected with the source's error, or with any error that occurs during aborting the destination.
     *
     * An error in destination will cancel this source readable stream, unless preventCancel is truthy. The returned promise will be rejected with the destination's error, or with any error that occurs during canceling the source.
     *
     * When this source readable stream closes, destination will be closed, unless preventClose is truthy. The returned promise will be fulfilled once this process completes, unless an error is encountered while closing the destination, in which case it will be rejected with that error.
     *
     * If destination starts out closed or closing, this source readable stream will be canceled, unless preventCancel is true. The returned promise will be rejected with an error indicating piping to a closed stream failed, or with any error that occurs during canceling the source.
     *
     * The signal option can be set to an AbortSignal to allow aborting an ongoing pipe operation via the corresponding AbortController. In this case, this source readable stream will be canceled, and destination aborted, unless the respective options preventCancel or preventAbort are set.
     */
    preventClose?: boolean;
    signal?: AbortSignal;
}

interface StructuredSerializeOptions {
    transfer?: Transferable[];
}

interface TextDecodeOptions {
    stream?: boolean;
}

interface TextDecoderOptions {
    fatal?: boolean;
    ignoreBOM?: boolean;
}

interface TextEncoderEncodeIntoResult {
    read?: number;
    written?: number;
}

interface Transformer<I = any, O = any> {
    flush?: TransformerFlushCallback<O>;
    readableType?: undefined;
    start?: TransformerStartCallback<O>;
    transform?: TransformerTransformCallback<I, O>;
    writableType?: undefined;
}

interface UnderlyingByteSource {
    autoAllocateChunkSize?: number;
    cancel?: UnderlyingSourceCancelCallback;
    pull?: (controller: ReadableByteStreamController) => void | PromiseLike<void>;
    start?: (controller: ReadableByteStreamController) => any;
    type: "bytes";
}

interface UnderlyingDefaultSource<R = any> {
    cancel?: UnderlyingSourceCancelCallback;
    pull?: (controller: ReadableStreamDefaultController<R>) => void | PromiseLike<void>;
    start?: (controller: ReadableStreamDefaultController<R>) => any;
    type?: undefined;
}

interface UnderlyingSink<W = any> {
    abort?: UnderlyingSinkAbortCallback;
    close?: UnderlyingSinkCloseCallback;
    start?: UnderlyingSinkStartCallback;
    type?: undefined;
    write?: UnderlyingSinkWriteCallback<W>;
}

interface UnderlyingSource<R = any> {
    autoAllocateChunkSize?: number;
    cancel?: UnderlyingSourceCancelCallback;
    pull?: UnderlyingSourcePullCallback<R>;
    start?: UnderlyingSourceStartCallback<R>;
    type?: ReadableStreamType;
}

interface VideoColorSpaceInit {
    fullRange?: boolean | null;
    matrix?: VideoMatrixCoefficients | null;
    primaries?: VideoColorPrimaries | null;
    transfer?: VideoTransferCharacteristics | null;
}

interface VideoConfiguration {
    bitrate: number;
    colorGamut?: ColorGamut;
    contentType: string;
    framerate: number;
    hdrMetadataType?: HdrMetadataType;
    height: number;
    scalabilityMode?: string;
    transferFunction?: TransferFunction;
    width: number;
}

interface WebGLContextAttributes {
    alpha?: boolean;
    antialias?: boolean;
    depth?: boolean;
    desynchronized?: boolean;
    failIfMajorPerformanceCaveat?: boolean;
    powerPreference?: WebGLPowerPreference;
    premultipliedAlpha?: boolean;
    preserveDrawingBuffer?: boolean;
    stencil?: boolean;
}

interface WebGLContextEventInit extends EventInit {
    statusMessage?: string;
}

interface WorkerOptions {
    credentials?: RequestCredentials;
    name?: string;
    type?: WorkerType;
}

/** The ANGLE_instanced_arrays extension is part of the WebGL API and allows to draw the same object, or groups of similar objects multiple times, if they share the same vertex data, primitive count and type. */
interface ANGLE_instanced_arrays {
    drawArraysInstancedANGLE(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei): void;
    drawElementsInstancedANGLE(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, primcount: GLsizei): void;
    vertexAttribDivisorANGLE(index: GLuint, divisor: GLuint): void;
    readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: 0x88FE;
}

/** A controller object that allows you to abort one or more DOM requests as and when desired. */
interface AbortController {
    /** Returns the AbortSignal object associated with this object. */
    readonly signal: AbortSignal;
    /** Invoking this method will set this object's AbortSignal's aborted flag and signal to any observers that the associated activity is to be aborted. */
    abort(reason?: any): void;
}

declare var AbortController: {
    prototype: AbortController;
    new(): AbortController;
};

interface AbortSignalEventMap {
    "abort": Event;
}

/** A signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object. */
interface AbortSignal extends EventTarget {
    /** Returns true if this AbortSignal's AbortController has signaled to abort, and false otherwise. */
    readonly aborted: boolean;
    onabort: ((this: AbortSignal, ev: Event) => any) | null;
    readonly reason: any;
    throwIfAborted(): void;
    addEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var AbortSignal: {
    prototype: AbortSignal;
    new(): AbortSignal;
    abort(reason?: any): AbortSignal;
    timeout(milliseconds: number): AbortSignal;
};

interface AbstractWorkerEventMap {
    "error": ErrorEvent;
}

interface AbstractWorker {
    onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;
    addEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

interface AnimationFrameProvider {
    cancelAnimationFrame(handle: number): void;
    requestAnimationFrame(callback: FrameRequestCallback): number;
}

/** A file-like object of immutable, raw data. Blobs represent data that isn't necessarily in a JavaScript-native format. The File interface is based on Blob, inheriting blob functionality and expanding it to support files on the user's system. */
interface Blob {
    readonly size: number;
    readonly type: string;
    arrayBuffer(): Promise<ArrayBuffer>;
    slice(start?: number, end?: number, contentType?: string): Blob;
    stream(): ReadableStream<Uint8Array>;
    text(): Promise<string>;
}

declare var Blob: {
    prototype: Blob;
    new(blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;
};

interface Body {
    readonly body: ReadableStream<Uint8Array> | null;
    readonly bodyUsed: boolean;
    arrayBuffer(): Promise<ArrayBuffer>;
    blob(): Promise<Blob>;
    formData(): Promise<FormData>;
    json(): Promise<any>;
    text(): Promise<string>;
}

interface BroadcastChannelEventMap {
    "message": MessageEvent;
    "messageerror": MessageEvent;
}

interface BroadcastChannel extends EventTarget {
    /** Returns the channel name (as passed to the constructor). */
    readonly name: string;
    onmessage: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;
    onmessageerror: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;
    /** Closes the BroadcastChannel object, opening it up to garbage collection. */
    close(): void;
    /** Sends the given message to other BroadcastChannel objects set up for this channel. Messages can be structured objects, e.g. nested objects and arrays. */
    postMessage(message: any): void;
    addEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var BroadcastChannel: {
    prototype: BroadcastChannel;
    new(name: string): BroadcastChannel;
};

/** This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams. */
interface ByteLengthQueuingStrategy extends QueuingStrategy<ArrayBufferView> {
    readonly highWaterMark: number;
    readonly size: QueuingStrategySize<ArrayBufferView>;
}

declare var ByteLengthQueuingStrategy: {
    prototype: ByteLengthQueuingStrategy;
    new(init: QueuingStrategyInit): ByteLengthQueuingStrategy;
};

/**
 * Provides a storage mechanism for Request / Response object pairs that are cached, for example as part of the ServiceWorker life cycle. Note that the Cache interface is exposed to windowed scopes as well as workers. You don't have to use it in conjunction with service workers, even though it is defined in the service worker spec.
 * Available only in secure contexts.
 */
interface Cache {
    add(request: RequestInfo | URL): Promise<void>;
    addAll(requests: RequestInfo[]): Promise<void>;
    delete(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<boolean>;
    keys(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise<ReadonlyArray<Request>>;
    match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<Response | undefined>;
    matchAll(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise<ReadonlyArray<Response>>;
    put(request: RequestInfo | URL, response: Response): Promise<void>;
}

declare var Cache: {
    prototype: Cache;
    new(): Cache;
};

/**
 * The storage for Cache objects.
 * Available only in secure contexts.
 */
interface CacheStorage {
    delete(cacheName: string): Promise<boolean>;
    has(cacheName: string): Promise<boolean>;
    keys(): Promise<string[]>;
    match(request: RequestInfo | URL, options?: MultiCacheQueryOptions): Promise<Response | undefined>;
    open(cacheName: string): Promise<Cache>;
}

declare var CacheStorage: {
    prototype: CacheStorage;
    new(): CacheStorage;
};

interface CanvasCompositing {
    globalAlpha: number;
    globalCompositeOperation: GlobalCompositeOperation;
}

interface CanvasDrawImage {
    drawImage(image: CanvasImageSource, dx: number, dy: number): void;
    drawImage(image: CanvasImageSource, dx: number, dy: number, dw: number, dh: number): void;
    drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;
}

interface CanvasDrawPath {
    beginPath(): void;
    clip(fillRule?: CanvasFillRule): void;
    clip(path: Path2D, fillRule?: CanvasFillRule): void;
    fill(fillRule?: CanvasFillRule): void;
    fill(path: Path2D, fillRule?: CanvasFillRule): void;
    isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;
    isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule): boolean;
    isPointInStroke(x: number, y: number): boolean;
    isPointInStroke(path: Path2D, x: number, y: number): boolean;
    stroke(): void;
    stroke(path: Path2D): void;
}

interface CanvasFillStrokeStyles {
    fillStyle: string | CanvasGradient | CanvasPattern;
    strokeStyle: string | CanvasGradient | CanvasPattern;
    createConicGradient(startAngle: number, x: number, y: number): CanvasGradient;
    createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;
    createPattern(image: CanvasImageSource, repetition: string | null): CanvasPattern | null;
    createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;
}

interface CanvasFilters {
    filter: string;
}

/** An opaque object describing a gradient. It is returned by the methods CanvasRenderingContext2D.createLinearGradient() or CanvasRenderingContext2D.createRadialGradient(). */
interface CanvasGradient {
    /**
     * Adds a color stop with the given color to the gradient at the given offset. 0.0 is the offset at one end of the gradient, 1.0 is the offset at the other end.
     *
     * Throws an "IndexSizeError" DOMException if the offset is out of range. Throws a "SyntaxError" DOMException if the color cannot be parsed.
     */
    addColorStop(offset: number, color: string): void;
}

declare var CanvasGradient: {
    prototype: CanvasGradient;
    new(): CanvasGradient;
};

interface CanvasImageData {
    createImageData(sw: number, sh: number, settings?: ImageDataSettings): ImageData;
    createImageData(imagedata: ImageData): ImageData;
    getImageData(sx: number, sy: number, sw: number, sh: number, settings?: ImageDataSettings): ImageData;
    putImageData(imagedata: ImageData, dx: number, dy: number): void;
    putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void;
}

interface CanvasImageSmoothing {
    imageSmoothingEnabled: boolean;
    imageSmoothingQuality: ImageSmoothingQuality;
}

interface CanvasPath {
    arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
    arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
    bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
    closePath(): void;
    ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
    lineTo(x: number, y: number): void;
    moveTo(x: number, y: number): void;
    quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
    rect(x: number, y: number, w: number, h: number): void;
    roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | (number | DOMPointInit)[]): void;
}

interface CanvasPathDrawingStyles {
    lineCap: CanvasLineCap;
    lineDashOffset: number;
    lineJoin: CanvasLineJoin;
    lineWidth: number;
    miterLimit: number;
    getLineDash(): number[];
    setLineDash(segments: number[]): void;
}

/** An opaque object describing a pattern, based on an image, a canvas, or a video, created by the CanvasRenderingContext2D.createPattern() method. */
interface CanvasPattern {
    /** Sets the transformation matrix that will be used when rendering the pattern during a fill or stroke painting operation. */
    setTransform(transform?: DOMMatrix2DInit): void;
}

declare var CanvasPattern: {
    prototype: CanvasPattern;
    new(): CanvasPattern;
};

interface CanvasRect {
    clearRect(x: number, y: number, w: number, h: number): void;
    fillRect(x: number, y: number, w: number, h: number): void;
    strokeRect(x: number, y: number, w: number, h: number): void;
}

interface CanvasShadowStyles {
    shadowBlur: number;
    shadowColor: string;
    shadowOffsetX: number;
    shadowOffsetY: number;
}

interface CanvasState {
    restore(): void;
    save(): void;
}

interface CanvasText {
    fillText(text: string, x: number, y: number, maxWidth?: number): void;
    measureText(text: string): TextMetrics;
    strokeText(text: string, x: number, y: number, maxWidth?: number): void;
}

interface CanvasTextDrawingStyles {
    direction: CanvasDirection;
    font: string;
    fontKerning: CanvasFontKerning;
    textAlign: CanvasTextAlign;
    textBaseline: CanvasTextBaseline;
}

interface CanvasTransform {
    getTransform(): DOMMatrix;
    resetTransform(): void;
    rotate(angle: number): void;
    scale(x: number, y: number): void;
    setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;
    setTransform(transform?: DOMMatrix2DInit): void;
    transform(a: number, b: number, c: number, d: number, e: number, f: number): void;
    translate(x: number, y: number): void;
}

/** The Client interface represents an executable context such as a Worker, or a SharedWorker. Window clients are represented by the more-specific WindowClient. You can get Client/WindowClient objects from methods such as Clients.matchAll() and Clients.get(). */
interface Client {
    readonly frameType: FrameType;
    readonly id: string;
    readonly type: ClientTypes;
    readonly url: string;
    postMessage(message: any, transfer: Transferable[]): void;
    postMessage(message: any, options?: StructuredSerializeOptions): void;
}

declare var Client: {
    prototype: Client;
    new(): Client;
};

/** Provides access to Client objects. Access it via self.clients within a service worker. */
interface Clients {
    claim(): Promise<void>;
    get(id: string): Promise<Client | undefined>;
    matchAll<T extends ClientQueryOptions>(options?: T): Promise<ReadonlyArray<T["type"] extends "window" ? WindowClient : Client>>;
    openWindow(url: string | URL): Promise<WindowClient | null>;
}

declare var Clients: {
    prototype: Clients;
    new(): Clients;
};

/** A CloseEvent is sent to clients using WebSockets when the connection is closed. This is delivered to the listener indicated by the WebSocket object's onclose attribute. */
interface CloseEvent extends Event {
    /** Returns the WebSocket connection close code provided by the server. */
    readonly code: number;
    /** Returns the WebSocket connection close reason provided by the server. */
    readonly reason: string;
    /** Returns true if the connection closed cleanly; false otherwise. */
    readonly wasClean: boolean;
}

declare var CloseEvent: {
    prototype: CloseEvent;
    new(type: string, eventInitDict?: CloseEventInit): CloseEvent;
};

/** This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams. */
interface CountQueuingStrategy extends QueuingStrategy {
    readonly highWaterMark: number;
    readonly size: QueuingStrategySize;
}

declare var CountQueuingStrategy: {
    prototype: CountQueuingStrategy;
    new(init: QueuingStrategyInit): CountQueuingStrategy;
};

/** Basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives. */
interface Crypto {
    /** Available only in secure contexts. */
    readonly subtle: SubtleCrypto;
    getRandomValues<T extends ArrayBufferView | null>(array: T): T;
    /** Available only in secure contexts. */
    randomUUID(): \`\${string}-\${string}-\${string}-\${string}-\${string}\`;
}

declare var Crypto: {
    prototype: Crypto;
    new(): Crypto;
};

/**
 * The CryptoKey dictionary of the Web Crypto API represents a cryptographic key.
 * Available only in secure contexts.
 */
interface CryptoKey {
    readonly algorithm: KeyAlgorithm;
    readonly extractable: boolean;
    readonly type: KeyType;
    readonly usages: KeyUsage[];
}

declare var CryptoKey: {
    prototype: CryptoKey;
    new(): CryptoKey;
};

interface CustomEvent<T = any> extends Event {
    /** Returns any custom data event was created with. Typically used for synthetic events. */
    readonly detail: T;
    /** @deprecated */
    initCustomEvent(type: string, bubbles?: boolean, cancelable?: boolean, detail?: T): void;
}

declare var CustomEvent: {
    prototype: CustomEvent;
    new<T>(type: string, eventInitDict?: CustomEventInit<T>): CustomEvent<T>;
};

/** An abnormal event (called an exception) which occurs as a result of calling a method or accessing a property of a web API. */
interface DOMException extends Error {
    /** @deprecated */
    readonly code: number;
    readonly message: string;
    readonly name: string;
    readonly INDEX_SIZE_ERR: 1;
    readonly DOMSTRING_SIZE_ERR: 2;
    readonly HIERARCHY_REQUEST_ERR: 3;
    readonly WRONG_DOCUMENT_ERR: 4;
    readonly INVALID_CHARACTER_ERR: 5;
    readonly NO_DATA_ALLOWED_ERR: 6;
    readonly NO_MODIFICATION_ALLOWED_ERR: 7;
    readonly NOT_FOUND_ERR: 8;
    readonly NOT_SUPPORTED_ERR: 9;
    readonly INUSE_ATTRIBUTE_ERR: 10;
    readonly INVALID_STATE_ERR: 11;
    readonly SYNTAX_ERR: 12;
    readonly INVALID_MODIFICATION_ERR: 13;
    readonly NAMESPACE_ERR: 14;
    readonly INVALID_ACCESS_ERR: 15;
    readonly VALIDATION_ERR: 16;
    readonly TYPE_MISMATCH_ERR: 17;
    readonly SECURITY_ERR: 18;
    readonly NETWORK_ERR: 19;
    readonly ABORT_ERR: 20;
    readonly URL_MISMATCH_ERR: 21;
    readonly QUOTA_EXCEEDED_ERR: 22;
    readonly TIMEOUT_ERR: 23;
    readonly INVALID_NODE_TYPE_ERR: 24;
    readonly DATA_CLONE_ERR: 25;
}

declare var DOMException: {
    prototype: DOMException;
    new(message?: string, name?: string): DOMException;
    readonly INDEX_SIZE_ERR: 1;
    readonly DOMSTRING_SIZE_ERR: 2;
    readonly HIERARCHY_REQUEST_ERR: 3;
    readonly WRONG_DOCUMENT_ERR: 4;
    readonly INVALID_CHARACTER_ERR: 5;
    readonly NO_DATA_ALLOWED_ERR: 6;
    readonly NO_MODIFICATION_ALLOWED_ERR: 7;
    readonly NOT_FOUND_ERR: 8;
    readonly NOT_SUPPORTED_ERR: 9;
    readonly INUSE_ATTRIBUTE_ERR: 10;
    readonly INVALID_STATE_ERR: 11;
    readonly SYNTAX_ERR: 12;
    readonly INVALID_MODIFICATION_ERR: 13;
    readonly NAMESPACE_ERR: 14;
    readonly INVALID_ACCESS_ERR: 15;
    readonly VALIDATION_ERR: 16;
    readonly TYPE_MISMATCH_ERR: 17;
    readonly SECURITY_ERR: 18;
    readonly NETWORK_ERR: 19;
    readonly ABORT_ERR: 20;
    readonly URL_MISMATCH_ERR: 21;
    readonly QUOTA_EXCEEDED_ERR: 22;
    readonly TIMEOUT_ERR: 23;
    readonly INVALID_NODE_TYPE_ERR: 24;
    readonly DATA_CLONE_ERR: 25;
};

interface DOMMatrix extends DOMMatrixReadOnly {
    a: number;
    b: number;
    c: number;
    d: number;
    e: number;
    f: number;
    m11: number;
    m12: number;
    m13: number;
    m14: number;
    m21: number;
    m22: number;
    m23: number;
    m24: number;
    m31: number;
    m32: number;
    m33: number;
    m34: number;
    m41: number;
    m42: number;
    m43: number;
    m44: number;
    invertSelf(): DOMMatrix;
    multiplySelf(other?: DOMMatrixInit): DOMMatrix;
    preMultiplySelf(other?: DOMMatrixInit): DOMMatrix;
    rotateAxisAngleSelf(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;
    rotateFromVectorSelf(x?: number, y?: number): DOMMatrix;
    rotateSelf(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;
    scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
    scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
    skewXSelf(sx?: number): DOMMatrix;
    skewYSelf(sy?: number): DOMMatrix;
    translateSelf(tx?: number, ty?: number, tz?: number): DOMMatrix;
}

declare var DOMMatrix: {
    prototype: DOMMatrix;
    new(init?: string | number[]): DOMMatrix;
    fromFloat32Array(array32: Float32Array): DOMMatrix;
    fromFloat64Array(array64: Float64Array): DOMMatrix;
    fromMatrix(other?: DOMMatrixInit): DOMMatrix;
};

interface DOMMatrixReadOnly {
    readonly a: number;
    readonly b: number;
    readonly c: number;
    readonly d: number;
    readonly e: number;
    readonly f: number;
    readonly is2D: boolean;
    readonly isIdentity: boolean;
    readonly m11: number;
    readonly m12: number;
    readonly m13: number;
    readonly m14: number;
    readonly m21: number;
    readonly m22: number;
    readonly m23: number;
    readonly m24: number;
    readonly m31: number;
    readonly m32: number;
    readonly m33: number;
    readonly m34: number;
    readonly m41: number;
    readonly m42: number;
    readonly m43: number;
    readonly m44: number;
    flipX(): DOMMatrix;
    flipY(): DOMMatrix;
    inverse(): DOMMatrix;
    multiply(other?: DOMMatrixInit): DOMMatrix;
    rotate(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;
    rotateAxisAngle(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;
    rotateFromVector(x?: number, y?: number): DOMMatrix;
    scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
    scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
    /** @deprecated */
    scaleNonUniform(scaleX?: number, scaleY?: number): DOMMatrix;
    skewX(sx?: number): DOMMatrix;
    skewY(sy?: number): DOMMatrix;
    toFloat32Array(): Float32Array;
    toFloat64Array(): Float64Array;
    toJSON(): any;
    transformPoint(point?: DOMPointInit): DOMPoint;
    translate(tx?: number, ty?: number, tz?: number): DOMMatrix;
}

declare var DOMMatrixReadOnly: {
    prototype: DOMMatrixReadOnly;
    new(init?: string | number[]): DOMMatrixReadOnly;
    fromFloat32Array(array32: Float32Array): DOMMatrixReadOnly;
    fromFloat64Array(array64: Float64Array): DOMMatrixReadOnly;
    fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly;
};

interface DOMPoint extends DOMPointReadOnly {
    w: number;
    x: number;
    y: number;
    z: number;
}

declare var DOMPoint: {
    prototype: DOMPoint;
    new(x?: number, y?: number, z?: number, w?: number): DOMPoint;
    fromPoint(other?: DOMPointInit): DOMPoint;
};

interface DOMPointReadOnly {
    readonly w: number;
    readonly x: number;
    readonly y: number;
    readonly z: number;
    matrixTransform(matrix?: DOMMatrixInit): DOMPoint;
    toJSON(): any;
}

declare var DOMPointReadOnly: {
    prototype: DOMPointReadOnly;
    new(x?: number, y?: number, z?: number, w?: number): DOMPointReadOnly;
    fromPoint(other?: DOMPointInit): DOMPointReadOnly;
};

interface DOMQuad {
    readonly p1: DOMPoint;
    readonly p2: DOMPoint;
    readonly p3: DOMPoint;
    readonly p4: DOMPoint;
    getBounds(): DOMRect;
    toJSON(): any;
}

declare var DOMQuad: {
    prototype: DOMQuad;
    new(p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): DOMQuad;
    fromQuad(other?: DOMQuadInit): DOMQuad;
    fromRect(other?: DOMRectInit): DOMQuad;
};

interface DOMRect extends DOMRectReadOnly {
    height: number;
    width: number;
    x: number;
    y: number;
}

declare var DOMRect: {
    prototype: DOMRect;
    new(x?: number, y?: number, width?: number, height?: number): DOMRect;
    fromRect(other?: DOMRectInit): DOMRect;
};

interface DOMRectReadOnly {
    readonly bottom: number;
    readonly height: number;
    readonly left: number;
    readonly right: number;
    readonly top: number;
    readonly width: number;
    readonly x: number;
    readonly y: number;
    toJSON(): any;
}

declare var DOMRectReadOnly: {
    prototype: DOMRectReadOnly;
    new(x?: number, y?: number, width?: number, height?: number): DOMRectReadOnly;
    fromRect(other?: DOMRectInit): DOMRectReadOnly;
};

/** A type returned by some APIs which contains a list of DOMString (strings). */
interface DOMStringList {
    /** Returns the number of strings in strings. */
    readonly length: number;
    /** Returns true if strings contains string, and false otherwise. */
    contains(string: string): boolean;
    /** Returns the string with index index from strings. */
    item(index: number): string | null;
    [index: number]: string;
}

declare var DOMStringList: {
    prototype: DOMStringList;
    new(): DOMStringList;
};

interface DedicatedWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {
    "message": MessageEvent;
    "messageerror": MessageEvent;
}

/** (the Worker global scope) is accessible through the self keyword. Some additional global functions, namespaces objects, and constructors, not typically associated with the worker global scope, but available on it, are listed in the JavaScript Reference. See also: Functions available to workers. */
interface DedicatedWorkerGlobalScope extends WorkerGlobalScope, AnimationFrameProvider {
    /** Returns dedicatedWorkerGlobal's name, i.e. the value given to the Worker constructor. Primarily useful for debugging. */
    readonly name: string;
    onmessage: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;
    onmessageerror: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;
    /** Aborts dedicatedWorkerGlobal. */
    close(): void;
    /** Clones message and transmits it to the Worker object associated with dedicatedWorkerGlobal. transfer can be passed as a list of objects that are to be transferred rather than cloned. */
    postMessage(message: any, transfer: Transferable[]): void;
    postMessage(message: any, options?: StructuredSerializeOptions): void;
    addEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var DedicatedWorkerGlobalScope: {
    prototype: DedicatedWorkerGlobalScope;
    new(): DedicatedWorkerGlobalScope;
};

interface EXT_blend_minmax {
    readonly MIN_EXT: 0x8007;
    readonly MAX_EXT: 0x8008;
}

interface EXT_color_buffer_float {
}

interface EXT_color_buffer_half_float {
    readonly RGBA16F_EXT: 0x881A;
    readonly RGB16F_EXT: 0x881B;
    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 0x8211;
    readonly UNSIGNED_NORMALIZED_EXT: 0x8C17;
}

interface EXT_float_blend {
}

/** The EXT_frag_depth extension is part of the WebGL API and enables to set a depth value of a fragment from within the fragment shader. */
interface EXT_frag_depth {
}

interface EXT_sRGB {
    readonly SRGB_EXT: 0x8C40;
    readonly SRGB_ALPHA_EXT: 0x8C42;
    readonly SRGB8_ALPHA8_EXT: 0x8C43;
    readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT: 0x8210;
}

interface EXT_shader_texture_lod {
}

interface EXT_texture_compression_bptc {
    readonly COMPRESSED_RGBA_BPTC_UNORM_EXT: 0x8E8C;
    readonly COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT: 0x8E8D;
    readonly COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT: 0x8E8E;
    readonly COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT: 0x8E8F;
}

interface EXT_texture_compression_rgtc {
    readonly COMPRESSED_RED_RGTC1_EXT: 0x8DBB;
    readonly COMPRESSED_SIGNED_RED_RGTC1_EXT: 0x8DBC;
    readonly COMPRESSED_RED_GREEN_RGTC2_EXT: 0x8DBD;
    readonly COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 0x8DBE;
}

/** The EXT_texture_filter_anisotropic extension is part of the WebGL API and exposes two constants for anisotropic filtering (AF). */
interface EXT_texture_filter_anisotropic {
    readonly TEXTURE_MAX_ANISOTROPY_EXT: 0x84FE;
    readonly MAX_TEXTURE_MAX_ANISOTROPY_EXT: 0x84FF;
}

interface EXT_texture_norm16 {
    readonly R16_EXT: 0x822A;
    readonly RG16_EXT: 0x822C;
    readonly RGB16_EXT: 0x8054;
    readonly RGBA16_EXT: 0x805B;
    readonly R16_SNORM_EXT: 0x8F98;
    readonly RG16_SNORM_EXT: 0x8F99;
    readonly RGB16_SNORM_EXT: 0x8F9A;
    readonly RGBA16_SNORM_EXT: 0x8F9B;
}

/** Events providing information related to errors in scripts or in files. */
interface ErrorEvent extends Event {
    readonly colno: number;
    readonly error: any;
    readonly filename: string;
    readonly lineno: number;
    readonly message: string;
}

declare var ErrorEvent: {
    prototype: ErrorEvent;
    new(type: string, eventInitDict?: ErrorEventInit): ErrorEvent;
};

/** An event which takes place in the DOM. */
interface Event {
    /** Returns true or false depending on how event was initialized. True if event goes through its target's ancestors in reverse tree order, and false otherwise. */
    readonly bubbles: boolean;
    /** @deprecated */
    cancelBubble: boolean;
    /** Returns true or false depending on how event was initialized. Its return value does not always carry meaning, but true can indicate that part of the operation during which event was dispatched, can be canceled by invoking the preventDefault() method. */
    readonly cancelable: boolean;
    /** Returns true or false depending on how event was initialized. True if event invokes listeners past a ShadowRoot node that is the root of its target, and false otherwise. */
    readonly composed: boolean;
    /** Returns the object whose event listener's callback is currently being invoked. */
    readonly currentTarget: EventTarget | null;
    /** Returns true if preventDefault() was invoked successfully to indicate cancelation, and false otherwise. */
    readonly defaultPrevented: boolean;
    /** Returns the event's phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET, and BUBBLING_PHASE. */
    readonly eventPhase: number;
    /** Returns true if event was dispatched by the user agent, and false otherwise. */
    readonly isTrusted: boolean;
    /** @deprecated */
    returnValue: boolean;
    /** @deprecated */
    readonly srcElement: EventTarget | null;
    /** Returns the object to which event is dispatched (its target). */
    readonly target: EventTarget | null;
    /** Returns the event's timestamp as the number of milliseconds measured relative to the time origin. */
    readonly timeStamp: DOMHighResTimeStamp;
    /** Returns the type of event, e.g. "click", "hashchange", or "submit". */
    readonly type: string;
    /** Returns the invocation target objects of event's path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root's mode is "closed" that are not reachable from event's currentTarget. */
    composedPath(): EventTarget[];
    /** @deprecated */
    initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void;
    /** If invoked when the cancelable attribute value is true, and while executing a listener for the event with passive set to false, signals to the operation that caused event to be dispatched that it needs to be canceled. */
    preventDefault(): void;
    /** Invoking this method prevents event from reaching any registered event listeners after the current one finishes running and, when dispatched in a tree, also prevents event from reaching any other objects. */
    stopImmediatePropagation(): void;
    /** When dispatched in a tree, invoking this method prevents event from reaching any objects other than the current object. */
    stopPropagation(): void;
    readonly NONE: 0;
    readonly CAPTURING_PHASE: 1;
    readonly AT_TARGET: 2;
    readonly BUBBLING_PHASE: 3;
}

declare var Event: {
    prototype: Event;
    new(type: string, eventInitDict?: EventInit): Event;
    readonly NONE: 0;
    readonly CAPTURING_PHASE: 1;
    readonly AT_TARGET: 2;
    readonly BUBBLING_PHASE: 3;
};

interface EventListener {
    (evt: Event): void;
}

interface EventListenerObject {
    handleEvent(object: Event): void;
}

interface EventSourceEventMap {
    "error": Event;
    "message": MessageEvent;
    "open": Event;
}

interface EventSource extends EventTarget {
    onerror: ((this: EventSource, ev: Event) => any) | null;
    onmessage: ((this: EventSource, ev: MessageEvent) => any) | null;
    onopen: ((this: EventSource, ev: Event) => any) | null;
    /** Returns the state of this EventSource object's connection. It can have the values described below. */
    readonly readyState: number;
    /** Returns the URL providing the event stream. */
    readonly url: string;
    /** Returns true if the credentials mode for connection requests to the URL providing the event stream is set to "include", and false otherwise. */
    readonly withCredentials: boolean;
    /** Aborts any instances of the fetch algorithm started for this EventSource object, and sets the readyState attribute to CLOSED. */
    close(): void;
    readonly CONNECTING: 0;
    readonly OPEN: 1;
    readonly CLOSED: 2;
    addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var EventSource: {
    prototype: EventSource;
    new(url: string | URL, eventSourceInitDict?: EventSourceInit): EventSource;
    readonly CONNECTING: 0;
    readonly OPEN: 1;
    readonly CLOSED: 2;
};

/** EventTarget is a DOM interface implemented by objects that can receive events and may have listeners for them. */
interface EventTarget {
    /**
     * Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
     *
     * The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
     *
     * When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
     *
     * When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
     *
     * When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
     *
     * If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
     *
     * The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
     */
    addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean): void;
    /** Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise. */
    dispatchEvent(event: Event): boolean;
    /** Removes the event listener in target's event listener list with the same type, callback, and options. */
    removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;
}

declare var EventTarget: {
    prototype: EventTarget;
    new(): EventTarget;
};

/** Extends the lifetime of the install and activate events dispatched on the global scope as part of the service worker lifecycle. This ensures that any functional events (like FetchEvent) are not dispatched until it upgrades database schemas and deletes the outdated cache entries. */
interface ExtendableEvent extends Event {
    waitUntil(f: Promise<any>): void;
}

declare var ExtendableEvent: {
    prototype: ExtendableEvent;
    new(type: string, eventInitDict?: ExtendableEventInit): ExtendableEvent;
};

/** This ServiceWorker API interface represents the event object of a message event fired on a service worker (when a channel message is received on the ServiceWorkerGlobalScope from another context) — extends the lifetime of such events. */
interface ExtendableMessageEvent extends ExtendableEvent {
    readonly data: any;
    readonly lastEventId: string;
    readonly origin: string;
    readonly ports: ReadonlyArray<MessagePort>;
    readonly source: Client | ServiceWorker | MessagePort | null;
}

declare var ExtendableMessageEvent: {
    prototype: ExtendableMessageEvent;
    new(type: string, eventInitDict?: ExtendableMessageEventInit): ExtendableMessageEvent;
};

/** This is the event type for fetch events dispatched on the service worker global scope. It contains information about the fetch, including the request and how the receiver will treat the response. It provides the event.respondWith() method, which allows us to provide a response to this fetch. */
interface FetchEvent extends ExtendableEvent {
    readonly clientId: string;
    readonly handled: Promise<undefined>;
    readonly preloadResponse: Promise<any>;
    readonly request: Request;
    readonly resultingClientId: string;
    respondWith(r: Response | PromiseLike<Response>): void;
}

declare var FetchEvent: {
    prototype: FetchEvent;
    new(type: string, eventInitDict: FetchEventInit): FetchEvent;
};

/** Provides information about files and allows JavaScript in a web page to access their content. */
interface File extends Blob {
    readonly lastModified: number;
    readonly name: string;
    readonly webkitRelativePath: string;
}

declare var File: {
    prototype: File;
    new(fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;
};

/** An object of this type is returned by the files property of the HTML <input> element; this lets you access the list of files selected with the <input type="file"> element. It's also used for a list of files dropped into web content when using the drag and drop API; see the DataTransfer object for details on this usage. */
interface FileList {
    readonly length: number;
    item(index: number): File | null;
    [index: number]: File;
}

declare var FileList: {
    prototype: FileList;
    new(): FileList;
};

interface FileReaderEventMap {
    "abort": ProgressEvent<FileReader>;
    "error": ProgressEvent<FileReader>;
    "load": ProgressEvent<FileReader>;
    "loadend": ProgressEvent<FileReader>;
    "loadstart": ProgressEvent<FileReader>;
    "progress": ProgressEvent<FileReader>;
}

/** Lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer, using File or Blob objects to specify the file or data to read. */
interface FileReader extends EventTarget {
    readonly error: DOMException | null;
    onabort: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
    onerror: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
    onload: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
    onloadend: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
    onloadstart: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
    onprogress: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
    readonly readyState: typeof FileReader.EMPTY | typeof FileReader.LOADING | typeof FileReader.DONE;
    readonly result: string | ArrayBuffer | null;
    abort(): void;
    readAsArrayBuffer(blob: Blob): void;
    readAsBinaryString(blob: Blob): void;
    readAsDataURL(blob: Blob): void;
    readAsText(blob: Blob, encoding?: string): void;
    readonly EMPTY: 0;
    readonly LOADING: 1;
    readonly DONE: 2;
    addEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var FileReader: {
    prototype: FileReader;
    new(): FileReader;
    readonly EMPTY: 0;
    readonly LOADING: 1;
    readonly DONE: 2;
};

/** Allows to read File or Blob objects in a synchronous way. */
interface FileReaderSync {
    readAsArrayBuffer(blob: Blob): ArrayBuffer;
    /** @deprecated */
    readAsBinaryString(blob: Blob): string;
    readAsDataURL(blob: Blob): string;
    readAsText(blob: Blob, encoding?: string): string;
}

declare var FileReaderSync: {
    prototype: FileReaderSync;
    new(): FileReaderSync;
};

/** Available only in secure contexts. */
interface FileSystemDirectoryHandle extends FileSystemHandle {
    readonly kind: "directory";
    getDirectoryHandle(name: string, options?: FileSystemGetDirectoryOptions): Promise<FileSystemDirectoryHandle>;
    getFileHandle(name: string, options?: FileSystemGetFileOptions): Promise<FileSystemFileHandle>;
    removeEntry(name: string, options?: FileSystemRemoveOptions): Promise<void>;
    resolve(possibleDescendant: FileSystemHandle): Promise<string[] | null>;
}

declare var FileSystemDirectoryHandle: {
    prototype: FileSystemDirectoryHandle;
    new(): FileSystemDirectoryHandle;
};

/** Available only in secure contexts. */
interface FileSystemFileHandle extends FileSystemHandle {
    readonly kind: "file";
    createSyncAccessHandle(): Promise<FileSystemSyncAccessHandle>;
    getFile(): Promise<File>;
}

declare var FileSystemFileHandle: {
    prototype: FileSystemFileHandle;
    new(): FileSystemFileHandle;
};

/** Available only in secure contexts. */
interface FileSystemHandle {
    readonly kind: FileSystemHandleKind;
    readonly name: string;
    isSameEntry(other: FileSystemHandle): Promise<boolean>;
}

declare var FileSystemHandle: {
    prototype: FileSystemHandle;
    new(): FileSystemHandle;
};

/** Available only in secure contexts. */
interface FileSystemSyncAccessHandle {
    close(): void;
    flush(): void;
    getSize(): number;
    read(buffer: BufferSource, options?: FileSystemReadWriteOptions): number;
    truncate(newSize: number): void;
    write(buffer: BufferSource, options?: FileSystemReadWriteOptions): number;
}

declare var FileSystemSyncAccessHandle: {
    prototype: FileSystemSyncAccessHandle;
    new(): FileSystemSyncAccessHandle;
};

interface FontFace {
    ascentOverride: string;
    descentOverride: string;
    display: FontDisplay;
    family: string;
    featureSettings: string;
    lineGapOverride: string;
    readonly loaded: Promise<FontFace>;
    readonly status: FontFaceLoadStatus;
    stretch: string;
    style: string;
    unicodeRange: string;
    variant: string;
    weight: string;
    load(): Promise<FontFace>;
}

declare var FontFace: {
    prototype: FontFace;
    new(family: string, source: string | BinaryData, descriptors?: FontFaceDescriptors): FontFace;
};

interface FontFaceSetEventMap {
    "loading": Event;
    "loadingdone": Event;
    "loadingerror": Event;
}

interface FontFaceSet extends EventTarget {
    onloading: ((this: FontFaceSet, ev: Event) => any) | null;
    onloadingdone: ((this: FontFaceSet, ev: Event) => any) | null;
    onloadingerror: ((this: FontFaceSet, ev: Event) => any) | null;
    readonly ready: Promise<FontFaceSet>;
    readonly status: FontFaceSetLoadStatus;
    check(font: string, text?: string): boolean;
    load(font: string, text?: string): Promise<FontFace[]>;
    forEach(callbackfn: (value: FontFace, key: FontFace, parent: FontFaceSet) => void, thisArg?: any): void;
    addEventListener<K extends keyof FontFaceSetEventMap>(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof FontFaceSetEventMap>(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var FontFaceSet: {
    prototype: FontFaceSet;
    new(initialFaces: FontFace[]): FontFaceSet;
};

interface FontFaceSetLoadEvent extends Event {
    readonly fontfaces: ReadonlyArray<FontFace>;
}

declare var FontFaceSetLoadEvent: {
    prototype: FontFaceSetLoadEvent;
    new(type: string, eventInitDict?: FontFaceSetLoadEventInit): FontFaceSetLoadEvent;
};

interface FontFaceSource {
    readonly fonts: FontFaceSet;
}

/** Provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using the XMLHttpRequest.send() method. It uses the same format a form would use if the encoding type were set to "multipart/form-data". */
interface FormData {
    append(name: string, value: string | Blob, fileName?: string): void;
    delete(name: string): void;
    get(name: string): FormDataEntryValue | null;
    getAll(name: string): FormDataEntryValue[];
    has(name: string): boolean;
    set(name: string, value: string | Blob, fileName?: string): void;
    forEach(callbackfn: (value: FormDataEntryValue, key: string, parent: FormData) => void, thisArg?: any): void;
}

declare var FormData: {
    prototype: FormData;
    new(): FormData;
};

interface GenericTransformStream {
    readonly readable: ReadableStream;
    readonly writable: WritableStream;
}

/** This Fetch API interface allows you to perform various actions on HTTP request and response headers. These actions include retrieving, setting, adding to, and removing. A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs.  You can add to this using methods like append() (see Examples.) In all methods of this interface, header names are matched by case-insensitive byte sequence. */
interface Headers {
    append(name: string, value: string): void;
    delete(name: string): void;
    get(name: string): string | null;
    has(name: string): boolean;
    set(name: string, value: string): void;
    forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any): void;
}

declare var Headers: {
    prototype: Headers;
    new(init?: HeadersInit): Headers;
};

/** This IndexedDB API interface represents a cursor for traversing or iterating over multiple records in a database. */
interface IDBCursor {
    /** Returns the direction ("next", "nextunique", "prev" or "prevunique") of the cursor. */
    readonly direction: IDBCursorDirection;
    /** Returns the key of the cursor. Throws a "InvalidStateError" DOMException if the cursor is advancing or is finished. */
    readonly key: IDBValidKey;
    /** Returns the effective key of the cursor. Throws a "InvalidStateError" DOMException if the cursor is advancing or is finished. */
    readonly primaryKey: IDBValidKey;
    readonly request: IDBRequest;
    /** Returns the IDBObjectStore or IDBIndex the cursor was opened from. */
    readonly source: IDBObjectStore | IDBIndex;
    /** Advances the cursor through the next count records in range. */
    advance(count: number): void;
    /** Advances the cursor to the next record in range. */
    continue(key?: IDBValidKey): void;
    /** Advances the cursor to the next record in range matching or after key and primaryKey. Throws an "InvalidAccessError" DOMException if the source is not an index. */
    continuePrimaryKey(key: IDBValidKey, primaryKey: IDBValidKey): void;
    /**
     * Delete the record pointed at by the cursor with a new value.
     *
     * If successful, request's result will be undefined.
     */
    delete(): IDBRequest<undefined>;
    /**
     * Updated the record pointed at by the cursor with a new value.
     *
     * Throws a "DataError" DOMException if the effective object store uses in-line keys and the key would have changed.
     *
     * If successful, request's result will be the record's key.
     */
    update(value: any): IDBRequest<IDBValidKey>;
}

declare var IDBCursor: {
    prototype: IDBCursor;
    new(): IDBCursor;
};

/** This IndexedDB API interface represents a cursor for traversing or iterating over multiple records in a database. It is the same as the IDBCursor, except that it includes the value property. */
interface IDBCursorWithValue extends IDBCursor {
    /** Returns the cursor's current value. */
    readonly value: any;
}

declare var IDBCursorWithValue: {
    prototype: IDBCursorWithValue;
    new(): IDBCursorWithValue;
};

interface IDBDatabaseEventMap {
    "abort": Event;
    "close": Event;
    "error": Event;
    "versionchange": IDBVersionChangeEvent;
}

/** This IndexedDB API interface provides a connection to a database; you can use an IDBDatabase object to open a transaction on your database then create, manipulate, and delete objects (data) in that database. The interface provides the only way to get and manage versions of the database. */
interface IDBDatabase extends EventTarget {
    /** Returns the name of the database. */
    readonly name: string;
    /** Returns a list of the names of object stores in the database. */
    readonly objectStoreNames: DOMStringList;
    onabort: ((this: IDBDatabase, ev: Event) => any) | null;
    onclose: ((this: IDBDatabase, ev: Event) => any) | null;
    onerror: ((this: IDBDatabase, ev: Event) => any) | null;
    onversionchange: ((this: IDBDatabase, ev: IDBVersionChangeEvent) => any) | null;
    /** Returns the version of the database. */
    readonly version: number;
    /** Closes the connection once all running transactions have finished. */
    close(): void;
    /**
     * Creates a new object store with the given name and options and returns a new IDBObjectStore.
     *
     * Throws a "InvalidStateError" DOMException if not called within an upgrade transaction.
     */
    createObjectStore(name: string, options?: IDBObjectStoreParameters): IDBObjectStore;
    /**
     * Deletes the object store with the given name.
     *
     * Throws a "InvalidStateError" DOMException if not called within an upgrade transaction.
     */
    deleteObjectStore(name: string): void;
    /** Returns a new transaction with the given mode ("readonly" or "readwrite") and scope which can be a single object store name or an array of names. */
    transaction(storeNames: string | string[], mode?: IDBTransactionMode, options?: IDBTransactionOptions): IDBTransaction;
    addEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var IDBDatabase: {
    prototype: IDBDatabase;
    new(): IDBDatabase;
};

/** In the following code snippet, we make a request to open a database, and include handlers for the success and error cases. For a full working example, see our To-do Notifications app (view example live.) */
interface IDBFactory {
    /**
     * Compares two values as keys. Returns -1 if key1 precedes key2, 1 if key2 precedes key1, and 0 if the keys are equal.
     *
     * Throws a "DataError" DOMException if either input is not a valid key.
     */
    cmp(first: any, second: any): number;
    databases(): Promise<IDBDatabaseInfo[]>;
    /** Attempts to delete the named database. If the database already exists and there are open connections that don't close in response to a versionchange event, the request will be blocked until all they close. If the request is successful request's result will be null. */
    deleteDatabase(name: string): IDBOpenDBRequest;
    /** Attempts to open a connection to the named database with the current version, or 1 if it does not already exist. If the request is successful request's result will be the connection. */
    open(name: string, version?: number): IDBOpenDBRequest;
}

declare var IDBFactory: {
    prototype: IDBFactory;
    new(): IDBFactory;
};

/** IDBIndex interface of the IndexedDB API provides asynchronous access to an index in a database. An index is a kind of object store for looking up records in another object store, called the referenced object store. You use this interface to retrieve data. */
interface IDBIndex {
    readonly keyPath: string | string[];
    readonly multiEntry: boolean;
    /** Returns the name of the index. */
    name: string;
    /** Returns the IDBObjectStore the index belongs to. */
    readonly objectStore: IDBObjectStore;
    readonly unique: boolean;
    /**
     * Retrieves the number of records matching the given key or key range in query.
     *
     * If successful, request's result will be the count.
     */
    count(query?: IDBValidKey | IDBKeyRange): IDBRequest<number>;
    /**
     * Retrieves the value of the first record matching the given key or key range in query.
     *
     * If successful, request's result will be the value, or undefined if there was no matching record.
     */
    get(query: IDBValidKey | IDBKeyRange): IDBRequest<any>;
    /**
     * Retrieves the values of the records matching the given key or key range in query (up to count if given).
     *
     * If successful, request's result will be an Array of the values.
     */
    getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<any[]>;
    /**
     * Retrieves the keys of records matching the given key or key range in query (up to count if given).
     *
     * If successful, request's result will be an Array of the keys.
     */
    getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<IDBValidKey[]>;
    /**
     * Retrieves the key of the first record matching the given key or key range in query.
     *
     * If successful, request's result will be the key, or undefined if there was no matching record.
     */
    getKey(query: IDBValidKey | IDBKeyRange): IDBRequest<IDBValidKey | undefined>;
    /**
     * Opens a cursor over the records matching query, ordered by direction. If query is null, all records in index are matched.
     *
     * If successful, request's result will be an IDBCursorWithValue, or null if there were no matching records.
     */
    openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursorWithValue | null>;
    /**
     * Opens a cursor with key only flag set over the records matching query, ordered by direction. If query is null, all records in index are matched.
     *
     * If successful, request's result will be an IDBCursor, or null if there were no matching records.
     */
    openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursor | null>;
}

declare var IDBIndex: {
    prototype: IDBIndex;
    new(): IDBIndex;
};

/** A key range can be a single value or a range with upper and lower bounds or endpoints. If the key range has both upper and lower bounds, then it is bounded; if it has no bounds, it is unbounded. A bounded key range can either be open (the endpoints are excluded) or closed (the endpoints are included). To retrieve all keys within a certain range, you can use the following code constructs: */
interface IDBKeyRange {
    /** Returns lower bound, or undefined if none. */
    readonly lower: any;
    /** Returns true if the lower open flag is set, and false otherwise. */
    readonly lowerOpen: boolean;
    /** Returns upper bound, or undefined if none. */
    readonly upper: any;
    /** Returns true if the upper open flag is set, and false otherwise. */
    readonly upperOpen: boolean;
    /** Returns true if key is included in the range, and false otherwise. */
    includes(key: any): boolean;
}

declare var IDBKeyRange: {
    prototype: IDBKeyRange;
    new(): IDBKeyRange;
    /** Returns a new IDBKeyRange spanning from lower to upper. If lowerOpen is true, lower is not included in the range. If upperOpen is true, upper is not included in the range. */
    bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange;
    /** Returns a new IDBKeyRange starting at key with no upper bound. If open is true, key is not included in the range. */
    lowerBound(lower: any, open?: boolean): IDBKeyRange;
    /** Returns a new IDBKeyRange spanning only key. */
    only(value: any): IDBKeyRange;
    /** Returns a new IDBKeyRange with no lower bound and ending at key. If open is true, key is not included in the range. */
    upperBound(upper: any, open?: boolean): IDBKeyRange;
};

/** This example shows a variety of different uses of object stores, from updating the data structure with IDBObjectStore.createIndex inside an onupgradeneeded function, to adding a new item to our object store with IDBObjectStore.add. For a full working example, see our To-do Notifications app (view example live.) */
interface IDBObjectStore {
    /** Returns true if the store has a key generator, and false otherwise. */
    readonly autoIncrement: boolean;
    /** Returns a list of the names of indexes in the store. */
    readonly indexNames: DOMStringList;
    /** Returns the key path of the store, or null if none. */
    readonly keyPath: string | string[];
    /** Returns the name of the store. */
    name: string;
    /** Returns the associated transaction. */
    readonly transaction: IDBTransaction;
    /**
     * Adds or updates a record in store with the given value and key.
     *
     * If the store uses in-line keys and key is specified a "DataError" DOMException will be thrown.
     *
     * If put() is used, any existing record with the key will be replaced. If add() is used, and if a record with the key already exists the request will fail, with request's error set to a "ConstraintError" DOMException.
     *
     * If successful, request's result will be the record's key.
     */
    add(value: any, key?: IDBValidKey): IDBRequest<IDBValidKey>;
    /**
     * Deletes all records in store.
     *
     * If successful, request's result will be undefined.
     */
    clear(): IDBRequest<undefined>;
    /**
     * Retrieves the number of records matching the given key or key range in query.
     *
     * If successful, request's result will be the count.
     */
    count(query?: IDBValidKey | IDBKeyRange): IDBRequest<number>;
    /**
     * Creates a new index in store with the given name, keyPath and options and returns a new IDBIndex. If the keyPath and options define constraints that cannot be satisfied with the data already in store the upgrade transaction will abort with a "ConstraintError" DOMException.
     *
     * Throws an "InvalidStateError" DOMException if not called within an upgrade transaction.
     */
    createIndex(name: string, keyPath: string | string[], options?: IDBIndexParameters): IDBIndex;
    /**
     * Deletes records in store with the given key or in the given key range in query.
     *
     * If successful, request's result will be undefined.
     */
    delete(query: IDBValidKey | IDBKeyRange): IDBRequest<undefined>;
    /**
     * Deletes the index in store with the given name.
     *
     * Throws an "InvalidStateError" DOMException if not called within an upgrade transaction.
     */
    deleteIndex(name: string): void;
    /**
     * Retrieves the value of the first record matching the given key or key range in query.
     *
     * If successful, request's result will be the value, or undefined if there was no matching record.
     */
    get(query: IDBValidKey | IDBKeyRange): IDBRequest<any>;
    /**
     * Retrieves the values of the records matching the given key or key range in query (up to count if given).
     *
     * If successful, request's result will be an Array of the values.
     */
    getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<any[]>;
    /**
     * Retrieves the keys of records matching the given key or key range in query (up to count if given).
     *
     * If successful, request's result will be an Array of the keys.
     */
    getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<IDBValidKey[]>;
    /**
     * Retrieves the key of the first record matching the given key or key range in query.
     *
     * If successful, request's result will be the key, or undefined if there was no matching record.
     */
    getKey(query: IDBValidKey | IDBKeyRange): IDBRequest<IDBValidKey | undefined>;
    index(name: string): IDBIndex;
    /**
     * Opens a cursor over the records matching query, ordered by direction. If query is null, all records in store are matched.
     *
     * If successful, request's result will be an IDBCursorWithValue pointing at the first matching record, or null if there were no matching records.
     */
    openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursorWithValue | null>;
    /**
     * Opens a cursor with key only flag set over the records matching query, ordered by direction. If query is null, all records in store are matched.
     *
     * If successful, request's result will be an IDBCursor pointing at the first matching record, or null if there were no matching records.
     */
    openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursor | null>;
    /**
     * Adds or updates a record in store with the given value and key.
     *
     * If the store uses in-line keys and key is specified a "DataError" DOMException will be thrown.
     *
     * If put() is used, any existing record with the key will be replaced. If add() is used, and if a record with the key already exists the request will fail, with request's error set to a "ConstraintError" DOMException.
     *
     * If successful, request's result will be the record's key.
     */
    put(value: any, key?: IDBValidKey): IDBRequest<IDBValidKey>;
}

declare var IDBObjectStore: {
    prototype: IDBObjectStore;
    new(): IDBObjectStore;
};

interface IDBOpenDBRequestEventMap extends IDBRequestEventMap {
    "blocked": IDBVersionChangeEvent;
    "upgradeneeded": IDBVersionChangeEvent;
}

/** Also inherits methods from its parents IDBRequest and EventTarget. */
interface IDBOpenDBRequest extends IDBRequest<IDBDatabase> {
    onblocked: ((this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any) | null;
    onupgradeneeded: ((this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any) | null;
    addEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var IDBOpenDBRequest: {
    prototype: IDBOpenDBRequest;
    new(): IDBOpenDBRequest;
};

interface IDBRequestEventMap {
    "error": Event;
    "success": Event;
}

/** The request object does not initially contain any information about the result of the operation, but once information becomes available, an event is fired on the request, and the information becomes available through the properties of the IDBRequest instance. */
interface IDBRequest<T = any> extends EventTarget {
    /** When a request is completed, returns the error (a DOMException), or null if the request succeeded. Throws a "InvalidStateError" DOMException if the request is still pending. */
    readonly error: DOMException | null;
    onerror: ((this: IDBRequest<T>, ev: Event) => any) | null;
    onsuccess: ((this: IDBRequest<T>, ev: Event) => any) | null;
    /** Returns "pending" until a request is complete, then returns "done". */
    readonly readyState: IDBRequestReadyState;
    /** When a request is completed, returns the result, or undefined if the request failed. Throws a "InvalidStateError" DOMException if the request is still pending. */
    readonly result: T;
    /** Returns the IDBObjectStore, IDBIndex, or IDBCursor the request was made against, or null if is was an open request. */
    readonly source: IDBObjectStore | IDBIndex | IDBCursor;
    /** Returns the IDBTransaction the request was made within. If this as an open request, then it returns an upgrade transaction while it is running, or null otherwise. */
    readonly transaction: IDBTransaction | null;
    addEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest<T>, ev: IDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest<T>, ev: IDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var IDBRequest: {
    prototype: IDBRequest;
    new(): IDBRequest;
};

interface IDBTransactionEventMap {
    "abort": Event;
    "complete": Event;
    "error": Event;
}

interface IDBTransaction extends EventTarget {
    /** Returns the transaction's connection. */
    readonly db: IDBDatabase;
    readonly durability: IDBTransactionDurability;
    /** If the transaction was aborted, returns the error (a DOMException) providing the reason. */
    readonly error: DOMException | null;
    /** Returns the mode the transaction was created with ("readonly" or "readwrite"), or "versionchange" for an upgrade transaction. */
    readonly mode: IDBTransactionMode;
    /** Returns a list of the names of object stores in the transaction's scope. For an upgrade transaction this is all object stores in the database. */
    readonly objectStoreNames: DOMStringList;
    onabort: ((this: IDBTransaction, ev: Event) => any) | null;
    oncomplete: ((this: IDBTransaction, ev: Event) => any) | null;
    onerror: ((this: IDBTransaction, ev: Event) => any) | null;
    /** Aborts the transaction. All pending requests will fail with a "AbortError" DOMException and all changes made to the database will be reverted. */
    abort(): void;
    commit(): void;
    /** Returns an IDBObjectStore in the transaction's scope. */
    objectStore(name: string): IDBObjectStore;
    addEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var IDBTransaction: {
    prototype: IDBTransaction;
    new(): IDBTransaction;
};

/** This IndexedDB API interface indicates that the version of the database has changed, as the result of an IDBOpenDBRequest.onupgradeneeded event handler function. */
interface IDBVersionChangeEvent extends Event {
    readonly newVersion: number | null;
    readonly oldVersion: number;
}

declare var IDBVersionChangeEvent: {
    prototype: IDBVersionChangeEvent;
    new(type: string, eventInitDict?: IDBVersionChangeEventInit): IDBVersionChangeEvent;
};

interface ImageBitmap {
    /** Returns the intrinsic height of the image, in CSS pixels. */
    readonly height: number;
    /** Returns the intrinsic width of the image, in CSS pixels. */
    readonly width: number;
    /** Releases imageBitmap's underlying bitmap data. */
    close(): void;
}

declare var ImageBitmap: {
    prototype: ImageBitmap;
    new(): ImageBitmap;
};

interface ImageBitmapRenderingContext {
    /** Transfers the underlying bitmap data from imageBitmap to context, and the bitmap becomes the contents of the canvas element to which context is bound. */
    transferFromImageBitmap(bitmap: ImageBitmap | null): void;
}

declare var ImageBitmapRenderingContext: {
    prototype: ImageBitmapRenderingContext;
    new(): ImageBitmapRenderingContext;
};

/** The underlying pixel data of an area of a <canvas> element. It is created using the ImageData() constructor or creator methods on the CanvasRenderingContext2D object associated with a canvas: createImageData() and getImageData(). It can also be used to set a part of the canvas by using putImageData(). */
interface ImageData {
    readonly colorSpace: PredefinedColorSpace;
    /** Returns the one-dimensional array containing the data in RGBA order, as integers in the range 0 to 255. */
    readonly data: Uint8ClampedArray;
    /** Returns the actual dimensions of the data in the ImageData object, in pixels. */
    readonly height: number;
    /** Returns the actual dimensions of the data in the ImageData object, in pixels. */
    readonly width: number;
}

declare var ImageData: {
    prototype: ImageData;
    new(sw: number, sh: number, settings?: ImageDataSettings): ImageData;
    new(data: Uint8ClampedArray, sw: number, sh?: number, settings?: ImageDataSettings): ImageData;
};

interface KHR_parallel_shader_compile {
    readonly COMPLETION_STATUS_KHR: 0x91B1;
}

/** Available only in secure contexts. */
interface Lock {
    readonly mode: LockMode;
    readonly name: string;
}

declare var Lock: {
    prototype: Lock;
    new(): Lock;
};

/** Available only in secure contexts. */
interface LockManager {
    query(): Promise<LockManagerSnapshot>;
    request(name: string, callback: LockGrantedCallback): Promise<any>;
    request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise<any>;
}

declare var LockManager: {
    prototype: LockManager;
    new(): LockManager;
};

interface MediaCapabilities {
    decodingInfo(configuration: MediaDecodingConfiguration): Promise<MediaCapabilitiesDecodingInfo>;
    encodingInfo(configuration: MediaEncodingConfiguration): Promise<MediaCapabilitiesEncodingInfo>;
}

declare var MediaCapabilities: {
    prototype: MediaCapabilities;
    new(): MediaCapabilities;
};

/** This Channel Messaging API interface allows us to create a new message channel and send data through it via its two MessagePort properties. */
interface MessageChannel {
    /** Returns the first MessagePort object. */
    readonly port1: MessagePort;
    /** Returns the second MessagePort object. */
    readonly port2: MessagePort;
}

declare var MessageChannel: {
    prototype: MessageChannel;
    new(): MessageChannel;
};

/** A message received by a target object. */
interface MessageEvent<T = any> extends Event {
    /** Returns the data of the message. */
    readonly data: T;
    /** Returns the last event ID string, for server-sent events. */
    readonly lastEventId: string;
    /** Returns the origin of the message, for server-sent events and cross-document messaging. */
    readonly origin: string;
    /** Returns the MessagePort array sent with the message, for cross-document messaging and channel messaging. */
    readonly ports: ReadonlyArray<MessagePort>;
    /** Returns the WindowProxy of the source window, for cross-document messaging, and the MessagePort being attached, in the connect event fired at SharedWorkerGlobalScope objects. */
    readonly source: MessageEventSource | null;
    /** @deprecated */
    initMessageEvent(type: string, bubbles?: boolean, cancelable?: boolean, data?: any, origin?: string, lastEventId?: string, source?: MessageEventSource | null, ports?: MessagePort[]): void;
}

declare var MessageEvent: {
    prototype: MessageEvent;
    new<T>(type: string, eventInitDict?: MessageEventInit<T>): MessageEvent<T>;
};

interface MessagePortEventMap {
    "message": MessageEvent;
    "messageerror": MessageEvent;
}

/** This Channel Messaging API interface represents one of the two ports of a MessageChannel, allowing messages to be sent from one port and listening out for them arriving at the other. */
interface MessagePort extends EventTarget {
    onmessage: ((this: MessagePort, ev: MessageEvent) => any) | null;
    onmessageerror: ((this: MessagePort, ev: MessageEvent) => any) | null;
    /** Disconnects the port, so that it is no longer active. */
    close(): void;
    /**
     * Posts a message through the channel. Objects listed in transfer are transferred, not just cloned, meaning that they are no longer usable on the sending side.
     *
     * Throws a "DataCloneError" DOMException if transfer contains duplicate objects or port, or if message could not be cloned.
     */
    postMessage(message: any, transfer: Transferable[]): void;
    postMessage(message: any, options?: StructuredSerializeOptions): void;
    /** Begins dispatching messages received on the port. */
    start(): void;
    addEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var MessagePort: {
    prototype: MessagePort;
    new(): MessagePort;
};

/** Available only in secure contexts. */
interface NavigationPreloadManager {
    disable(): Promise<void>;
    enable(): Promise<void>;
    getState(): Promise<NavigationPreloadState>;
    setHeaderValue(value: string): Promise<void>;
}

declare var NavigationPreloadManager: {
    prototype: NavigationPreloadManager;
    new(): NavigationPreloadManager;
};

interface NavigatorConcurrentHardware {
    readonly hardwareConcurrency: number;
}

interface NavigatorID {
    /** @deprecated */
    readonly appCodeName: string;
    /** @deprecated */
    readonly appName: string;
    /** @deprecated */
    readonly appVersion: string;
    /** @deprecated */
    readonly platform: string;
    /** @deprecated */
    readonly product: string;
    readonly userAgent: string;
}

interface NavigatorLanguage {
    readonly language: string;
    readonly languages: ReadonlyArray<string>;
}

/** Available only in secure contexts. */
interface NavigatorLocks {
    readonly locks: LockManager;
}

interface NavigatorOnLine {
    readonly onLine: boolean;
}

/** Available only in secure contexts. */
interface NavigatorStorage {
    readonly storage: StorageManager;
}

interface NotificationEventMap {
    "click": Event;
    "close": Event;
    "error": Event;
    "show": Event;
}

/** This Notifications API interface is used to configure and display desktop notifications to the user. */
interface Notification extends EventTarget {
    readonly body: string;
    readonly data: any;
    readonly dir: NotificationDirection;
    readonly icon: string;
    readonly lang: string;
    onclick: ((this: Notification, ev: Event) => any) | null;
    onclose: ((this: Notification, ev: Event) => any) | null;
    onerror: ((this: Notification, ev: Event) => any) | null;
    onshow: ((this: Notification, ev: Event) => any) | null;
    readonly tag: string;
    readonly title: string;
    close(): void;
    addEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var Notification: {
    prototype: Notification;
    new(title: string, options?: NotificationOptions): Notification;
    readonly permission: NotificationPermission;
};

/** The parameter passed into the onnotificationclick handler, the NotificationEvent interface represents a notification click event that is dispatched on the ServiceWorkerGlobalScope of a ServiceWorker. */
interface NotificationEvent extends ExtendableEvent {
    readonly action: string;
    readonly notification: Notification;
}

declare var NotificationEvent: {
    prototype: NotificationEvent;
    new(type: string, eventInitDict: NotificationEventInit): NotificationEvent;
};

interface OES_draw_buffers_indexed {
    blendEquationSeparateiOES(buf: GLuint, modeRGB: GLenum, modeAlpha: GLenum): void;
    blendEquationiOES(buf: GLuint, mode: GLenum): void;
    blendFuncSeparateiOES(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;
    blendFunciOES(buf: GLuint, src: GLenum, dst: GLenum): void;
    colorMaskiOES(buf: GLuint, r: GLboolean, g: GLboolean, b: GLboolean, a: GLboolean): void;
    disableiOES(target: GLenum, index: GLuint): void;
    enableiOES(target: GLenum, index: GLuint): void;
}

/** The OES_element_index_uint extension is part of the WebGL API and adds support for gl.UNSIGNED_INT types to WebGLRenderingContext.drawElements(). */
interface OES_element_index_uint {
}

interface OES_fbo_render_mipmap {
}

/** The OES_standard_derivatives extension is part of the WebGL API and adds the GLSL derivative functions dFdx, dFdy, and fwidth. */
interface OES_standard_derivatives {
    readonly FRAGMENT_SHADER_DERIVATIVE_HINT_OES: 0x8B8B;
}

/** The OES_texture_float extension is part of the WebGL API and exposes floating-point pixel types for textures. */
interface OES_texture_float {
}

/** The OES_texture_float_linear extension is part of the WebGL API and allows linear filtering with floating-point pixel types for textures. */
interface OES_texture_float_linear {
}

/** The OES_texture_half_float extension is part of the WebGL API and adds texture formats with 16- (aka half float) and 32-bit floating-point components. */
interface OES_texture_half_float {
    readonly HALF_FLOAT_OES: 0x8D61;
}

/** The OES_texture_half_float_linear extension is part of the WebGL API and allows linear filtering with half floating-point pixel types for textures. */
interface OES_texture_half_float_linear {
}

interface OES_vertex_array_object {
    bindVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;
    createVertexArrayOES(): WebGLVertexArrayObjectOES | null;
    deleteVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;
    isVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): GLboolean;
    readonly VERTEX_ARRAY_BINDING_OES: 0x85B5;
}

interface OVR_multiview2 {
    framebufferTextureMultiviewOVR(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, baseViewIndex: GLint, numViews: GLsizei): void;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR: 0x9630;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR: 0x9632;
    readonly MAX_VIEWS_OVR: 0x9631;
    readonly FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR: 0x9633;
}

interface OffscreenCanvasEventMap {
    "contextlost": Event;
    "contextrestored": Event;
}

interface OffscreenCanvas extends EventTarget {
    /**
     * These attributes return the dimensions of the OffscreenCanvas object's bitmap.
     *
     * They can be set, to replace the bitmap with a new, transparent black bitmap of the specified dimensions (effectively resizing it).
     */
    height: number;
    oncontextlost: ((this: OffscreenCanvas, ev: Event) => any) | null;
    oncontextrestored: ((this: OffscreenCanvas, ev: Event) => any) | null;
    /**
     * These attributes return the dimensions of the OffscreenCanvas object's bitmap.
     *
     * They can be set, to replace the bitmap with a new, transparent black bitmap of the specified dimensions (effectively resizing it).
     */
    width: number;
    /**
     * Returns a promise that will fulfill with a new Blob object representing a file containing the image in the OffscreenCanvas object.
     *
     * The argument, if provided, is a dictionary that controls the encoding options of the image file to be created. The type field specifies the file format and has a default value of "image/png"; that type is also used if the requested type isn't supported. If the image format supports variable quality (such as "image/jpeg"), then the quality field is a number in the range 0.0 to 1.0 inclusive indicating the desired quality level for the resulting image.
     */
    convertToBlob(options?: ImageEncodeOptions): Promise<Blob>;
    /**
     * Returns an object that exposes an API for drawing on the OffscreenCanvas object. contextId specifies the desired API: "2d", "bitmaprenderer", "webgl", or "webgl2". options is handled by that API.
     *
     * This specification defines the "2d" context below, which is similar but distinct from the "2d" context that is created from a canvas element. The WebGL specifications define the "webgl" and "webgl2" contexts. [WEBGL]
     *
     * Returns null if the canvas has already been initialized with another context type (e.g., trying to get a "2d" context after getting a "webgl" context).
     */
    getContext(contextId: "2d", options?: any): OffscreenCanvasRenderingContext2D | null;
    getContext(contextId: "bitmaprenderer", options?: any): ImageBitmapRenderingContext | null;
    getContext(contextId: "webgl", options?: any): WebGLRenderingContext | null;
    getContext(contextId: "webgl2", options?: any): WebGL2RenderingContext | null;
    getContext(contextId: OffscreenRenderingContextId, options?: any): OffscreenRenderingContext | null;
    /** Returns a newly created ImageBitmap object with the image in the OffscreenCanvas object. The image in the OffscreenCanvas object is replaced with a new blank image. */
    transferToImageBitmap(): ImageBitmap;
    addEventListener<K extends keyof OffscreenCanvasEventMap>(type: K, listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof OffscreenCanvasEventMap>(type: K, listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var OffscreenCanvas: {
    prototype: OffscreenCanvas;
    new(width: number, height: number): OffscreenCanvas;
};

interface OffscreenCanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPath, CanvasPathDrawingStyles, CanvasRect, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform {
    readonly canvas: OffscreenCanvas;
    commit(): void;
}

declare var OffscreenCanvasRenderingContext2D: {
    prototype: OffscreenCanvasRenderingContext2D;
    new(): OffscreenCanvasRenderingContext2D;
};

/** This Canvas 2D API interface is used to declare a path that can then be used on a CanvasRenderingContext2D object. The path methods of the CanvasRenderingContext2D interface are also present on this interface, which gives you the convenience of being able to retain and replay your path whenever desired. */
interface Path2D extends CanvasPath {
    /** Adds to the path the path given by the argument. */
    addPath(path: Path2D, transform?: DOMMatrix2DInit): void;
}

declare var Path2D: {
    prototype: Path2D;
    new(path?: Path2D | string): Path2D;
};

interface PerformanceEventMap {
    "resourcetimingbufferfull": Event;
}

/** Provides access to performance-related information for the current page. It's part of the High Resolution Time API, but is enhanced by the Performance Timeline API, the Navigation Timing API, the User Timing API, and the Resource Timing API. */
interface Performance extends EventTarget {
    onresourcetimingbufferfull: ((this: Performance, ev: Event) => any) | null;
    readonly timeOrigin: DOMHighResTimeStamp;
    clearMarks(markName?: string): void;
    clearMeasures(measureName?: string): void;
    clearResourceTimings(): void;
    getEntries(): PerformanceEntryList;
    getEntriesByName(name: string, type?: string): PerformanceEntryList;
    getEntriesByType(type: string): PerformanceEntryList;
    mark(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;
    measure(measureName: string, startOrMeasureOptions?: string | PerformanceMeasureOptions, endMark?: string): PerformanceMeasure;
    now(): DOMHighResTimeStamp;
    setResourceTimingBufferSize(maxSize: number): void;
    toJSON(): any;
    addEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var Performance: {
    prototype: Performance;
    new(): Performance;
};

/** Encapsulates a single performance metric that is part of the performance timeline. A performance entry can be directly created by making a performance mark or measure (for example by calling the mark() method) at an explicit point in an application. Performance entries are also created in indirect ways such as loading a resource (such as an image). */
interface PerformanceEntry {
    readonly duration: DOMHighResTimeStamp;
    readonly entryType: string;
    readonly name: string;
    readonly startTime: DOMHighResTimeStamp;
    toJSON(): any;
}

declare var PerformanceEntry: {
    prototype: PerformanceEntry;
    new(): PerformanceEntry;
};

/** PerformanceMark is an abstract interface for PerformanceEntry objects with an entryType of "mark". Entries of this type are created by calling performance.mark() to add a named DOMHighResTimeStamp (the mark) to the browser's performance timeline. */
interface PerformanceMark extends PerformanceEntry {
    readonly detail: any;
}

declare var PerformanceMark: {
    prototype: PerformanceMark;
    new(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;
};

/** PerformanceMeasure is an abstract interface for PerformanceEntry objects with an entryType of "measure". Entries of this type are created by calling performance.measure() to add a named DOMHighResTimeStamp (the measure) between two marks to the browser's performance timeline. */
interface PerformanceMeasure extends PerformanceEntry {
    readonly detail: any;
}

declare var PerformanceMeasure: {
    prototype: PerformanceMeasure;
    new(): PerformanceMeasure;
};

interface PerformanceObserver {
    disconnect(): void;
    observe(options?: PerformanceObserverInit): void;
    takeRecords(): PerformanceEntryList;
}

declare var PerformanceObserver: {
    prototype: PerformanceObserver;
    new(callback: PerformanceObserverCallback): PerformanceObserver;
    readonly supportedEntryTypes: ReadonlyArray<string>;
};

interface PerformanceObserverEntryList {
    getEntries(): PerformanceEntryList;
    getEntriesByName(name: string, type?: string): PerformanceEntryList;
    getEntriesByType(type: string): PerformanceEntryList;
}

declare var PerformanceObserverEntryList: {
    prototype: PerformanceObserverEntryList;
    new(): PerformanceObserverEntryList;
};

/** Enables retrieval and analysis of detailed network timing data regarding the loading of an application's resources. An application can use the timing metrics to determine, for example, the length of time it takes to fetch a specific resource, such as an XMLHttpRequest, <SVG>, image, or script. */
interface PerformanceResourceTiming extends PerformanceEntry {
    readonly connectEnd: DOMHighResTimeStamp;
    readonly connectStart: DOMHighResTimeStamp;
    readonly decodedBodySize: number;
    readonly domainLookupEnd: DOMHighResTimeStamp;
    readonly domainLookupStart: DOMHighResTimeStamp;
    readonly encodedBodySize: number;
    readonly fetchStart: DOMHighResTimeStamp;
    readonly initiatorType: string;
    readonly nextHopProtocol: string;
    readonly redirectEnd: DOMHighResTimeStamp;
    readonly redirectStart: DOMHighResTimeStamp;
    readonly requestStart: DOMHighResTimeStamp;
    readonly responseEnd: DOMHighResTimeStamp;
    readonly responseStart: DOMHighResTimeStamp;
    readonly secureConnectionStart: DOMHighResTimeStamp;
    readonly serverTiming: ReadonlyArray<PerformanceServerTiming>;
    readonly transferSize: number;
    readonly workerStart: DOMHighResTimeStamp;
    toJSON(): any;
}

declare var PerformanceResourceTiming: {
    prototype: PerformanceResourceTiming;
    new(): PerformanceResourceTiming;
};

interface PerformanceServerTiming {
    readonly description: string;
    readonly duration: DOMHighResTimeStamp;
    readonly name: string;
    toJSON(): any;
}

declare var PerformanceServerTiming: {
    prototype: PerformanceServerTiming;
    new(): PerformanceServerTiming;
};

interface PermissionStatusEventMap {
    "change": Event;
}

interface PermissionStatus extends EventTarget {
    readonly name: string;
    onchange: ((this: PermissionStatus, ev: Event) => any) | null;
    readonly state: PermissionState;
    addEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var PermissionStatus: {
    prototype: PermissionStatus;
    new(): PermissionStatus;
};

interface Permissions {
    query(permissionDesc: PermissionDescriptor): Promise<PermissionStatus>;
}

declare var Permissions: {
    prototype: Permissions;
    new(): Permissions;
};

/** Events measuring progress of an underlying process, like an HTTP request (for an XMLHttpRequest, or the loading of the underlying resource of an <img>, <audio>, <video>, <style> or <link>). */
interface ProgressEvent<T extends EventTarget = EventTarget> extends Event {
    readonly lengthComputable: boolean;
    readonly loaded: number;
    readonly target: T | null;
    readonly total: number;
}

declare var ProgressEvent: {
    prototype: ProgressEvent;
    new(type: string, eventInitDict?: ProgressEventInit): ProgressEvent;
};

interface PromiseRejectionEvent extends Event {
    readonly promise: Promise<any>;
    readonly reason: any;
}

declare var PromiseRejectionEvent: {
    prototype: PromiseRejectionEvent;
    new(type: string, eventInitDict: PromiseRejectionEventInit): PromiseRejectionEvent;
};

/**
 * This Push API interface represents a push message that has been received. This event is sent to the global scope of a ServiceWorker. It contains the information sent from an application server to a PushSubscription.
 * Available only in secure contexts.
 */
interface PushEvent extends ExtendableEvent {
    readonly data: PushMessageData | null;
}

declare var PushEvent: {
    prototype: PushEvent;
    new(type: string, eventInitDict?: PushEventInit): PushEvent;
};

/**
 * This Push API interface provides a way to receive notifications from third-party servers as well as request URLs for push notifications.
 * Available only in secure contexts.
 */
interface PushManager {
    getSubscription(): Promise<PushSubscription | null>;
    permissionState(options?: PushSubscriptionOptionsInit): Promise<PermissionState>;
    subscribe(options?: PushSubscriptionOptionsInit): Promise<PushSubscription>;
}

declare var PushManager: {
    prototype: PushManager;
    new(): PushManager;
    readonly supportedContentEncodings: ReadonlyArray<string>;
};

/**
 * This Push API interface provides methods which let you retrieve the push data sent by a server in various formats.
 * Available only in secure contexts.
 */
interface PushMessageData {
    arrayBuffer(): ArrayBuffer;
    blob(): Blob;
    json(): any;
    text(): string;
}

declare var PushMessageData: {
    prototype: PushMessageData;
    new(): PushMessageData;
};

/**
 * This Push API interface provides a subcription's URL endpoint and allows unsubscription from a push service.
 * Available only in secure contexts.
 */
interface PushSubscription {
    readonly endpoint: string;
    readonly expirationTime: EpochTimeStamp | null;
    readonly options: PushSubscriptionOptions;
    getKey(name: PushEncryptionKeyName): ArrayBuffer | null;
    toJSON(): PushSubscriptionJSON;
    unsubscribe(): Promise<boolean>;
}

declare var PushSubscription: {
    prototype: PushSubscription;
    new(): PushSubscription;
};

/** Available only in secure contexts. */
interface PushSubscriptionOptions {
    readonly applicationServerKey: ArrayBuffer | null;
    readonly userVisibleOnly: boolean;
}

declare var PushSubscriptionOptions: {
    prototype: PushSubscriptionOptions;
    new(): PushSubscriptionOptions;
};

interface RTCEncodedAudioFrame {
    data: ArrayBuffer;
    readonly timestamp: number;
    getMetadata(): RTCEncodedAudioFrameMetadata;
}

declare var RTCEncodedAudioFrame: {
    prototype: RTCEncodedAudioFrame;
    new(): RTCEncodedAudioFrame;
};

interface RTCEncodedVideoFrame {
    data: ArrayBuffer;
    readonly timestamp: number;
    readonly type: RTCEncodedVideoFrameType;
    getMetadata(): RTCEncodedVideoFrameMetadata;
}

declare var RTCEncodedVideoFrame: {
    prototype: RTCEncodedVideoFrame;
    new(): RTCEncodedVideoFrame;
};

interface ReadableByteStreamController {
    readonly byobRequest: ReadableStreamBYOBRequest | null;
    readonly desiredSize: number | null;
    close(): void;
    enqueue(chunk: ArrayBufferView): void;
    error(e?: any): void;
}

declare var ReadableByteStreamController: {
    prototype: ReadableByteStreamController;
    new(): ReadableByteStreamController;
};

/** This Streams API interface represents a readable stream of byte data. The Fetch API offers a concrete instance of a ReadableStream through the body property of a Response object. */
interface ReadableStream<R = any> {
    readonly locked: boolean;
    cancel(reason?: any): Promise<void>;
    getReader(options: { mode: "byob" }): ReadableStreamBYOBReader;
    getReader(): ReadableStreamDefaultReader<R>;
    getReader(options?: ReadableStreamGetReaderOptions): ReadableStreamReader<R>;
    pipeThrough<T>(transform: ReadableWritablePair<T, R>, options?: StreamPipeOptions): ReadableStream<T>;
    pipeTo(destination: WritableStream<R>, options?: StreamPipeOptions): Promise<void>;
    tee(): [ReadableStream<R>, ReadableStream<R>];
}

declare var ReadableStream: {
    prototype: ReadableStream;
    new(underlyingSource: UnderlyingByteSource, strategy?: { highWaterMark?: number }): ReadableStream<Uint8Array>;
    new<R = any>(underlyingSource: UnderlyingDefaultSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
    new<R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
};

interface ReadableStreamBYOBReader extends ReadableStreamGenericReader {
    read<T extends ArrayBufferView>(view: T): Promise<ReadableStreamReadResult<T>>;
    releaseLock(): void;
}

declare var ReadableStreamBYOBReader: {
    prototype: ReadableStreamBYOBReader;
    new(stream: ReadableStream): ReadableStreamBYOBReader;
};

interface ReadableStreamBYOBRequest {
    readonly view: ArrayBufferView | null;
    respond(bytesWritten: number): void;
    respondWithNewView(view: ArrayBufferView): void;
}

declare var ReadableStreamBYOBRequest: {
    prototype: ReadableStreamBYOBRequest;
    new(): ReadableStreamBYOBRequest;
};

interface ReadableStreamDefaultController<R = any> {
    readonly desiredSize: number | null;
    close(): void;
    enqueue(chunk?: R): void;
    error(e?: any): void;
}

declare var ReadableStreamDefaultController: {
    prototype: ReadableStreamDefaultController;
    new(): ReadableStreamDefaultController;
};

interface ReadableStreamDefaultReader<R = any> extends ReadableStreamGenericReader {
    read(): Promise<ReadableStreamReadResult<R>>;
    releaseLock(): void;
}

declare var ReadableStreamDefaultReader: {
    prototype: ReadableStreamDefaultReader;
    new<R = any>(stream: ReadableStream<R>): ReadableStreamDefaultReader<R>;
};

interface ReadableStreamGenericReader {
    readonly closed: Promise<undefined>;
    cancel(reason?: any): Promise<void>;
}

/** This Fetch API interface represents a resource request. */
interface Request extends Body {
    /** Returns the cache mode associated with request, which is a string indicating how the request will interact with the browser's cache when fetching. */
    readonly cache: RequestCache;
    /** Returns the credentials mode associated with request, which is a string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL. */
    readonly credentials: RequestCredentials;
    /** Returns the kind of resource requested by request, e.g., "document" or "script". */
    readonly destination: RequestDestination;
    /** Returns a Headers object consisting of the headers associated with request. Note that headers added in the network layer by the user agent will not be accounted for in this object, e.g., the "Host" header. */
    readonly headers: Headers;
    /** Returns request's subresource integrity metadata, which is a cryptographic hash of the resource being fetched. Its value consists of multiple hashes separated by whitespace. [SRI] */
    readonly integrity: string;
    /** Returns a boolean indicating whether or not request can outlive the global in which it was created. */
    readonly keepalive: boolean;
    /** Returns request's HTTP method, which is "GET" by default. */
    readonly method: string;
    /** Returns the mode associated with request, which is a string indicating whether the request will use CORS, or will be restricted to same-origin URLs. */
    readonly mode: RequestMode;
    /** Returns the redirect mode associated with request, which is a string indicating how redirects for the request will be handled during fetching. A request will follow redirects by default. */
    readonly redirect: RequestRedirect;
    /** Returns the referrer of request. Its value can be a same-origin URL if explicitly set in init, the empty string to indicate no referrer, and "about:client" when defaulting to the global's default. This is used during fetching to determine the value of the \`Referer\` header of the request being made. */
    readonly referrer: string;
    /** Returns the referrer policy associated with request. This is used during fetching to compute the value of the request's referrer. */
    readonly referrerPolicy: ReferrerPolicy;
    /** Returns the signal associated with request, which is an AbortSignal object indicating whether or not request has been aborted, and its abort event handler. */
    readonly signal: AbortSignal;
    /** Returns the URL of request as a string. */
    readonly url: string;
    clone(): Request;
}

declare var Request: {
    prototype: Request;
    new(input: RequestInfo | URL, init?: RequestInit): Request;
};

/** This Fetch API interface represents the response to a request. */
interface Response extends Body {
    readonly headers: Headers;
    readonly ok: boolean;
    readonly redirected: boolean;
    readonly status: number;
    readonly statusText: string;
    readonly type: ResponseType;
    readonly url: string;
    clone(): Response;
}

declare var Response: {
    prototype: Response;
    new(body?: BodyInit | null, init?: ResponseInit): Response;
    error(): Response;
    redirect(url: string | URL, status?: number): Response;
};

/** Inherits from Event, and represents the event object of an event sent on a document or worker when its content security policy is violated. */
interface SecurityPolicyViolationEvent extends Event {
    readonly blockedURI: string;
    readonly columnNumber: number;
    readonly disposition: SecurityPolicyViolationEventDisposition;
    readonly documentURI: string;
    readonly effectiveDirective: string;
    readonly lineNumber: number;
    readonly originalPolicy: string;
    readonly referrer: string;
    readonly sample: string;
    readonly sourceFile: string;
    readonly statusCode: number;
    readonly violatedDirective: string;
}

declare var SecurityPolicyViolationEvent: {
    prototype: SecurityPolicyViolationEvent;
    new(type: string, eventInitDict?: SecurityPolicyViolationEventInit): SecurityPolicyViolationEvent;
};

interface ServiceWorkerEventMap extends AbstractWorkerEventMap {
    "statechange": Event;
}

/**
 * This ServiceWorker API interface provides a reference to a service worker. Multiple browsing contexts (e.g. pages, workers, etc.) can be associated with the same service worker, each through a unique ServiceWorker object.
 * Available only in secure contexts.
 */
interface ServiceWorker extends EventTarget, AbstractWorker {
    onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
    readonly scriptURL: string;
    readonly state: ServiceWorkerState;
    postMessage(message: any, transfer: Transferable[]): void;
    postMessage(message: any, options?: StructuredSerializeOptions): void;
    addEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var ServiceWorker: {
    prototype: ServiceWorker;
    new(): ServiceWorker;
};

interface ServiceWorkerContainerEventMap {
    "controllerchange": Event;
    "message": MessageEvent;
    "messageerror": MessageEvent;
}

/**
 * The ServiceWorkerContainer interface of the ServiceWorker API provides an object representing the service worker as an overall unit in the network ecosystem, including facilities to register, unregister and update service workers, and access the state of service workers and their registrations.
 * Available only in secure contexts.
 */
interface ServiceWorkerContainer extends EventTarget {
    readonly controller: ServiceWorker | null;
    oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
    onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
    onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
    readonly ready: Promise<ServiceWorkerRegistration>;
    getRegistration(clientURL?: string | URL): Promise<ServiceWorkerRegistration | undefined>;
    getRegistrations(): Promise<ReadonlyArray<ServiceWorkerRegistration>>;
    register(scriptURL: string | URL, options?: RegistrationOptions): Promise<ServiceWorkerRegistration>;
    startMessages(): void;
    addEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var ServiceWorkerContainer: {
    prototype: ServiceWorkerContainer;
    new(): ServiceWorkerContainer;
};

interface ServiceWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {
    "activate": ExtendableEvent;
    "fetch": FetchEvent;
    "install": ExtendableEvent;
    "message": ExtendableMessageEvent;
    "messageerror": MessageEvent;
    "notificationclick": NotificationEvent;
    "notificationclose": NotificationEvent;
    "push": PushEvent;
    "pushsubscriptionchange": Event;
}

/** This ServiceWorker API interface represents the global execution context of a service worker. */
interface ServiceWorkerGlobalScope extends WorkerGlobalScope {
    readonly clients: Clients;
    onactivate: ((this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any) | null;
    onfetch: ((this: ServiceWorkerGlobalScope, ev: FetchEvent) => any) | null;
    oninstall: ((this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any) | null;
    onmessage: ((this: ServiceWorkerGlobalScope, ev: ExtendableMessageEvent) => any) | null;
    onmessageerror: ((this: ServiceWorkerGlobalScope, ev: MessageEvent) => any) | null;
    onnotificationclick: ((this: ServiceWorkerGlobalScope, ev: NotificationEvent) => any) | null;
    onnotificationclose: ((this: ServiceWorkerGlobalScope, ev: NotificationEvent) => any) | null;
    onpush: ((this: ServiceWorkerGlobalScope, ev: PushEvent) => any) | null;
    onpushsubscriptionchange: ((this: ServiceWorkerGlobalScope, ev: Event) => any) | null;
    readonly registration: ServiceWorkerRegistration;
    readonly serviceWorker: ServiceWorker;
    skipWaiting(): Promise<void>;
    addEventListener<K extends keyof ServiceWorkerGlobalScopeEventMap>(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof ServiceWorkerGlobalScopeEventMap>(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var ServiceWorkerGlobalScope: {
    prototype: ServiceWorkerGlobalScope;
    new(): ServiceWorkerGlobalScope;
};

interface ServiceWorkerRegistrationEventMap {
    "updatefound": Event;
}

/**
 * This ServiceWorker API interface represents the service worker registration. You register a service worker to control one or more pages that share the same origin.
 * Available only in secure contexts.
 */
interface ServiceWorkerRegistration extends EventTarget {
    readonly active: ServiceWorker | null;
    readonly installing: ServiceWorker | null;
    readonly navigationPreload: NavigationPreloadManager;
    onupdatefound: ((this: ServiceWorkerRegistration, ev: Event) => any) | null;
    readonly pushManager: PushManager;
    readonly scope: string;
    readonly updateViaCache: ServiceWorkerUpdateViaCache;
    readonly waiting: ServiceWorker | null;
    getNotifications(filter?: GetNotificationOptions): Promise<Notification[]>;
    showNotification(title: string, options?: NotificationOptions): Promise<void>;
    unregister(): Promise<boolean>;
    update(): Promise<void>;
    addEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var ServiceWorkerRegistration: {
    prototype: ServiceWorkerRegistration;
    new(): ServiceWorkerRegistration;
};

interface SharedWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {
    "connect": MessageEvent;
}

interface SharedWorkerGlobalScope extends WorkerGlobalScope {
    /** Returns sharedWorkerGlobal's name, i.e. the value given to the SharedWorker constructor. Multiple SharedWorker objects can correspond to the same shared worker (and SharedWorkerGlobalScope), by reusing the same name. */
    readonly name: string;
    onconnect: ((this: SharedWorkerGlobalScope, ev: MessageEvent) => any) | null;
    /** Aborts sharedWorkerGlobal. */
    close(): void;
    addEventListener<K extends keyof SharedWorkerGlobalScopeEventMap>(type: K, listener: (this: SharedWorkerGlobalScope, ev: SharedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof SharedWorkerGlobalScopeEventMap>(type: K, listener: (this: SharedWorkerGlobalScope, ev: SharedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var SharedWorkerGlobalScope: {
    prototype: SharedWorkerGlobalScope;
    new(): SharedWorkerGlobalScope;
};

/** Available only in secure contexts. */
interface StorageManager {
    estimate(): Promise<StorageEstimate>;
    getDirectory(): Promise<FileSystemDirectoryHandle>;
    persisted(): Promise<boolean>;
}

declare var StorageManager: {
    prototype: StorageManager;
    new(): StorageManager;
};

/**
 * This Web Crypto API interface provides a number of low-level cryptographic functions. It is accessed via the Crypto.subtle properties available in a window context (via Window.crypto).
 * Available only in secure contexts.
 */
interface SubtleCrypto {
    decrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;
    deriveBits(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, length: number): Promise<ArrayBuffer>;
    deriveKey(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
    digest(algorithm: AlgorithmIdentifier, data: BufferSource): Promise<ArrayBuffer>;
    encrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;
    exportKey(format: "jwk", key: CryptoKey): Promise<JsonWebKey>;
    exportKey(format: Exclude<KeyFormat, "jwk">, key: CryptoKey): Promise<ArrayBuffer>;
    generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKeyPair>;
    generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
    generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair | CryptoKey>;
    importKey(format: "jwk", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
    importKey(format: Exclude<KeyFormat, "jwk">, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
    sign(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;
    unwrapKey(format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
    verify(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, signature: BufferSource, data: BufferSource): Promise<boolean>;
    wrapKey(format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams): Promise<ArrayBuffer>;
}

declare var SubtleCrypto: {
    prototype: SubtleCrypto;
    new(): SubtleCrypto;
};

/** A decoder for a specific method, that is a specific character encoding, like utf-8, iso-8859-2, koi8, cp1261, gbk, etc. A decoder takes a stream of bytes as input and emits a stream of code points. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays. */
interface TextDecoder extends TextDecoderCommon {
    /**
     * Returns the result of running encoding's decoder. The method can be invoked zero or more times with options's stream set to true, and then once without options's stream (or set to false), to process a fragmented input. If the invocation without options's stream (or set to false) has no input, it's clearest to omit both arguments.
     *
     * \`\`\`
     * var string = "", decoder = new TextDecoder(encoding), buffer;
     * while(buffer = next_chunk()) {
     *   string += decoder.decode(buffer, {stream:true});
     * }
     * string += decoder.decode(); // end-of-queue
     * \`\`\`
     *
     * If the error mode is "fatal" and encoding's decoder returns error, throws a TypeError.
     */
    decode(input?: BufferSource, options?: TextDecodeOptions): string;
}

declare var TextDecoder: {
    prototype: TextDecoder;
    new(label?: string, options?: TextDecoderOptions): TextDecoder;
};

interface TextDecoderCommon {
    /** Returns encoding's name, lowercased. */
    readonly encoding: string;
    /** Returns true if error mode is "fatal", otherwise false. */
    readonly fatal: boolean;
    /** Returns the value of ignore BOM. */
    readonly ignoreBOM: boolean;
}

interface TextDecoderStream extends GenericTransformStream, TextDecoderCommon {
    readonly readable: ReadableStream<string>;
    readonly writable: WritableStream<BufferSource>;
}

declare var TextDecoderStream: {
    prototype: TextDecoderStream;
    new(label?: string, options?: TextDecoderOptions): TextDecoderStream;
};

/** TextEncoder takes a stream of code points as input and emits a stream of bytes. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays. */
interface TextEncoder extends TextEncoderCommon {
    /** Returns the result of running UTF-8's encoder. */
    encode(input?: string): Uint8Array;
    /** Runs the UTF-8 encoder on source, stores the result of that operation into destination, and returns the progress made as an object wherein read is the number of converted code units of source and written is the number of bytes modified in destination. */
    encodeInto(source: string, destination: Uint8Array): TextEncoderEncodeIntoResult;
}

declare var TextEncoder: {
    prototype: TextEncoder;
    new(): TextEncoder;
};

interface TextEncoderCommon {
    /** Returns "utf-8". */
    readonly encoding: string;
}

interface TextEncoderStream extends GenericTransformStream, TextEncoderCommon {
    readonly readable: ReadableStream<Uint8Array>;
    readonly writable: WritableStream<string>;
}

declare var TextEncoderStream: {
    prototype: TextEncoderStream;
    new(): TextEncoderStream;
};

/** The dimensions of a piece of text in the canvas, as created by the CanvasRenderingContext2D.measureText() method. */
interface TextMetrics {
    /** Returns the measurement described below. */
    readonly actualBoundingBoxAscent: number;
    /** Returns the measurement described below. */
    readonly actualBoundingBoxDescent: number;
    /** Returns the measurement described below. */
    readonly actualBoundingBoxLeft: number;
    /** Returns the measurement described below. */
    readonly actualBoundingBoxRight: number;
    /** Returns the measurement described below. */
    readonly fontBoundingBoxAscent: number;
    /** Returns the measurement described below. */
    readonly fontBoundingBoxDescent: number;
    /** Returns the measurement described below. */
    readonly width: number;
}

declare var TextMetrics: {
    prototype: TextMetrics;
    new(): TextMetrics;
};

interface TransformStream<I = any, O = any> {
    readonly readable: ReadableStream<O>;
    readonly writable: WritableStream<I>;
}

declare var TransformStream: {
    prototype: TransformStream;
    new<I = any, O = any>(transformer?: Transformer<I, O>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<O>): TransformStream<I, O>;
};

interface TransformStreamDefaultController<O = any> {
    readonly desiredSize: number | null;
    enqueue(chunk?: O): void;
    error(reason?: any): void;
    terminate(): void;
}

declare var TransformStreamDefaultController: {
    prototype: TransformStreamDefaultController;
    new(): TransformStreamDefaultController;
};

/** The URL interface represents an object providing static methods used for creating object URLs. */
interface URL {
    hash: string;
    host: string;
    hostname: string;
    href: string;
    toString(): string;
    readonly origin: string;
    password: string;
    pathname: string;
    port: string;
    protocol: string;
    search: string;
    readonly searchParams: URLSearchParams;
    username: string;
    toJSON(): string;
}

declare var URL: {
    prototype: URL;
    new(url: string | URL, base?: string | URL): URL;
    createObjectURL(obj: Blob): string;
    revokeObjectURL(url: string): void;
};

interface URLSearchParams {
    /** Appends a specified key/value pair as a new search parameter. */
    append(name: string, value: string): void;
    /** Deletes the given search parameter, and its associated value, from the list of all search parameters. */
    delete(name: string): void;
    /** Returns the first value associated to the given search parameter. */
    get(name: string): string | null;
    /** Returns all the values association with a given search parameter. */
    getAll(name: string): string[];
    /** Returns a Boolean indicating if such a search parameter exists. */
    has(name: string): boolean;
    /** Sets the value associated to a given search parameter to the given value. If there were several values, delete the others. */
    set(name: string, value: string): void;
    sort(): void;
    /** Returns a string containing a query string suitable for use in a URL. Does not include the question mark. */
    toString(): string;
    forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any): void;
}

declare var URLSearchParams: {
    prototype: URLSearchParams;
    new(init?: string[][] | Record<string, string> | string | URLSearchParams): URLSearchParams;
    toString(): string;
};

interface VideoColorSpace {
    readonly fullRange: boolean | null;
    readonly matrix: VideoMatrixCoefficients | null;
    readonly primaries: VideoColorPrimaries | null;
    readonly transfer: VideoTransferCharacteristics | null;
    toJSON(): VideoColorSpaceInit;
}

declare var VideoColorSpace: {
    prototype: VideoColorSpace;
    new(init?: VideoColorSpaceInit): VideoColorSpace;
};

interface WEBGL_color_buffer_float {
    readonly RGBA32F_EXT: 0x8814;
    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 0x8211;
    readonly UNSIGNED_NORMALIZED_EXT: 0x8C17;
}

interface WEBGL_compressed_texture_astc {
    getSupportedProfiles(): string[];
    readonly COMPRESSED_RGBA_ASTC_4x4_KHR: 0x93B0;
    readonly COMPRESSED_RGBA_ASTC_5x4_KHR: 0x93B1;
    readonly COMPRESSED_RGBA_ASTC_5x5_KHR: 0x93B2;
    readonly COMPRESSED_RGBA_ASTC_6x5_KHR: 0x93B3;
    readonly COMPRESSED_RGBA_ASTC_6x6_KHR: 0x93B4;
    readonly COMPRESSED_RGBA_ASTC_8x5_KHR: 0x93B5;
    readonly COMPRESSED_RGBA_ASTC_8x6_KHR: 0x93B6;
    readonly COMPRESSED_RGBA_ASTC_8x8_KHR: 0x93B7;
    readonly COMPRESSED_RGBA_ASTC_10x5_KHR: 0x93B8;
    readonly COMPRESSED_RGBA_ASTC_10x6_KHR: 0x93B9;
    readonly COMPRESSED_RGBA_ASTC_10x8_KHR: 0x93BA;
    readonly COMPRESSED_RGBA_ASTC_10x10_KHR: 0x93BB;
    readonly COMPRESSED_RGBA_ASTC_12x10_KHR: 0x93BC;
    readonly COMPRESSED_RGBA_ASTC_12x12_KHR: 0x93BD;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: 0x93D0;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR: 0x93D1;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR: 0x93D2;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR: 0x93D3;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR: 0x93D4;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR: 0x93D5;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR: 0x93D6;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR: 0x93D7;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR: 0x93D8;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR: 0x93D9;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR: 0x93DA;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR: 0x93DB;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR: 0x93DC;
    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR: 0x93DD;
}

interface WEBGL_compressed_texture_etc {
    readonly COMPRESSED_R11_EAC: 0x9270;
    readonly COMPRESSED_SIGNED_R11_EAC: 0x9271;
    readonly COMPRESSED_RG11_EAC: 0x9272;
    readonly COMPRESSED_SIGNED_RG11_EAC: 0x9273;
    readonly COMPRESSED_RGB8_ETC2: 0x9274;
    readonly COMPRESSED_SRGB8_ETC2: 0x9275;
    readonly COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9276;
    readonly COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9277;
    readonly COMPRESSED_RGBA8_ETC2_EAC: 0x9278;
    readonly COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 0x9279;
}

interface WEBGL_compressed_texture_etc1 {
    readonly COMPRESSED_RGB_ETC1_WEBGL: 0x8D64;
}

/** The WEBGL_compressed_texture_s3tc extension is part of the WebGL API and exposes four S3TC compressed texture formats. */
interface WEBGL_compressed_texture_s3tc {
    readonly COMPRESSED_RGB_S3TC_DXT1_EXT: 0x83F0;
    readonly COMPRESSED_RGBA_S3TC_DXT1_EXT: 0x83F1;
    readonly COMPRESSED_RGBA_S3TC_DXT3_EXT: 0x83F2;
    readonly COMPRESSED_RGBA_S3TC_DXT5_EXT: 0x83F3;
}

interface WEBGL_compressed_texture_s3tc_srgb {
    readonly COMPRESSED_SRGB_S3TC_DXT1_EXT: 0x8C4C;
    readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 0x8C4D;
    readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 0x8C4E;
    readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 0x8C4F;
}

/** The WEBGL_debug_renderer_info extension is part of the WebGL API and exposes two constants with information about the graphics driver for debugging purposes. */
interface WEBGL_debug_renderer_info {
    readonly UNMASKED_VENDOR_WEBGL: 0x9245;
    readonly UNMASKED_RENDERER_WEBGL: 0x9246;
}

interface WEBGL_debug_shaders {
    getTranslatedShaderSource(shader: WebGLShader): string;
}

/** The WEBGL_depth_texture extension is part of the WebGL API and defines 2D depth and depth-stencil textures. */
interface WEBGL_depth_texture {
    readonly UNSIGNED_INT_24_8_WEBGL: 0x84FA;
}

interface WEBGL_draw_buffers {
    drawBuffersWEBGL(buffers: GLenum[]): void;
    readonly COLOR_ATTACHMENT0_WEBGL: 0x8CE0;
    readonly COLOR_ATTACHMENT1_WEBGL: 0x8CE1;
    readonly COLOR_ATTACHMENT2_WEBGL: 0x8CE2;
    readonly COLOR_ATTACHMENT3_WEBGL: 0x8CE3;
    readonly COLOR_ATTACHMENT4_WEBGL: 0x8CE4;
    readonly COLOR_ATTACHMENT5_WEBGL: 0x8CE5;
    readonly COLOR_ATTACHMENT6_WEBGL: 0x8CE6;
    readonly COLOR_ATTACHMENT7_WEBGL: 0x8CE7;
    readonly COLOR_ATTACHMENT8_WEBGL: 0x8CE8;
    readonly COLOR_ATTACHMENT9_WEBGL: 0x8CE9;
    readonly COLOR_ATTACHMENT10_WEBGL: 0x8CEA;
    readonly COLOR_ATTACHMENT11_WEBGL: 0x8CEB;
    readonly COLOR_ATTACHMENT12_WEBGL: 0x8CEC;
    readonly COLOR_ATTACHMENT13_WEBGL: 0x8CED;
    readonly COLOR_ATTACHMENT14_WEBGL: 0x8CEE;
    readonly COLOR_ATTACHMENT15_WEBGL: 0x8CEF;
    readonly DRAW_BUFFER0_WEBGL: 0x8825;
    readonly DRAW_BUFFER1_WEBGL: 0x8826;
    readonly DRAW_BUFFER2_WEBGL: 0x8827;
    readonly DRAW_BUFFER3_WEBGL: 0x8828;
    readonly DRAW_BUFFER4_WEBGL: 0x8829;
    readonly DRAW_BUFFER5_WEBGL: 0x882A;
    readonly DRAW_BUFFER6_WEBGL: 0x882B;
    readonly DRAW_BUFFER7_WEBGL: 0x882C;
    readonly DRAW_BUFFER8_WEBGL: 0x882D;
    readonly DRAW_BUFFER9_WEBGL: 0x882E;
    readonly DRAW_BUFFER10_WEBGL: 0x882F;
    readonly DRAW_BUFFER11_WEBGL: 0x8830;
    readonly DRAW_BUFFER12_WEBGL: 0x8831;
    readonly DRAW_BUFFER13_WEBGL: 0x8832;
    readonly DRAW_BUFFER14_WEBGL: 0x8833;
    readonly DRAW_BUFFER15_WEBGL: 0x8834;
    readonly MAX_COLOR_ATTACHMENTS_WEBGL: 0x8CDF;
    readonly MAX_DRAW_BUFFERS_WEBGL: 0x8824;
}

interface WEBGL_lose_context {
    loseContext(): void;
    restoreContext(): void;
}

interface WEBGL_multi_draw {
    multiDrawArraysInstancedWEBGL(mode: GLenum, firstsList: Int32Array | GLint[], firstsOffset: GLuint, countsList: Int32Array | GLsizei[], countsOffset: GLuint, instanceCountsList: Int32Array | GLsizei[], instanceCountsOffset: GLuint, drawcount: GLsizei): void;
    multiDrawArraysWEBGL(mode: GLenum, firstsList: Int32Array | GLint[], firstsOffset: GLuint, countsList: Int32Array | GLsizei[], countsOffset: GLuint, drawcount: GLsizei): void;
    multiDrawElementsInstancedWEBGL(mode: GLenum, countsList: Int32Array | GLsizei[], countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | GLsizei[], offsetsOffset: GLuint, instanceCountsList: Int32Array | GLsizei[], instanceCountsOffset: GLuint, drawcount: GLsizei): void;
    multiDrawElementsWEBGL(mode: GLenum, countsList: Int32Array | GLsizei[], countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | GLsizei[], offsetsOffset: GLuint, drawcount: GLsizei): void;
}

interface WebGL2RenderingContext extends WebGL2RenderingContextBase, WebGL2RenderingContextOverloads, WebGLRenderingContextBase {
}

declare var WebGL2RenderingContext: {
    prototype: WebGL2RenderingContext;
    new(): WebGL2RenderingContext;
    readonly READ_BUFFER: 0x0C02;
    readonly UNPACK_ROW_LENGTH: 0x0CF2;
    readonly UNPACK_SKIP_ROWS: 0x0CF3;
    readonly UNPACK_SKIP_PIXELS: 0x0CF4;
    readonly PACK_ROW_LENGTH: 0x0D02;
    readonly PACK_SKIP_ROWS: 0x0D03;
    readonly PACK_SKIP_PIXELS: 0x0D04;
    readonly COLOR: 0x1800;
    readonly DEPTH: 0x1801;
    readonly STENCIL: 0x1802;
    readonly RED: 0x1903;
    readonly RGB8: 0x8051;
    readonly RGBA8: 0x8058;
    readonly RGB10_A2: 0x8059;
    readonly TEXTURE_BINDING_3D: 0x806A;
    readonly UNPACK_SKIP_IMAGES: 0x806D;
    readonly UNPACK_IMAGE_HEIGHT: 0x806E;
    readonly TEXTURE_3D: 0x806F;
    readonly TEXTURE_WRAP_R: 0x8072;
    readonly MAX_3D_TEXTURE_SIZE: 0x8073;
    readonly UNSIGNED_INT_2_10_10_10_REV: 0x8368;
    readonly MAX_ELEMENTS_VERTICES: 0x80E8;
    readonly MAX_ELEMENTS_INDICES: 0x80E9;
    readonly TEXTURE_MIN_LOD: 0x813A;
    readonly TEXTURE_MAX_LOD: 0x813B;
    readonly TEXTURE_BASE_LEVEL: 0x813C;
    readonly TEXTURE_MAX_LEVEL: 0x813D;
    readonly MIN: 0x8007;
    readonly MAX: 0x8008;
    readonly DEPTH_COMPONENT24: 0x81A6;
    readonly MAX_TEXTURE_LOD_BIAS: 0x84FD;
    readonly TEXTURE_COMPARE_MODE: 0x884C;
    readonly TEXTURE_COMPARE_FUNC: 0x884D;
    readonly CURRENT_QUERY: 0x8865;
    readonly QUERY_RESULT: 0x8866;
    readonly QUERY_RESULT_AVAILABLE: 0x8867;
    readonly STREAM_READ: 0x88E1;
    readonly STREAM_COPY: 0x88E2;
    readonly STATIC_READ: 0x88E5;
    readonly STATIC_COPY: 0x88E6;
    readonly DYNAMIC_READ: 0x88E9;
    readonly DYNAMIC_COPY: 0x88EA;
    readonly MAX_DRAW_BUFFERS: 0x8824;
    readonly DRAW_BUFFER0: 0x8825;
    readonly DRAW_BUFFER1: 0x8826;
    readonly DRAW_BUFFER2: 0x8827;
    readonly DRAW_BUFFER3: 0x8828;
    readonly DRAW_BUFFER4: 0x8829;
    readonly DRAW_BUFFER5: 0x882A;
    readonly DRAW_BUFFER6: 0x882B;
    readonly DRAW_BUFFER7: 0x882C;
    readonly DRAW_BUFFER8: 0x882D;
    readonly DRAW_BUFFER9: 0x882E;
    readonly DRAW_BUFFER10: 0x882F;
    readonly DRAW_BUFFER11: 0x8830;
    readonly DRAW_BUFFER12: 0x8831;
    readonly DRAW_BUFFER13: 0x8832;
    readonly DRAW_BUFFER14: 0x8833;
    readonly DRAW_BUFFER15: 0x8834;
    readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 0x8B49;
    readonly MAX_VERTEX_UNIFORM_COMPONENTS: 0x8B4A;
    readonly SAMPLER_3D: 0x8B5F;
    readonly SAMPLER_2D_SHADOW: 0x8B62;
    readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 0x8B8B;
    readonly PIXEL_PACK_BUFFER: 0x88EB;
    readonly PIXEL_UNPACK_BUFFER: 0x88EC;
    readonly PIXEL_PACK_BUFFER_BINDING: 0x88ED;
    readonly PIXEL_UNPACK_BUFFER_BINDING: 0x88EF;
    readonly FLOAT_MAT2x3: 0x8B65;
    readonly FLOAT_MAT2x4: 0x8B66;
    readonly FLOAT_MAT3x2: 0x8B67;
    readonly FLOAT_MAT3x4: 0x8B68;
    readonly FLOAT_MAT4x2: 0x8B69;
    readonly FLOAT_MAT4x3: 0x8B6A;
    readonly SRGB: 0x8C40;
    readonly SRGB8: 0x8C41;
    readonly SRGB8_ALPHA8: 0x8C43;
    readonly COMPARE_REF_TO_TEXTURE: 0x884E;
    readonly RGBA32F: 0x8814;
    readonly RGB32F: 0x8815;
    readonly RGBA16F: 0x881A;
    readonly RGB16F: 0x881B;
    readonly VERTEX_ATTRIB_ARRAY_INTEGER: 0x88FD;
    readonly MAX_ARRAY_TEXTURE_LAYERS: 0x88FF;
    readonly MIN_PROGRAM_TEXEL_OFFSET: 0x8904;
    readonly MAX_PROGRAM_TEXEL_OFFSET: 0x8905;
    readonly MAX_VARYING_COMPONENTS: 0x8B4B;
    readonly TEXTURE_2D_ARRAY: 0x8C1A;
    readonly TEXTURE_BINDING_2D_ARRAY: 0x8C1D;
    readonly R11F_G11F_B10F: 0x8C3A;
    readonly UNSIGNED_INT_10F_11F_11F_REV: 0x8C3B;
    readonly RGB9_E5: 0x8C3D;
    readonly UNSIGNED_INT_5_9_9_9_REV: 0x8C3E;
    readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 0x8C7F;
    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 0x8C80;
    readonly TRANSFORM_FEEDBACK_VARYINGS: 0x8C83;
    readonly TRANSFORM_FEEDBACK_BUFFER_START: 0x8C84;
    readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 0x8C85;
    readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 0x8C88;
    readonly RASTERIZER_DISCARD: 0x8C89;
    readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 0x8C8A;
    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 0x8C8B;
    readonly INTERLEAVED_ATTRIBS: 0x8C8C;
    readonly SEPARATE_ATTRIBS: 0x8C8D;
    readonly TRANSFORM_FEEDBACK_BUFFER: 0x8C8E;
    readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 0x8C8F;
    readonly RGBA32UI: 0x8D70;
    readonly RGB32UI: 0x8D71;
    readonly RGBA16UI: 0x8D76;
    readonly RGB16UI: 0x8D77;
    readonly RGBA8UI: 0x8D7C;
    readonly RGB8UI: 0x8D7D;
    readonly RGBA32I: 0x8D82;
    readonly RGB32I: 0x8D83;
    readonly RGBA16I: 0x8D88;
    readonly RGB16I: 0x8D89;
    readonly RGBA8I: 0x8D8E;
    readonly RGB8I: 0x8D8F;
    readonly RED_INTEGER: 0x8D94;
    readonly RGB_INTEGER: 0x8D98;
    readonly RGBA_INTEGER: 0x8D99;
    readonly SAMPLER_2D_ARRAY: 0x8DC1;
    readonly SAMPLER_2D_ARRAY_SHADOW: 0x8DC4;
    readonly SAMPLER_CUBE_SHADOW: 0x8DC5;
    readonly UNSIGNED_INT_VEC2: 0x8DC6;
    readonly UNSIGNED_INT_VEC3: 0x8DC7;
    readonly UNSIGNED_INT_VEC4: 0x8DC8;
    readonly INT_SAMPLER_2D: 0x8DCA;
    readonly INT_SAMPLER_3D: 0x8DCB;
    readonly INT_SAMPLER_CUBE: 0x8DCC;
    readonly INT_SAMPLER_2D_ARRAY: 0x8DCF;
    readonly UNSIGNED_INT_SAMPLER_2D: 0x8DD2;
    readonly UNSIGNED_INT_SAMPLER_3D: 0x8DD3;
    readonly UNSIGNED_INT_SAMPLER_CUBE: 0x8DD4;
    readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 0x8DD7;
    readonly DEPTH_COMPONENT32F: 0x8CAC;
    readonly DEPTH32F_STENCIL8: 0x8CAD;
    readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 0x8DAD;
    readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 0x8210;
    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 0x8211;
    readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 0x8212;
    readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 0x8213;
    readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 0x8214;
    readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 0x8215;
    readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 0x8216;
    readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 0x8217;
    readonly FRAMEBUFFER_DEFAULT: 0x8218;
    readonly UNSIGNED_INT_24_8: 0x84FA;
    readonly DEPTH24_STENCIL8: 0x88F0;
    readonly UNSIGNED_NORMALIZED: 0x8C17;
    readonly DRAW_FRAMEBUFFER_BINDING: 0x8CA6;
    readonly READ_FRAMEBUFFER: 0x8CA8;
    readonly DRAW_FRAMEBUFFER: 0x8CA9;
    readonly READ_FRAMEBUFFER_BINDING: 0x8CAA;
    readonly RENDERBUFFER_SAMPLES: 0x8CAB;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 0x8CD4;
    readonly MAX_COLOR_ATTACHMENTS: 0x8CDF;
    readonly COLOR_ATTACHMENT1: 0x8CE1;
    readonly COLOR_ATTACHMENT2: 0x8CE2;
    readonly COLOR_ATTACHMENT3: 0x8CE3;
    readonly COLOR_ATTACHMENT4: 0x8CE4;
    readonly COLOR_ATTACHMENT5: 0x8CE5;
    readonly COLOR_ATTACHMENT6: 0x8CE6;
    readonly COLOR_ATTACHMENT7: 0x8CE7;
    readonly COLOR_ATTACHMENT8: 0x8CE8;
    readonly COLOR_ATTACHMENT9: 0x8CE9;
    readonly COLOR_ATTACHMENT10: 0x8CEA;
    readonly COLOR_ATTACHMENT11: 0x8CEB;
    readonly COLOR_ATTACHMENT12: 0x8CEC;
    readonly COLOR_ATTACHMENT13: 0x8CED;
    readonly COLOR_ATTACHMENT14: 0x8CEE;
    readonly COLOR_ATTACHMENT15: 0x8CEF;
    readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 0x8D56;
    readonly MAX_SAMPLES: 0x8D57;
    readonly HALF_FLOAT: 0x140B;
    readonly RG: 0x8227;
    readonly RG_INTEGER: 0x8228;
    readonly R8: 0x8229;
    readonly RG8: 0x822B;
    readonly R16F: 0x822D;
    readonly R32F: 0x822E;
    readonly RG16F: 0x822F;
    readonly RG32F: 0x8230;
    readonly R8I: 0x8231;
    readonly R8UI: 0x8232;
    readonly R16I: 0x8233;
    readonly R16UI: 0x8234;
    readonly R32I: 0x8235;
    readonly R32UI: 0x8236;
    readonly RG8I: 0x8237;
    readonly RG8UI: 0x8238;
    readonly RG16I: 0x8239;
    readonly RG16UI: 0x823A;
    readonly RG32I: 0x823B;
    readonly RG32UI: 0x823C;
    readonly VERTEX_ARRAY_BINDING: 0x85B5;
    readonly R8_SNORM: 0x8F94;
    readonly RG8_SNORM: 0x8F95;
    readonly RGB8_SNORM: 0x8F96;
    readonly RGBA8_SNORM: 0x8F97;
    readonly SIGNED_NORMALIZED: 0x8F9C;
    readonly COPY_READ_BUFFER: 0x8F36;
    readonly COPY_WRITE_BUFFER: 0x8F37;
    readonly COPY_READ_BUFFER_BINDING: 0x8F36;
    readonly COPY_WRITE_BUFFER_BINDING: 0x8F37;
    readonly UNIFORM_BUFFER: 0x8A11;
    readonly UNIFORM_BUFFER_BINDING: 0x8A28;
    readonly UNIFORM_BUFFER_START: 0x8A29;
    readonly UNIFORM_BUFFER_SIZE: 0x8A2A;
    readonly MAX_VERTEX_UNIFORM_BLOCKS: 0x8A2B;
    readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 0x8A2D;
    readonly MAX_COMBINED_UNIFORM_BLOCKS: 0x8A2E;
    readonly MAX_UNIFORM_BUFFER_BINDINGS: 0x8A2F;
    readonly MAX_UNIFORM_BLOCK_SIZE: 0x8A30;
    readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 0x8A31;
    readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 0x8A33;
    readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 0x8A34;
    readonly ACTIVE_UNIFORM_BLOCKS: 0x8A36;
    readonly UNIFORM_TYPE: 0x8A37;
    readonly UNIFORM_SIZE: 0x8A38;
    readonly UNIFORM_BLOCK_INDEX: 0x8A3A;
    readonly UNIFORM_OFFSET: 0x8A3B;
    readonly UNIFORM_ARRAY_STRIDE: 0x8A3C;
    readonly UNIFORM_MATRIX_STRIDE: 0x8A3D;
    readonly UNIFORM_IS_ROW_MAJOR: 0x8A3E;
    readonly UNIFORM_BLOCK_BINDING: 0x8A3F;
    readonly UNIFORM_BLOCK_DATA_SIZE: 0x8A40;
    readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 0x8A42;
    readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 0x8A43;
    readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 0x8A44;
    readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 0x8A46;
    readonly INVALID_INDEX: 0xFFFFFFFF;
    readonly MAX_VERTEX_OUTPUT_COMPONENTS: 0x9122;
    readonly MAX_FRAGMENT_INPUT_COMPONENTS: 0x9125;
    readonly MAX_SERVER_WAIT_TIMEOUT: 0x9111;
    readonly OBJECT_TYPE: 0x9112;
    readonly SYNC_CONDITION: 0x9113;
    readonly SYNC_STATUS: 0x9114;
    readonly SYNC_FLAGS: 0x9115;
    readonly SYNC_FENCE: 0x9116;
    readonly SYNC_GPU_COMMANDS_COMPLETE: 0x9117;
    readonly UNSIGNALED: 0x9118;
    readonly SIGNALED: 0x9119;
    readonly ALREADY_SIGNALED: 0x911A;
    readonly TIMEOUT_EXPIRED: 0x911B;
    readonly CONDITION_SATISFIED: 0x911C;
    readonly WAIT_FAILED: 0x911D;
    readonly SYNC_FLUSH_COMMANDS_BIT: 0x00000001;
    readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 0x88FE;
    readonly ANY_SAMPLES_PASSED: 0x8C2F;
    readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 0x8D6A;
    readonly SAMPLER_BINDING: 0x8919;
    readonly RGB10_A2UI: 0x906F;
    readonly INT_2_10_10_10_REV: 0x8D9F;
    readonly TRANSFORM_FEEDBACK: 0x8E22;
    readonly TRANSFORM_FEEDBACK_PAUSED: 0x8E23;
    readonly TRANSFORM_FEEDBACK_ACTIVE: 0x8E24;
    readonly TRANSFORM_FEEDBACK_BINDING: 0x8E25;
    readonly TEXTURE_IMMUTABLE_FORMAT: 0x912F;
    readonly MAX_ELEMENT_INDEX: 0x8D6B;
    readonly TEXTURE_IMMUTABLE_LEVELS: 0x82DF;
    readonly TIMEOUT_IGNORED: -1;
    readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 0x9247;
    readonly DEPTH_BUFFER_BIT: 0x00000100;
    readonly STENCIL_BUFFER_BIT: 0x00000400;
    readonly COLOR_BUFFER_BIT: 0x00004000;
    readonly POINTS: 0x0000;
    readonly LINES: 0x0001;
    readonly LINE_LOOP: 0x0002;
    readonly LINE_STRIP: 0x0003;
    readonly TRIANGLES: 0x0004;
    readonly TRIANGLE_STRIP: 0x0005;
    readonly TRIANGLE_FAN: 0x0006;
    readonly ZERO: 0;
    readonly ONE: 1;
    readonly SRC_COLOR: 0x0300;
    readonly ONE_MINUS_SRC_COLOR: 0x0301;
    readonly SRC_ALPHA: 0x0302;
    readonly ONE_MINUS_SRC_ALPHA: 0x0303;
    readonly DST_ALPHA: 0x0304;
    readonly ONE_MINUS_DST_ALPHA: 0x0305;
    readonly DST_COLOR: 0x0306;
    readonly ONE_MINUS_DST_COLOR: 0x0307;
    readonly SRC_ALPHA_SATURATE: 0x0308;
    readonly FUNC_ADD: 0x8006;
    readonly BLEND_EQUATION: 0x8009;
    readonly BLEND_EQUATION_RGB: 0x8009;
    readonly BLEND_EQUATION_ALPHA: 0x883D;
    readonly FUNC_SUBTRACT: 0x800A;
    readonly FUNC_REVERSE_SUBTRACT: 0x800B;
    readonly BLEND_DST_RGB: 0x80C8;
    readonly BLEND_SRC_RGB: 0x80C9;
    readonly BLEND_DST_ALPHA: 0x80CA;
    readonly BLEND_SRC_ALPHA: 0x80CB;
    readonly CONSTANT_COLOR: 0x8001;
    readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;
    readonly CONSTANT_ALPHA: 0x8003;
    readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;
    readonly BLEND_COLOR: 0x8005;
    readonly ARRAY_BUFFER: 0x8892;
    readonly ELEMENT_ARRAY_BUFFER: 0x8893;
    readonly ARRAY_BUFFER_BINDING: 0x8894;
    readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;
    readonly STREAM_DRAW: 0x88E0;
    readonly STATIC_DRAW: 0x88E4;
    readonly DYNAMIC_DRAW: 0x88E8;
    readonly BUFFER_SIZE: 0x8764;
    readonly BUFFER_USAGE: 0x8765;
    readonly CURRENT_VERTEX_ATTRIB: 0x8626;
    readonly FRONT: 0x0404;
    readonly BACK: 0x0405;
    readonly FRONT_AND_BACK: 0x0408;
    readonly CULL_FACE: 0x0B44;
    readonly BLEND: 0x0BE2;
    readonly DITHER: 0x0BD0;
    readonly STENCIL_TEST: 0x0B90;
    readonly DEPTH_TEST: 0x0B71;
    readonly SCISSOR_TEST: 0x0C11;
    readonly POLYGON_OFFSET_FILL: 0x8037;
    readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;
    readonly SAMPLE_COVERAGE: 0x80A0;
    readonly NO_ERROR: 0;
    readonly INVALID_ENUM: 0x0500;
    readonly INVALID_VALUE: 0x0501;
    readonly INVALID_OPERATION: 0x0502;
    readonly OUT_OF_MEMORY: 0x0505;
    readonly CW: 0x0900;
    readonly CCW: 0x0901;
    readonly LINE_WIDTH: 0x0B21;
    readonly ALIASED_POINT_SIZE_RANGE: 0x846D;
    readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;
    readonly CULL_FACE_MODE: 0x0B45;
    readonly FRONT_FACE: 0x0B46;
    readonly DEPTH_RANGE: 0x0B70;
    readonly DEPTH_WRITEMASK: 0x0B72;
    readonly DEPTH_CLEAR_VALUE: 0x0B73;
    readonly DEPTH_FUNC: 0x0B74;
    readonly STENCIL_CLEAR_VALUE: 0x0B91;
    readonly STENCIL_FUNC: 0x0B92;
    readonly STENCIL_FAIL: 0x0B94;
    readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;
    readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;
    readonly STENCIL_REF: 0x0B97;
    readonly STENCIL_VALUE_MASK: 0x0B93;
    readonly STENCIL_WRITEMASK: 0x0B98;
    readonly STENCIL_BACK_FUNC: 0x8800;
    readonly STENCIL_BACK_FAIL: 0x8801;
    readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;
    readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;
    readonly STENCIL_BACK_REF: 0x8CA3;
    readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;
    readonly STENCIL_BACK_WRITEMASK: 0x8CA5;
    readonly VIEWPORT: 0x0BA2;
    readonly SCISSOR_BOX: 0x0C10;
    readonly COLOR_CLEAR_VALUE: 0x0C22;
    readonly COLOR_WRITEMASK: 0x0C23;
    readonly UNPACK_ALIGNMENT: 0x0CF5;
    readonly PACK_ALIGNMENT: 0x0D05;
    readonly MAX_TEXTURE_SIZE: 0x0D33;
    readonly MAX_VIEWPORT_DIMS: 0x0D3A;
    readonly SUBPIXEL_BITS: 0x0D50;
    readonly RED_BITS: 0x0D52;
    readonly GREEN_BITS: 0x0D53;
    readonly BLUE_BITS: 0x0D54;
    readonly ALPHA_BITS: 0x0D55;
    readonly DEPTH_BITS: 0x0D56;
    readonly STENCIL_BITS: 0x0D57;
    readonly POLYGON_OFFSET_UNITS: 0x2A00;
    readonly POLYGON_OFFSET_FACTOR: 0x8038;
    readonly TEXTURE_BINDING_2D: 0x8069;
    readonly SAMPLE_BUFFERS: 0x80A8;
    readonly SAMPLES: 0x80A9;
    readonly SAMPLE_COVERAGE_VALUE: 0x80AA;
    readonly SAMPLE_COVERAGE_INVERT: 0x80AB;
    readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;
    readonly DONT_CARE: 0x1100;
    readonly FASTEST: 0x1101;
    readonly NICEST: 0x1102;
    readonly GENERATE_MIPMAP_HINT: 0x8192;
    readonly BYTE: 0x1400;
    readonly UNSIGNED_BYTE: 0x1401;
    readonly SHORT: 0x1402;
    readonly UNSIGNED_SHORT: 0x1403;
    readonly INT: 0x1404;
    readonly UNSIGNED_INT: 0x1405;
    readonly FLOAT: 0x1406;
    readonly DEPTH_COMPONENT: 0x1902;
    readonly ALPHA: 0x1906;
    readonly RGB: 0x1907;
    readonly RGBA: 0x1908;
    readonly LUMINANCE: 0x1909;
    readonly LUMINANCE_ALPHA: 0x190A;
    readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;
    readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;
    readonly UNSIGNED_SHORT_5_6_5: 0x8363;
    readonly FRAGMENT_SHADER: 0x8B30;
    readonly VERTEX_SHADER: 0x8B31;
    readonly MAX_VERTEX_ATTRIBS: 0x8869;
    readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;
    readonly MAX_VARYING_VECTORS: 0x8DFC;
    readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;
    readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;
    readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;
    readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;
    readonly SHADER_TYPE: 0x8B4F;
    readonly DELETE_STATUS: 0x8B80;
    readonly LINK_STATUS: 0x8B82;
    readonly VALIDATE_STATUS: 0x8B83;
    readonly ATTACHED_SHADERS: 0x8B85;
    readonly ACTIVE_UNIFORMS: 0x8B86;
    readonly ACTIVE_ATTRIBUTES: 0x8B89;
    readonly SHADING_LANGUAGE_VERSION: 0x8B8C;
    readonly CURRENT_PROGRAM: 0x8B8D;
    readonly NEVER: 0x0200;
    readonly LESS: 0x0201;
    readonly EQUAL: 0x0202;
    readonly LEQUAL: 0x0203;
    readonly GREATER: 0x0204;
    readonly NOTEQUAL: 0x0205;
    readonly GEQUAL: 0x0206;
    readonly ALWAYS: 0x0207;
    readonly KEEP: 0x1E00;
    readonly REPLACE: 0x1E01;
    readonly INCR: 0x1E02;
    readonly DECR: 0x1E03;
    readonly INVERT: 0x150A;
    readonly INCR_WRAP: 0x8507;
    readonly DECR_WRAP: 0x8508;
    readonly VENDOR: 0x1F00;
    readonly RENDERER: 0x1F01;
    readonly VERSION: 0x1F02;
    readonly NEAREST: 0x2600;
    readonly LINEAR: 0x2601;
    readonly NEAREST_MIPMAP_NEAREST: 0x2700;
    readonly LINEAR_MIPMAP_NEAREST: 0x2701;
    readonly NEAREST_MIPMAP_LINEAR: 0x2702;
    readonly LINEAR_MIPMAP_LINEAR: 0x2703;
    readonly TEXTURE_MAG_FILTER: 0x2800;
    readonly TEXTURE_MIN_FILTER: 0x2801;
    readonly TEXTURE_WRAP_S: 0x2802;
    readonly TEXTURE_WRAP_T: 0x2803;
    readonly TEXTURE_2D: 0x0DE1;
    readonly TEXTURE: 0x1702;
    readonly TEXTURE_CUBE_MAP: 0x8513;
    readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;
    readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;
    readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;
    readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;
    readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;
    readonly TEXTURE0: 0x84C0;
    readonly TEXTURE1: 0x84C1;
    readonly TEXTURE2: 0x84C2;
    readonly TEXTURE3: 0x84C3;
    readonly TEXTURE4: 0x84C4;
    readonly TEXTURE5: 0x84C5;
    readonly TEXTURE6: 0x84C6;
    readonly TEXTURE7: 0x84C7;
    readonly TEXTURE8: 0x84C8;
    readonly TEXTURE9: 0x84C9;
    readonly TEXTURE10: 0x84CA;
    readonly TEXTURE11: 0x84CB;
    readonly TEXTURE12: 0x84CC;
    readonly TEXTURE13: 0x84CD;
    readonly TEXTURE14: 0x84CE;
    readonly TEXTURE15: 0x84CF;
    readonly TEXTURE16: 0x84D0;
    readonly TEXTURE17: 0x84D1;
    readonly TEXTURE18: 0x84D2;
    readonly TEXTURE19: 0x84D3;
    readonly TEXTURE20: 0x84D4;
    readonly TEXTURE21: 0x84D5;
    readonly TEXTURE22: 0x84D6;
    readonly TEXTURE23: 0x84D7;
    readonly TEXTURE24: 0x84D8;
    readonly TEXTURE25: 0x84D9;
    readonly TEXTURE26: 0x84DA;
    readonly TEXTURE27: 0x84DB;
    readonly TEXTURE28: 0x84DC;
    readonly TEXTURE29: 0x84DD;
    readonly TEXTURE30: 0x84DE;
    readonly TEXTURE31: 0x84DF;
    readonly ACTIVE_TEXTURE: 0x84E0;
    readonly REPEAT: 0x2901;
    readonly CLAMP_TO_EDGE: 0x812F;
    readonly MIRRORED_REPEAT: 0x8370;
    readonly FLOAT_VEC2: 0x8B50;
    readonly FLOAT_VEC3: 0x8B51;
    readonly FLOAT_VEC4: 0x8B52;
    readonly INT_VEC2: 0x8B53;
    readonly INT_VEC3: 0x8B54;
    readonly INT_VEC4: 0x8B55;
    readonly BOOL: 0x8B56;
    readonly BOOL_VEC2: 0x8B57;
    readonly BOOL_VEC3: 0x8B58;
    readonly BOOL_VEC4: 0x8B59;
    readonly FLOAT_MAT2: 0x8B5A;
    readonly FLOAT_MAT3: 0x8B5B;
    readonly FLOAT_MAT4: 0x8B5C;
    readonly SAMPLER_2D: 0x8B5E;
    readonly SAMPLER_CUBE: 0x8B60;
    readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;
    readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;
    readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;
    readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;
    readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;
    readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;
    readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;
    readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;
    readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;
    readonly COMPILE_STATUS: 0x8B81;
    readonly LOW_FLOAT: 0x8DF0;
    readonly MEDIUM_FLOAT: 0x8DF1;
    readonly HIGH_FLOAT: 0x8DF2;
    readonly LOW_INT: 0x8DF3;
    readonly MEDIUM_INT: 0x8DF4;
    readonly HIGH_INT: 0x8DF5;
    readonly FRAMEBUFFER: 0x8D40;
    readonly RENDERBUFFER: 0x8D41;
    readonly RGBA4: 0x8056;
    readonly RGB5_A1: 0x8057;
    readonly RGB565: 0x8D62;
    readonly DEPTH_COMPONENT16: 0x81A5;
    readonly STENCIL_INDEX8: 0x8D48;
    readonly DEPTH_STENCIL: 0x84F9;
    readonly RENDERBUFFER_WIDTH: 0x8D42;
    readonly RENDERBUFFER_HEIGHT: 0x8D43;
    readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;
    readonly RENDERBUFFER_RED_SIZE: 0x8D50;
    readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;
    readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;
    readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;
    readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;
    readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;
    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;
    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;
    readonly COLOR_ATTACHMENT0: 0x8CE0;
    readonly DEPTH_ATTACHMENT: 0x8D00;
    readonly STENCIL_ATTACHMENT: 0x8D20;
    readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;
    readonly NONE: 0;
    readonly FRAMEBUFFER_COMPLETE: 0x8CD5;
    readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;
    readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;
    readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;
    readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;
    readonly FRAMEBUFFER_BINDING: 0x8CA6;
    readonly RENDERBUFFER_BINDING: 0x8CA7;
    readonly MAX_RENDERBUFFER_SIZE: 0x84E8;
    readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;
    readonly UNPACK_FLIP_Y_WEBGL: 0x9240;
    readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;
    readonly CONTEXT_LOST_WEBGL: 0x9242;
    readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;
    readonly BROWSER_DEFAULT_WEBGL: 0x9244;
};

interface WebGL2RenderingContextBase {
    beginQuery(target: GLenum, query: WebGLQuery): void;
    beginTransformFeedback(primitiveMode: GLenum): void;
    bindBufferBase(target: GLenum, index: GLuint, buffer: WebGLBuffer | null): void;
    bindBufferRange(target: GLenum, index: GLuint, buffer: WebGLBuffer | null, offset: GLintptr, size: GLsizeiptr): void;
    bindSampler(unit: GLuint, sampler: WebGLSampler | null): void;
    bindTransformFeedback(target: GLenum, tf: WebGLTransformFeedback | null): void;
    bindVertexArray(array: WebGLVertexArrayObject | null): void;
    blitFramebuffer(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum): void;
    clearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint): void;
    clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Float32List, srcOffset?: GLuint): void;
    clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Int32List, srcOffset?: GLuint): void;
    clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Uint32List, srcOffset?: GLuint): void;
    clientWaitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLuint64): GLenum;
    compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;
    compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;
    compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;
    compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;
    copyBufferSubData(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr): void;
    copyTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
    createQuery(): WebGLQuery | null;
    createSampler(): WebGLSampler | null;
    createTransformFeedback(): WebGLTransformFeedback | null;
    createVertexArray(): WebGLVertexArrayObject | null;
    deleteQuery(query: WebGLQuery | null): void;
    deleteSampler(sampler: WebGLSampler | null): void;
    deleteSync(sync: WebGLSync | null): void;
    deleteTransformFeedback(tf: WebGLTransformFeedback | null): void;
    deleteVertexArray(vertexArray: WebGLVertexArrayObject | null): void;
    drawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei): void;
    drawBuffers(buffers: GLenum[]): void;
    drawElementsInstanced(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei): void;
    drawRangeElements(mode: GLenum, start: GLuint, end: GLuint, count: GLsizei, type: GLenum, offset: GLintptr): void;
    endQuery(target: GLenum): void;
    endTransformFeedback(): void;
    fenceSync(condition: GLenum, flags: GLbitfield): WebGLSync | null;
    framebufferTextureLayer(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, layer: GLint): void;
    getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: GLuint): string | null;
    getActiveUniformBlockParameter(program: WebGLProgram, uniformBlockIndex: GLuint, pname: GLenum): any;
    getActiveUniforms(program: WebGLProgram, uniformIndices: GLuint[], pname: GLenum): any;
    getBufferSubData(target: GLenum, srcByteOffset: GLintptr, dstBuffer: ArrayBufferView, dstOffset?: GLuint, length?: GLuint): void;
    getFragDataLocation(program: WebGLProgram, name: string): GLint;
    getIndexedParameter(target: GLenum, index: GLuint): any;
    getInternalformatParameter(target: GLenum, internalformat: GLenum, pname: GLenum): any;
    getQuery(target: GLenum, pname: GLenum): WebGLQuery | null;
    getQueryParameter(query: WebGLQuery, pname: GLenum): any;
    getSamplerParameter(sampler: WebGLSampler, pname: GLenum): any;
    getSyncParameter(sync: WebGLSync, pname: GLenum): any;
    getTransformFeedbackVarying(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;
    getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string): GLuint;
    getUniformIndices(program: WebGLProgram, uniformNames: string[]): GLuint[] | null;
    invalidateFramebuffer(target: GLenum, attachments: GLenum[]): void;
    invalidateSubFramebuffer(target: GLenum, attachments: GLenum[], x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
    isQuery(query: WebGLQuery | null): GLboolean;
    isSampler(sampler: WebGLSampler | null): GLboolean;
    isSync(sync: WebGLSync | null): GLboolean;
    isTransformFeedback(tf: WebGLTransformFeedback | null): GLboolean;
    isVertexArray(vertexArray: WebGLVertexArrayObject | null): GLboolean;
    pauseTransformFeedback(): void;
    readBuffer(src: GLenum): void;
    renderbufferStorageMultisample(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;
    resumeTransformFeedback(): void;
    samplerParameterf(sampler: WebGLSampler, pname: GLenum, param: GLfloat): void;
    samplerParameteri(sampler: WebGLSampler, pname: GLenum, param: GLint): void;
    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;
    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView | null): void;
    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;
    texStorage2D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;
    texStorage3D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei): void;
    texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;
    texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;
    texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView | null, srcOffset?: GLuint): void;
    transformFeedbackVaryings(program: WebGLProgram, varyings: string[], bufferMode: GLenum): void;
    uniform1ui(location: WebGLUniformLocation | null, v0: GLuint): void;
    uniform1uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform2ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint): void;
    uniform2uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform3ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint): void;
    uniform3uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform4ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint): void;
    uniform4uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint): void;
    uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    vertexAttribDivisor(index: GLuint, divisor: GLuint): void;
    vertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint): void;
    vertexAttribI4iv(index: GLuint, values: Int32List): void;
    vertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint): void;
    vertexAttribI4uiv(index: GLuint, values: Uint32List): void;
    vertexAttribIPointer(index: GLuint, size: GLint, type: GLenum, stride: GLsizei, offset: GLintptr): void;
    waitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLint64): void;
    readonly READ_BUFFER: 0x0C02;
    readonly UNPACK_ROW_LENGTH: 0x0CF2;
    readonly UNPACK_SKIP_ROWS: 0x0CF3;
    readonly UNPACK_SKIP_PIXELS: 0x0CF4;
    readonly PACK_ROW_LENGTH: 0x0D02;
    readonly PACK_SKIP_ROWS: 0x0D03;
    readonly PACK_SKIP_PIXELS: 0x0D04;
    readonly COLOR: 0x1800;
    readonly DEPTH: 0x1801;
    readonly STENCIL: 0x1802;
    readonly RED: 0x1903;
    readonly RGB8: 0x8051;
    readonly RGBA8: 0x8058;
    readonly RGB10_A2: 0x8059;
    readonly TEXTURE_BINDING_3D: 0x806A;
    readonly UNPACK_SKIP_IMAGES: 0x806D;
    readonly UNPACK_IMAGE_HEIGHT: 0x806E;
    readonly TEXTURE_3D: 0x806F;
    readonly TEXTURE_WRAP_R: 0x8072;
    readonly MAX_3D_TEXTURE_SIZE: 0x8073;
    readonly UNSIGNED_INT_2_10_10_10_REV: 0x8368;
    readonly MAX_ELEMENTS_VERTICES: 0x80E8;
    readonly MAX_ELEMENTS_INDICES: 0x80E9;
    readonly TEXTURE_MIN_LOD: 0x813A;
    readonly TEXTURE_MAX_LOD: 0x813B;
    readonly TEXTURE_BASE_LEVEL: 0x813C;
    readonly TEXTURE_MAX_LEVEL: 0x813D;
    readonly MIN: 0x8007;
    readonly MAX: 0x8008;
    readonly DEPTH_COMPONENT24: 0x81A6;
    readonly MAX_TEXTURE_LOD_BIAS: 0x84FD;
    readonly TEXTURE_COMPARE_MODE: 0x884C;
    readonly TEXTURE_COMPARE_FUNC: 0x884D;
    readonly CURRENT_QUERY: 0x8865;
    readonly QUERY_RESULT: 0x8866;
    readonly QUERY_RESULT_AVAILABLE: 0x8867;
    readonly STREAM_READ: 0x88E1;
    readonly STREAM_COPY: 0x88E2;
    readonly STATIC_READ: 0x88E5;
    readonly STATIC_COPY: 0x88E6;
    readonly DYNAMIC_READ: 0x88E9;
    readonly DYNAMIC_COPY: 0x88EA;
    readonly MAX_DRAW_BUFFERS: 0x8824;
    readonly DRAW_BUFFER0: 0x8825;
    readonly DRAW_BUFFER1: 0x8826;
    readonly DRAW_BUFFER2: 0x8827;
    readonly DRAW_BUFFER3: 0x8828;
    readonly DRAW_BUFFER4: 0x8829;
    readonly DRAW_BUFFER5: 0x882A;
    readonly DRAW_BUFFER6: 0x882B;
    readonly DRAW_BUFFER7: 0x882C;
    readonly DRAW_BUFFER8: 0x882D;
    readonly DRAW_BUFFER9: 0x882E;
    readonly DRAW_BUFFER10: 0x882F;
    readonly DRAW_BUFFER11: 0x8830;
    readonly DRAW_BUFFER12: 0x8831;
    readonly DRAW_BUFFER13: 0x8832;
    readonly DRAW_BUFFER14: 0x8833;
    readonly DRAW_BUFFER15: 0x8834;
    readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 0x8B49;
    readonly MAX_VERTEX_UNIFORM_COMPONENTS: 0x8B4A;
    readonly SAMPLER_3D: 0x8B5F;
    readonly SAMPLER_2D_SHADOW: 0x8B62;
    readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 0x8B8B;
    readonly PIXEL_PACK_BUFFER: 0x88EB;
    readonly PIXEL_UNPACK_BUFFER: 0x88EC;
    readonly PIXEL_PACK_BUFFER_BINDING: 0x88ED;
    readonly PIXEL_UNPACK_BUFFER_BINDING: 0x88EF;
    readonly FLOAT_MAT2x3: 0x8B65;
    readonly FLOAT_MAT2x4: 0x8B66;
    readonly FLOAT_MAT3x2: 0x8B67;
    readonly FLOAT_MAT3x4: 0x8B68;
    readonly FLOAT_MAT4x2: 0x8B69;
    readonly FLOAT_MAT4x3: 0x8B6A;
    readonly SRGB: 0x8C40;
    readonly SRGB8: 0x8C41;
    readonly SRGB8_ALPHA8: 0x8C43;
    readonly COMPARE_REF_TO_TEXTURE: 0x884E;
    readonly RGBA32F: 0x8814;
    readonly RGB32F: 0x8815;
    readonly RGBA16F: 0x881A;
    readonly RGB16F: 0x881B;
    readonly VERTEX_ATTRIB_ARRAY_INTEGER: 0x88FD;
    readonly MAX_ARRAY_TEXTURE_LAYERS: 0x88FF;
    readonly MIN_PROGRAM_TEXEL_OFFSET: 0x8904;
    readonly MAX_PROGRAM_TEXEL_OFFSET: 0x8905;
    readonly MAX_VARYING_COMPONENTS: 0x8B4B;
    readonly TEXTURE_2D_ARRAY: 0x8C1A;
    readonly TEXTURE_BINDING_2D_ARRAY: 0x8C1D;
    readonly R11F_G11F_B10F: 0x8C3A;
    readonly UNSIGNED_INT_10F_11F_11F_REV: 0x8C3B;
    readonly RGB9_E5: 0x8C3D;
    readonly UNSIGNED_INT_5_9_9_9_REV: 0x8C3E;
    readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 0x8C7F;
    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 0x8C80;
    readonly TRANSFORM_FEEDBACK_VARYINGS: 0x8C83;
    readonly TRANSFORM_FEEDBACK_BUFFER_START: 0x8C84;
    readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 0x8C85;
    readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 0x8C88;
    readonly RASTERIZER_DISCARD: 0x8C89;
    readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 0x8C8A;
    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 0x8C8B;
    readonly INTERLEAVED_ATTRIBS: 0x8C8C;
    readonly SEPARATE_ATTRIBS: 0x8C8D;
    readonly TRANSFORM_FEEDBACK_BUFFER: 0x8C8E;
    readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 0x8C8F;
    readonly RGBA32UI: 0x8D70;
    readonly RGB32UI: 0x8D71;
    readonly RGBA16UI: 0x8D76;
    readonly RGB16UI: 0x8D77;
    readonly RGBA8UI: 0x8D7C;
    readonly RGB8UI: 0x8D7D;
    readonly RGBA32I: 0x8D82;
    readonly RGB32I: 0x8D83;
    readonly RGBA16I: 0x8D88;
    readonly RGB16I: 0x8D89;
    readonly RGBA8I: 0x8D8E;
    readonly RGB8I: 0x8D8F;
    readonly RED_INTEGER: 0x8D94;
    readonly RGB_INTEGER: 0x8D98;
    readonly RGBA_INTEGER: 0x8D99;
    readonly SAMPLER_2D_ARRAY: 0x8DC1;
    readonly SAMPLER_2D_ARRAY_SHADOW: 0x8DC4;
    readonly SAMPLER_CUBE_SHADOW: 0x8DC5;
    readonly UNSIGNED_INT_VEC2: 0x8DC6;
    readonly UNSIGNED_INT_VEC3: 0x8DC7;
    readonly UNSIGNED_INT_VEC4: 0x8DC8;
    readonly INT_SAMPLER_2D: 0x8DCA;
    readonly INT_SAMPLER_3D: 0x8DCB;
    readonly INT_SAMPLER_CUBE: 0x8DCC;
    readonly INT_SAMPLER_2D_ARRAY: 0x8DCF;
    readonly UNSIGNED_INT_SAMPLER_2D: 0x8DD2;
    readonly UNSIGNED_INT_SAMPLER_3D: 0x8DD3;
    readonly UNSIGNED_INT_SAMPLER_CUBE: 0x8DD4;
    readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 0x8DD7;
    readonly DEPTH_COMPONENT32F: 0x8CAC;
    readonly DEPTH32F_STENCIL8: 0x8CAD;
    readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 0x8DAD;
    readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 0x8210;
    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 0x8211;
    readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 0x8212;
    readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 0x8213;
    readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 0x8214;
    readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 0x8215;
    readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 0x8216;
    readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 0x8217;
    readonly FRAMEBUFFER_DEFAULT: 0x8218;
    readonly UNSIGNED_INT_24_8: 0x84FA;
    readonly DEPTH24_STENCIL8: 0x88F0;
    readonly UNSIGNED_NORMALIZED: 0x8C17;
    readonly DRAW_FRAMEBUFFER_BINDING: 0x8CA6;
    readonly READ_FRAMEBUFFER: 0x8CA8;
    readonly DRAW_FRAMEBUFFER: 0x8CA9;
    readonly READ_FRAMEBUFFER_BINDING: 0x8CAA;
    readonly RENDERBUFFER_SAMPLES: 0x8CAB;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 0x8CD4;
    readonly MAX_COLOR_ATTACHMENTS: 0x8CDF;
    readonly COLOR_ATTACHMENT1: 0x8CE1;
    readonly COLOR_ATTACHMENT2: 0x8CE2;
    readonly COLOR_ATTACHMENT3: 0x8CE3;
    readonly COLOR_ATTACHMENT4: 0x8CE4;
    readonly COLOR_ATTACHMENT5: 0x8CE5;
    readonly COLOR_ATTACHMENT6: 0x8CE6;
    readonly COLOR_ATTACHMENT7: 0x8CE7;
    readonly COLOR_ATTACHMENT8: 0x8CE8;
    readonly COLOR_ATTACHMENT9: 0x8CE9;
    readonly COLOR_ATTACHMENT10: 0x8CEA;
    readonly COLOR_ATTACHMENT11: 0x8CEB;
    readonly COLOR_ATTACHMENT12: 0x8CEC;
    readonly COLOR_ATTACHMENT13: 0x8CED;
    readonly COLOR_ATTACHMENT14: 0x8CEE;
    readonly COLOR_ATTACHMENT15: 0x8CEF;
    readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 0x8D56;
    readonly MAX_SAMPLES: 0x8D57;
    readonly HALF_FLOAT: 0x140B;
    readonly RG: 0x8227;
    readonly RG_INTEGER: 0x8228;
    readonly R8: 0x8229;
    readonly RG8: 0x822B;
    readonly R16F: 0x822D;
    readonly R32F: 0x822E;
    readonly RG16F: 0x822F;
    readonly RG32F: 0x8230;
    readonly R8I: 0x8231;
    readonly R8UI: 0x8232;
    readonly R16I: 0x8233;
    readonly R16UI: 0x8234;
    readonly R32I: 0x8235;
    readonly R32UI: 0x8236;
    readonly RG8I: 0x8237;
    readonly RG8UI: 0x8238;
    readonly RG16I: 0x8239;
    readonly RG16UI: 0x823A;
    readonly RG32I: 0x823B;
    readonly RG32UI: 0x823C;
    readonly VERTEX_ARRAY_BINDING: 0x85B5;
    readonly R8_SNORM: 0x8F94;
    readonly RG8_SNORM: 0x8F95;
    readonly RGB8_SNORM: 0x8F96;
    readonly RGBA8_SNORM: 0x8F97;
    readonly SIGNED_NORMALIZED: 0x8F9C;
    readonly COPY_READ_BUFFER: 0x8F36;
    readonly COPY_WRITE_BUFFER: 0x8F37;
    readonly COPY_READ_BUFFER_BINDING: 0x8F36;
    readonly COPY_WRITE_BUFFER_BINDING: 0x8F37;
    readonly UNIFORM_BUFFER: 0x8A11;
    readonly UNIFORM_BUFFER_BINDING: 0x8A28;
    readonly UNIFORM_BUFFER_START: 0x8A29;
    readonly UNIFORM_BUFFER_SIZE: 0x8A2A;
    readonly MAX_VERTEX_UNIFORM_BLOCKS: 0x8A2B;
    readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 0x8A2D;
    readonly MAX_COMBINED_UNIFORM_BLOCKS: 0x8A2E;
    readonly MAX_UNIFORM_BUFFER_BINDINGS: 0x8A2F;
    readonly MAX_UNIFORM_BLOCK_SIZE: 0x8A30;
    readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 0x8A31;
    readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 0x8A33;
    readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 0x8A34;
    readonly ACTIVE_UNIFORM_BLOCKS: 0x8A36;
    readonly UNIFORM_TYPE: 0x8A37;
    readonly UNIFORM_SIZE: 0x8A38;
    readonly UNIFORM_BLOCK_INDEX: 0x8A3A;
    readonly UNIFORM_OFFSET: 0x8A3B;
    readonly UNIFORM_ARRAY_STRIDE: 0x8A3C;
    readonly UNIFORM_MATRIX_STRIDE: 0x8A3D;
    readonly UNIFORM_IS_ROW_MAJOR: 0x8A3E;
    readonly UNIFORM_BLOCK_BINDING: 0x8A3F;
    readonly UNIFORM_BLOCK_DATA_SIZE: 0x8A40;
    readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 0x8A42;
    readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 0x8A43;
    readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 0x8A44;
    readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 0x8A46;
    readonly INVALID_INDEX: 0xFFFFFFFF;
    readonly MAX_VERTEX_OUTPUT_COMPONENTS: 0x9122;
    readonly MAX_FRAGMENT_INPUT_COMPONENTS: 0x9125;
    readonly MAX_SERVER_WAIT_TIMEOUT: 0x9111;
    readonly OBJECT_TYPE: 0x9112;
    readonly SYNC_CONDITION: 0x9113;
    readonly SYNC_STATUS: 0x9114;
    readonly SYNC_FLAGS: 0x9115;
    readonly SYNC_FENCE: 0x9116;
    readonly SYNC_GPU_COMMANDS_COMPLETE: 0x9117;
    readonly UNSIGNALED: 0x9118;
    readonly SIGNALED: 0x9119;
    readonly ALREADY_SIGNALED: 0x911A;
    readonly TIMEOUT_EXPIRED: 0x911B;
    readonly CONDITION_SATISFIED: 0x911C;
    readonly WAIT_FAILED: 0x911D;
    readonly SYNC_FLUSH_COMMANDS_BIT: 0x00000001;
    readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 0x88FE;
    readonly ANY_SAMPLES_PASSED: 0x8C2F;
    readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 0x8D6A;
    readonly SAMPLER_BINDING: 0x8919;
    readonly RGB10_A2UI: 0x906F;
    readonly INT_2_10_10_10_REV: 0x8D9F;
    readonly TRANSFORM_FEEDBACK: 0x8E22;
    readonly TRANSFORM_FEEDBACK_PAUSED: 0x8E23;
    readonly TRANSFORM_FEEDBACK_ACTIVE: 0x8E24;
    readonly TRANSFORM_FEEDBACK_BINDING: 0x8E25;
    readonly TEXTURE_IMMUTABLE_FORMAT: 0x912F;
    readonly MAX_ELEMENT_INDEX: 0x8D6B;
    readonly TEXTURE_IMMUTABLE_LEVELS: 0x82DF;
    readonly TIMEOUT_IGNORED: -1;
    readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 0x9247;
}

interface WebGL2RenderingContextOverloads {
    bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;
    bufferData(target: GLenum, srcData: BufferSource | null, usage: GLenum): void;
    bufferData(target: GLenum, srcData: ArrayBufferView, usage: GLenum, srcOffset: GLuint, length?: GLuint): void;
    bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: BufferSource): void;
    bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: ArrayBufferView, srcOffset: GLuint, length?: GLuint): void;
    compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;
    compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;
    compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;
    compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;
    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView | null): void;
    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, offset: GLintptr): void;
    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView, dstOffset: GLuint): void;
    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
    texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;
    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;
    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;
    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;
    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;
    uniform1fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform1iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform2fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform2iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform3fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform3iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform4fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform4iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
}

/** Part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getActiveAttrib() and WebGLRenderingContext.getActiveUniform() methods. */
interface WebGLActiveInfo {
    readonly name: string;
    readonly size: GLint;
    readonly type: GLenum;
}

declare var WebGLActiveInfo: {
    prototype: WebGLActiveInfo;
    new(): WebGLActiveInfo;
};

/** Part of the WebGL API and represents an opaque buffer object storing data such as vertices or colors. */
interface WebGLBuffer {
}

declare var WebGLBuffer: {
    prototype: WebGLBuffer;
    new(): WebGLBuffer;
};

/** The WebContextEvent interface is part of the WebGL API and is an interface for an event that is generated in response to a status change to the WebGL rendering context. */
interface WebGLContextEvent extends Event {
    readonly statusMessage: string;
}

declare var WebGLContextEvent: {
    prototype: WebGLContextEvent;
    new(type: string, eventInit?: WebGLContextEventInit): WebGLContextEvent;
};

/** Part of the WebGL API and represents a collection of buffers that serve as a rendering destination. */
interface WebGLFramebuffer {
}

declare var WebGLFramebuffer: {
    prototype: WebGLFramebuffer;
    new(): WebGLFramebuffer;
};

/** The WebGLProgram is part of the WebGL API and is a combination of two compiled WebGLShaders consisting of a vertex shader and a fragment shader (both written in GLSL). */
interface WebGLProgram {
}

declare var WebGLProgram: {
    prototype: WebGLProgram;
    new(): WebGLProgram;
};

interface WebGLQuery {
}

declare var WebGLQuery: {
    prototype: WebGLQuery;
    new(): WebGLQuery;
};

/** Part of the WebGL API and represents a buffer that can contain an image, or can be source or target of an rendering operation. */
interface WebGLRenderbuffer {
}

declare var WebGLRenderbuffer: {
    prototype: WebGLRenderbuffer;
    new(): WebGLRenderbuffer;
};

/** Provides an interface to the OpenGL ES 2.0 graphics rendering context for the drawing surface of an HTML <canvas> element. */
interface WebGLRenderingContext extends WebGLRenderingContextBase, WebGLRenderingContextOverloads {
}

declare var WebGLRenderingContext: {
    prototype: WebGLRenderingContext;
    new(): WebGLRenderingContext;
    readonly DEPTH_BUFFER_BIT: 0x00000100;
    readonly STENCIL_BUFFER_BIT: 0x00000400;
    readonly COLOR_BUFFER_BIT: 0x00004000;
    readonly POINTS: 0x0000;
    readonly LINES: 0x0001;
    readonly LINE_LOOP: 0x0002;
    readonly LINE_STRIP: 0x0003;
    readonly TRIANGLES: 0x0004;
    readonly TRIANGLE_STRIP: 0x0005;
    readonly TRIANGLE_FAN: 0x0006;
    readonly ZERO: 0;
    readonly ONE: 1;
    readonly SRC_COLOR: 0x0300;
    readonly ONE_MINUS_SRC_COLOR: 0x0301;
    readonly SRC_ALPHA: 0x0302;
    readonly ONE_MINUS_SRC_ALPHA: 0x0303;
    readonly DST_ALPHA: 0x0304;
    readonly ONE_MINUS_DST_ALPHA: 0x0305;
    readonly DST_COLOR: 0x0306;
    readonly ONE_MINUS_DST_COLOR: 0x0307;
    readonly SRC_ALPHA_SATURATE: 0x0308;
    readonly FUNC_ADD: 0x8006;
    readonly BLEND_EQUATION: 0x8009;
    readonly BLEND_EQUATION_RGB: 0x8009;
    readonly BLEND_EQUATION_ALPHA: 0x883D;
    readonly FUNC_SUBTRACT: 0x800A;
    readonly FUNC_REVERSE_SUBTRACT: 0x800B;
    readonly BLEND_DST_RGB: 0x80C8;
    readonly BLEND_SRC_RGB: 0x80C9;
    readonly BLEND_DST_ALPHA: 0x80CA;
    readonly BLEND_SRC_ALPHA: 0x80CB;
    readonly CONSTANT_COLOR: 0x8001;
    readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;
    readonly CONSTANT_ALPHA: 0x8003;
    readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;
    readonly BLEND_COLOR: 0x8005;
    readonly ARRAY_BUFFER: 0x8892;
    readonly ELEMENT_ARRAY_BUFFER: 0x8893;
    readonly ARRAY_BUFFER_BINDING: 0x8894;
    readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;
    readonly STREAM_DRAW: 0x88E0;
    readonly STATIC_DRAW: 0x88E4;
    readonly DYNAMIC_DRAW: 0x88E8;
    readonly BUFFER_SIZE: 0x8764;
    readonly BUFFER_USAGE: 0x8765;
    readonly CURRENT_VERTEX_ATTRIB: 0x8626;
    readonly FRONT: 0x0404;
    readonly BACK: 0x0405;
    readonly FRONT_AND_BACK: 0x0408;
    readonly CULL_FACE: 0x0B44;
    readonly BLEND: 0x0BE2;
    readonly DITHER: 0x0BD0;
    readonly STENCIL_TEST: 0x0B90;
    readonly DEPTH_TEST: 0x0B71;
    readonly SCISSOR_TEST: 0x0C11;
    readonly POLYGON_OFFSET_FILL: 0x8037;
    readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;
    readonly SAMPLE_COVERAGE: 0x80A0;
    readonly NO_ERROR: 0;
    readonly INVALID_ENUM: 0x0500;
    readonly INVALID_VALUE: 0x0501;
    readonly INVALID_OPERATION: 0x0502;
    readonly OUT_OF_MEMORY: 0x0505;
    readonly CW: 0x0900;
    readonly CCW: 0x0901;
    readonly LINE_WIDTH: 0x0B21;
    readonly ALIASED_POINT_SIZE_RANGE: 0x846D;
    readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;
    readonly CULL_FACE_MODE: 0x0B45;
    readonly FRONT_FACE: 0x0B46;
    readonly DEPTH_RANGE: 0x0B70;
    readonly DEPTH_WRITEMASK: 0x0B72;
    readonly DEPTH_CLEAR_VALUE: 0x0B73;
    readonly DEPTH_FUNC: 0x0B74;
    readonly STENCIL_CLEAR_VALUE: 0x0B91;
    readonly STENCIL_FUNC: 0x0B92;
    readonly STENCIL_FAIL: 0x0B94;
    readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;
    readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;
    readonly STENCIL_REF: 0x0B97;
    readonly STENCIL_VALUE_MASK: 0x0B93;
    readonly STENCIL_WRITEMASK: 0x0B98;
    readonly STENCIL_BACK_FUNC: 0x8800;
    readonly STENCIL_BACK_FAIL: 0x8801;
    readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;
    readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;
    readonly STENCIL_BACK_REF: 0x8CA3;
    readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;
    readonly STENCIL_BACK_WRITEMASK: 0x8CA5;
    readonly VIEWPORT: 0x0BA2;
    readonly SCISSOR_BOX: 0x0C10;
    readonly COLOR_CLEAR_VALUE: 0x0C22;
    readonly COLOR_WRITEMASK: 0x0C23;
    readonly UNPACK_ALIGNMENT: 0x0CF5;
    readonly PACK_ALIGNMENT: 0x0D05;
    readonly MAX_TEXTURE_SIZE: 0x0D33;
    readonly MAX_VIEWPORT_DIMS: 0x0D3A;
    readonly SUBPIXEL_BITS: 0x0D50;
    readonly RED_BITS: 0x0D52;
    readonly GREEN_BITS: 0x0D53;
    readonly BLUE_BITS: 0x0D54;
    readonly ALPHA_BITS: 0x0D55;
    readonly DEPTH_BITS: 0x0D56;
    readonly STENCIL_BITS: 0x0D57;
    readonly POLYGON_OFFSET_UNITS: 0x2A00;
    readonly POLYGON_OFFSET_FACTOR: 0x8038;
    readonly TEXTURE_BINDING_2D: 0x8069;
    readonly SAMPLE_BUFFERS: 0x80A8;
    readonly SAMPLES: 0x80A9;
    readonly SAMPLE_COVERAGE_VALUE: 0x80AA;
    readonly SAMPLE_COVERAGE_INVERT: 0x80AB;
    readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;
    readonly DONT_CARE: 0x1100;
    readonly FASTEST: 0x1101;
    readonly NICEST: 0x1102;
    readonly GENERATE_MIPMAP_HINT: 0x8192;
    readonly BYTE: 0x1400;
    readonly UNSIGNED_BYTE: 0x1401;
    readonly SHORT: 0x1402;
    readonly UNSIGNED_SHORT: 0x1403;
    readonly INT: 0x1404;
    readonly UNSIGNED_INT: 0x1405;
    readonly FLOAT: 0x1406;
    readonly DEPTH_COMPONENT: 0x1902;
    readonly ALPHA: 0x1906;
    readonly RGB: 0x1907;
    readonly RGBA: 0x1908;
    readonly LUMINANCE: 0x1909;
    readonly LUMINANCE_ALPHA: 0x190A;
    readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;
    readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;
    readonly UNSIGNED_SHORT_5_6_5: 0x8363;
    readonly FRAGMENT_SHADER: 0x8B30;
    readonly VERTEX_SHADER: 0x8B31;
    readonly MAX_VERTEX_ATTRIBS: 0x8869;
    readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;
    readonly MAX_VARYING_VECTORS: 0x8DFC;
    readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;
    readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;
    readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;
    readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;
    readonly SHADER_TYPE: 0x8B4F;
    readonly DELETE_STATUS: 0x8B80;
    readonly LINK_STATUS: 0x8B82;
    readonly VALIDATE_STATUS: 0x8B83;
    readonly ATTACHED_SHADERS: 0x8B85;
    readonly ACTIVE_UNIFORMS: 0x8B86;
    readonly ACTIVE_ATTRIBUTES: 0x8B89;
    readonly SHADING_LANGUAGE_VERSION: 0x8B8C;
    readonly CURRENT_PROGRAM: 0x8B8D;
    readonly NEVER: 0x0200;
    readonly LESS: 0x0201;
    readonly EQUAL: 0x0202;
    readonly LEQUAL: 0x0203;
    readonly GREATER: 0x0204;
    readonly NOTEQUAL: 0x0205;
    readonly GEQUAL: 0x0206;
    readonly ALWAYS: 0x0207;
    readonly KEEP: 0x1E00;
    readonly REPLACE: 0x1E01;
    readonly INCR: 0x1E02;
    readonly DECR: 0x1E03;
    readonly INVERT: 0x150A;
    readonly INCR_WRAP: 0x8507;
    readonly DECR_WRAP: 0x8508;
    readonly VENDOR: 0x1F00;
    readonly RENDERER: 0x1F01;
    readonly VERSION: 0x1F02;
    readonly NEAREST: 0x2600;
    readonly LINEAR: 0x2601;
    readonly NEAREST_MIPMAP_NEAREST: 0x2700;
    readonly LINEAR_MIPMAP_NEAREST: 0x2701;
    readonly NEAREST_MIPMAP_LINEAR: 0x2702;
    readonly LINEAR_MIPMAP_LINEAR: 0x2703;
    readonly TEXTURE_MAG_FILTER: 0x2800;
    readonly TEXTURE_MIN_FILTER: 0x2801;
    readonly TEXTURE_WRAP_S: 0x2802;
    readonly TEXTURE_WRAP_T: 0x2803;
    readonly TEXTURE_2D: 0x0DE1;
    readonly TEXTURE: 0x1702;
    readonly TEXTURE_CUBE_MAP: 0x8513;
    readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;
    readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;
    readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;
    readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;
    readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;
    readonly TEXTURE0: 0x84C0;
    readonly TEXTURE1: 0x84C1;
    readonly TEXTURE2: 0x84C2;
    readonly TEXTURE3: 0x84C3;
    readonly TEXTURE4: 0x84C4;
    readonly TEXTURE5: 0x84C5;
    readonly TEXTURE6: 0x84C6;
    readonly TEXTURE7: 0x84C7;
    readonly TEXTURE8: 0x84C8;
    readonly TEXTURE9: 0x84C9;
    readonly TEXTURE10: 0x84CA;
    readonly TEXTURE11: 0x84CB;
    readonly TEXTURE12: 0x84CC;
    readonly TEXTURE13: 0x84CD;
    readonly TEXTURE14: 0x84CE;
    readonly TEXTURE15: 0x84CF;
    readonly TEXTURE16: 0x84D0;
    readonly TEXTURE17: 0x84D1;
    readonly TEXTURE18: 0x84D2;
    readonly TEXTURE19: 0x84D3;
    readonly TEXTURE20: 0x84D4;
    readonly TEXTURE21: 0x84D5;
    readonly TEXTURE22: 0x84D6;
    readonly TEXTURE23: 0x84D7;
    readonly TEXTURE24: 0x84D8;
    readonly TEXTURE25: 0x84D9;
    readonly TEXTURE26: 0x84DA;
    readonly TEXTURE27: 0x84DB;
    readonly TEXTURE28: 0x84DC;
    readonly TEXTURE29: 0x84DD;
    readonly TEXTURE30: 0x84DE;
    readonly TEXTURE31: 0x84DF;
    readonly ACTIVE_TEXTURE: 0x84E0;
    readonly REPEAT: 0x2901;
    readonly CLAMP_TO_EDGE: 0x812F;
    readonly MIRRORED_REPEAT: 0x8370;
    readonly FLOAT_VEC2: 0x8B50;
    readonly FLOAT_VEC3: 0x8B51;
    readonly FLOAT_VEC4: 0x8B52;
    readonly INT_VEC2: 0x8B53;
    readonly INT_VEC3: 0x8B54;
    readonly INT_VEC4: 0x8B55;
    readonly BOOL: 0x8B56;
    readonly BOOL_VEC2: 0x8B57;
    readonly BOOL_VEC3: 0x8B58;
    readonly BOOL_VEC4: 0x8B59;
    readonly FLOAT_MAT2: 0x8B5A;
    readonly FLOAT_MAT3: 0x8B5B;
    readonly FLOAT_MAT4: 0x8B5C;
    readonly SAMPLER_2D: 0x8B5E;
    readonly SAMPLER_CUBE: 0x8B60;
    readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;
    readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;
    readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;
    readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;
    readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;
    readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;
    readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;
    readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;
    readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;
    readonly COMPILE_STATUS: 0x8B81;
    readonly LOW_FLOAT: 0x8DF0;
    readonly MEDIUM_FLOAT: 0x8DF1;
    readonly HIGH_FLOAT: 0x8DF2;
    readonly LOW_INT: 0x8DF3;
    readonly MEDIUM_INT: 0x8DF4;
    readonly HIGH_INT: 0x8DF5;
    readonly FRAMEBUFFER: 0x8D40;
    readonly RENDERBUFFER: 0x8D41;
    readonly RGBA4: 0x8056;
    readonly RGB5_A1: 0x8057;
    readonly RGB565: 0x8D62;
    readonly DEPTH_COMPONENT16: 0x81A5;
    readonly STENCIL_INDEX8: 0x8D48;
    readonly DEPTH_STENCIL: 0x84F9;
    readonly RENDERBUFFER_WIDTH: 0x8D42;
    readonly RENDERBUFFER_HEIGHT: 0x8D43;
    readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;
    readonly RENDERBUFFER_RED_SIZE: 0x8D50;
    readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;
    readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;
    readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;
    readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;
    readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;
    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;
    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;
    readonly COLOR_ATTACHMENT0: 0x8CE0;
    readonly DEPTH_ATTACHMENT: 0x8D00;
    readonly STENCIL_ATTACHMENT: 0x8D20;
    readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;
    readonly NONE: 0;
    readonly FRAMEBUFFER_COMPLETE: 0x8CD5;
    readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;
    readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;
    readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;
    readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;
    readonly FRAMEBUFFER_BINDING: 0x8CA6;
    readonly RENDERBUFFER_BINDING: 0x8CA7;
    readonly MAX_RENDERBUFFER_SIZE: 0x84E8;
    readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;
    readonly UNPACK_FLIP_Y_WEBGL: 0x9240;
    readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;
    readonly CONTEXT_LOST_WEBGL: 0x9242;
    readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;
    readonly BROWSER_DEFAULT_WEBGL: 0x9244;
};

interface WebGLRenderingContextBase {
    readonly drawingBufferHeight: GLsizei;
    readonly drawingBufferWidth: GLsizei;
    activeTexture(texture: GLenum): void;
    attachShader(program: WebGLProgram, shader: WebGLShader): void;
    bindAttribLocation(program: WebGLProgram, index: GLuint, name: string): void;
    bindBuffer(target: GLenum, buffer: WebGLBuffer | null): void;
    bindFramebuffer(target: GLenum, framebuffer: WebGLFramebuffer | null): void;
    bindRenderbuffer(target: GLenum, renderbuffer: WebGLRenderbuffer | null): void;
    bindTexture(target: GLenum, texture: WebGLTexture | null): void;
    blendColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;
    blendEquation(mode: GLenum): void;
    blendEquationSeparate(modeRGB: GLenum, modeAlpha: GLenum): void;
    blendFunc(sfactor: GLenum, dfactor: GLenum): void;
    blendFuncSeparate(srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;
    checkFramebufferStatus(target: GLenum): GLenum;
    clear(mask: GLbitfield): void;
    clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;
    clearDepth(depth: GLclampf): void;
    clearStencil(s: GLint): void;
    colorMask(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean): void;
    compileShader(shader: WebGLShader): void;
    copyTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, x: GLint, y: GLint, width: GLsizei, height: GLsizei, border: GLint): void;
    copyTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
    createBuffer(): WebGLBuffer | null;
    createFramebuffer(): WebGLFramebuffer | null;
    createProgram(): WebGLProgram | null;
    createRenderbuffer(): WebGLRenderbuffer | null;
    createShader(type: GLenum): WebGLShader | null;
    createTexture(): WebGLTexture | null;
    cullFace(mode: GLenum): void;
    deleteBuffer(buffer: WebGLBuffer | null): void;
    deleteFramebuffer(framebuffer: WebGLFramebuffer | null): void;
    deleteProgram(program: WebGLProgram | null): void;
    deleteRenderbuffer(renderbuffer: WebGLRenderbuffer | null): void;
    deleteShader(shader: WebGLShader | null): void;
    deleteTexture(texture: WebGLTexture | null): void;
    depthFunc(func: GLenum): void;
    depthMask(flag: GLboolean): void;
    depthRange(zNear: GLclampf, zFar: GLclampf): void;
    detachShader(program: WebGLProgram, shader: WebGLShader): void;
    disable(cap: GLenum): void;
    disableVertexAttribArray(index: GLuint): void;
    drawArrays(mode: GLenum, first: GLint, count: GLsizei): void;
    drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr): void;
    enable(cap: GLenum): void;
    enableVertexAttribArray(index: GLuint): void;
    finish(): void;
    flush(): void;
    framebufferRenderbuffer(target: GLenum, attachment: GLenum, renderbuffertarget: GLenum, renderbuffer: WebGLRenderbuffer | null): void;
    framebufferTexture2D(target: GLenum, attachment: GLenum, textarget: GLenum, texture: WebGLTexture | null, level: GLint): void;
    frontFace(mode: GLenum): void;
    generateMipmap(target: GLenum): void;
    getActiveAttrib(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;
    getActiveUniform(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;
    getAttachedShaders(program: WebGLProgram): WebGLShader[] | null;
    getAttribLocation(program: WebGLProgram, name: string): GLint;
    getBufferParameter(target: GLenum, pname: GLenum): any;
    getContextAttributes(): WebGLContextAttributes | null;
    getError(): GLenum;
    getExtension(extensionName: "ANGLE_instanced_arrays"): ANGLE_instanced_arrays | null;
    getExtension(extensionName: "EXT_blend_minmax"): EXT_blend_minmax | null;
    getExtension(extensionName: "EXT_color_buffer_float"): EXT_color_buffer_float | null;
    getExtension(extensionName: "EXT_color_buffer_half_float"): EXT_color_buffer_half_float | null;
    getExtension(extensionName: "EXT_float_blend"): EXT_float_blend | null;
    getExtension(extensionName: "EXT_frag_depth"): EXT_frag_depth | null;
    getExtension(extensionName: "EXT_sRGB"): EXT_sRGB | null;
    getExtension(extensionName: "EXT_shader_texture_lod"): EXT_shader_texture_lod | null;
    getExtension(extensionName: "EXT_texture_compression_bptc"): EXT_texture_compression_bptc | null;
    getExtension(extensionName: "EXT_texture_compression_rgtc"): EXT_texture_compression_rgtc | null;
    getExtension(extensionName: "EXT_texture_filter_anisotropic"): EXT_texture_filter_anisotropic | null;
    getExtension(extensionName: "KHR_parallel_shader_compile"): KHR_parallel_shader_compile | null;
    getExtension(extensionName: "OES_element_index_uint"): OES_element_index_uint | null;
    getExtension(extensionName: "OES_fbo_render_mipmap"): OES_fbo_render_mipmap | null;
    getExtension(extensionName: "OES_standard_derivatives"): OES_standard_derivatives | null;
    getExtension(extensionName: "OES_texture_float"): OES_texture_float | null;
    getExtension(extensionName: "OES_texture_float_linear"): OES_texture_float_linear | null;
    getExtension(extensionName: "OES_texture_half_float"): OES_texture_half_float | null;
    getExtension(extensionName: "OES_texture_half_float_linear"): OES_texture_half_float_linear | null;
    getExtension(extensionName: "OES_vertex_array_object"): OES_vertex_array_object | null;
    getExtension(extensionName: "OVR_multiview2"): OVR_multiview2 | null;
    getExtension(extensionName: "WEBGL_color_buffer_float"): WEBGL_color_buffer_float | null;
    getExtension(extensionName: "WEBGL_compressed_texture_astc"): WEBGL_compressed_texture_astc | null;
    getExtension(extensionName: "WEBGL_compressed_texture_etc"): WEBGL_compressed_texture_etc | null;
    getExtension(extensionName: "WEBGL_compressed_texture_etc1"): WEBGL_compressed_texture_etc1 | null;
    getExtension(extensionName: "WEBGL_compressed_texture_s3tc"): WEBGL_compressed_texture_s3tc | null;
    getExtension(extensionName: "WEBGL_compressed_texture_s3tc_srgb"): WEBGL_compressed_texture_s3tc_srgb | null;
    getExtension(extensionName: "WEBGL_debug_renderer_info"): WEBGL_debug_renderer_info | null;
    getExtension(extensionName: "WEBGL_debug_shaders"): WEBGL_debug_shaders | null;
    getExtension(extensionName: "WEBGL_depth_texture"): WEBGL_depth_texture | null;
    getExtension(extensionName: "WEBGL_draw_buffers"): WEBGL_draw_buffers | null;
    getExtension(extensionName: "WEBGL_lose_context"): WEBGL_lose_context | null;
    getExtension(extensionName: "WEBGL_multi_draw"): WEBGL_multi_draw | null;
    getExtension(name: string): any;
    getFramebufferAttachmentParameter(target: GLenum, attachment: GLenum, pname: GLenum): any;
    getParameter(pname: GLenum): any;
    getProgramInfoLog(program: WebGLProgram): string | null;
    getProgramParameter(program: WebGLProgram, pname: GLenum): any;
    getRenderbufferParameter(target: GLenum, pname: GLenum): any;
    getShaderInfoLog(shader: WebGLShader): string | null;
    getShaderParameter(shader: WebGLShader, pname: GLenum): any;
    getShaderPrecisionFormat(shadertype: GLenum, precisiontype: GLenum): WebGLShaderPrecisionFormat | null;
    getShaderSource(shader: WebGLShader): string | null;
    getSupportedExtensions(): string[] | null;
    getTexParameter(target: GLenum, pname: GLenum): any;
    getUniform(program: WebGLProgram, location: WebGLUniformLocation): any;
    getUniformLocation(program: WebGLProgram, name: string): WebGLUniformLocation | null;
    getVertexAttrib(index: GLuint, pname: GLenum): any;
    getVertexAttribOffset(index: GLuint, pname: GLenum): GLintptr;
    hint(target: GLenum, mode: GLenum): void;
    isBuffer(buffer: WebGLBuffer | null): GLboolean;
    isContextLost(): boolean;
    isEnabled(cap: GLenum): GLboolean;
    isFramebuffer(framebuffer: WebGLFramebuffer | null): GLboolean;
    isProgram(program: WebGLProgram | null): GLboolean;
    isRenderbuffer(renderbuffer: WebGLRenderbuffer | null): GLboolean;
    isShader(shader: WebGLShader | null): GLboolean;
    isTexture(texture: WebGLTexture | null): GLboolean;
    lineWidth(width: GLfloat): void;
    linkProgram(program: WebGLProgram): void;
    pixelStorei(pname: GLenum, param: GLint | GLboolean): void;
    polygonOffset(factor: GLfloat, units: GLfloat): void;
    renderbufferStorage(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei): void;
    sampleCoverage(value: GLclampf, invert: GLboolean): void;
    scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
    shaderSource(shader: WebGLShader, source: string): void;
    stencilFunc(func: GLenum, ref: GLint, mask: GLuint): void;
    stencilFuncSeparate(face: GLenum, func: GLenum, ref: GLint, mask: GLuint): void;
    stencilMask(mask: GLuint): void;
    stencilMaskSeparate(face: GLenum, mask: GLuint): void;
    stencilOp(fail: GLenum, zfail: GLenum, zpass: GLenum): void;
    stencilOpSeparate(face: GLenum, fail: GLenum, zfail: GLenum, zpass: GLenum): void;
    texParameterf(target: GLenum, pname: GLenum, param: GLfloat): void;
    texParameteri(target: GLenum, pname: GLenum, param: GLint): void;
    uniform1f(location: WebGLUniformLocation | null, x: GLfloat): void;
    uniform1i(location: WebGLUniformLocation | null, x: GLint): void;
    uniform2f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat): void;
    uniform2i(location: WebGLUniformLocation | null, x: GLint, y: GLint): void;
    uniform3f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat): void;
    uniform3i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint): void;
    uniform4f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;
    uniform4i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint, w: GLint): void;
    useProgram(program: WebGLProgram | null): void;
    validateProgram(program: WebGLProgram): void;
    vertexAttrib1f(index: GLuint, x: GLfloat): void;
    vertexAttrib1fv(index: GLuint, values: Float32List): void;
    vertexAttrib2f(index: GLuint, x: GLfloat, y: GLfloat): void;
    vertexAttrib2fv(index: GLuint, values: Float32List): void;
    vertexAttrib3f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat): void;
    vertexAttrib3fv(index: GLuint, values: Float32List): void;
    vertexAttrib4f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;
    vertexAttrib4fv(index: GLuint, values: Float32List): void;
    vertexAttribPointer(index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, offset: GLintptr): void;
    viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
    readonly DEPTH_BUFFER_BIT: 0x00000100;
    readonly STENCIL_BUFFER_BIT: 0x00000400;
    readonly COLOR_BUFFER_BIT: 0x00004000;
    readonly POINTS: 0x0000;
    readonly LINES: 0x0001;
    readonly LINE_LOOP: 0x0002;
    readonly LINE_STRIP: 0x0003;
    readonly TRIANGLES: 0x0004;
    readonly TRIANGLE_STRIP: 0x0005;
    readonly TRIANGLE_FAN: 0x0006;
    readonly ZERO: 0;
    readonly ONE: 1;
    readonly SRC_COLOR: 0x0300;
    readonly ONE_MINUS_SRC_COLOR: 0x0301;
    readonly SRC_ALPHA: 0x0302;
    readonly ONE_MINUS_SRC_ALPHA: 0x0303;
    readonly DST_ALPHA: 0x0304;
    readonly ONE_MINUS_DST_ALPHA: 0x0305;
    readonly DST_COLOR: 0x0306;
    readonly ONE_MINUS_DST_COLOR: 0x0307;
    readonly SRC_ALPHA_SATURATE: 0x0308;
    readonly FUNC_ADD: 0x8006;
    readonly BLEND_EQUATION: 0x8009;
    readonly BLEND_EQUATION_RGB: 0x8009;
    readonly BLEND_EQUATION_ALPHA: 0x883D;
    readonly FUNC_SUBTRACT: 0x800A;
    readonly FUNC_REVERSE_SUBTRACT: 0x800B;
    readonly BLEND_DST_RGB: 0x80C8;
    readonly BLEND_SRC_RGB: 0x80C9;
    readonly BLEND_DST_ALPHA: 0x80CA;
    readonly BLEND_SRC_ALPHA: 0x80CB;
    readonly CONSTANT_COLOR: 0x8001;
    readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;
    readonly CONSTANT_ALPHA: 0x8003;
    readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;
    readonly BLEND_COLOR: 0x8005;
    readonly ARRAY_BUFFER: 0x8892;
    readonly ELEMENT_ARRAY_BUFFER: 0x8893;
    readonly ARRAY_BUFFER_BINDING: 0x8894;
    readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;
    readonly STREAM_DRAW: 0x88E0;
    readonly STATIC_DRAW: 0x88E4;
    readonly DYNAMIC_DRAW: 0x88E8;
    readonly BUFFER_SIZE: 0x8764;
    readonly BUFFER_USAGE: 0x8765;
    readonly CURRENT_VERTEX_ATTRIB: 0x8626;
    readonly FRONT: 0x0404;
    readonly BACK: 0x0405;
    readonly FRONT_AND_BACK: 0x0408;
    readonly CULL_FACE: 0x0B44;
    readonly BLEND: 0x0BE2;
    readonly DITHER: 0x0BD0;
    readonly STENCIL_TEST: 0x0B90;
    readonly DEPTH_TEST: 0x0B71;
    readonly SCISSOR_TEST: 0x0C11;
    readonly POLYGON_OFFSET_FILL: 0x8037;
    readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;
    readonly SAMPLE_COVERAGE: 0x80A0;
    readonly NO_ERROR: 0;
    readonly INVALID_ENUM: 0x0500;
    readonly INVALID_VALUE: 0x0501;
    readonly INVALID_OPERATION: 0x0502;
    readonly OUT_OF_MEMORY: 0x0505;
    readonly CW: 0x0900;
    readonly CCW: 0x0901;
    readonly LINE_WIDTH: 0x0B21;
    readonly ALIASED_POINT_SIZE_RANGE: 0x846D;
    readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;
    readonly CULL_FACE_MODE: 0x0B45;
    readonly FRONT_FACE: 0x0B46;
    readonly DEPTH_RANGE: 0x0B70;
    readonly DEPTH_WRITEMASK: 0x0B72;
    readonly DEPTH_CLEAR_VALUE: 0x0B73;
    readonly DEPTH_FUNC: 0x0B74;
    readonly STENCIL_CLEAR_VALUE: 0x0B91;
    readonly STENCIL_FUNC: 0x0B92;
    readonly STENCIL_FAIL: 0x0B94;
    readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;
    readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;
    readonly STENCIL_REF: 0x0B97;
    readonly STENCIL_VALUE_MASK: 0x0B93;
    readonly STENCIL_WRITEMASK: 0x0B98;
    readonly STENCIL_BACK_FUNC: 0x8800;
    readonly STENCIL_BACK_FAIL: 0x8801;
    readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;
    readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;
    readonly STENCIL_BACK_REF: 0x8CA3;
    readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;
    readonly STENCIL_BACK_WRITEMASK: 0x8CA5;
    readonly VIEWPORT: 0x0BA2;
    readonly SCISSOR_BOX: 0x0C10;
    readonly COLOR_CLEAR_VALUE: 0x0C22;
    readonly COLOR_WRITEMASK: 0x0C23;
    readonly UNPACK_ALIGNMENT: 0x0CF5;
    readonly PACK_ALIGNMENT: 0x0D05;
    readonly MAX_TEXTURE_SIZE: 0x0D33;
    readonly MAX_VIEWPORT_DIMS: 0x0D3A;
    readonly SUBPIXEL_BITS: 0x0D50;
    readonly RED_BITS: 0x0D52;
    readonly GREEN_BITS: 0x0D53;
    readonly BLUE_BITS: 0x0D54;
    readonly ALPHA_BITS: 0x0D55;
    readonly DEPTH_BITS: 0x0D56;
    readonly STENCIL_BITS: 0x0D57;
    readonly POLYGON_OFFSET_UNITS: 0x2A00;
    readonly POLYGON_OFFSET_FACTOR: 0x8038;
    readonly TEXTURE_BINDING_2D: 0x8069;
    readonly SAMPLE_BUFFERS: 0x80A8;
    readonly SAMPLES: 0x80A9;
    readonly SAMPLE_COVERAGE_VALUE: 0x80AA;
    readonly SAMPLE_COVERAGE_INVERT: 0x80AB;
    readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;
    readonly DONT_CARE: 0x1100;
    readonly FASTEST: 0x1101;
    readonly NICEST: 0x1102;
    readonly GENERATE_MIPMAP_HINT: 0x8192;
    readonly BYTE: 0x1400;
    readonly UNSIGNED_BYTE: 0x1401;
    readonly SHORT: 0x1402;
    readonly UNSIGNED_SHORT: 0x1403;
    readonly INT: 0x1404;
    readonly UNSIGNED_INT: 0x1405;
    readonly FLOAT: 0x1406;
    readonly DEPTH_COMPONENT: 0x1902;
    readonly ALPHA: 0x1906;
    readonly RGB: 0x1907;
    readonly RGBA: 0x1908;
    readonly LUMINANCE: 0x1909;
    readonly LUMINANCE_ALPHA: 0x190A;
    readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;
    readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;
    readonly UNSIGNED_SHORT_5_6_5: 0x8363;
    readonly FRAGMENT_SHADER: 0x8B30;
    readonly VERTEX_SHADER: 0x8B31;
    readonly MAX_VERTEX_ATTRIBS: 0x8869;
    readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;
    readonly MAX_VARYING_VECTORS: 0x8DFC;
    readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;
    readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;
    readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;
    readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;
    readonly SHADER_TYPE: 0x8B4F;
    readonly DELETE_STATUS: 0x8B80;
    readonly LINK_STATUS: 0x8B82;
    readonly VALIDATE_STATUS: 0x8B83;
    readonly ATTACHED_SHADERS: 0x8B85;
    readonly ACTIVE_UNIFORMS: 0x8B86;
    readonly ACTIVE_ATTRIBUTES: 0x8B89;
    readonly SHADING_LANGUAGE_VERSION: 0x8B8C;
    readonly CURRENT_PROGRAM: 0x8B8D;
    readonly NEVER: 0x0200;
    readonly LESS: 0x0201;
    readonly EQUAL: 0x0202;
    readonly LEQUAL: 0x0203;
    readonly GREATER: 0x0204;
    readonly NOTEQUAL: 0x0205;
    readonly GEQUAL: 0x0206;
    readonly ALWAYS: 0x0207;
    readonly KEEP: 0x1E00;
    readonly REPLACE: 0x1E01;
    readonly INCR: 0x1E02;
    readonly DECR: 0x1E03;
    readonly INVERT: 0x150A;
    readonly INCR_WRAP: 0x8507;
    readonly DECR_WRAP: 0x8508;
    readonly VENDOR: 0x1F00;
    readonly RENDERER: 0x1F01;
    readonly VERSION: 0x1F02;
    readonly NEAREST: 0x2600;
    readonly LINEAR: 0x2601;
    readonly NEAREST_MIPMAP_NEAREST: 0x2700;
    readonly LINEAR_MIPMAP_NEAREST: 0x2701;
    readonly NEAREST_MIPMAP_LINEAR: 0x2702;
    readonly LINEAR_MIPMAP_LINEAR: 0x2703;
    readonly TEXTURE_MAG_FILTER: 0x2800;
    readonly TEXTURE_MIN_FILTER: 0x2801;
    readonly TEXTURE_WRAP_S: 0x2802;
    readonly TEXTURE_WRAP_T: 0x2803;
    readonly TEXTURE_2D: 0x0DE1;
    readonly TEXTURE: 0x1702;
    readonly TEXTURE_CUBE_MAP: 0x8513;
    readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;
    readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;
    readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;
    readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;
    readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;
    readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;
    readonly TEXTURE0: 0x84C0;
    readonly TEXTURE1: 0x84C1;
    readonly TEXTURE2: 0x84C2;
    readonly TEXTURE3: 0x84C3;
    readonly TEXTURE4: 0x84C4;
    readonly TEXTURE5: 0x84C5;
    readonly TEXTURE6: 0x84C6;
    readonly TEXTURE7: 0x84C7;
    readonly TEXTURE8: 0x84C8;
    readonly TEXTURE9: 0x84C9;
    readonly TEXTURE10: 0x84CA;
    readonly TEXTURE11: 0x84CB;
    readonly TEXTURE12: 0x84CC;
    readonly TEXTURE13: 0x84CD;
    readonly TEXTURE14: 0x84CE;
    readonly TEXTURE15: 0x84CF;
    readonly TEXTURE16: 0x84D0;
    readonly TEXTURE17: 0x84D1;
    readonly TEXTURE18: 0x84D2;
    readonly TEXTURE19: 0x84D3;
    readonly TEXTURE20: 0x84D4;
    readonly TEXTURE21: 0x84D5;
    readonly TEXTURE22: 0x84D6;
    readonly TEXTURE23: 0x84D7;
    readonly TEXTURE24: 0x84D8;
    readonly TEXTURE25: 0x84D9;
    readonly TEXTURE26: 0x84DA;
    readonly TEXTURE27: 0x84DB;
    readonly TEXTURE28: 0x84DC;
    readonly TEXTURE29: 0x84DD;
    readonly TEXTURE30: 0x84DE;
    readonly TEXTURE31: 0x84DF;
    readonly ACTIVE_TEXTURE: 0x84E0;
    readonly REPEAT: 0x2901;
    readonly CLAMP_TO_EDGE: 0x812F;
    readonly MIRRORED_REPEAT: 0x8370;
    readonly FLOAT_VEC2: 0x8B50;
    readonly FLOAT_VEC3: 0x8B51;
    readonly FLOAT_VEC4: 0x8B52;
    readonly INT_VEC2: 0x8B53;
    readonly INT_VEC3: 0x8B54;
    readonly INT_VEC4: 0x8B55;
    readonly BOOL: 0x8B56;
    readonly BOOL_VEC2: 0x8B57;
    readonly BOOL_VEC3: 0x8B58;
    readonly BOOL_VEC4: 0x8B59;
    readonly FLOAT_MAT2: 0x8B5A;
    readonly FLOAT_MAT3: 0x8B5B;
    readonly FLOAT_MAT4: 0x8B5C;
    readonly SAMPLER_2D: 0x8B5E;
    readonly SAMPLER_CUBE: 0x8B60;
    readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;
    readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;
    readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;
    readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;
    readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;
    readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;
    readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;
    readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;
    readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;
    readonly COMPILE_STATUS: 0x8B81;
    readonly LOW_FLOAT: 0x8DF0;
    readonly MEDIUM_FLOAT: 0x8DF1;
    readonly HIGH_FLOAT: 0x8DF2;
    readonly LOW_INT: 0x8DF3;
    readonly MEDIUM_INT: 0x8DF4;
    readonly HIGH_INT: 0x8DF5;
    readonly FRAMEBUFFER: 0x8D40;
    readonly RENDERBUFFER: 0x8D41;
    readonly RGBA4: 0x8056;
    readonly RGB5_A1: 0x8057;
    readonly RGB565: 0x8D62;
    readonly DEPTH_COMPONENT16: 0x81A5;
    readonly STENCIL_INDEX8: 0x8D48;
    readonly DEPTH_STENCIL: 0x84F9;
    readonly RENDERBUFFER_WIDTH: 0x8D42;
    readonly RENDERBUFFER_HEIGHT: 0x8D43;
    readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;
    readonly RENDERBUFFER_RED_SIZE: 0x8D50;
    readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;
    readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;
    readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;
    readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;
    readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;
    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;
    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;
    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;
    readonly COLOR_ATTACHMENT0: 0x8CE0;
    readonly DEPTH_ATTACHMENT: 0x8D00;
    readonly STENCIL_ATTACHMENT: 0x8D20;
    readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;
    readonly NONE: 0;
    readonly FRAMEBUFFER_COMPLETE: 0x8CD5;
    readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;
    readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;
    readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;
    readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;
    readonly FRAMEBUFFER_BINDING: 0x8CA6;
    readonly RENDERBUFFER_BINDING: 0x8CA7;
    readonly MAX_RENDERBUFFER_SIZE: 0x84E8;
    readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;
    readonly UNPACK_FLIP_Y_WEBGL: 0x9240;
    readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;
    readonly CONTEXT_LOST_WEBGL: 0x9242;
    readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;
    readonly BROWSER_DEFAULT_WEBGL: 0x9244;
}

interface WebGLRenderingContextOverloads {
    bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;
    bufferData(target: GLenum, data: BufferSource | null, usage: GLenum): void;
    bufferSubData(target: GLenum, offset: GLintptr, data: BufferSource): void;
    compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, data: ArrayBufferView): void;
    compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, data: ArrayBufferView): void;
    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
    texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
    uniform1fv(location: WebGLUniformLocation | null, v: Float32List): void;
    uniform1iv(location: WebGLUniformLocation | null, v: Int32List): void;
    uniform2fv(location: WebGLUniformLocation | null, v: Float32List): void;
    uniform2iv(location: WebGLUniformLocation | null, v: Int32List): void;
    uniform3fv(location: WebGLUniformLocation | null, v: Float32List): void;
    uniform3iv(location: WebGLUniformLocation | null, v: Int32List): void;
    uniform4fv(location: WebGLUniformLocation | null, v: Float32List): void;
    uniform4iv(location: WebGLUniformLocation | null, v: Int32List): void;
    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;
    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;
    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;
}

interface WebGLSampler {
}

declare var WebGLSampler: {
    prototype: WebGLSampler;
    new(): WebGLSampler;
};

/** The WebGLShader is part of the WebGL API and can either be a vertex or a fragment shader. A WebGLProgram requires both types of shaders. */
interface WebGLShader {
}

declare var WebGLShader: {
    prototype: WebGLShader;
    new(): WebGLShader;
};

/** Part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getShaderPrecisionFormat() method. */
interface WebGLShaderPrecisionFormat {
    readonly precision: GLint;
    readonly rangeMax: GLint;
    readonly rangeMin: GLint;
}

declare var WebGLShaderPrecisionFormat: {
    prototype: WebGLShaderPrecisionFormat;
    new(): WebGLShaderPrecisionFormat;
};

interface WebGLSync {
}

declare var WebGLSync: {
    prototype: WebGLSync;
    new(): WebGLSync;
};

/** Part of the WebGL API and represents an opaque texture object providing storage and state for texturing operations. */
interface WebGLTexture {
}

declare var WebGLTexture: {
    prototype: WebGLTexture;
    new(): WebGLTexture;
};

interface WebGLTransformFeedback {
}

declare var WebGLTransformFeedback: {
    prototype: WebGLTransformFeedback;
    new(): WebGLTransformFeedback;
};

/** Part of the WebGL API and represents the location of a uniform variable in a shader program. */
interface WebGLUniformLocation {
}

declare var WebGLUniformLocation: {
    prototype: WebGLUniformLocation;
    new(): WebGLUniformLocation;
};

interface WebGLVertexArrayObject {
}

declare var WebGLVertexArrayObject: {
    prototype: WebGLVertexArrayObject;
    new(): WebGLVertexArrayObject;
};

interface WebGLVertexArrayObjectOES {
}

interface WebSocketEventMap {
    "close": CloseEvent;
    "error": Event;
    "message": MessageEvent;
    "open": Event;
}

/** Provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection. */
interface WebSocket extends EventTarget {
    /**
     * Returns a string that indicates how binary data from the WebSocket object is exposed to scripts:
     *
     * Can be set, to change how binary data is returned. The default is "blob".
     */
    binaryType: BinaryType;
    /**
     * Returns the number of bytes of application data (UTF-8 text and binary data) that have been queued using send() but not yet been transmitted to the network.
     *
     * If the WebSocket connection is closed, this attribute's value will only increase with each call to the send() method. (The number does not reset to zero once the connection closes.)
     */
    readonly bufferedAmount: number;
    /** Returns the extensions selected by the server, if any. */
    readonly extensions: string;
    onclose: ((this: WebSocket, ev: CloseEvent) => any) | null;
    onerror: ((this: WebSocket, ev: Event) => any) | null;
    onmessage: ((this: WebSocket, ev: MessageEvent) => any) | null;
    onopen: ((this: WebSocket, ev: Event) => any) | null;
    /** Returns the subprotocol selected by the server, if any. It can be used in conjunction with the array form of the constructor's second argument to perform subprotocol negotiation. */
    readonly protocol: string;
    /** Returns the state of the WebSocket object's connection. It can have the values described below. */
    readonly readyState: number;
    /** Returns the URL that was used to establish the WebSocket connection. */
    readonly url: string;
    /** Closes the WebSocket connection, optionally using code as the the WebSocket connection close code and reason as the the WebSocket connection close reason. */
    close(code?: number, reason?: string): void;
    /** Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView. */
    send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;
    readonly CONNECTING: 0;
    readonly OPEN: 1;
    readonly CLOSING: 2;
    readonly CLOSED: 3;
    addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var WebSocket: {
    prototype: WebSocket;
    new(url: string | URL, protocols?: string | string[]): WebSocket;
    readonly CONNECTING: 0;
    readonly OPEN: 1;
    readonly CLOSING: 2;
    readonly CLOSED: 3;
};

/** This ServiceWorker API interface represents the scope of a service worker client that is a document in a browser context, controlled by an active worker. The service worker client independently selects and uses a service worker for its own loading and sub-resources. */
interface WindowClient extends Client {
    readonly focused: boolean;
    readonly visibilityState: DocumentVisibilityState;
    focus(): Promise<WindowClient>;
    navigate(url: string | URL): Promise<WindowClient | null>;
}

declare var WindowClient: {
    prototype: WindowClient;
    new(): WindowClient;
};

interface WindowOrWorkerGlobalScope {
    /** Available only in secure contexts. */
    readonly caches: CacheStorage;
    readonly crossOriginIsolated: boolean;
    readonly crypto: Crypto;
    readonly indexedDB: IDBFactory;
    readonly isSecureContext: boolean;
    readonly origin: string;
    readonly performance: Performance;
    atob(data: string): string;
    btoa(data: string): string;
    clearInterval(id: number | undefined): void;
    clearTimeout(id: number | undefined): void;
    createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise<ImageBitmap>;
    createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;
    fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
    queueMicrotask(callback: VoidFunction): void;
    reportError(e: any): void;
    setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
    setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
    structuredClone(value: any, options?: StructuredSerializeOptions): any;
}

interface WorkerEventMap extends AbstractWorkerEventMap {
    "message": MessageEvent;
    "messageerror": MessageEvent;
}

/** This Web Workers API interface represents a background task that can be easily created and can send messages back to its creator. Creating a worker is as simple as calling the Worker() constructor and specifying a script to be run in the worker thread. */
interface Worker extends EventTarget, AbstractWorker {
    onmessage: ((this: Worker, ev: MessageEvent) => any) | null;
    onmessageerror: ((this: Worker, ev: MessageEvent) => any) | null;
    /** Clones message and transmits it to worker's global environment. transfer can be passed as a list of objects that are to be transferred rather than cloned. */
    postMessage(message: any, transfer: Transferable[]): void;
    postMessage(message: any, options?: StructuredSerializeOptions): void;
    /** Aborts worker's associated global environment. */
    terminate(): void;
    addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var Worker: {
    prototype: Worker;
    new(scriptURL: string | URL, options?: WorkerOptions): Worker;
};

interface WorkerGlobalScopeEventMap {
    "error": ErrorEvent;
    "languagechange": Event;
    "offline": Event;
    "online": Event;
    "rejectionhandled": PromiseRejectionEvent;
    "unhandledrejection": PromiseRejectionEvent;
}

/** This Web Workers API interface is an interface representing the scope of any worker. Workers have no browsing context; this scope contains the information usually conveyed by Window objects — in this case event handlers, the console or the associated WorkerNavigator object. Each WorkerGlobalScope has its own event loop. */
interface WorkerGlobalScope extends EventTarget, FontFaceSource, WindowOrWorkerGlobalScope {
    /** Returns workerGlobal's WorkerLocation object. */
    readonly location: WorkerLocation;
    /** Returns workerGlobal's WorkerNavigator object. */
    readonly navigator: WorkerNavigator;
    onerror: ((this: WorkerGlobalScope, ev: ErrorEvent) => any) | null;
    onlanguagechange: ((this: WorkerGlobalScope, ev: Event) => any) | null;
    onoffline: ((this: WorkerGlobalScope, ev: Event) => any) | null;
    ononline: ((this: WorkerGlobalScope, ev: Event) => any) | null;
    onrejectionhandled: ((this: WorkerGlobalScope, ev: PromiseRejectionEvent) => any) | null;
    onunhandledrejection: ((this: WorkerGlobalScope, ev: PromiseRejectionEvent) => any) | null;
    /** Returns workerGlobal. */
    readonly self: WorkerGlobalScope & typeof globalThis;
    /** Fetches each URL in urls, executes them one-by-one in the order they are passed, and then returns (or throws if something went amiss). */
    importScripts(...urls: (string | URL)[]): void;
    addEventListener<K extends keyof WorkerGlobalScopeEventMap>(type: K, listener: (this: WorkerGlobalScope, ev: WorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof WorkerGlobalScopeEventMap>(type: K, listener: (this: WorkerGlobalScope, ev: WorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var WorkerGlobalScope: {
    prototype: WorkerGlobalScope;
    new(): WorkerGlobalScope;
};

/** The absolute location of the script executed by the Worker. Such an object is initialized for each worker and is available via the WorkerGlobalScope.location property obtained by calling self.location. */
interface WorkerLocation {
    readonly hash: string;
    readonly host: string;
    readonly hostname: string;
    readonly href: string;
    toString(): string;
    readonly origin: string;
    readonly pathname: string;
    readonly port: string;
    readonly protocol: string;
    readonly search: string;
}

declare var WorkerLocation: {
    prototype: WorkerLocation;
    new(): WorkerLocation;
};

/** A subset of the Navigator interface allowed to be accessed from a Worker. Such an object is initialized for each worker and is available via the WorkerGlobalScope.navigator property obtained by calling window.self.navigator. */
interface WorkerNavigator extends NavigatorConcurrentHardware, NavigatorID, NavigatorLanguage, NavigatorLocks, NavigatorOnLine, NavigatorStorage {
    readonly mediaCapabilities: MediaCapabilities;
}

declare var WorkerNavigator: {
    prototype: WorkerNavigator;
    new(): WorkerNavigator;
};

/** This Streams API interface provides a standard abstraction for writing streaming data to a destination, known as a sink. This object comes with built-in backpressure and queuing. */
interface WritableStream<W = any> {
    readonly locked: boolean;
    abort(reason?: any): Promise<void>;
    close(): Promise<void>;
    getWriter(): WritableStreamDefaultWriter<W>;
}

declare var WritableStream: {
    prototype: WritableStream;
    new<W = any>(underlyingSink?: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;
};

/** This Streams API interface represents a controller allowing control of a WritableStream's state. When constructing a WritableStream, the underlying sink is given a corresponding WritableStreamDefaultController instance to manipulate. */
interface WritableStreamDefaultController {
    readonly signal: AbortSignal;
    error(e?: any): void;
}

declare var WritableStreamDefaultController: {
    prototype: WritableStreamDefaultController;
    new(): WritableStreamDefaultController;
};

/** This Streams API interface is the object returned by WritableStream.getWriter() and once created locks the < writer to the WritableStream ensuring that no other streams can write to the underlying sink. */
interface WritableStreamDefaultWriter<W = any> {
    readonly closed: Promise<undefined>;
    readonly desiredSize: number | null;
    readonly ready: Promise<undefined>;
    abort(reason?: any): Promise<void>;
    close(): Promise<void>;
    releaseLock(): void;
    write(chunk?: W): Promise<void>;
}

declare var WritableStreamDefaultWriter: {
    prototype: WritableStreamDefaultWriter;
    new<W = any>(stream: WritableStream<W>): WritableStreamDefaultWriter<W>;
};

interface XMLHttpRequestEventMap extends XMLHttpRequestEventTargetEventMap {
    "readystatechange": Event;
}

/** Use XMLHttpRequest (XHR) objects to interact with servers. You can retrieve data from a URL without having to do a full page refresh. This enables a Web page to update just part of a page without disrupting what the user is doing. */
interface XMLHttpRequest extends XMLHttpRequestEventTarget {
    onreadystatechange: ((this: XMLHttpRequest, ev: Event) => any) | null;
    /** Returns client's state. */
    readonly readyState: number;
    /** Returns the response body. */
    readonly response: any;
    /**
     * Returns response as text.
     *
     * Throws an "InvalidStateError" DOMException if responseType is not the empty string or "text".
     */
    readonly responseText: string;
    /**
     * Returns the response type.
     *
     * Can be set to change the response type. Values are: the empty string (default), "arraybuffer", "blob", "document", "json", and "text".
     *
     * When set: setting to "document" is ignored if current global object is not a Window object.
     *
     * When set: throws an "InvalidStateError" DOMException if state is loading or done.
     *
     * When set: throws an "InvalidAccessError" DOMException if the synchronous flag is set and current global object is a Window object.
     */
    responseType: XMLHttpRequestResponseType;
    readonly responseURL: string;
    readonly status: number;
    readonly statusText: string;
    /**
     * Can be set to a time in milliseconds. When set to a non-zero value will cause fetching to terminate after the given time has passed. When the time has passed, the request has not yet completed, and this's synchronous flag is unset, a timeout event will then be dispatched, or a "TimeoutError" DOMException will be thrown otherwise (for the send() method).
     *
     * When set: throws an "InvalidAccessError" DOMException if the synchronous flag is set and current global object is a Window object.
     */
    timeout: number;
    /** Returns the associated XMLHttpRequestUpload object. It can be used to gather transmission information when data is transferred to a server. */
    readonly upload: XMLHttpRequestUpload;
    /**
     * True when credentials are to be included in a cross-origin request. False when they are to be excluded in a cross-origin request and when cookies are to be ignored in its response. Initially false.
     *
     * When set: throws an "InvalidStateError" DOMException if state is not unsent or opened, or if the send() flag is set.
     */
    withCredentials: boolean;
    /** Cancels any network activity. */
    abort(): void;
    getAllResponseHeaders(): string;
    getResponseHeader(name: string): string | null;
    /**
     * Sets the request method, request URL, and synchronous flag.
     *
     * Throws a "SyntaxError" DOMException if either method is not a valid method or url cannot be parsed.
     *
     * Throws a "SecurityError" DOMException if method is a case-insensitive match for \`CONNECT\`, \`TRACE\`, or \`TRACK\`.
     *
     * Throws an "InvalidAccessError" DOMException if async is false, current global object is a Window object, and the timeout attribute is not zero or the responseType attribute is not the empty string.
     */
    open(method: string, url: string | URL): void;
    open(method: string, url: string | URL, async: boolean, username?: string | null, password?: string | null): void;
    /**
     * Acts as if the \`Content-Type\` header value for a response is mime. (It does not change the header.)
     *
     * Throws an "InvalidStateError" DOMException if state is loading or done.
     */
    overrideMimeType(mime: string): void;
    /**
     * Initiates the request. The body argument provides the request body, if any, and is ignored if the request method is GET or HEAD.
     *
     * Throws an "InvalidStateError" DOMException if either state is not opened or the send() flag is set.
     */
    send(body?: XMLHttpRequestBodyInit | null): void;
    /**
     * Combines a header in author request headers.
     *
     * Throws an "InvalidStateError" DOMException if either state is not opened or the send() flag is set.
     *
     * Throws a "SyntaxError" DOMException if name is not a header name or if value is not a header value.
     */
    setRequestHeader(name: string, value: string): void;
    readonly UNSENT: 0;
    readonly OPENED: 1;
    readonly HEADERS_RECEIVED: 2;
    readonly LOADING: 3;
    readonly DONE: 4;
    addEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var XMLHttpRequest: {
    prototype: XMLHttpRequest;
    new(): XMLHttpRequest;
    readonly UNSENT: 0;
    readonly OPENED: 1;
    readonly HEADERS_RECEIVED: 2;
    readonly LOADING: 3;
    readonly DONE: 4;
};

interface XMLHttpRequestEventTargetEventMap {
    "abort": ProgressEvent<XMLHttpRequestEventTarget>;
    "error": ProgressEvent<XMLHttpRequestEventTarget>;
    "load": ProgressEvent<XMLHttpRequestEventTarget>;
    "loadend": ProgressEvent<XMLHttpRequestEventTarget>;
    "loadstart": ProgressEvent<XMLHttpRequestEventTarget>;
    "progress": ProgressEvent<XMLHttpRequestEventTarget>;
    "timeout": ProgressEvent<XMLHttpRequestEventTarget>;
}

interface XMLHttpRequestEventTarget extends EventTarget {
    onabort: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
    onerror: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
    onload: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
    onloadend: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
    onloadstart: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
    onprogress: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
    ontimeout: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
    addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var XMLHttpRequestEventTarget: {
    prototype: XMLHttpRequestEventTarget;
    new(): XMLHttpRequestEventTarget;
};

interface XMLHttpRequestUpload extends XMLHttpRequestEventTarget {
    addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var XMLHttpRequestUpload: {
    prototype: XMLHttpRequestUpload;
    new(): XMLHttpRequestUpload;
};

interface Console {
    assert(condition?: boolean, ...data: any[]): void;
    clear(): void;
    count(label?: string): void;
    countReset(label?: string): void;
    debug(...data: any[]): void;
    dir(item?: any, options?: any): void;
    dirxml(...data: any[]): void;
    error(...data: any[]): void;
    group(...data: any[]): void;
    groupCollapsed(...data: any[]): void;
    groupEnd(): void;
    info(...data: any[]): void;
    log(...data: any[]): void;
    table(tabularData?: any, properties?: string[]): void;
    time(label?: string): void;
    timeEnd(label?: string): void;
    timeLog(label?: string, ...data: any[]): void;
    timeStamp(label?: string): void;
    trace(...data: any[]): void;
    warn(...data: any[]): void;
}

declare var console: Console;

declare namespace WebAssembly {
    interface CompileError extends Error {
    }

    var CompileError: {
        prototype: CompileError;
        new(message?: string): CompileError;
        (message?: string): CompileError;
    };

    interface Global {
        value: any;
        valueOf(): any;
    }

    var Global: {
        prototype: Global;
        new(descriptor: GlobalDescriptor, v?: any): Global;
    };

    interface Instance {
        readonly exports: Exports;
    }

    var Instance: {
        prototype: Instance;
        new(module: Module, importObject?: Imports): Instance;
    };

    interface LinkError extends Error {
    }

    var LinkError: {
        prototype: LinkError;
        new(message?: string): LinkError;
        (message?: string): LinkError;
    };

    interface Memory {
        readonly buffer: ArrayBuffer;
        grow(delta: number): number;
    }

    var Memory: {
        prototype: Memory;
        new(descriptor: MemoryDescriptor): Memory;
    };

    interface Module {
    }

    var Module: {
        prototype: Module;
        new(bytes: BufferSource): Module;
        customSections(moduleObject: Module, sectionName: string): ArrayBuffer[];
        exports(moduleObject: Module): ModuleExportDescriptor[];
        imports(moduleObject: Module): ModuleImportDescriptor[];
    };

    interface RuntimeError extends Error {
    }

    var RuntimeError: {
        prototype: RuntimeError;
        new(message?: string): RuntimeError;
        (message?: string): RuntimeError;
    };

    interface Table {
        readonly length: number;
        get(index: number): any;
        grow(delta: number, value?: any): number;
        set(index: number, value?: any): void;
    }

    var Table: {
        prototype: Table;
        new(descriptor: TableDescriptor, value?: any): Table;
    };

    interface GlobalDescriptor {
        mutable?: boolean;
        value: ValueType;
    }

    interface MemoryDescriptor {
        initial: number;
        maximum?: number;
        shared?: boolean;
    }

    interface ModuleExportDescriptor {
        kind: ImportExportKind;
        name: string;
    }

    interface ModuleImportDescriptor {
        kind: ImportExportKind;
        module: string;
        name: string;
    }

    interface TableDescriptor {
        element: TableKind;
        initial: number;
        maximum?: number;
    }

    interface WebAssemblyInstantiatedSource {
        instance: Instance;
        module: Module;
    }

    type ImportExportKind = "function" | "global" | "memory" | "table";
    type TableKind = "anyfunc" | "externref";
    type ValueType = "anyfunc" | "externref" | "f32" | "f64" | "i32" | "i64" | "v128";
    type ExportValue = Function | Global | Memory | Table;
    type Exports = Record<string, ExportValue>;
    type ImportValue = ExportValue | number;
    type Imports = Record<string, ModuleImports>;
    type ModuleImports = Record<string, ImportValue>;
    function compile(bytes: BufferSource): Promise<Module>;
    function compileStreaming(source: Response | PromiseLike<Response>): Promise<Module>;
    function instantiate(bytes: BufferSource, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;
    function instantiate(moduleObject: Module, importObject?: Imports): Promise<Instance>;
    function instantiateStreaming(source: Response | PromiseLike<Response>, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;
    function validate(bytes: BufferSource): boolean;
}

interface FrameRequestCallback {
    (time: DOMHighResTimeStamp): void;
}

interface LockGrantedCallback {
    (lock: Lock | null): any;
}

interface OnErrorEventHandlerNonNull {
    (event: Event | string, source?: string, lineno?: number, colno?: number, error?: Error): any;
}

interface PerformanceObserverCallback {
    (entries: PerformanceObserverEntryList, observer: PerformanceObserver): void;
}

interface QueuingStrategySize<T = any> {
    (chunk: T): number;
}

interface TransformerFlushCallback<O> {
    (controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;
}

interface TransformerStartCallback<O> {
    (controller: TransformStreamDefaultController<O>): any;
}

interface TransformerTransformCallback<I, O> {
    (chunk: I, controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;
}

interface UnderlyingSinkAbortCallback {
    (reason?: any): void | PromiseLike<void>;
}

interface UnderlyingSinkCloseCallback {
    (): void | PromiseLike<void>;
}

interface UnderlyingSinkStartCallback {
    (controller: WritableStreamDefaultController): any;
}

interface UnderlyingSinkWriteCallback<W> {
    (chunk: W, controller: WritableStreamDefaultController): void | PromiseLike<void>;
}

interface UnderlyingSourceCancelCallback {
    (reason?: any): void | PromiseLike<void>;
}

interface UnderlyingSourcePullCallback<R> {
    (controller: ReadableStreamController<R>): void | PromiseLike<void>;
}

interface UnderlyingSourceStartCallback<R> {
    (controller: ReadableStreamController<R>): any;
}

interface VoidFunction {
    (): void;
}

/** Returns dedicatedWorkerGlobal's name, i.e. the value given to the Worker constructor. Primarily useful for debugging. */
declare var name: string;
declare var onmessage: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;
declare var onmessageerror: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;
/** Aborts dedicatedWorkerGlobal. */
declare function close(): void;
/** Clones message and transmits it to the Worker object associated with dedicatedWorkerGlobal. transfer can be passed as a list of objects that are to be transferred rather than cloned. */
declare function postMessage(message: any, transfer: Transferable[]): void;
declare function postMessage(message: any, options?: StructuredSerializeOptions): void;
/** Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise. */
declare function dispatchEvent(event: Event): boolean;
/** Returns workerGlobal's WorkerLocation object. */
declare var location: WorkerLocation;
/** Returns workerGlobal's WorkerNavigator object. */
declare var navigator: WorkerNavigator;
declare var onerror: ((this: DedicatedWorkerGlobalScope, ev: ErrorEvent) => any) | null;
declare var onlanguagechange: ((this: DedicatedWorkerGlobalScope, ev: Event) => any) | null;
declare var onoffline: ((this: DedicatedWorkerGlobalScope, ev: Event) => any) | null;
declare var ononline: ((this: DedicatedWorkerGlobalScope, ev: Event) => any) | null;
declare var onrejectionhandled: ((this: DedicatedWorkerGlobalScope, ev: PromiseRejectionEvent) => any) | null;
declare var onunhandledrejection: ((this: DedicatedWorkerGlobalScope, ev: PromiseRejectionEvent) => any) | null;
/** Returns workerGlobal. */
declare var self: WorkerGlobalScope & typeof globalThis;
/** Fetches each URL in urls, executes them one-by-one in the order they are passed, and then returns (or throws if something went amiss). */
declare function importScripts(...urls: (string | URL)[]): void;
/** Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise. */
declare function dispatchEvent(event: Event): boolean;
declare var fonts: FontFaceSet;
/** Available only in secure contexts. */
declare var caches: CacheStorage;
declare var crossOriginIsolated: boolean;
declare var crypto: Crypto;
declare var indexedDB: IDBFactory;
declare var isSecureContext: boolean;
declare var origin: string;
declare var performance: Performance;
declare function atob(data: string): string;
declare function btoa(data: string): string;
declare function clearInterval(id: number | undefined): void;
declare function clearTimeout(id: number | undefined): void;
declare function createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise<ImageBitmap>;
declare function createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;
declare function fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
declare function queueMicrotask(callback: VoidFunction): void;
declare function reportError(e: any): void;
declare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
declare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
declare function structuredClone(value: any, options?: StructuredSerializeOptions): any;
declare function cancelAnimationFrame(handle: number): void;
declare function requestAnimationFrame(callback: FrameRequestCallback): number;
declare function addEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
declare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
declare function removeEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
declare function removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
type AlgorithmIdentifier = Algorithm | string;
type BigInteger = Uint8Array;
type BinaryData = ArrayBuffer | ArrayBufferView;
type BlobPart = BufferSource | Blob | string;
type BodyInit = ReadableStream | XMLHttpRequestBodyInit;
type BufferSource = ArrayBufferView | ArrayBuffer;
type CanvasImageSource = ImageBitmap | OffscreenCanvas;
type DOMHighResTimeStamp = number;
type EpochTimeStamp = number;
type EventListenerOrEventListenerObject = EventListener | EventListenerObject;
type Float32List = Float32Array | GLfloat[];
type FormDataEntryValue = File | string;
type GLbitfield = number;
type GLboolean = boolean;
type GLclampf = number;
type GLenum = number;
type GLfloat = number;
type GLint = number;
type GLint64 = number;
type GLintptr = number;
type GLsizei = number;
type GLsizeiptr = number;
type GLuint = number;
type GLuint64 = number;
type HashAlgorithmIdentifier = AlgorithmIdentifier;
type HeadersInit = [string, string][] | Record<string, string> | Headers;
type IDBValidKey = number | string | Date | BufferSource | IDBValidKey[];
type ImageBitmapSource = CanvasImageSource | Blob | ImageData;
type Int32List = Int32Array | GLint[];
type MessageEventSource = MessagePort | ServiceWorker;
type NamedCurve = string;
type OffscreenRenderingContext = OffscreenCanvasRenderingContext2D | ImageBitmapRenderingContext | WebGLRenderingContext | WebGL2RenderingContext;
type OnErrorEventHandler = OnErrorEventHandlerNonNull | null;
type PerformanceEntryList = PerformanceEntry[];
type PushMessageDataInit = BufferSource | string;
type ReadableStreamController<T> = ReadableStreamDefaultController<T> | ReadableByteStreamController;
type ReadableStreamReadResult<T> = ReadableStreamReadValueResult<T> | ReadableStreamReadDoneResult<T>;
type ReadableStreamReader<T> = ReadableStreamDefaultReader<T> | ReadableStreamBYOBReader;
type RequestInfo = Request | string;
type TexImageSource = ImageBitmap | ImageData | OffscreenCanvas;
type TimerHandler = string | Function;
type Transferable = OffscreenCanvas | ImageBitmap | MessagePort | ReadableStream | WritableStream | TransformStream | ArrayBuffer;
type Uint32List = Uint32Array | GLuint[];
type VibratePattern = number | number[];
type XMLHttpRequestBodyInit = Blob | BufferSource | FormData | URLSearchParams | string;
type BinaryType = "arraybuffer" | "blob";
type CanvasDirection = "inherit" | "ltr" | "rtl";
type CanvasFillRule = "evenodd" | "nonzero";
type CanvasFontKerning = "auto" | "none" | "normal";
type CanvasFontStretch = "condensed" | "expanded" | "extra-condensed" | "extra-expanded" | "normal" | "semi-condensed" | "semi-expanded" | "ultra-condensed" | "ultra-expanded";
type CanvasFontVariantCaps = "all-petite-caps" | "all-small-caps" | "normal" | "petite-caps" | "small-caps" | "titling-caps" | "unicase";
type CanvasLineCap = "butt" | "round" | "square";
type CanvasLineJoin = "bevel" | "miter" | "round";
type CanvasTextAlign = "center" | "end" | "left" | "right" | "start";
type CanvasTextBaseline = "alphabetic" | "bottom" | "hanging" | "ideographic" | "middle" | "top";
type CanvasTextRendering = "auto" | "geometricPrecision" | "optimizeLegibility" | "optimizeSpeed";
type ClientTypes = "all" | "sharedworker" | "window" | "worker";
type ColorGamut = "p3" | "rec2020" | "srgb";
type ColorSpaceConversion = "default" | "none";
type DocumentVisibilityState = "hidden" | "visible";
type EndingType = "native" | "transparent";
type FileSystemHandleKind = "directory" | "file";
type FontDisplay = "auto" | "block" | "fallback" | "optional" | "swap";
type FontFaceLoadStatus = "error" | "loaded" | "loading" | "unloaded";
type FontFaceSetLoadStatus = "loaded" | "loading";
type FrameType = "auxiliary" | "nested" | "none" | "top-level";
type GlobalCompositeOperation = "color" | "color-burn" | "color-dodge" | "copy" | "darken" | "destination-atop" | "destination-in" | "destination-out" | "destination-over" | "difference" | "exclusion" | "hard-light" | "hue" | "lighten" | "lighter" | "luminosity" | "multiply" | "overlay" | "saturation" | "screen" | "soft-light" | "source-atop" | "source-in" | "source-out" | "source-over" | "xor";
type HdrMetadataType = "smpteSt2086" | "smpteSt2094-10" | "smpteSt2094-40";
type IDBCursorDirection = "next" | "nextunique" | "prev" | "prevunique";
type IDBRequestReadyState = "done" | "pending";
type IDBTransactionDurability = "default" | "relaxed" | "strict";
type IDBTransactionMode = "readonly" | "readwrite" | "versionchange";
type ImageOrientation = "flipY" | "from-image";
type ImageSmoothingQuality = "high" | "low" | "medium";
type KeyFormat = "jwk" | "pkcs8" | "raw" | "spki";
type KeyType = "private" | "public" | "secret";
type KeyUsage = "decrypt" | "deriveBits" | "deriveKey" | "encrypt" | "sign" | "unwrapKey" | "verify" | "wrapKey";
type LockMode = "exclusive" | "shared";
type MediaDecodingType = "file" | "media-source" | "webrtc";
type MediaEncodingType = "record" | "webrtc";
type NotificationDirection = "auto" | "ltr" | "rtl";
type NotificationPermission = "default" | "denied" | "granted";
type OffscreenRenderingContextId = "2d" | "bitmaprenderer" | "webgl" | "webgl2" | "webgpu";
type PermissionName = "geolocation" | "notifications" | "persistent-storage" | "push" | "screen-wake-lock" | "xr-spatial-tracking";
type PermissionState = "denied" | "granted" | "prompt";
type PredefinedColorSpace = "display-p3" | "srgb";
type PremultiplyAlpha = "default" | "none" | "premultiply";
type PushEncryptionKeyName = "auth" | "p256dh";
type RTCEncodedVideoFrameType = "delta" | "empty" | "key";
type ReadableStreamReaderMode = "byob";
type ReadableStreamType = "bytes";
type ReferrerPolicy = "" | "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url";
type RequestCache = "default" | "force-cache" | "no-cache" | "no-store" | "only-if-cached" | "reload";
type RequestCredentials = "include" | "omit" | "same-origin";
type RequestDestination = "" | "audio" | "audioworklet" | "document" | "embed" | "font" | "frame" | "iframe" | "image" | "manifest" | "object" | "paintworklet" | "report" | "script" | "sharedworker" | "style" | "track" | "video" | "worker" | "xslt";
type RequestMode = "cors" | "navigate" | "no-cors" | "same-origin";
type RequestRedirect = "error" | "follow" | "manual";
type ResizeQuality = "high" | "low" | "medium" | "pixelated";
type ResponseType = "basic" | "cors" | "default" | "error" | "opaque" | "opaqueredirect";
type SecurityPolicyViolationEventDisposition = "enforce" | "report";
type ServiceWorkerState = "activated" | "activating" | "installed" | "installing" | "parsed" | "redundant";
type ServiceWorkerUpdateViaCache = "all" | "imports" | "none";
type TransferFunction = "hlg" | "pq" | "srgb";
type VideoColorPrimaries = "bt470bg" | "bt709" | "smpte170m";
type VideoMatrixCoefficients = "bt470bg" | "bt709" | "rgb" | "smpte170m";
type VideoTransferCharacteristics = "bt709" | "iec61966-2-1" | "smpte170m";
type WebGLPowerPreference = "default" | "high-performance" | "low-power";
type WorkerType = "classic" | "module";
type XMLHttpRequestResponseType = "" | "arraybuffer" | "blob" | "document" | "json" | "text";
`;
ba["lib.webworker.importscripts.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>


/////////////////////////////
/// WorkerGlobalScope APIs
/////////////////////////////
// These are only available in a Web Worker
declare function importScripts(...urls: string[]): void;
`;
ba["lib.webworker.iterable.d.ts"] = `/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */


/// <reference no-default-lib="true"/>

/////////////////////////////
/// Worker Iterable APIs
/////////////////////////////

interface Cache {
    addAll(requests: Iterable<RequestInfo>): Promise<void>;
}

interface CanvasPath {
    roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | Iterable<number | DOMPointInit>): void;
}

interface CanvasPathDrawingStyles {
    setLineDash(segments: Iterable<number>): void;
}

interface DOMStringList {
    [Symbol.iterator](): IterableIterator<string>;
}

interface FileList {
    [Symbol.iterator](): IterableIterator<File>;
}

interface FontFaceSet extends Set<FontFace> {
}

interface FormData {
    [Symbol.iterator](): IterableIterator<[string, FormDataEntryValue]>;
    /** Returns an array of key, value pairs for every entry in the list. */
    entries(): IterableIterator<[string, FormDataEntryValue]>;
    /** Returns a list of keys in the list. */
    keys(): IterableIterator<string>;
    /** Returns a list of values in the list. */
    values(): IterableIterator<FormDataEntryValue>;
}

interface Headers {
    [Symbol.iterator](): IterableIterator<[string, string]>;
    /** Returns an iterator allowing to go through all key/value pairs contained in this object. */
    entries(): IterableIterator<[string, string]>;
    /** Returns an iterator allowing to go through all keys of the key/value pairs contained in this object. */
    keys(): IterableIterator<string>;
    /** Returns an iterator allowing to go through all values of the key/value pairs contained in this object. */
    values(): IterableIterator<string>;
}

interface IDBDatabase {
    /** Returns a new transaction with the given mode ("readonly" or "readwrite") and scope which can be a single object store name or an array of names. */
    transaction(storeNames: string | Iterable<string>, mode?: IDBTransactionMode, options?: IDBTransactionOptions): IDBTransaction;
}

interface IDBObjectStore {
    /**
     * Creates a new index in store with the given name, keyPath and options and returns a new IDBIndex. If the keyPath and options define constraints that cannot be satisfied with the data already in store the upgrade transaction will abort with a "ConstraintError" DOMException.
     *
     * Throws an "InvalidStateError" DOMException if not called within an upgrade transaction.
     */
    createIndex(name: string, keyPath: string | Iterable<string>, options?: IDBIndexParameters): IDBIndex;
}

interface MessageEvent<T = any> {
    /** @deprecated */
    initMessageEvent(type: string, bubbles?: boolean, cancelable?: boolean, data?: any, origin?: string, lastEventId?: string, source?: MessageEventSource | null, ports?: Iterable<MessagePort>): void;
}

interface SubtleCrypto {
    deriveKey(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: Iterable<KeyUsage>): Promise<CryptoKey>;
    generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKeyPair>;
    generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
    generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: Iterable<KeyUsage>): Promise<CryptoKeyPair | CryptoKey>;
    importKey(format: "jwk", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
    importKey(format: Exclude<KeyFormat, "jwk">, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: Iterable<KeyUsage>): Promise<CryptoKey>;
    unwrapKey(format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: Iterable<KeyUsage>): Promise<CryptoKey>;
}

interface URLSearchParams {
    [Symbol.iterator](): IterableIterator<[string, string]>;
    /** Returns an array of key, value pairs for every entry in the search params. */
    entries(): IterableIterator<[string, string]>;
    /** Returns a list of keys in the search params. */
    keys(): IterableIterator<string>;
    /** Returns a list of values in the search params. */
    values(): IterableIterator<string>;
}

interface WEBGL_draw_buffers {
    drawBuffersWEBGL(buffers: Iterable<GLenum>): void;
}

interface WEBGL_multi_draw {
    multiDrawArraysInstancedWEBGL(mode: GLenum, firstsList: Int32Array | Iterable<GLint>, firstsOffset: GLuint, countsList: Int32Array | Iterable<GLsizei>, countsOffset: GLuint, instanceCountsList: Int32Array | Iterable<GLsizei>, instanceCountsOffset: GLuint, drawcount: GLsizei): void;
    multiDrawArraysWEBGL(mode: GLenum, firstsList: Int32Array | Iterable<GLint>, firstsOffset: GLuint, countsList: Int32Array | Iterable<GLsizei>, countsOffset: GLuint, drawcount: GLsizei): void;
    multiDrawElementsInstancedWEBGL(mode: GLenum, countsList: Int32Array | Iterable<GLsizei>, countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | Iterable<GLsizei>, offsetsOffset: GLuint, instanceCountsList: Int32Array | Iterable<GLsizei>, instanceCountsOffset: GLuint, drawcount: GLsizei): void;
    multiDrawElementsWEBGL(mode: GLenum, countsList: Int32Array | Iterable<GLsizei>, countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | Iterable<GLsizei>, offsetsOffset: GLuint, drawcount: GLsizei): void;
}

interface WebGL2RenderingContextBase {
    clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLfloat>, srcOffset?: GLuint): void;
    clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLint>, srcOffset?: GLuint): void;
    clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLuint>, srcOffset?: GLuint): void;
    drawBuffers(buffers: Iterable<GLenum>): void;
    getActiveUniforms(program: WebGLProgram, uniformIndices: Iterable<GLuint>, pname: GLenum): any;
    getUniformIndices(program: WebGLProgram, uniformNames: Iterable<string>): Iterable<GLuint> | null;
    invalidateFramebuffer(target: GLenum, attachments: Iterable<GLenum>): void;
    invalidateSubFramebuffer(target: GLenum, attachments: Iterable<GLenum>, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
    transformFeedbackVaryings(program: WebGLProgram, varyings: Iterable<string>, bufferMode: GLenum): void;
    uniform1uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform2uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform3uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform4uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    vertexAttribI4iv(index: GLuint, values: Iterable<GLint>): void;
    vertexAttribI4uiv(index: GLuint, values: Iterable<GLuint>): void;
}

interface WebGL2RenderingContextOverloads {
    uniform1fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform1iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform2fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform2iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform3fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform3iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform4fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniform4iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
}

interface WebGLRenderingContextBase {
    vertexAttrib1fv(index: GLuint, values: Iterable<GLfloat>): void;
    vertexAttrib2fv(index: GLuint, values: Iterable<GLfloat>): void;
    vertexAttrib3fv(index: GLuint, values: Iterable<GLfloat>): void;
    vertexAttrib4fv(index: GLuint, values: Iterable<GLfloat>): void;
}

interface WebGLRenderingContextOverloads {
    uniform1fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;
    uniform1iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;
    uniform2fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;
    uniform2iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;
    uniform3fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;
    uniform3iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;
    uniform4fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;
    uniform4iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;
    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;
    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;
    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;
}
`;
function R_(m) {
  return typeof m == "string" ? /^file:\/\/\//.test(m) ? !!ba[m.substr(8)] : !1 : m.path.indexOf("/lib.") === 0 ? !!ba[m.path.slice(1)] : !1;
}
var eR = class {
  constructor(m, v) {
    JD(this, "_ctx");
    JD(this, "_extraLibs", /* @__PURE__ */ Object.create(null));
    JD(this, "_languageService", hNe(this));
    JD(this, "_compilerOptions");
    JD(this, "_inlayHintsOptions");
    this._ctx = m, this._compilerOptions = v.compilerOptions, this._extraLibs = v.extraLibs, this._inlayHintsOptions = v.inlayHintsOptions;
  }
  getCompilationSettings() {
    return this._compilerOptions;
  }
  getLanguageService() {
    return this._languageService;
  }
  getExtraLibs() {
    return this._extraLibs;
  }
  getScriptFileNames() {
    return this._ctx.getMirrorModels().map((C) => C.uri).filter((C) => !R_(C)).map((C) => C.toString()).concat(Object.keys(this._extraLibs));
  }
  _getModel(m) {
    let v = this._ctx.getMirrorModels();
    for (let C = 0; C < v.length; C++) {
      const B = v[C].uri;
      if (B.toString() === m || B.toString(!0) === m)
        return v[C];
    }
    return null;
  }
  getScriptVersion(m) {
    let v = this._getModel(m);
    return v ? v.version.toString() : this.isDefaultLibFileName(m) ? "1" : m in this._extraLibs ? String(this._extraLibs[m].version) : "";
  }
  async getScriptText(m) {
    return this._getScriptText(m);
  }
  _getScriptText(m) {
    let v, C = this._getModel(m);
    const B = "lib." + m + ".d.ts";
    if (C)
      v = C.getValue();
    else if (m in ba)
      v = ba[m];
    else if (B in ba)
      v = ba[B];
    else if (m in this._extraLibs)
      v = this._extraLibs[m].content;
    else
      return;
    return v;
  }
  getScriptSnapshot(m) {
    const v = this._getScriptText(m);
    if (v !== void 0)
      return {
        getText: (C, B) => v.substring(C, B),
        getLength: () => v.length,
        getChangeRange: () => {
        }
      };
  }
  getScriptKind(m) {
    switch (m.substr(m.lastIndexOf(".") + 1)) {
      case "ts":
        return QL.TS;
      case "tsx":
        return QL.TSX;
      case "js":
        return QL.JS;
      case "jsx":
        return QL.JSX;
      default:
        return this.getCompilationSettings().allowJs ? QL.JS : QL.TS;
    }
  }
  getCurrentDirectory() {
    return "";
  }
  getDefaultLibFileName(m) {
    switch (m.target) {
      case 99:
        const v = "lib.esnext.full.d.ts";
        if (v in ba || v in this._extraLibs)
          return v;
      case 7:
      case 6:
      case 5:
      case 4:
      case 3:
      case 2:
      default:
        const C = `lib.es${2013 + (m.target || 99)}.full.d.ts`;
        return C in ba || C in this._extraLibs ? C : "lib.es6.d.ts";
      case 1:
      case 0:
        return "lib.d.ts";
    }
  }
  isDefaultLibFileName(m) {
    return m === this.getDefaultLibFileName(this._compilerOptions);
  }
  readFile(m) {
    return this._getScriptText(m);
  }
  fileExists(m) {
    return this._getScriptText(m) !== void 0;
  }
  async getLibFiles() {
    return ba;
  }
  static clearFiles(m) {
    const v = [];
    for (const C of m) {
      const B = { ...C };
      if (B.file = B.file ? { fileName: B.file.fileName } : void 0, C.relatedInformation) {
        B.relatedInformation = [];
        for (const ne of C.relatedInformation) {
          const pe = { ...ne };
          pe.file = pe.file ? { fileName: pe.file.fileName } : void 0, B.relatedInformation.push(pe);
        }
      }
      v.push(B);
    }
    return v;
  }
  async getSyntacticDiagnostics(m) {
    if (R_(m))
      return [];
    const v = this._languageService.getSyntacticDiagnostics(m);
    return eR.clearFiles(v);
  }
  async getSemanticDiagnostics(m) {
    if (R_(m))
      return [];
    const v = this._languageService.getSemanticDiagnostics(m);
    return eR.clearFiles(v);
  }
  async getSuggestionDiagnostics(m) {
    if (R_(m))
      return [];
    const v = this._languageService.getSuggestionDiagnostics(m);
    return eR.clearFiles(v);
  }
  async getCompilerOptionsDiagnostics(m) {
    if (R_(m))
      return [];
    const v = this._languageService.getCompilerOptionsDiagnostics();
    return eR.clearFiles(v);
  }
  async getCompletionsAtPosition(m, v) {
    if (!R_(m))
      return this._languageService.getCompletionsAtPosition(m, v, void 0);
  }
  async getCompletionEntryDetails(m, v, C) {
    return this._languageService.getCompletionEntryDetails(m, v, C, void 0, void 0, void 0, void 0);
  }
  async getSignatureHelpItems(m, v, C) {
    if (!R_(m))
      return this._languageService.getSignatureHelpItems(m, v, C);
  }
  async getQuickInfoAtPosition(m, v) {
    if (!R_(m))
      return this._languageService.getQuickInfoAtPosition(m, v);
  }
  async getDocumentHighlights(m, v, C) {
    if (!R_(m))
      return this._languageService.getDocumentHighlights(m, v, C);
  }
  async getDefinitionAtPosition(m, v) {
    if (!R_(m))
      return this._languageService.getDefinitionAtPosition(m, v);
  }
  async getReferencesAtPosition(m, v) {
    if (!R_(m))
      return this._languageService.getReferencesAtPosition(m, v);
  }
  async getNavigationTree(m) {
    if (!R_(m))
      return this._languageService.getNavigationTree(m);
  }
  async getFormattingEditsForDocument(m, v) {
    return R_(m) ? [] : this._languageService.getFormattingEditsForDocument(m, v);
  }
  async getFormattingEditsForRange(m, v, C, B) {
    return R_(m) ? [] : this._languageService.getFormattingEditsForRange(m, v, C, B);
  }
  async getFormattingEditsAfterKeystroke(m, v, C, B) {
    return R_(m) ? [] : this._languageService.getFormattingEditsAfterKeystroke(m, v, C, B);
  }
  async findRenameLocations(m, v, C, B, ne) {
    if (!R_(m))
      return this._languageService.findRenameLocations(m, v, C, B, ne);
  }
  async getRenameInfo(m, v, C) {
    return R_(m) ? { canRename: !1, localizedErrorMessage: "Cannot rename in lib file" } : this._languageService.getRenameInfo(m, v, C);
  }
  async getEmitOutput(m) {
    return R_(m) ? { outputFiles: [], emitSkipped: !0 } : this._languageService.getEmitOutput(m);
  }
  async getCodeFixesAtPosition(m, v, C, B, ne) {
    if (R_(m))
      return [];
    const pe = {};
    try {
      return this._languageService.getCodeFixesAtPosition(m, v, C, B, ne, pe);
    } catch {
      return [];
    }
  }
  async updateExtraLibs(m) {
    this._extraLibs = m;
  }
  async provideInlayHints(m, v, C) {
    if (R_(m))
      return [];
    const B = this._inlayHintsOptions ?? {}, ne = {
      start: v,
      length: C - v
    };
    try {
      return this._languageService.provideInlayHints(m, ne, B);
    } catch {
      return [];
    }
  }
};
function Uut(m, v) {
  let C = eR;
  if (v.customWorkerPath)
    if (typeof importScripts > "u")
      console.warn("Monaco is not using webworkers for background tasks, and that is needed to support the customWorkerPath flag");
    else {
      self.importScripts(v.customWorkerPath);
      const B = self.customTSWorkerFactory;
      if (!B)
        throw new Error(`The script at ${v.customWorkerPath} does not add customTSWorkerFactory to self`);
      C = B(eR, mNe, ba);
    }
  return new C(m, v);
}
globalThis.ts = gNe;
self.onmessage = () => {
  pNe((m, v) => Uut(m, v));
};
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
export {
  eR as TypeScriptWorker,
  Uut as create,
  pNe as initialize,
  ba as libFileMap,
  mNe as ts
};
